diff --git a/proposals/cli/wit-0.3.0-draft/command.wit b/proposals/cli/wit-0.3.0-draft/command.wit index f2f613e55..78861e533 100644 --- a/proposals/cli/wit-0.3.0-draft/command.wit +++ b/proposals/cli/wit-0.3.0-draft/command.wit @@ -1,10 +1,10 @@ -package wasi:cli@0.3.0-rc-2025-09-16; +package wasi:cli@0.3.0-rc-2026-01-06; -@since(version = 0.3.0-rc-2025-09-16) +@since(version = 0.3.0-rc-2026-01-06) world command { - @since(version = 0.3.0-rc-2025-09-16) + @since(version = 0.3.0-rc-2026-01-06) include imports; - @since(version = 0.3.0-rc-2025-09-16) + @since(version = 0.3.0-rc-2026-01-06) export run; } diff --git a/proposals/cli/wit-0.3.0-draft/deps.lock b/proposals/cli/wit-0.3.0-draft/deps.lock index 8adf26ea2..c9cf98f03 100644 --- a/proposals/cli/wit-0.3.0-draft/deps.lock +++ b/proposals/cli/wit-0.3.0-draft/deps.lock @@ -1,19 +1,19 @@ [clocks] path = "../../clocks/wit-0.3.0-draft" -sha256 = "6c0d121ab51a75ad7e348129631cd721885ad994f38317af887137fdf4b0ff6d" -sha512 = "dadf98b75fd14f67ad95dcb595eadcc21bf846ba9301b0bcec062e0a6fdad9bdacb0927927b319ef082f105433f6fa298c52687cb17e9fdb2bb21e05fb288fce" +sha256 = "92b3fbb2700613b35f3fa8f2cc9d9b9a93b9d81feebedd4d071ab9c28cdc66e8" +sha512 = "702dd507f4d26b7b2ddfcfe8186532683824a21af1c9eadbe47359690e83be66c047c54eb29e71efc20de27d9f4b643610e4102880a93b45fb76c3e808252877" [filesystem] path = "../../filesystem/wit-0.3.0-draft" -sha256 = "0cc915eec8544a2d1e24358de902005ba2ae3595047ae5ab5bfa3e2b1b803922" -sha512 = "ba1899426490b9f27836ae9ef50799cbaf8976c1a6c081d91de897ee630a69db7dc2e48d627aff9024129d476c044522c23616c8df6e8304cec7c4e69f803a78" +sha256 = "ab88210ca207526acc50e0b942d3edd05a2c4108bc261a8e0b3aa26ddd03e71a" +sha512 = "6a23790610c34d8d1c5e70c9464be18f61e85a27caabdcf80c173e4b53ece69a078957f2ba8b7e0835f23149c37447fad9945ec0a62ff144749348939f321e27" [random] path = "../../random/wit-0.3.0-draft" -sha256 = "0a0cead69094ce1773468ff363b2d324ded025aab4f03a1d53b2538710c31e43" -sha512 = "3596bbd164c28254aefb0f7c7a047d81121df1de170808d16975f021c5170ea35dfe6fc1867f93469013ab8d36df8de14d4c5e1c9b70197bfd10e699fd6757e5" +sha256 = "f8bc74d443aacc210c1ff76617bfbd41f118185a8cdbafcd1b69347eaa817b18" +sha512 = "904912869d515a3ddb474d8fe3e273a71e76f897e4156ffc3107e4aa4ce6c7716ed52bb8455e46324456c07a9be26507bb1d7b229167fcdd915ece10fbea163e" [sockets] path = "../../sockets/wit-0.3.0-draft" -sha256 = "4964bac273f53af2cb15aa4cf8d0fe8bf46d7005b4b6d83e48a2423108f3b7ec" -sha512 = "6999f873305c8fc3892756115c1cb155df77c71d1f94c3285a2e5643eaef8f2423437bd235da3920740c2b3a8c1afb1cc13b4a622f4edaffd16fb75cdbb40057" +sha256 = "64d37fcd1d5c896bd692d1856520ce24af0be71083089758a9e42b4f94c24a1d" +sha512 = "7ac104891d5f6485511d5bb4789802f9bc0bc1992cb52c582ce17c03069100d1e592563e139bc92f0b751711f07724d26b728cb67c406198346262fc7cfcee0b" diff --git a/proposals/cli/wit-0.3.0-draft/environment.wit b/proposals/cli/wit-0.3.0-draft/environment.wit index 3763f2f6c..206809f73 100644 --- a/proposals/cli/wit-0.3.0-draft/environment.wit +++ b/proposals/cli/wit-0.3.0-draft/environment.wit @@ -1,4 +1,4 @@ -@since(version = 0.3.0-rc-2025-09-16) +@since(version = 0.3.0-rc-2026-01-06) interface environment { /// Get the POSIX-style environment variables. /// @@ -8,15 +8,15 @@ interface environment { /// Morally, these are a value import, but until value imports are available /// in the component model, this import function should return the same /// values each time it is called. - @since(version = 0.3.0-rc-2025-09-16) + @since(version = 0.3.0-rc-2026-01-06) get-environment: func() -> list>; /// Get the POSIX-style arguments to the program. - @since(version = 0.3.0-rc-2025-09-16) + @since(version = 0.3.0-rc-2026-01-06) get-arguments: func() -> list; /// Return a path that programs should use as their initial current working /// directory, interpreting `.` as shorthand for this. - @since(version = 0.3.0-rc-2025-09-16) + @since(version = 0.3.0-rc-2026-01-06) get-initial-cwd: func() -> option; } diff --git a/proposals/cli/wit-0.3.0-draft/exit.wit b/proposals/cli/wit-0.3.0-draft/exit.wit index 1efba7d68..e86547bde 100644 --- a/proposals/cli/wit-0.3.0-draft/exit.wit +++ b/proposals/cli/wit-0.3.0-draft/exit.wit @@ -1,7 +1,7 @@ -@since(version = 0.3.0-rc-2025-09-16) +@since(version = 0.3.0-rc-2026-01-06) interface exit { /// Exit the current instance and any linked instances. - @since(version = 0.3.0-rc-2025-09-16) + @since(version = 0.3.0-rc-2026-01-06) exit: func(status: result); /// Exit the current instance and any linked instances, reporting the diff --git a/proposals/cli/wit-0.3.0-draft/imports.wit b/proposals/cli/wit-0.3.0-draft/imports.wit index 660a2dd95..91430a8e7 100644 --- a/proposals/cli/wit-0.3.0-draft/imports.wit +++ b/proposals/cli/wit-0.3.0-draft/imports.wit @@ -1,34 +1,34 @@ -package wasi:cli@0.3.0-rc-2025-09-16; +package wasi:cli@0.3.0-rc-2026-01-06; -@since(version = 0.3.0-rc-2025-09-16) +@since(version = 0.3.0-rc-2026-01-06) world imports { - @since(version = 0.3.0-rc-2025-09-16) - include wasi:clocks/imports@0.3.0-rc-2025-09-16; - @since(version = 0.3.0-rc-2025-09-16) - include wasi:filesystem/imports@0.3.0-rc-2025-09-16; - @since(version = 0.3.0-rc-2025-09-16) - include wasi:sockets/imports@0.3.0-rc-2025-09-16; - @since(version = 0.3.0-rc-2025-09-16) - include wasi:random/imports@0.3.0-rc-2025-09-16; + @since(version = 0.3.0-rc-2026-01-06) + include wasi:clocks/imports@0.3.0-rc-2026-01-06; + @since(version = 0.3.0-rc-2026-01-06) + include wasi:filesystem/imports@0.3.0-rc-2026-01-06; + @since(version = 0.3.0-rc-2026-01-06) + include wasi:sockets/imports@0.3.0-rc-2026-01-06; + @since(version = 0.3.0-rc-2026-01-06) + include wasi:random/imports@0.3.0-rc-2026-01-06; - @since(version = 0.3.0-rc-2025-09-16) + @since(version = 0.3.0-rc-2026-01-06) import environment; - @since(version = 0.3.0-rc-2025-09-16) + @since(version = 0.3.0-rc-2026-01-06) import exit; - @since(version = 0.3.0-rc-2025-09-16) + @since(version = 0.3.0-rc-2026-01-06) import stdin; - @since(version = 0.3.0-rc-2025-09-16) + @since(version = 0.3.0-rc-2026-01-06) import stdout; - @since(version = 0.3.0-rc-2025-09-16) + @since(version = 0.3.0-rc-2026-01-06) import stderr; - @since(version = 0.3.0-rc-2025-09-16) + @since(version = 0.3.0-rc-2026-01-06) import terminal-input; - @since(version = 0.3.0-rc-2025-09-16) + @since(version = 0.3.0-rc-2026-01-06) import terminal-output; - @since(version = 0.3.0-rc-2025-09-16) + @since(version = 0.3.0-rc-2026-01-06) import terminal-stdin; - @since(version = 0.3.0-rc-2025-09-16) + @since(version = 0.3.0-rc-2026-01-06) import terminal-stdout; - @since(version = 0.3.0-rc-2025-09-16) + @since(version = 0.3.0-rc-2026-01-06) import terminal-stderr; } diff --git a/proposals/cli/wit-0.3.0-draft/run.wit b/proposals/cli/wit-0.3.0-draft/run.wit index 631441a3f..63c95e590 100644 --- a/proposals/cli/wit-0.3.0-draft/run.wit +++ b/proposals/cli/wit-0.3.0-draft/run.wit @@ -1,6 +1,6 @@ -@since(version = 0.3.0-rc-2025-09-16) +@since(version = 0.3.0-rc-2026-01-06) interface run { /// Run the program. - @since(version = 0.3.0-rc-2025-09-16) + @since(version = 0.3.0-rc-2026-01-06) run: async func() -> result; } diff --git a/proposals/cli/wit-0.3.0-draft/stdio.wit b/proposals/cli/wit-0.3.0-draft/stdio.wit index 51e5ae4b4..b4a106bfc 100644 --- a/proposals/cli/wit-0.3.0-draft/stdio.wit +++ b/proposals/cli/wit-0.3.0-draft/stdio.wit @@ -1,6 +1,6 @@ -@since(version = 0.3.0-rc-2025-09-16) +@since(version = 0.3.0-rc-2026-01-06) interface types { - @since(version = 0.3.0-rc-2025-09-16) + @since(version = 0.3.0-rc-2026-01-06) enum error-code { /// Input/output error io, @@ -11,7 +11,7 @@ interface types { } } -@since(version = 0.3.0-rc-2025-09-16) +@since(version = 0.3.0-rc-2026-01-06) interface stdin { use types.{error-code}; @@ -28,11 +28,11 @@ interface stdin { /// /// Multiple streams may be active at the same time. The behavior of concurrent /// reads is implementation-specific. - @since(version = 0.3.0-rc-2025-09-16) + @since(version = 0.3.0-rc-2026-01-06) read-via-stream: func() -> tuple, future>>; } -@since(version = 0.3.0-rc-2025-09-16) +@since(version = 0.3.0-rc-2026-01-06) interface stdout { use types.{error-code}; @@ -44,11 +44,11 @@ interface stdout { /// /// Otherwise if there is an error the readable end of the stream will be /// dropped and this function will return an error-code. - @since(version = 0.3.0-rc-2025-09-16) + @since(version = 0.3.0-rc-2026-01-06) write-via-stream: async func(data: stream) -> result<_, error-code>; } -@since(version = 0.3.0-rc-2025-09-16) +@since(version = 0.3.0-rc-2026-01-06) interface stderr { use types.{error-code}; @@ -60,6 +60,6 @@ interface stderr { /// /// Otherwise if there is an error the readable end of the stream will be /// dropped and this function will return an error-code. - @since(version = 0.3.0-rc-2025-09-16) + @since(version = 0.3.0-rc-2026-01-06) write-via-stream: async func(data: stream) -> result<_, error-code>; } diff --git a/proposals/cli/wit-0.3.0-draft/terminal.wit b/proposals/cli/wit-0.3.0-draft/terminal.wit index 74c17694a..f3add5b52 100644 --- a/proposals/cli/wit-0.3.0-draft/terminal.wit +++ b/proposals/cli/wit-0.3.0-draft/terminal.wit @@ -3,10 +3,10 @@ /// In the future, this may include functions for disabling echoing, /// disabling input buffering so that keyboard events are sent through /// immediately, querying supported features, and so on. -@since(version = 0.3.0-rc-2025-09-16) +@since(version = 0.3.0-rc-2026-01-06) interface terminal-input { /// The input side of a terminal. - @since(version = 0.3.0-rc-2025-09-16) + @since(version = 0.3.0-rc-2026-01-06) resource terminal-input; } @@ -15,48 +15,48 @@ interface terminal-input { /// In the future, this may include functions for querying the terminal /// size, being notified of terminal size changes, querying supported /// features, and so on. -@since(version = 0.3.0-rc-2025-09-16) +@since(version = 0.3.0-rc-2026-01-06) interface terminal-output { /// The output side of a terminal. - @since(version = 0.3.0-rc-2025-09-16) + @since(version = 0.3.0-rc-2026-01-06) resource terminal-output; } /// An interface providing an optional `terminal-input` for stdin as a /// link-time authority. -@since(version = 0.3.0-rc-2025-09-16) +@since(version = 0.3.0-rc-2026-01-06) interface terminal-stdin { - @since(version = 0.3.0-rc-2025-09-16) + @since(version = 0.3.0-rc-2026-01-06) use terminal-input.{terminal-input}; /// If stdin is connected to a terminal, return a `terminal-input` handle /// allowing further interaction with it. - @since(version = 0.3.0-rc-2025-09-16) + @since(version = 0.3.0-rc-2026-01-06) get-terminal-stdin: func() -> option; } /// An interface providing an optional `terminal-output` for stdout as a /// link-time authority. -@since(version = 0.3.0-rc-2025-09-16) +@since(version = 0.3.0-rc-2026-01-06) interface terminal-stdout { - @since(version = 0.3.0-rc-2025-09-16) + @since(version = 0.3.0-rc-2026-01-06) use terminal-output.{terminal-output}; /// If stdout is connected to a terminal, return a `terminal-output` handle /// allowing further interaction with it. - @since(version = 0.3.0-rc-2025-09-16) + @since(version = 0.3.0-rc-2026-01-06) get-terminal-stdout: func() -> option; } /// An interface providing an optional `terminal-output` for stderr as a /// link-time authority. -@since(version = 0.3.0-rc-2025-09-16) +@since(version = 0.3.0-rc-2026-01-06) interface terminal-stderr { - @since(version = 0.3.0-rc-2025-09-16) + @since(version = 0.3.0-rc-2026-01-06) use terminal-output.{terminal-output}; /// If stderr is connected to a terminal, return a `terminal-output` handle /// allowing further interaction with it. - @since(version = 0.3.0-rc-2025-09-16) + @since(version = 0.3.0-rc-2026-01-06) get-terminal-stderr: func() -> option; } diff --git a/proposals/clocks/wit-0.3.0-draft/monotonic-clock.wit b/proposals/clocks/wit-0.3.0-draft/monotonic-clock.wit index 7f364665a..ad2a27e10 100644 --- a/proposals/clocks/wit-0.3.0-draft/monotonic-clock.wit +++ b/proposals/clocks/wit-0.3.0-draft/monotonic-clock.wit @@ -1,4 +1,4 @@ -package wasi:clocks@0.3.0-rc-2025-09-16; +package wasi:clocks@0.3.0-rc-2026-01-06; /// WASI Monotonic Clock is a clock API intended to let users measure elapsed /// time. /// @@ -7,14 +7,14 @@ package wasi:clocks@0.3.0-rc-2025-09-16; /// /// A monotonic clock is a clock which has an unspecified initial value, and /// successive reads of the clock will produce non-decreasing values. -@since(version = 0.3.0-rc-2025-09-16) +@since(version = 0.3.0-rc-2026-01-06) interface monotonic-clock { use types.{duration}; /// A mark on a monotonic clock is a number of nanoseconds since an /// unspecified initial value, and can only be compared to instances from /// the same monotonic-clock. - @since(version = 0.3.0-rc-2025-09-16) + @since(version = 0.3.0-rc-2026-01-06) type mark = u64; /// Read the current value of the clock. @@ -26,22 +26,22 @@ interface monotonic-clock { /// the value of the clock in a `mark`. Consequently, implementations /// should ensure that the starting time is low enough to avoid the /// possibility of overflow in practice. - @since(version = 0.3.0-rc-2025-09-16) + @since(version = 0.3.0-rc-2026-01-06) now: func() -> mark; /// Query the resolution of the clock. Returns the duration of time /// corresponding to a clock tick. - @since(version = 0.3.0-rc-2025-09-16) + @since(version = 0.3.0-rc-2026-01-06) get-resolution: func() -> duration; /// Wait until the specified mark has occurred. - @since(version = 0.3.0-rc-2025-09-16) + @since(version = 0.3.0-rc-2026-01-06) wait-until: async func( when: mark, ); /// Wait for the specified duration to elapse. - @since(version = 0.3.0-rc-2025-09-16) + @since(version = 0.3.0-rc-2026-01-06) wait-for: async func( how-long: duration, ); diff --git a/proposals/clocks/wit-0.3.0-draft/system-clock.wit b/proposals/clocks/wit-0.3.0-draft/system-clock.wit index bd3049fd4..7a802046d 100644 --- a/proposals/clocks/wit-0.3.0-draft/system-clock.wit +++ b/proposals/clocks/wit-0.3.0-draft/system-clock.wit @@ -1,4 +1,4 @@ -package wasi:clocks@0.3.0-rc-2025-09-16; +package wasi:clocks@0.3.0-rc-2026-01-06; /// WASI System Clock is a clock API intended to let users query the current /// time. The clock is not necessarily monotonic as it may be reset. /// @@ -9,7 +9,7 @@ package wasi:clocks@0.3.0-rc-2025-09-16; /// monotonic, making it unsuitable for measuring elapsed time. /// /// It is intended for reporting the current date and time for humans. -@since(version = 0.3.0-rc-2025-09-16) +@since(version = 0.3.0-rc-2026-01-06) interface system-clock { use types.{duration}; @@ -29,7 +29,7 @@ interface system-clock { /// /// [POSIX's Seconds Since the Epoch]: https://pubs.opengroup.org/onlinepubs/9699919799/xrat/V4_xbd_chap04.html#tag_21_04_16 /// [Unix Time]: https://en.wikipedia.org/wiki/Unix_time - @since(version = 0.3.0-rc-2025-09-16) + @since(version = 0.3.0-rc-2026-01-06) record instant { seconds: s64, nanoseconds: u32, @@ -41,11 +41,11 @@ interface system-clock { /// will not necessarily produce a sequence of non-decreasing values. /// /// The nanoseconds field of the output is always less than 1000000000. - @since(version = 0.3.0-rc-2025-09-16) + @since(version = 0.3.0-rc-2026-01-06) now: func() -> instant; /// Query the resolution of the clock. Returns the smallest duration of time /// that the implementation permits distinguishing. - @since(version = 0.3.0-rc-2025-09-16) + @since(version = 0.3.0-rc-2026-01-06) get-resolution: func() -> duration; } diff --git a/proposals/clocks/wit-0.3.0-draft/timezone.wit b/proposals/clocks/wit-0.3.0-draft/timezone.wit index d8d5732dc..adba9c4fc 100644 --- a/proposals/clocks/wit-0.3.0-draft/timezone.wit +++ b/proposals/clocks/wit-0.3.0-draft/timezone.wit @@ -1,4 +1,4 @@ -package wasi:clocks@0.3.0-rc-2025-09-16; +package wasi:clocks@0.3.0-rc-2026-01-06; @unstable(feature = clocks-timezone) interface timezone { diff --git a/proposals/clocks/wit-0.3.0-draft/types.wit b/proposals/clocks/wit-0.3.0-draft/types.wit index aff7c2a22..ff587c27d 100644 --- a/proposals/clocks/wit-0.3.0-draft/types.wit +++ b/proposals/clocks/wit-0.3.0-draft/types.wit @@ -1,8 +1,8 @@ -package wasi:clocks@0.3.0-rc-2025-09-16; +package wasi:clocks@0.3.0-rc-2026-01-06; /// This interface common types used throughout wasi:clocks. -@since(version = 0.3.0-rc-2025-09-16) +@since(version = 0.3.0-rc-2026-01-06) interface types { /// A duration of time, in nanoseconds. - @since(version = 0.3.0-rc-2025-09-16) + @since(version = 0.3.0-rc-2026-01-06) type duration = u64; } diff --git a/proposals/clocks/wit-0.3.0-draft/world.wit b/proposals/clocks/wit-0.3.0-draft/world.wit index f274bceb0..13d275fef 100644 --- a/proposals/clocks/wit-0.3.0-draft/world.wit +++ b/proposals/clocks/wit-0.3.0-draft/world.wit @@ -1,10 +1,10 @@ -package wasi:clocks@0.3.0-rc-2025-09-16; +package wasi:clocks@0.3.0-rc-2026-01-06; -@since(version = 0.3.0-rc-2025-09-16) +@since(version = 0.3.0-rc-2026-01-06) world imports { - @since(version = 0.3.0-rc-2025-09-16) + @since(version = 0.3.0-rc-2026-01-06) import monotonic-clock; - @since(version = 0.3.0-rc-2025-09-16) + @since(version = 0.3.0-rc-2026-01-06) import system-clock; @unstable(feature = clocks-timezone) import timezone; diff --git a/proposals/filesystem/wit-0.3.0-draft/deps.lock b/proposals/filesystem/wit-0.3.0-draft/deps.lock index 8484764f8..1ba6210d8 100644 --- a/proposals/filesystem/wit-0.3.0-draft/deps.lock +++ b/proposals/filesystem/wit-0.3.0-draft/deps.lock @@ -1,4 +1,4 @@ [clocks] path = "../../clocks/wit-0.3.0-draft" -sha256 = "6c0d121ab51a75ad7e348129631cd721885ad994f38317af887137fdf4b0ff6d" -sha512 = "dadf98b75fd14f67ad95dcb595eadcc21bf846ba9301b0bcec062e0a6fdad9bdacb0927927b319ef082f105433f6fa298c52687cb17e9fdb2bb21e05fb288fce" +sha256 = "92b3fbb2700613b35f3fa8f2cc9d9b9a93b9d81feebedd4d071ab9c28cdc66e8" +sha512 = "702dd507f4d26b7b2ddfcfe8186532683824a21af1c9eadbe47359690e83be66c047c54eb29e71efc20de27d9f4b643610e4102880a93b45fb76c3e808252877" diff --git a/proposals/filesystem/wit-0.3.0-draft/preopens.wit b/proposals/filesystem/wit-0.3.0-draft/preopens.wit index 9036e90e8..0a08e303f 100644 --- a/proposals/filesystem/wit-0.3.0-draft/preopens.wit +++ b/proposals/filesystem/wit-0.3.0-draft/preopens.wit @@ -1,11 +1,11 @@ -package wasi:filesystem@0.3.0-rc-2025-09-16; +package wasi:filesystem@0.3.0-rc-2026-01-06; -@since(version = 0.3.0-rc-2025-09-16) +@since(version = 0.3.0-rc-2026-01-06) interface preopens { - @since(version = 0.3.0-rc-2025-09-16) + @since(version = 0.3.0-rc-2026-01-06) use types.{descriptor}; /// Return the set of preopened directories, and their paths. - @since(version = 0.3.0-rc-2025-09-16) + @since(version = 0.3.0-rc-2026-01-06) get-directories: func() -> list>; } diff --git a/proposals/filesystem/wit-0.3.0-draft/types.wit b/proposals/filesystem/wit-0.3.0-draft/types.wit index 141072bdb..c482e7ed6 100644 --- a/proposals/filesystem/wit-0.3.0-draft/types.wit +++ b/proposals/filesystem/wit-0.3.0-draft/types.wit @@ -1,4 +1,4 @@ -package wasi:filesystem@0.3.0-rc-2025-09-16; +package wasi:filesystem@0.3.0-rc-2026-01-06; /// WASI filesystem is a filesystem API primarily intended to let users run WASI /// programs that access their files on their existing filesystems, without /// significant overhead. @@ -23,19 +23,19 @@ package wasi:filesystem@0.3.0-rc-2025-09-16; /// [WASI filesystem path resolution]. /// /// [WASI filesystem path resolution]: https://github.com/WebAssembly/wasi-filesystem/blob/main/path-resolution.md -@since(version = 0.3.0-rc-2025-09-16) +@since(version = 0.3.0-rc-2026-01-06) interface types { - @since(version = 0.3.0-rc-2025-09-16) - use wasi:clocks/system-clock@0.3.0-rc-2025-09-16.{instant}; + @since(version = 0.3.0-rc-2026-01-06) + use wasi:clocks/system-clock@0.3.0-rc-2026-01-06.{instant}; /// File size or length of a region within a file. - @since(version = 0.3.0-rc-2025-09-16) + @since(version = 0.3.0-rc-2026-01-06) type filesize = u64; /// The type of a filesystem object referenced by a descriptor. /// /// Note: This was called `filetype` in earlier versions of WASI. - @since(version = 0.3.0-rc-2025-09-16) + @since(version = 0.3.0-rc-2026-01-06) enum descriptor-type { /// The type of the descriptor or file is unknown or is different from /// any of the other types specified. @@ -59,7 +59,7 @@ interface types { /// Descriptor flags. /// /// Note: This was called `fdflags` in earlier versions of WASI. - @since(version = 0.3.0-rc-2025-09-16) + @since(version = 0.3.0-rc-2026-01-06) flags descriptor-flags { /// Read mode: Data can be read. read, @@ -103,7 +103,7 @@ interface types { /// File attributes. /// /// Note: This was called `filestat` in earlier versions of WASI. - @since(version = 0.3.0-rc-2025-09-16) + @since(version = 0.3.0-rc-2026-01-06) record descriptor-stat { /// File type. %type: descriptor-type, @@ -130,7 +130,7 @@ interface types { } /// Flags determining the method of how paths are resolved. - @since(version = 0.3.0-rc-2025-09-16) + @since(version = 0.3.0-rc-2026-01-06) flags path-flags { /// As long as the resolved path corresponds to a symbolic link, it is /// expanded. @@ -138,7 +138,7 @@ interface types { } /// Open flags used by `open-at`. - @since(version = 0.3.0-rc-2025-09-16) + @since(version = 0.3.0-rc-2026-01-06) flags open-flags { /// Create file if it does not exist, similar to `O_CREAT` in POSIX. create, @@ -151,11 +151,11 @@ interface types { } /// Number of hard links to an inode. - @since(version = 0.3.0-rc-2025-09-16) + @since(version = 0.3.0-rc-2026-01-06) type link-count = u64; /// When setting a timestamp, this gives the value to set it to. - @since(version = 0.3.0-rc-2025-09-16) + @since(version = 0.3.0-rc-2026-01-06) variant new-timestamp { /// Leave the timestamp set to its previous value. no-change, @@ -255,7 +255,7 @@ interface types { } /// File or memory access pattern advisory information. - @since(version = 0.3.0-rc-2025-09-16) + @since(version = 0.3.0-rc-2026-01-06) enum advice { /// The application has no advice to give on its behavior with respect /// to the specified data. @@ -279,7 +279,7 @@ interface types { /// A 128-bit hash value, split into parts because wasm doesn't have a /// 128-bit integer type. - @since(version = 0.3.0-rc-2025-09-16) + @since(version = 0.3.0-rc-2026-01-06) record metadata-hash-value { /// 64 bits of a 128-bit hash value. lower: u64, @@ -290,7 +290,7 @@ interface types { /// A descriptor is a reference to a filesystem object, which may be a file, /// directory, named pipe, special file, or other object on which filesystem /// calls may be made. - @since(version = 0.3.0-rc-2025-09-16) + @since(version = 0.3.0-rc-2026-01-06) resource descriptor { /// Return a stream for reading from a file. /// @@ -308,7 +308,7 @@ interface types { /// resolves to `err` with an `error-code`. /// /// Note: This is similar to `pread` in POSIX. - @since(version = 0.3.0-rc-2025-09-16) + @since(version = 0.3.0-rc-2026-01-06) read-via-stream: func( /// The offset within the file at which to start reading. offset: filesize, @@ -326,7 +326,7 @@ interface types { /// written or an error is encountered. /// /// Note: This is similar to `pwrite` in POSIX. - @since(version = 0.3.0-rc-2025-09-16) + @since(version = 0.3.0-rc-2026-01-06) write-via-stream: async func( /// Data to write data: stream, @@ -342,13 +342,13 @@ interface types { /// written or an error is encountered. /// /// Note: This is similar to `write` with `O_APPEND` in POSIX. - @since(version = 0.3.0-rc-2025-09-16) + @since(version = 0.3.0-rc-2026-01-06) append-via-stream: async func(data: stream) -> result<_, error-code>; /// Provide file advisory information on a descriptor. /// /// This is similar to `posix_fadvise` in POSIX. - @since(version = 0.3.0-rc-2025-09-16) + @since(version = 0.3.0-rc-2026-01-06) advise: async func( /// The offset within the file to which the advisory applies. offset: filesize, @@ -364,7 +364,7 @@ interface types { /// opened for writing. /// /// Note: This is similar to `fdatasync` in POSIX. - @since(version = 0.3.0-rc-2025-09-16) + @since(version = 0.3.0-rc-2026-01-06) sync-data: async func() -> result<_, error-code>; /// Get flags associated with a descriptor. @@ -373,7 +373,7 @@ interface types { /// /// Note: This returns the value that was the `fs_flags` value returned /// from `fdstat_get` in earlier versions of WASI. - @since(version = 0.3.0-rc-2025-09-16) + @since(version = 0.3.0-rc-2026-01-06) get-flags: async func() -> result; /// Get the dynamic type of a descriptor. @@ -386,14 +386,14 @@ interface types { /// /// Note: This returns the value that was the `fs_filetype` value returned /// from `fdstat_get` in earlier versions of WASI. - @since(version = 0.3.0-rc-2025-09-16) + @since(version = 0.3.0-rc-2026-01-06) get-type: async func() -> result; /// Adjust the size of an open file. If this increases the file's size, the /// extra bytes are filled with zeros. /// /// Note: This was called `fd_filestat_set_size` in earlier versions of WASI. - @since(version = 0.3.0-rc-2025-09-16) + @since(version = 0.3.0-rc-2026-01-06) set-size: async func(size: filesize) -> result<_, error-code>; /// Adjust the timestamps of an open file or directory. @@ -401,7 +401,7 @@ interface types { /// Note: This is similar to `futimens` in POSIX. /// /// Note: This was called `fd_filestat_set_times` in earlier versions of WASI. - @since(version = 0.3.0-rc-2025-09-16) + @since(version = 0.3.0-rc-2026-01-06) set-times: async func( /// The desired values of the data access timestamp. data-access-timestamp: new-timestamp, @@ -421,7 +421,7 @@ interface types { /// /// This function returns a future, which will resolve to an error code if /// reading full contents of the directory fails. - @since(version = 0.3.0-rc-2025-09-16) + @since(version = 0.3.0-rc-2026-01-06) read-directory: async func() -> tuple, future>>; /// Synchronize the data and metadata of a file to disk. @@ -430,13 +430,13 @@ interface types { /// opened for writing. /// /// Note: This is similar to `fsync` in POSIX. - @since(version = 0.3.0-rc-2025-09-16) + @since(version = 0.3.0-rc-2026-01-06) sync: async func() -> result<_, error-code>; /// Create a directory. /// /// Note: This is similar to `mkdirat` in POSIX. - @since(version = 0.3.0-rc-2025-09-16) + @since(version = 0.3.0-rc-2026-01-06) create-directory-at: async func( /// The relative path at which to create the directory. path: string, @@ -451,7 +451,7 @@ interface types { /// modified, use `metadata-hash`. /// /// Note: This was called `fd_filestat_get` in earlier versions of WASI. - @since(version = 0.3.0-rc-2025-09-16) + @since(version = 0.3.0-rc-2026-01-06) stat: async func() -> result; /// Return the attributes of a file or directory. @@ -461,7 +461,7 @@ interface types { /// discussion of alternatives. /// /// Note: This was called `path_filestat_get` in earlier versions of WASI. - @since(version = 0.3.0-rc-2025-09-16) + @since(version = 0.3.0-rc-2026-01-06) stat-at: async func( /// Flags determining the method of how the path is resolved. path-flags: path-flags, @@ -475,7 +475,7 @@ interface types { /// /// Note: This was called `path_filestat_set_times` in earlier versions of /// WASI. - @since(version = 0.3.0-rc-2025-09-16) + @since(version = 0.3.0-rc-2026-01-06) set-times-at: async func( /// Flags determining the method of how the path is resolved. path-flags: path-flags, @@ -494,7 +494,7 @@ interface types { /// `error-code::not-permitted` if the old path is not a file. /// /// Note: This is similar to `linkat` in POSIX. - @since(version = 0.3.0-rc-2025-09-16) + @since(version = 0.3.0-rc-2026-01-06) link-at: async func( /// Flags determining the method of how the path is resolved. old-path-flags: path-flags, @@ -518,7 +518,7 @@ interface types { /// `error-code::read-only`. /// /// Note: This is similar to `openat` in POSIX. - @since(version = 0.3.0-rc-2025-09-16) + @since(version = 0.3.0-rc-2026-01-06) open-at: async func( /// Flags determining the method of how the path is resolved. path-flags: path-flags, @@ -536,7 +536,7 @@ interface types { /// filesystem, this function fails with `error-code::not-permitted`. /// /// Note: This is similar to `readlinkat` in POSIX. - @since(version = 0.3.0-rc-2025-09-16) + @since(version = 0.3.0-rc-2026-01-06) readlink-at: async func( /// The relative path of the symbolic link from which to read. path: string, @@ -547,7 +547,7 @@ interface types { /// Return `error-code::not-empty` if the directory is not empty. /// /// Note: This is similar to `unlinkat(fd, path, AT_REMOVEDIR)` in POSIX. - @since(version = 0.3.0-rc-2025-09-16) + @since(version = 0.3.0-rc-2026-01-06) remove-directory-at: async func( /// The relative path to a directory to remove. path: string, @@ -556,7 +556,7 @@ interface types { /// Rename a filesystem object. /// /// Note: This is similar to `renameat` in POSIX. - @since(version = 0.3.0-rc-2025-09-16) + @since(version = 0.3.0-rc-2026-01-06) rename-at: async func( /// The relative source path of the file or directory to rename. old-path: string, @@ -572,7 +572,7 @@ interface types { /// `error-code::not-permitted`. /// /// Note: This is similar to `symlinkat` in POSIX. - @since(version = 0.3.0-rc-2025-09-16) + @since(version = 0.3.0-rc-2026-01-06) symlink-at: async func( /// The contents of the symbolic link. old-path: string, @@ -584,7 +584,7 @@ interface types { /// /// Return `error-code::is-directory` if the path refers to a directory. /// Note: This is similar to `unlinkat(fd, path, 0)` in POSIX. - @since(version = 0.3.0-rc-2025-09-16) + @since(version = 0.3.0-rc-2026-01-06) unlink-file-at: async func( /// The relative path to a file to unlink. path: string, @@ -596,7 +596,7 @@ interface types { /// same device (`st_dev`) and inode (`st_ino` or `d_ino`) numbers. /// wasi-filesystem does not expose device and inode numbers, so this function /// may be used instead. - @since(version = 0.3.0-rc-2025-09-16) + @since(version = 0.3.0-rc-2026-01-06) is-same-object: async func(other: borrow) -> bool; /// Return a hash of the metadata associated with a filesystem object referred @@ -618,14 +618,14 @@ interface types { /// computed hash. /// /// However, none of these is required. - @since(version = 0.3.0-rc-2025-09-16) + @since(version = 0.3.0-rc-2026-01-06) metadata-hash: async func() -> result; /// Return a hash of the metadata associated with a filesystem object referred /// to by a directory descriptor and a relative path. /// /// This performs the same hash computation as `metadata-hash`. - @since(version = 0.3.0-rc-2025-09-16) + @since(version = 0.3.0-rc-2026-01-06) metadata-hash-at: async func( /// Flags determining the method of how the path is resolved. path-flags: path-flags, diff --git a/proposals/filesystem/wit-0.3.0-draft/world.wit b/proposals/filesystem/wit-0.3.0-draft/world.wit index 87fc72716..f9bd09f5f 100644 --- a/proposals/filesystem/wit-0.3.0-draft/world.wit +++ b/proposals/filesystem/wit-0.3.0-draft/world.wit @@ -1,9 +1,9 @@ -package wasi:filesystem@0.3.0-rc-2025-09-16; +package wasi:filesystem@0.3.0-rc-2026-01-06; -@since(version = 0.3.0-rc-2025-09-16) +@since(version = 0.3.0-rc-2026-01-06) world imports { - @since(version = 0.3.0-rc-2025-09-16) + @since(version = 0.3.0-rc-2026-01-06) import types; - @since(version = 0.3.0-rc-2025-09-16) + @since(version = 0.3.0-rc-2026-01-06) import preopens; } diff --git a/proposals/http/wit-0.3.0-draft/deps.lock b/proposals/http/wit-0.3.0-draft/deps.lock index 123a2c2fa..27d9309cb 100644 --- a/proposals/http/wit-0.3.0-draft/deps.lock +++ b/proposals/http/wit-0.3.0-draft/deps.lock @@ -1,22 +1,22 @@ [cli] path = "../../cli/wit-0.3.0-draft" -sha256 = "5a4fb9ecf963e19b131821132dd835cc140424e6b03aa8434d4fb4df25a52ec4" -sha512 = "48319184c0b7157bd358cdaf20b9bd054731a06fa032a4c785c72e1f8ced7c1260b135f9801d46d7e031efb3a38b62f0b1a1538955e44ef3abfda7ab353215e6" +sha256 = "fe7455980d64610ed6fec7f9982415512d5b3afb460573fb71b584518ae07231" +sha512 = "46a85d964299316a5d5e4d31e2e6d721cfa991b2e9aaa4a72f70e5164d4727a0e1d451b1636dd4ad2df30599f8e2816e30b8c29575d9c3482e7457e5a977181b" deps = ["filesystem", "random", "sockets"] [clocks] path = "../../clocks/wit-0.3.0-draft" -sha256 = "6c0d121ab51a75ad7e348129631cd721885ad994f38317af887137fdf4b0ff6d" -sha512 = "dadf98b75fd14f67ad95dcb595eadcc21bf846ba9301b0bcec062e0a6fdad9bdacb0927927b319ef082f105433f6fa298c52687cb17e9fdb2bb21e05fb288fce" +sha256 = "92b3fbb2700613b35f3fa8f2cc9d9b9a93b9d81feebedd4d071ab9c28cdc66e8" +sha512 = "702dd507f4d26b7b2ddfcfe8186532683824a21af1c9eadbe47359690e83be66c047c54eb29e71efc20de27d9f4b643610e4102880a93b45fb76c3e808252877" [filesystem] -sha256 = "0cc915eec8544a2d1e24358de902005ba2ae3595047ae5ab5bfa3e2b1b803922" -sha512 = "ba1899426490b9f27836ae9ef50799cbaf8976c1a6c081d91de897ee630a69db7dc2e48d627aff9024129d476c044522c23616c8df6e8304cec7c4e69f803a78" +sha256 = "ab88210ca207526acc50e0b942d3edd05a2c4108bc261a8e0b3aa26ddd03e71a" +sha512 = "6a23790610c34d8d1c5e70c9464be18f61e85a27caabdcf80c173e4b53ece69a078957f2ba8b7e0835f23149c37447fad9945ec0a62ff144749348939f321e27" [random] -sha256 = "0a0cead69094ce1773468ff363b2d324ded025aab4f03a1d53b2538710c31e43" -sha512 = "3596bbd164c28254aefb0f7c7a047d81121df1de170808d16975f021c5170ea35dfe6fc1867f93469013ab8d36df8de14d4c5e1c9b70197bfd10e699fd6757e5" +sha256 = "f8bc74d443aacc210c1ff76617bfbd41f118185a8cdbafcd1b69347eaa817b18" +sha512 = "904912869d515a3ddb474d8fe3e273a71e76f897e4156ffc3107e4aa4ce6c7716ed52bb8455e46324456c07a9be26507bb1d7b229167fcdd915ece10fbea163e" [sockets] -sha256 = "4964bac273f53af2cb15aa4cf8d0fe8bf46d7005b4b6d83e48a2423108f3b7ec" -sha512 = "6999f873305c8fc3892756115c1cb155df77c71d1f94c3285a2e5643eaef8f2423437bd235da3920740c2b3a8c1afb1cc13b4a622f4edaffd16fb75cdbb40057" +sha256 = "64d37fcd1d5c896bd692d1856520ce24af0be71083089758a9e42b4f94c24a1d" +sha512 = "7ac104891d5f6485511d5bb4789802f9bc0bc1992cb52c582ce17c03069100d1e592563e139bc92f0b751711f07724d26b728cb67c406198346262fc7cfcee0b" diff --git a/proposals/http/wit-0.3.0-draft/types.wit b/proposals/http/wit-0.3.0-draft/types.wit index 0f0e83851..ba25c7142 100644 --- a/proposals/http/wit-0.3.0-draft/types.wit +++ b/proposals/http/wit-0.3.0-draft/types.wit @@ -1,7 +1,7 @@ /// This interface defines all of the types and methods for implementing HTTP /// Requests and Responses, as well as their headers, trailers, and bodies. interface types { - use wasi:clocks/types@0.3.0-rc-2025-09-16.{duration}; + use wasi:clocks/types@0.3.0-rc-2026-01-06.{duration}; /// This type corresponds to HTTP standard Methods. variant method { diff --git a/proposals/http/wit-0.3.0-draft/worlds.wit b/proposals/http/wit-0.3.0-draft/worlds.wit index 5a1136809..dc9a4da79 100644 --- a/proposals/http/wit-0.3.0-draft/worlds.wit +++ b/proposals/http/wit-0.3.0-draft/worlds.wit @@ -1,23 +1,23 @@ -package wasi:http@0.3.0-rc-2025-09-16; +package wasi:http@0.3.0-rc-2026-01-06; /// The `wasi:http/service` world captures a broad category of HTTP services /// including web applications, API servers, and proxies. It may be `include`d /// in more specific worlds such as `wasi:http/middleware`. world service { /// HTTP services have access to time and randomness. - include wasi:clocks/imports@0.3.0-rc-2025-09-16; - include wasi:random/imports@0.3.0-rc-2025-09-16; + include wasi:clocks/imports@0.3.0-rc-2026-01-06; + include wasi:random/imports@0.3.0-rc-2026-01-06; /// Services have standard output and error streams which are expected to /// terminate in a developer-facing console provided by the host. - import wasi:cli/stdout@0.3.0-rc-2025-09-16; - import wasi:cli/stderr@0.3.0-rc-2025-09-16; + import wasi:cli/stdout@0.3.0-rc-2026-01-06; + import wasi:cli/stderr@0.3.0-rc-2026-01-06; /// TODO: this is a temporary workaround until component tooling is able to /// gracefully handle the absence of stdin. Hosts must return an eof stream /// for this import, which is what wasi-libc + tooling will do automatically /// when this import is properly removed. - import wasi:cli/stdin@0.3.0-rc-2025-09-16; + import wasi:cli/stdin@0.3.0-rc-2026-01-06; /// This is the default `client` to use when user code simply wants to make an /// HTTP request (e.g., via `fetch()`). diff --git a/proposals/random/wit-0.3.0-draft/insecure-seed.wit b/proposals/random/wit-0.3.0-draft/insecure-seed.wit index 302151ba6..501696bf0 100644 --- a/proposals/random/wit-0.3.0-draft/insecure-seed.wit +++ b/proposals/random/wit-0.3.0-draft/insecure-seed.wit @@ -1,9 +1,9 @@ -package wasi:random@0.3.0-rc-2025-09-16; +package wasi:random@0.3.0-rc-2026-01-06; /// The insecure-seed interface for seeding hash-map DoS resistance. /// /// It is intended to be portable at least between Unix-family platforms and /// Windows. -@since(version = 0.3.0-rc-2025-09-16) +@since(version = 0.3.0-rc-2026-01-06) interface insecure-seed { /// Return a 128-bit value that may contain a pseudo-random value. /// @@ -22,6 +22,6 @@ interface insecure-seed { /// This will likely be changed to a value import, to prevent it from being /// called multiple times and potentially used for purposes other than DoS /// protection. - @since(version = 0.3.0-rc-2025-09-16) + @since(version = 0.3.0-rc-2026-01-06) get-insecure-seed: func() -> tuple; } diff --git a/proposals/random/wit-0.3.0-draft/insecure.wit b/proposals/random/wit-0.3.0-draft/insecure.wit index 39146e391..11ed9123e 100644 --- a/proposals/random/wit-0.3.0-draft/insecure.wit +++ b/proposals/random/wit-0.3.0-draft/insecure.wit @@ -1,9 +1,9 @@ -package wasi:random@0.3.0-rc-2025-09-16; +package wasi:random@0.3.0-rc-2026-01-06; /// The insecure interface for insecure pseudo-random numbers. /// /// It is intended to be portable at least between Unix-family platforms and /// Windows. -@since(version = 0.3.0-rc-2025-09-16) +@since(version = 0.3.0-rc-2026-01-06) interface insecure { /// Return `len` insecure pseudo-random bytes. /// @@ -13,13 +13,13 @@ interface insecure { /// There are no requirements on the values of the returned bytes, however /// implementations are encouraged to return evenly distributed values with /// a long period. - @since(version = 0.3.0-rc-2025-09-16) + @since(version = 0.3.0-rc-2026-01-06) get-insecure-random-bytes: func(len: u64) -> list; /// Return an insecure pseudo-random `u64` value. /// /// This function returns the same type of pseudo-random data as /// `get-insecure-random-bytes`, represented as a `u64`. - @since(version = 0.3.0-rc-2025-09-16) + @since(version = 0.3.0-rc-2026-01-06) get-insecure-random-u64: func() -> u64; } diff --git a/proposals/random/wit-0.3.0-draft/random.wit b/proposals/random/wit-0.3.0-draft/random.wit index fa1f111dc..848264401 100644 --- a/proposals/random/wit-0.3.0-draft/random.wit +++ b/proposals/random/wit-0.3.0-draft/random.wit @@ -1,9 +1,9 @@ -package wasi:random@0.3.0-rc-2025-09-16; +package wasi:random@0.3.0-rc-2026-01-06; /// WASI Random is a random data API. /// /// It is intended to be portable at least between Unix-family platforms and /// Windows. -@since(version = 0.3.0-rc-2025-09-16) +@since(version = 0.3.0-rc-2026-01-06) interface random { /// Return `len` cryptographically-secure random or pseudo-random bytes. /// @@ -17,13 +17,13 @@ interface random { /// This function must always return fresh data. Deterministic environments /// must omit this function, rather than implementing it with deterministic /// data. - @since(version = 0.3.0-rc-2025-09-16) + @since(version = 0.3.0-rc-2026-01-06) get-random-bytes: func(len: u64) -> list; /// Return a cryptographically-secure random or pseudo-random `u64` value. /// /// This function returns the same type of data as `get-random-bytes`, /// represented as a `u64`. - @since(version = 0.3.0-rc-2025-09-16) + @since(version = 0.3.0-rc-2026-01-06) get-random-u64: func() -> u64; } diff --git a/proposals/random/wit-0.3.0-draft/world.wit b/proposals/random/wit-0.3.0-draft/world.wit index 08c5ed88b..bb3aa4b77 100644 --- a/proposals/random/wit-0.3.0-draft/world.wit +++ b/proposals/random/wit-0.3.0-draft/world.wit @@ -1,13 +1,13 @@ -package wasi:random@0.3.0-rc-2025-09-16; +package wasi:random@0.3.0-rc-2026-01-06; -@since(version = 0.3.0-rc-2025-09-16) +@since(version = 0.3.0-rc-2026-01-06) world imports { - @since(version = 0.3.0-rc-2025-09-16) + @since(version = 0.3.0-rc-2026-01-06) import random; - @since(version = 0.3.0-rc-2025-09-16) + @since(version = 0.3.0-rc-2026-01-06) import insecure; - @since(version = 0.3.0-rc-2025-09-16) + @since(version = 0.3.0-rc-2026-01-06) import insecure-seed; } diff --git a/proposals/sockets/wit-0.3.0-draft/deps.lock b/proposals/sockets/wit-0.3.0-draft/deps.lock index 8484764f8..1ba6210d8 100644 --- a/proposals/sockets/wit-0.3.0-draft/deps.lock +++ b/proposals/sockets/wit-0.3.0-draft/deps.lock @@ -1,4 +1,4 @@ [clocks] path = "../../clocks/wit-0.3.0-draft" -sha256 = "6c0d121ab51a75ad7e348129631cd721885ad994f38317af887137fdf4b0ff6d" -sha512 = "dadf98b75fd14f67ad95dcb595eadcc21bf846ba9301b0bcec062e0a6fdad9bdacb0927927b319ef082f105433f6fa298c52687cb17e9fdb2bb21e05fb288fce" +sha256 = "92b3fbb2700613b35f3fa8f2cc9d9b9a93b9d81feebedd4d071ab9c28cdc66e8" +sha512 = "702dd507f4d26b7b2ddfcfe8186532683824a21af1c9eadbe47359690e83be66c047c54eb29e71efc20de27d9f4b643610e4102880a93b45fb76c3e808252877" diff --git a/proposals/sockets/wit-0.3.0-draft/ip-name-lookup.wit b/proposals/sockets/wit-0.3.0-draft/ip-name-lookup.wit index 6a652ff23..3e92c7a62 100644 --- a/proposals/sockets/wit-0.3.0-draft/ip-name-lookup.wit +++ b/proposals/sockets/wit-0.3.0-draft/ip-name-lookup.wit @@ -1,10 +1,10 @@ -@since(version = 0.3.0-rc-2025-09-16) +@since(version = 0.3.0-rc-2026-01-06) interface ip-name-lookup { - @since(version = 0.3.0-rc-2025-09-16) + @since(version = 0.3.0-rc-2026-01-06) use types.{ip-address}; /// Lookup error codes. - @since(version = 0.3.0-rc-2025-09-16) + @since(version = 0.3.0-rc-2026-01-06) enum error-code { /// Unknown error unknown, @@ -57,6 +57,6 @@ interface ip-name-lookup { /// - /// - /// - - @since(version = 0.3.0-rc-2025-09-16) + @since(version = 0.3.0-rc-2026-01-06) resolve-addresses: async func(name: string) -> result, error-code>; } diff --git a/proposals/sockets/wit-0.3.0-draft/types.wit b/proposals/sockets/wit-0.3.0-draft/types.wit index fdafa5777..02b1bb7ea 100644 --- a/proposals/sockets/wit-0.3.0-draft/types.wit +++ b/proposals/sockets/wit-0.3.0-draft/types.wit @@ -1,7 +1,7 @@ -@since(version = 0.3.0-rc-2025-09-16) +@since(version = 0.3.0-rc-2026-01-06) interface types { - @since(version = 0.3.0-rc-2025-09-16) - use wasi:clocks/types@0.3.0-rc-2025-09-16.{duration}; + @since(version = 0.3.0-rc-2026-01-06) + use wasi:clocks/types@0.3.0-rc-2026-01-06.{duration}; /// Error codes. /// @@ -14,7 +14,7 @@ interface types { /// - `out-of-memory` /// /// See each individual API for what the POSIX equivalents are. They sometimes differ per API. - @since(version = 0.3.0-rc-2025-09-16) + @since(version = 0.3.0-rc-2026-01-06) enum error-code { /// Unknown error unknown, @@ -70,7 +70,7 @@ interface types { datagram-too-large, } - @since(version = 0.3.0-rc-2025-09-16) + @since(version = 0.3.0-rc-2026-01-06) enum ip-address-family { /// Similar to `AF_INET` in POSIX. ipv4, @@ -79,18 +79,18 @@ interface types { ipv6, } - @since(version = 0.3.0-rc-2025-09-16) + @since(version = 0.3.0-rc-2026-01-06) type ipv4-address = tuple; - @since(version = 0.3.0-rc-2025-09-16) + @since(version = 0.3.0-rc-2026-01-06) type ipv6-address = tuple; - @since(version = 0.3.0-rc-2025-09-16) + @since(version = 0.3.0-rc-2026-01-06) variant ip-address { ipv4(ipv4-address), ipv6(ipv6-address), } - @since(version = 0.3.0-rc-2025-09-16) + @since(version = 0.3.0-rc-2026-01-06) record ipv4-socket-address { /// sin_port port: u16, @@ -98,7 +98,7 @@ interface types { address: ipv4-address, } - @since(version = 0.3.0-rc-2025-09-16) + @since(version = 0.3.0-rc-2026-01-06) record ipv6-socket-address { /// sin6_port port: u16, @@ -110,7 +110,7 @@ interface types { scope-id: u32, } - @since(version = 0.3.0-rc-2025-09-16) + @since(version = 0.3.0-rc-2026-01-06) variant ip-socket-address { ipv4(ipv4-socket-address), ipv6(ipv6-socket-address), @@ -135,7 +135,7 @@ interface types { /// In addition to the general error codes documented on the /// `types::error-code` type, TCP socket methods may always return /// `error(invalid-state)` when in the `closed` state. - @since(version = 0.3.0-rc-2025-09-16) + @since(version = 0.3.0-rc-2026-01-06) resource tcp-socket { /// Create a new TCP socket. @@ -152,7 +152,7 @@ interface types { /// - /// - /// - - @since(version = 0.3.0-rc-2025-09-16) + @since(version = 0.3.0-rc-2026-01-06) create: static func(address-family: ip-address-family) -> result; /// Bind the socket to the provided IP address and port. @@ -186,7 +186,7 @@ interface types { /// - /// - /// - - @since(version = 0.3.0-rc-2025-09-16) + @since(version = 0.3.0-rc-2026-01-06) bind: func(local-address: ip-socket-address) -> result<_, error-code>; /// Connect to a remote endpoint. @@ -218,7 +218,7 @@ interface types { /// - /// - /// - - @since(version = 0.3.0-rc-2025-09-16) + @since(version = 0.3.0-rc-2026-01-06) connect: async func(remote-address: ip-socket-address) -> result<_, error-code>; /// Start listening and return a stream of new inbound connections. @@ -285,7 +285,7 @@ interface types { /// - /// - /// - - @since(version = 0.3.0-rc-2025-09-16) + @since(version = 0.3.0-rc-2026-01-06) listen: func() -> result, error-code>; /// Transmit data to peer. @@ -308,7 +308,7 @@ interface types { /// - /// - /// - - @since(version = 0.3.0-rc-2025-09-16) + @since(version = 0.3.0-rc-2026-01-06) send: async func(data: stream) -> result<_, error-code>; /// Read data from peer. @@ -342,7 +342,7 @@ interface types { /// - /// - /// - - @since(version = 0.3.0-rc-2025-09-16) + @since(version = 0.3.0-rc-2026-01-06) receive: func() -> tuple, future>>; /// Get the bound local address. @@ -361,7 +361,7 @@ interface types { /// - /// - /// - - @since(version = 0.3.0-rc-2025-09-16) + @since(version = 0.3.0-rc-2026-01-06) get-local-address: func() -> result; /// Get the remote address. @@ -374,13 +374,13 @@ interface types { /// - /// - /// - - @since(version = 0.3.0-rc-2025-09-16) + @since(version = 0.3.0-rc-2026-01-06) get-remote-address: func() -> result; /// Whether the socket is in the `listening` state. /// /// Equivalent to the SO_ACCEPTCONN socket option. - @since(version = 0.3.0-rc-2025-09-16) + @since(version = 0.3.0-rc-2026-01-06) get-is-listening: func() -> bool; /// Whether this is a IPv4 or IPv6 socket. @@ -388,7 +388,7 @@ interface types { /// This is the value passed to the constructor. /// /// Equivalent to the SO_DOMAIN socket option. - @since(version = 0.3.0-rc-2025-09-16) + @since(version = 0.3.0-rc-2026-01-06) get-address-family: func() -> ip-address-family; /// Hints the desired listen queue size. Implementations are free to ignore this. @@ -400,7 +400,7 @@ interface types { /// - `not-supported`: (set) The platform does not support changing the backlog size after the initial listen. /// - `invalid-argument`: (set) The provided value was 0. /// - `invalid-state`: (set) The socket is in the `connecting` or `connected` state. - @since(version = 0.3.0-rc-2025-09-16) + @since(version = 0.3.0-rc-2026-01-06) set-listen-backlog-size: func(value: u64) -> result<_, error-code>; /// Enables or disables keepalive. @@ -412,9 +412,9 @@ interface types { /// These properties can be configured while `keep-alive-enabled` is false, but only come into effect when `keep-alive-enabled` is true. /// /// Equivalent to the SO_KEEPALIVE socket option. - @since(version = 0.3.0-rc-2025-09-16) + @since(version = 0.3.0-rc-2026-01-06) get-keep-alive-enabled: func() -> result; - @since(version = 0.3.0-rc-2025-09-16) + @since(version = 0.3.0-rc-2026-01-06) set-keep-alive-enabled: func(value: bool) -> result<_, error-code>; /// Amount of time the connection has to be idle before TCP starts sending keepalive packets. @@ -427,9 +427,9 @@ interface types { /// /// # Typical errors /// - `invalid-argument`: (set) The provided value was 0. - @since(version = 0.3.0-rc-2025-09-16) + @since(version = 0.3.0-rc-2026-01-06) get-keep-alive-idle-time: func() -> result; - @since(version = 0.3.0-rc-2025-09-16) + @since(version = 0.3.0-rc-2026-01-06) set-keep-alive-idle-time: func(value: duration) -> result<_, error-code>; /// The time between keepalive packets. @@ -442,9 +442,9 @@ interface types { /// /// # Typical errors /// - `invalid-argument`: (set) The provided value was 0. - @since(version = 0.3.0-rc-2025-09-16) + @since(version = 0.3.0-rc-2026-01-06) get-keep-alive-interval: func() -> result; - @since(version = 0.3.0-rc-2025-09-16) + @since(version = 0.3.0-rc-2026-01-06) set-keep-alive-interval: func(value: duration) -> result<_, error-code>; /// The maximum amount of keepalive packets TCP should send before aborting the connection. @@ -457,9 +457,9 @@ interface types { /// /// # Typical errors /// - `invalid-argument`: (set) The provided value was 0. - @since(version = 0.3.0-rc-2025-09-16) + @since(version = 0.3.0-rc-2026-01-06) get-keep-alive-count: func() -> result; - @since(version = 0.3.0-rc-2025-09-16) + @since(version = 0.3.0-rc-2026-01-06) set-keep-alive-count: func(value: u32) -> result<_, error-code>; /// Equivalent to the IP_TTL & IPV6_UNICAST_HOPS socket options. @@ -468,9 +468,9 @@ interface types { /// /// # Typical errors /// - `invalid-argument`: (set) The TTL value must be 1 or higher. - @since(version = 0.3.0-rc-2025-09-16) + @since(version = 0.3.0-rc-2026-01-06) get-hop-limit: func() -> result; - @since(version = 0.3.0-rc-2025-09-16) + @since(version = 0.3.0-rc-2026-01-06) set-hop-limit: func(value: u8) -> result<_, error-code>; /// The kernel buffer space reserved for sends/receives on this socket. @@ -483,18 +483,18 @@ interface types { /// /// # Typical errors /// - `invalid-argument`: (set) The provided value was 0. - @since(version = 0.3.0-rc-2025-09-16) + @since(version = 0.3.0-rc-2026-01-06) get-receive-buffer-size: func() -> result; - @since(version = 0.3.0-rc-2025-09-16) + @since(version = 0.3.0-rc-2026-01-06) set-receive-buffer-size: func(value: u64) -> result<_, error-code>; - @since(version = 0.3.0-rc-2025-09-16) + @since(version = 0.3.0-rc-2026-01-06) get-send-buffer-size: func() -> result; - @since(version = 0.3.0-rc-2025-09-16) + @since(version = 0.3.0-rc-2026-01-06) set-send-buffer-size: func(value: u64) -> result<_, error-code>; } /// A UDP socket handle. - @since(version = 0.3.0-rc-2025-09-16) + @since(version = 0.3.0-rc-2026-01-06) resource udp-socket { /// Create a new UDP socket. @@ -511,7 +511,7 @@ interface types { /// - /// - /// - - @since(version = 0.3.0-rc-2025-09-16) + @since(version = 0.3.0-rc-2026-01-06) create: static func(address-family: ip-address-family) -> result; /// Bind the socket to the provided IP address and port. @@ -532,7 +532,7 @@ interface types { /// - /// - /// - - @since(version = 0.3.0-rc-2025-09-16) + @since(version = 0.3.0-rc-2026-01-06) bind: func(local-address: ip-socket-address) -> result<_, error-code>; /// Associate this socket with a specific peer address. @@ -571,7 +571,7 @@ interface types { /// - /// - /// - - @since(version = 0.3.0-rc-2025-09-16) + @since(version = 0.3.0-rc-2026-01-06) connect: func(remote-address: ip-socket-address) -> result<_, error-code>; /// Dissociate this socket from its peer address. @@ -589,7 +589,7 @@ interface types { /// - /// - /// - - @since(version = 0.3.0-rc-2025-09-16) + @since(version = 0.3.0-rc-2026-01-06) disconnect: func() -> result<_, error-code>; /// Send a message on the socket to a particular peer. @@ -623,7 +623,7 @@ interface types { /// - /// - /// - - @since(version = 0.3.0-rc-2025-09-16) + @since(version = 0.3.0-rc-2026-01-06) send: async func(data: list, remote-address: option) -> result<_, error-code>; /// Receive a message on the socket. @@ -649,7 +649,7 @@ interface types { /// - /// - /// - - @since(version = 0.3.0-rc-2025-09-16) + @since(version = 0.3.0-rc-2026-01-06) receive: async func() -> result, ip-socket-address>, error-code>; /// Get the current bound address. @@ -668,7 +668,7 @@ interface types { /// - /// - /// - - @since(version = 0.3.0-rc-2025-09-16) + @since(version = 0.3.0-rc-2026-01-06) get-local-address: func() -> result; /// Get the address the socket is currently "connected" to. @@ -681,7 +681,7 @@ interface types { /// - /// - /// - - @since(version = 0.3.0-rc-2025-09-16) + @since(version = 0.3.0-rc-2026-01-06) get-remote-address: func() -> result; /// Whether this is a IPv4 or IPv6 socket. @@ -689,7 +689,7 @@ interface types { /// This is the value passed to the constructor. /// /// Equivalent to the SO_DOMAIN socket option. - @since(version = 0.3.0-rc-2025-09-16) + @since(version = 0.3.0-rc-2026-01-06) get-address-family: func() -> ip-address-family; /// Equivalent to the IP_TTL & IPV6_UNICAST_HOPS socket options. @@ -698,9 +698,9 @@ interface types { /// /// # Typical errors /// - `invalid-argument`: (set) The TTL value must be 1 or higher. - @since(version = 0.3.0-rc-2025-09-16) + @since(version = 0.3.0-rc-2026-01-06) get-unicast-hop-limit: func() -> result; - @since(version = 0.3.0-rc-2025-09-16) + @since(version = 0.3.0-rc-2026-01-06) set-unicast-hop-limit: func(value: u8) -> result<_, error-code>; /// The kernel buffer space reserved for sends/receives on this socket. @@ -713,13 +713,13 @@ interface types { /// /// # Typical errors /// - `invalid-argument`: (set) The provided value was 0. - @since(version = 0.3.0-rc-2025-09-16) + @since(version = 0.3.0-rc-2026-01-06) get-receive-buffer-size: func() -> result; - @since(version = 0.3.0-rc-2025-09-16) + @since(version = 0.3.0-rc-2026-01-06) set-receive-buffer-size: func(value: u64) -> result<_, error-code>; - @since(version = 0.3.0-rc-2025-09-16) + @since(version = 0.3.0-rc-2026-01-06) get-send-buffer-size: func() -> result; - @since(version = 0.3.0-rc-2025-09-16) + @since(version = 0.3.0-rc-2026-01-06) set-send-buffer-size: func(value: u64) -> result<_, error-code>; } } diff --git a/proposals/sockets/wit-0.3.0-draft/world.wit b/proposals/sockets/wit-0.3.0-draft/world.wit index 44cc427ed..83cc9c98d 100644 --- a/proposals/sockets/wit-0.3.0-draft/world.wit +++ b/proposals/sockets/wit-0.3.0-draft/world.wit @@ -1,9 +1,9 @@ -package wasi:sockets@0.3.0-rc-2025-09-16; +package wasi:sockets@0.3.0-rc-2026-01-06; -@since(version = 0.3.0-rc-2025-09-16) +@since(version = 0.3.0-rc-2026-01-06) world imports { - @since(version = 0.3.0-rc-2025-09-16) + @since(version = 0.3.0-rc-2026-01-06) import types; - @since(version = 0.3.0-rc-2025-09-16) + @since(version = 0.3.0-rc-2026-01-06) import ip-name-lookup; }