diff --git a/proposals/cli/wit-0.3.0-draft/command.wit b/proposals/cli/wit-0.3.0-draft/command.wit index abe5449a..12cdb104 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-2026-02-09; +package wasi:cli@0.3.0-rc-2026-03-15; -@since(version = 0.3.0-rc-2026-02-09) +@since(version = 0.3.0-rc-2026-03-15) world command { - @since(version = 0.3.0-rc-2026-02-09) + @since(version = 0.3.0-rc-2026-03-15) include imports; - @since(version = 0.3.0-rc-2026-02-09) + @since(version = 0.3.0-rc-2026-03-15) 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 671e341f..c3eb59cc 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 = "888647625fec3eaaf276cb884e426bc32bfa79ced22955f10eb239df74c8550c" -sha512 = "f08a2828b88fc6ddea935af584531c484ad4a7a5f30340265e11e91b2bfe0f81e74a660a512f72e5197d60278feccc00534833ebd73868e801859dd31a61bdbb" +sha256 = "a8702c42e23c22a458207d0efa38cc1b64c8c6299b0e3152aa84327a7c1c952b" +sha512 = "da69a5d498b6afe0facf77ec3d21f6e8a2a4d4661ebfec310a2ce6f943cb01f92131a746765648febf96563ddac788e9f218941d3db2b905f3746dc8e05cf54d" [filesystem] path = "../../filesystem/wit-0.3.0-draft" -sha256 = "39549a7fe0950d26d292eabc9aad193416394214f8cddb1bf786eda0ad9b764e" -sha512 = "fe44c8f5c80ace68f455746df28e2f67e0ba12fae2777a3ec5514de2b924450b903f4676aafb891672d1f7c99653dbac3a601c3e00b623dc592deea509392077" +sha256 = "d9db43c43b4e09899a9e54c76544eef17439fb42e2f730ed96d40eac994b0dfd" +sha512 = "3b7a1bef322ba36b1e9df768d740e4238f58d3c15d3e4c51fe899b93cf1e6641a79b5a8665ae71d38a80e1e0f852b30b023ecf318f4cbeacb36dd1ae0ac7e37b" [random] path = "../../random/wit-0.3.0-draft" -sha256 = "2d54fe2815781a7462f3540b0959842b7e15d9fe8530c2b961b35451b6922670" -sha512 = "ac1a04d180f8aa11ac82529a0de7ff01c8d51d10424806aefe1c1d52ea9ade9911eaee2b3f7d9c23f4b3bfdff469af6482f4a9e5b800c465b9fb7b73ccc635c7" +sha256 = "d44de4e427505fdfd584a23479dba5899ad80aa8e174dc0528df840db8ae9a43" +sha512 = "6b08b32a197aee74076d0cdca6a09f78da9040eedd9ab3f64e5f14901ad5a0c5bbc592ad46a0d575dc6705249b3e10a413e09835616f753788aa598af605c776" [sockets] path = "../../sockets/wit-0.3.0-draft" -sha256 = "5bc5dd55a678bee6d8de9043a1c9def9b1aee884d00349f89456f2e2a4622c9a" -sha512 = "d3d6af8d3a6c6105ce166e551032af10a71c2f1d9119ef189bab1617c4951d64f9e783ab3dc59956bbd5eb1b8a79cf3303a4cbfd4a27e1be04f22ec8abff9a57" +sha256 = "ee64b45d3826b6ff2cd27f6ac24fe23c41e65ba4d155294671dc7d0a0b47ddfe" +sha512 = "dd797ab47b899aee52799f797497fa286f5e217307e8a451a7ba89bd05b7b9bfe2a6e0cf39c0e609ed4c76ed102487adff6e73156340f14baf70a9cc9e48ecbc" diff --git a/proposals/cli/wit-0.3.0-draft/environment.wit b/proposals/cli/wit-0.3.0-draft/environment.wit index f806a5f7..7abda6b6 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-2026-02-09) +@since(version = 0.3.0-rc-2026-03-15) 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-2026-02-09) + @since(version = 0.3.0-rc-2026-03-15) get-environment: func() -> list>; /// Get the POSIX-style arguments to the program. - @since(version = 0.3.0-rc-2026-02-09) + @since(version = 0.3.0-rc-2026-03-15) 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-2026-02-09) + @since(version = 0.3.0-rc-2026-03-15) 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 a436d4dc..81147616 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-2026-02-09) +@since(version = 0.3.0-rc-2026-03-15) interface exit { /// Exit the current instance and any linked instances. - @since(version = 0.3.0-rc-2026-02-09) + @since(version = 0.3.0-rc-2026-03-15) 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 e4b89b8d..398b632d 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-2026-02-09; +package wasi:cli@0.3.0-rc-2026-03-15; -@since(version = 0.3.0-rc-2026-02-09) +@since(version = 0.3.0-rc-2026-03-15) world imports { - @since(version = 0.3.0-rc-2026-02-09) - include wasi:clocks/imports@0.3.0-rc-2026-02-09; - @since(version = 0.3.0-rc-2026-02-09) - include wasi:filesystem/imports@0.3.0-rc-2026-02-09; - @since(version = 0.3.0-rc-2026-02-09) - include wasi:sockets/imports@0.3.0-rc-2026-02-09; - @since(version = 0.3.0-rc-2026-02-09) - include wasi:random/imports@0.3.0-rc-2026-02-09; + @since(version = 0.3.0-rc-2026-03-15) + include wasi:clocks/imports@0.3.0-rc-2026-03-15; + @since(version = 0.3.0-rc-2026-03-15) + include wasi:filesystem/imports@0.3.0-rc-2026-03-15; + @since(version = 0.3.0-rc-2026-03-15) + include wasi:sockets/imports@0.3.0-rc-2026-03-15; + @since(version = 0.3.0-rc-2026-03-15) + include wasi:random/imports@0.3.0-rc-2026-03-15; - @since(version = 0.3.0-rc-2026-02-09) + @since(version = 0.3.0-rc-2026-03-15) import environment; - @since(version = 0.3.0-rc-2026-02-09) + @since(version = 0.3.0-rc-2026-03-15) import exit; - @since(version = 0.3.0-rc-2026-02-09) + @since(version = 0.3.0-rc-2026-03-15) import stdin; - @since(version = 0.3.0-rc-2026-02-09) + @since(version = 0.3.0-rc-2026-03-15) import stdout; - @since(version = 0.3.0-rc-2026-02-09) + @since(version = 0.3.0-rc-2026-03-15) import stderr; - @since(version = 0.3.0-rc-2026-02-09) + @since(version = 0.3.0-rc-2026-03-15) import terminal-input; - @since(version = 0.3.0-rc-2026-02-09) + @since(version = 0.3.0-rc-2026-03-15) import terminal-output; - @since(version = 0.3.0-rc-2026-02-09) + @since(version = 0.3.0-rc-2026-03-15) import terminal-stdin; - @since(version = 0.3.0-rc-2026-02-09) + @since(version = 0.3.0-rc-2026-03-15) import terminal-stdout; - @since(version = 0.3.0-rc-2026-02-09) + @since(version = 0.3.0-rc-2026-03-15) 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 d3ea1585..d6583109 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-2026-02-09) +@since(version = 0.3.0-rc-2026-03-15) interface run { /// Run the program. - @since(version = 0.3.0-rc-2026-02-09) + @since(version = 0.3.0-rc-2026-03-15) 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 37fa14d1..a46ee6da 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-2026-02-09) +@since(version = 0.3.0-rc-2026-03-15) interface types { - @since(version = 0.3.0-rc-2026-02-09) + @since(version = 0.3.0-rc-2026-03-15) enum error-code { /// Input/output error io, @@ -11,7 +11,7 @@ interface types { } } -@since(version = 0.3.0-rc-2026-02-09) +@since(version = 0.3.0-rc-2026-03-15) 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-2026-02-09) + @since(version = 0.3.0-rc-2026-03-15) read-via-stream: func() -> tuple, future>>; } -@since(version = 0.3.0-rc-2026-02-09) +@since(version = 0.3.0-rc-2026-03-15) 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-2026-02-09) + @since(version = 0.3.0-rc-2026-03-15) write-via-stream: func(data: stream) -> future>; } -@since(version = 0.3.0-rc-2026-02-09) +@since(version = 0.3.0-rc-2026-03-15) 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-2026-02-09) + @since(version = 0.3.0-rc-2026-03-15) write-via-stream: func(data: stream) -> future>; } diff --git a/proposals/cli/wit-0.3.0-draft/terminal.wit b/proposals/cli/wit-0.3.0-draft/terminal.wit index e9f1ac23..3ae61915 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-2026-02-09) +@since(version = 0.3.0-rc-2026-03-15) interface terminal-input { /// The input side of a terminal. - @since(version = 0.3.0-rc-2026-02-09) + @since(version = 0.3.0-rc-2026-03-15) 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-2026-02-09) +@since(version = 0.3.0-rc-2026-03-15) interface terminal-output { /// The output side of a terminal. - @since(version = 0.3.0-rc-2026-02-09) + @since(version = 0.3.0-rc-2026-03-15) resource terminal-output; } /// An interface providing an optional `terminal-input` for stdin as a /// link-time authority. -@since(version = 0.3.0-rc-2026-02-09) +@since(version = 0.3.0-rc-2026-03-15) interface terminal-stdin { - @since(version = 0.3.0-rc-2026-02-09) + @since(version = 0.3.0-rc-2026-03-15) 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-2026-02-09) + @since(version = 0.3.0-rc-2026-03-15) 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-2026-02-09) +@since(version = 0.3.0-rc-2026-03-15) interface terminal-stdout { - @since(version = 0.3.0-rc-2026-02-09) + @since(version = 0.3.0-rc-2026-03-15) 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-2026-02-09) + @since(version = 0.3.0-rc-2026-03-15) 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-2026-02-09) +@since(version = 0.3.0-rc-2026-03-15) interface terminal-stderr { - @since(version = 0.3.0-rc-2026-02-09) + @since(version = 0.3.0-rc-2026-03-15) 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-2026-02-09) + @since(version = 0.3.0-rc-2026-03-15) 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 4576179a..786ae103 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-2026-02-09; +package wasi:clocks@0.3.0-rc-2026-03-15; /// 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-2026-02-09; /// /// 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-2026-02-09) +@since(version = 0.3.0-rc-2026-03-15) 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-2026-02-09) + @since(version = 0.3.0-rc-2026-03-15) 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-2026-02-09) + @since(version = 0.3.0-rc-2026-03-15) 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-2026-02-09) + @since(version = 0.3.0-rc-2026-03-15) get-resolution: func() -> duration; /// Wait until the specified mark has occurred. - @since(version = 0.3.0-rc-2026-02-09) + @since(version = 0.3.0-rc-2026-03-15) wait-until: async func( when: mark, ); /// Wait for the specified duration to elapse. - @since(version = 0.3.0-rc-2026-02-09) + @since(version = 0.3.0-rc-2026-03-15) 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 7a332a60..f8c16611 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-2026-02-09; +package wasi:clocks@0.3.0-rc-2026-03-15; /// 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-2026-02-09; /// 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-2026-02-09) +@since(version = 0.3.0-rc-2026-03-15) 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-2026-02-09) + @since(version = 0.3.0-rc-2026-03-15) 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-2026-02-09) + @since(version = 0.3.0-rc-2026-03-15) 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-2026-02-09) + @since(version = 0.3.0-rc-2026-03-15) 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 05d5af08..8b2e3e83 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-2026-02-09; +package wasi:clocks@0.3.0-rc-2026-03-15; @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 d598b8f2..0da1a6cb 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-2026-02-09; +package wasi:clocks@0.3.0-rc-2026-03-15; /// This interface common types used throughout wasi:clocks. -@since(version = 0.3.0-rc-2026-02-09) +@since(version = 0.3.0-rc-2026-03-15) interface types { /// A duration of time, in nanoseconds. - @since(version = 0.3.0-rc-2026-02-09) + @since(version = 0.3.0-rc-2026-03-15) 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 892d606c..ac51f7fc 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-2026-02-09; +package wasi:clocks@0.3.0-rc-2026-03-15; -@since(version = 0.3.0-rc-2026-02-09) +@since(version = 0.3.0-rc-2026-03-15) world imports { - @since(version = 0.3.0-rc-2026-02-09) + @since(version = 0.3.0-rc-2026-03-15) import monotonic-clock; - @since(version = 0.3.0-rc-2026-02-09) + @since(version = 0.3.0-rc-2026-03-15) 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 ea5bee3f..a780d3df 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 = "888647625fec3eaaf276cb884e426bc32bfa79ced22955f10eb239df74c8550c" -sha512 = "f08a2828b88fc6ddea935af584531c484ad4a7a5f30340265e11e91b2bfe0f81e74a660a512f72e5197d60278feccc00534833ebd73868e801859dd31a61bdbb" +sha256 = "a8702c42e23c22a458207d0efa38cc1b64c8c6299b0e3152aa84327a7c1c952b" +sha512 = "da69a5d498b6afe0facf77ec3d21f6e8a2a4d4661ebfec310a2ce6f943cb01f92131a746765648febf96563ddac788e9f218941d3db2b905f3746dc8e05cf54d" diff --git a/proposals/filesystem/wit-0.3.0-draft/preopens.wit b/proposals/filesystem/wit-0.3.0-draft/preopens.wit index 90fa3d0c..2c4560af 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-2026-02-09; +package wasi:filesystem@0.3.0-rc-2026-03-15; -@since(version = 0.3.0-rc-2026-02-09) +@since(version = 0.3.0-rc-2026-03-15) interface preopens { - @since(version = 0.3.0-rc-2026-02-09) + @since(version = 0.3.0-rc-2026-03-15) use types.{descriptor}; /// Return the set of preopened directories, and their paths. - @since(version = 0.3.0-rc-2026-02-09) + @since(version = 0.3.0-rc-2026-03-15) 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 cca48606..d02ce735 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-2026-02-09; +package wasi:filesystem@0.3.0-rc-2026-03-15; /// 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. @@ -34,19 +34,19 @@ package wasi:filesystem@0.3.0-rc-2026-02-09; /// store or a database instead. /// /// [WASI filesystem path resolution]: https://github.com/WebAssembly/wasi-filesystem/blob/main/path-resolution.md -@since(version = 0.3.0-rc-2026-02-09) +@since(version = 0.3.0-rc-2026-03-15) interface types { - @since(version = 0.3.0-rc-2026-02-09) - use wasi:clocks/system-clock@0.3.0-rc-2026-02-09.{instant}; + @since(version = 0.3.0-rc-2026-03-15) + use wasi:clocks/system-clock@0.3.0-rc-2026-03-15.{instant}; /// File size or length of a region within a file. - @since(version = 0.3.0-rc-2026-02-09) + @since(version = 0.3.0-rc-2026-03-15) 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-2026-02-09) + @since(version = 0.3.0-rc-2026-03-15) variant descriptor-type { /// The descriptor refers to a block device inode. block-device, @@ -70,7 +70,7 @@ interface types { /// Descriptor flags. /// /// Note: This was called `fdflags` in earlier versions of WASI. - @since(version = 0.3.0-rc-2026-02-09) + @since(version = 0.3.0-rc-2026-03-15) flags descriptor-flags { /// Read mode: Data can be read. read, @@ -114,7 +114,7 @@ interface types { /// File attributes. /// /// Note: This was called `filestat` in earlier versions of WASI. - @since(version = 0.3.0-rc-2026-02-09) + @since(version = 0.3.0-rc-2026-03-15) record descriptor-stat { /// File type. %type: descriptor-type, @@ -141,7 +141,7 @@ interface types { } /// Flags determining the method of how paths are resolved. - @since(version = 0.3.0-rc-2026-02-09) + @since(version = 0.3.0-rc-2026-03-15) flags path-flags { /// As long as the resolved path corresponds to a symbolic link, it is /// expanded. @@ -149,7 +149,7 @@ interface types { } /// Open flags used by `open-at`. - @since(version = 0.3.0-rc-2026-02-09) + @since(version = 0.3.0-rc-2026-03-15) flags open-flags { /// Create file if it does not exist, similar to `O_CREAT` in POSIX. create, @@ -162,11 +162,11 @@ interface types { } /// Number of hard links to an inode. - @since(version = 0.3.0-rc-2026-02-09) + @since(version = 0.3.0-rc-2026-03-15) type link-count = u64; /// When setting a timestamp, this gives the value to set it to. - @since(version = 0.3.0-rc-2026-02-09) + @since(version = 0.3.0-rc-2026-03-15) variant new-timestamp { /// Leave the timestamp set to its previous value. no-change, @@ -178,7 +178,7 @@ interface types { } /// A directory entry. - @since(version = 0.3.0-rc-2026-02-09) + @since(version = 0.3.0-rc-2026-03-15) record directory-entry { /// The type of the file referred to by this directory entry. %type: descriptor-type, @@ -191,7 +191,7 @@ interface types { /// Not all of these error codes are returned by the functions provided by this /// API; some are used in higher-level library layers, and others are provided /// merely for alignment with POSIX. - @since(version = 0.3.0-rc-2026-02-09) + @since(version = 0.3.0-rc-2026-03-15) variant error-code { /// Permission denied, similar to `EACCES` in POSIX. access, @@ -272,7 +272,7 @@ interface types { } /// File or memory access pattern advisory information. - @since(version = 0.3.0-rc-2026-02-09) + @since(version = 0.3.0-rc-2026-03-15) enum advice { /// The application has no advice to give on its behavior with respect /// to the specified data. @@ -296,7 +296,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-2026-02-09) + @since(version = 0.3.0-rc-2026-03-15) record metadata-hash-value { /// 64 bits of a 128-bit hash value. lower: u64, @@ -307,7 +307,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-2026-02-09) + @since(version = 0.3.0-rc-2026-03-15) resource descriptor { /// Return a stream for reading from a file. /// @@ -325,7 +325,7 @@ interface types { /// resolves to `err` with an `error-code`. /// /// Note: This is similar to `pread` in POSIX. - @since(version = 0.3.0-rc-2026-02-09) + @since(version = 0.3.0-rc-2026-03-15) read-via-stream: func( /// The offset within the file at which to start reading. offset: filesize, @@ -343,7 +343,7 @@ interface types { /// written or an error is encountered. /// /// Note: This is similar to `pwrite` in POSIX. - @since(version = 0.3.0-rc-2026-02-09) + @since(version = 0.3.0-rc-2026-03-15) write-via-stream: func( /// Data to write data: stream, @@ -359,13 +359,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-2026-02-09) + @since(version = 0.3.0-rc-2026-03-15) append-via-stream: func(data: stream) -> future>; /// Provide file advisory information on a descriptor. /// /// This is similar to `posix_fadvise` in POSIX. - @since(version = 0.3.0-rc-2026-02-09) + @since(version = 0.3.0-rc-2026-03-15) advise: async func( /// The offset within the file to which the advisory applies. offset: filesize, @@ -381,7 +381,7 @@ interface types { /// opened for writing. /// /// Note: This is similar to `fdatasync` in POSIX. - @since(version = 0.3.0-rc-2026-02-09) + @since(version = 0.3.0-rc-2026-03-15) sync-data: async func() -> result<_, error-code>; /// Get flags associated with a descriptor. @@ -390,7 +390,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-2026-02-09) + @since(version = 0.3.0-rc-2026-03-15) get-flags: async func() -> result; /// Get the dynamic type of a descriptor. @@ -403,14 +403,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-2026-02-09) + @since(version = 0.3.0-rc-2026-03-15) 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-2026-02-09) + @since(version = 0.3.0-rc-2026-03-15) set-size: async func(size: filesize) -> result<_, error-code>; /// Adjust the timestamps of an open file or directory. @@ -418,7 +418,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-2026-02-09) + @since(version = 0.3.0-rc-2026-03-15) set-times: async func( /// The desired values of the data access timestamp. data-access-timestamp: new-timestamp, @@ -438,7 +438,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-2026-02-09) + @since(version = 0.3.0-rc-2026-03-15) read-directory: func() -> tuple, future>>; /// Synchronize the data and metadata of a file to disk. @@ -447,13 +447,13 @@ interface types { /// opened for writing. /// /// Note: This is similar to `fsync` in POSIX. - @since(version = 0.3.0-rc-2026-02-09) + @since(version = 0.3.0-rc-2026-03-15) sync: async func() -> result<_, error-code>; /// Create a directory. /// /// Note: This is similar to `mkdirat` in POSIX. - @since(version = 0.3.0-rc-2026-02-09) + @since(version = 0.3.0-rc-2026-03-15) create-directory-at: async func( /// The relative path at which to create the directory. path: string, @@ -468,7 +468,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-2026-02-09) + @since(version = 0.3.0-rc-2026-03-15) stat: async func() -> result; /// Return the attributes of a file or directory. @@ -478,7 +478,7 @@ interface types { /// discussion of alternatives. /// /// Note: This was called `path_filestat_get` in earlier versions of WASI. - @since(version = 0.3.0-rc-2026-02-09) + @since(version = 0.3.0-rc-2026-03-15) stat-at: async func( /// Flags determining the method of how the path is resolved. path-flags: path-flags, @@ -492,7 +492,7 @@ interface types { /// /// Note: This was called `path_filestat_set_times` in earlier versions of /// WASI. - @since(version = 0.3.0-rc-2026-02-09) + @since(version = 0.3.0-rc-2026-03-15) set-times-at: async func( /// Flags determining the method of how the path is resolved. path-flags: path-flags, @@ -511,7 +511,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-2026-02-09) + @since(version = 0.3.0-rc-2026-03-15) link-at: async func( /// Flags determining the method of how the path is resolved. old-path-flags: path-flags, @@ -535,7 +535,7 @@ interface types { /// `error-code::read-only`. /// /// Note: This is similar to `openat` in POSIX. - @since(version = 0.3.0-rc-2026-02-09) + @since(version = 0.3.0-rc-2026-03-15) open-at: async func( /// Flags determining the method of how the path is resolved. path-flags: path-flags, @@ -553,7 +553,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-2026-02-09) + @since(version = 0.3.0-rc-2026-03-15) readlink-at: async func( /// The relative path of the symbolic link from which to read. path: string, @@ -564,7 +564,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-2026-02-09) + @since(version = 0.3.0-rc-2026-03-15) remove-directory-at: async func( /// The relative path to a directory to remove. path: string, @@ -573,7 +573,7 @@ interface types { /// Rename a filesystem object. /// /// Note: This is similar to `renameat` in POSIX. - @since(version = 0.3.0-rc-2026-02-09) + @since(version = 0.3.0-rc-2026-03-15) rename-at: async func( /// The relative source path of the file or directory to rename. old-path: string, @@ -589,7 +589,7 @@ interface types { /// `error-code::not-permitted`. /// /// Note: This is similar to `symlinkat` in POSIX. - @since(version = 0.3.0-rc-2026-02-09) + @since(version = 0.3.0-rc-2026-03-15) symlink-at: async func( /// The contents of the symbolic link. old-path: string, @@ -606,7 +606,7 @@ interface types { /// If the filesystem object is a directory, `error-code::access` or /// `error-code::is-directory` may be returned instead of the /// POSIX-specified `error-code::not-permitted`. - @since(version = 0.3.0-rc-2025-02-09) + @since(version = 0.3.0-rc-2026-03-15) unlink-file-at: async func( /// The relative path to a file to unlink. path: string, @@ -618,7 +618,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-2026-02-09) + @since(version = 0.3.0-rc-2026-03-15) is-same-object: async func(other: borrow) -> bool; /// Return a hash of the metadata associated with a filesystem object referred @@ -640,14 +640,14 @@ interface types { /// computed hash. /// /// However, none of these is required. - @since(version = 0.3.0-rc-2026-02-09) + @since(version = 0.3.0-rc-2026-03-15) 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-2026-02-09) + @since(version = 0.3.0-rc-2026-03-15) 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 ed3da5db..b4fef32c 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-2026-02-09; +package wasi:filesystem@0.3.0-rc-2026-03-15; -@since(version = 0.3.0-rc-2026-02-09) +@since(version = 0.3.0-rc-2026-03-15) world imports { - @since(version = 0.3.0-rc-2026-02-09) + @since(version = 0.3.0-rc-2026-03-15) import types; - @since(version = 0.3.0-rc-2026-02-09) + @since(version = 0.3.0-rc-2026-03-15) 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 1e0dd622..6c3947e6 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 = "70e772c3bae2d07588573a916e6092b57bd2543c9765e9cbfa8af338acd6f687" -sha512 = "8a5106530665422441388bab1690d197270baafbff2486f737b401e95d557e9f0b1431be1af563c4d170078b030e69efc833d105f893f01ec71e9d966ef31c2f" +sha256 = "5be8d35b6397517777497279f1978c71aea0d91c7d63d4f4e0b54d0c1d33efd3" +sha512 = "faf89924d5d5210d3b4df52d634deb8507c44c632bc0fd1a6fa4351a15ac36e92a039daf945c59c862ea002a748ac213b27c51affa68a90dbe529551f3d63a9b" deps = ["filesystem", "random", "sockets"] [clocks] path = "../../clocks/wit-0.3.0-draft" -sha256 = "888647625fec3eaaf276cb884e426bc32bfa79ced22955f10eb239df74c8550c" -sha512 = "f08a2828b88fc6ddea935af584531c484ad4a7a5f30340265e11e91b2bfe0f81e74a660a512f72e5197d60278feccc00534833ebd73868e801859dd31a61bdbb" +sha256 = "a8702c42e23c22a458207d0efa38cc1b64c8c6299b0e3152aa84327a7c1c952b" +sha512 = "da69a5d498b6afe0facf77ec3d21f6e8a2a4d4661ebfec310a2ce6f943cb01f92131a746765648febf96563ddac788e9f218941d3db2b905f3746dc8e05cf54d" [filesystem] -sha256 = "39549a7fe0950d26d292eabc9aad193416394214f8cddb1bf786eda0ad9b764e" -sha512 = "fe44c8f5c80ace68f455746df28e2f67e0ba12fae2777a3ec5514de2b924450b903f4676aafb891672d1f7c99653dbac3a601c3e00b623dc592deea509392077" +sha256 = "d9db43c43b4e09899a9e54c76544eef17439fb42e2f730ed96d40eac994b0dfd" +sha512 = "3b7a1bef322ba36b1e9df768d740e4238f58d3c15d3e4c51fe899b93cf1e6641a79b5a8665ae71d38a80e1e0f852b30b023ecf318f4cbeacb36dd1ae0ac7e37b" [random] -sha256 = "2d54fe2815781a7462f3540b0959842b7e15d9fe8530c2b961b35451b6922670" -sha512 = "ac1a04d180f8aa11ac82529a0de7ff01c8d51d10424806aefe1c1d52ea9ade9911eaee2b3f7d9c23f4b3bfdff469af6482f4a9e5b800c465b9fb7b73ccc635c7" +sha256 = "d44de4e427505fdfd584a23479dba5899ad80aa8e174dc0528df840db8ae9a43" +sha512 = "6b08b32a197aee74076d0cdca6a09f78da9040eedd9ab3f64e5f14901ad5a0c5bbc592ad46a0d575dc6705249b3e10a413e09835616f753788aa598af605c776" [sockets] -sha256 = "5bc5dd55a678bee6d8de9043a1c9def9b1aee884d00349f89456f2e2a4622c9a" -sha512 = "d3d6af8d3a6c6105ce166e551032af10a71c2f1d9119ef189bab1617c4951d64f9e783ab3dc59956bbd5eb1b8a79cf3303a4cbfd4a27e1be04f22ec8abff9a57" +sha256 = "ee64b45d3826b6ff2cd27f6ac24fe23c41e65ba4d155294671dc7d0a0b47ddfe" +sha512 = "dd797ab47b899aee52799f797497fa286f5e217307e8a451a7ba89bd05b7b9bfe2a6e0cf39c0e609ed4c76ed102487adff6e73156340f14baf70a9cc9e48ecbc" diff --git a/proposals/http/wit-0.3.0-draft/types.wit b/proposals/http/wit-0.3.0-draft/types.wit index 0d208fce..f6d9dd99 100644 --- a/proposals/http/wit-0.3.0-draft/types.wit +++ b/proposals/http/wit-0.3.0-draft/types.wit @@ -1,13 +1,13 @@ -package wasi:http@0.3.0-rc-2026-02-09; +package wasi:http@0.3.0-rc-2026-03-15; /// This interface defines all of the types and methods for implementing HTTP /// Requests and Responses, as well as their headers, trailers, and bodies. -@since(version = 0.3.0-rc-2026-02-09) +@since(version = 0.3.0-rc-2026-03-15) interface types { - use wasi:clocks/types@0.3.0-rc-2026-02-09.{duration}; + use wasi:clocks/types@0.3.0-rc-2026-03-15.{duration}; /// This type corresponds to HTTP standard Methods. - @since(version = 0.3.0-rc-2026-02-09) + @since(version = 0.3.0-rc-2026-03-15) variant method { get, head, @@ -22,7 +22,7 @@ interface types { } /// This type corresponds to HTTP standard Related Schemes. - @since(version = 0.3.0-rc-2026-02-09) + @since(version = 0.3.0-rc-2026-03-15) variant scheme { HTTP, HTTPS, @@ -31,7 +31,7 @@ interface types { /// These cases are inspired by the IANA HTTP Proxy Error Types: /// - @since(version = 0.3.0-rc-2026-02-09) + @since(version = 0.3.0-rc-2026-03-15) variant error-code { DNS-timeout, DNS-error(DNS-error-payload), @@ -80,21 +80,21 @@ interface types { } /// Defines the case payload type for `DNS-error` above: - @since(version = 0.3.0-rc-2026-02-09) + @since(version = 0.3.0-rc-2026-03-15) record DNS-error-payload { rcode: option, info-code: option } /// Defines the case payload type for `TLS-alert-received` above: - @since(version = 0.3.0-rc-2026-02-09) + @since(version = 0.3.0-rc-2026-03-15) record TLS-alert-received-payload { alert-id: option, alert-message: option } /// Defines the case payload type for `HTTP-response-{header,trailer}-size` above: - @since(version = 0.3.0-rc-2026-02-09) + @since(version = 0.3.0-rc-2026-03-15) record field-size-payload { field-name: option, field-size: option @@ -102,7 +102,7 @@ interface types { /// This type enumerates the different kinds of errors that may occur when /// setting or appending to a `fields` resource. - @since(version = 0.3.0-rc-2026-02-09) + @since(version = 0.3.0-rc-2026-03-15) variant header-error { /// This error indicates that a `field-name` or `field-value` was /// syntactically invalid when used with an operation that sets headers in a @@ -134,7 +134,7 @@ interface types { /// This type enumerates the different kinds of errors that may occur when /// setting fields of a `request-options` resource. - @since(version = 0.3.0-rc-2026-02-09) + @since(version = 0.3.0-rc-2026-03-15) variant request-options-error { /// Indicates the specified field is not supported by this implementation. not-supported, @@ -156,13 +156,13 @@ interface types { /// /// Field names should always be treated as case insensitive by the `fields` /// resource for the purposes of equality checking. - @since(version = 0.3.0-rc-2026-02-09) + @since(version = 0.3.0-rc-2026-03-15) type field-name = string; /// Field values should always be ASCII strings. However, in /// reality, HTTP implementations often have to interpret malformed values, /// so they are provided as a list of bytes. - @since(version = 0.3.0-rc-2026-02-09) + @since(version = 0.3.0-rc-2026-03-15) type field-value = list; /// This following block defines the `fields` resource which corresponds to @@ -184,7 +184,7 @@ interface types { /// Implementations may impose limits on individual field values and on total /// aggregate field section size. Operations that would exceed these limits /// fail with `header-error.size-exceeded` - @since(version = 0.3.0-rc-2026-02-09) + @since(version = 0.3.0-rc-2026-03-15) resource fields { /// Construct an empty HTTP Fields. @@ -272,15 +272,15 @@ interface types { } /// Headers is an alias for Fields. - @since(version = 0.3.0-rc-2026-02-09) + @since(version = 0.3.0-rc-2026-03-15) type headers = fields; /// Trailers is an alias for Fields. - @since(version = 0.3.0-rc-2026-02-09) + @since(version = 0.3.0-rc-2026-03-15) type trailers = fields; /// Represents an HTTP Request. - @since(version = 0.3.0-rc-2026-02-09) + @since(version = 0.3.0-rc-2026-03-15) resource request { /// Construct a new `request` with a default `method` of `GET`, and @@ -380,7 +380,7 @@ interface types { /// /// These timeouts are separate from any the user may use to bound an /// asynchronous call. - @since(version = 0.3.0-rc-2026-02-09) + @since(version = 0.3.0-rc-2026-03-15) resource request-options { /// Construct a default `request-options` value. constructor(); @@ -416,11 +416,11 @@ interface types { } /// This type corresponds to the HTTP standard Status Code. - @since(version = 0.3.0-rc-2026-02-09) + @since(version = 0.3.0-rc-2026-03-15) type status-code = u16; /// Represents an HTTP Response. - @since(version = 0.3.0-rc-2026-02-09) + @since(version = 0.3.0-rc-2026-03-15) resource response { /// Construct a new `response`, with a default `status-code` of `200`. diff --git a/proposals/http/wit-0.3.0-draft/worlds.wit b/proposals/http/wit-0.3.0-draft/worlds.wit index ddd96e33..9917e054 100644 --- a/proposals/http/wit-0.3.0-draft/worlds.wit +++ b/proposals/http/wit-0.3.0-draft/worlds.wit @@ -1,24 +1,24 @@ -package wasi:http@0.3.0-rc-2026-02-09; +package wasi:http@0.3.0-rc-2026-03-15; /// 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`. -@since(version = 0.3.0-rc-2026-02-09) +@since(version = 0.3.0-rc-2026-03-15) world service { /// HTTP services have access to time and randomness. - include wasi:clocks/imports@0.3.0-rc-2026-02-09; - include wasi:random/imports@0.3.0-rc-2026-02-09; + include wasi:clocks/imports@0.3.0-rc-2026-03-15; + include wasi:random/imports@0.3.0-rc-2026-03-15; /// 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-2026-02-09; - import wasi:cli/stderr@0.3.0-rc-2026-02-09; + import wasi:cli/stdout@0.3.0-rc-2026-03-15; + import wasi:cli/stderr@0.3.0-rc-2026-03-15; /// 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-2026-02-09; + import wasi:cli/stdin@0.3.0-rc-2026-03-15; /// This is the default `client` to use when user code simply wants to make an /// HTTP request (e.g., via `fetch()`). @@ -40,7 +40,7 @@ world service { /// Components may implement this world to allow them to participate in handler /// "chains" where a `request` flows through handlers on its way to some terminal /// `service` and corresponding `response` flows in the opposite direction. -@since(version = 0.3.0-rc-2026-02-09) +@since(version = 0.3.0-rc-2026-03-15) world middleware { include service; import handler; @@ -53,7 +53,7 @@ world middleware { /// /// In `wasi:http/middleware` this interface is both exported and imported as /// the "downstream" and "upstream" directions of the middleware chain. -@since(version = 0.3.0-rc-2026-02-09) +@since(version = 0.3.0-rc-2026-03-15) interface handler { use types.{request, response, error-code}; @@ -74,7 +74,7 @@ interface handler { /// (including WIT itself) is unable to represent a component importing two /// instances of the same interface. A `client.send` import may be linked /// directly to a `handler.handle` export to bypass the network. -@since(version = 0.3.0-rc-2026-02-09) +@since(version = 0.3.0-rc-2026-03-15) interface client { use types.{request, response, error-code}; 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 4e293316..dc9100f7 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-2026-02-09; +package wasi:random@0.3.0-rc-2026-03-15; /// 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-2026-02-09) +@since(version = 0.3.0-rc-2026-03-15) 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-2026-02-09) + @since(version = 0.3.0-rc-2026-03-15) 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 c1a8fd1a..ee3fef73 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-2026-02-09; +package wasi:random@0.3.0-rc-2026-03-15; /// 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-2026-02-09) +@since(version = 0.3.0-rc-2026-03-15) interface insecure { /// Return up to `max-len` insecure pseudo-random bytes. /// @@ -20,13 +20,13 @@ interface insecure { /// Implementations MUST return at least 1 byte when `max-len` is greater /// than zero. When `max-len` is zero, implementations MUST return an empty /// list without trapping. - @since(version = 0.3.0-rc-2026-02-09) + @since(version = 0.3.0-rc-2026-03-15) get-insecure-random-bytes: func(max-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-2026-02-09) + @since(version = 0.3.0-rc-2026-03-15) 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 5957bd52..e40b97d7 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-2026-02-09; +package wasi:random@0.3.0-rc-2026-03-15; /// 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-2026-02-09) +@since(version = 0.3.0-rc-2026-03-15) interface random { /// Return up to `max-len` cryptographically-secure random or pseudo-random /// bytes. @@ -25,13 +25,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-2026-02-09) + @since(version = 0.3.0-rc-2026-03-15) get-random-bytes: func(max-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-2026-02-09) + @since(version = 0.3.0-rc-2026-03-15) 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 8d3441a9..59069134 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-2026-02-09; +package wasi:random@0.3.0-rc-2026-03-15; -@since(version = 0.3.0-rc-2026-02-09) +@since(version = 0.3.0-rc-2026-03-15) world imports { - @since(version = 0.3.0-rc-2026-02-09) + @since(version = 0.3.0-rc-2026-03-15) import random; - @since(version = 0.3.0-rc-2026-02-09) + @since(version = 0.3.0-rc-2026-03-15) import insecure; - @since(version = 0.3.0-rc-2026-02-09) + @since(version = 0.3.0-rc-2026-03-15) 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 ea5bee3f..a780d3df 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 = "888647625fec3eaaf276cb884e426bc32bfa79ced22955f10eb239df74c8550c" -sha512 = "f08a2828b88fc6ddea935af584531c484ad4a7a5f30340265e11e91b2bfe0f81e74a660a512f72e5197d60278feccc00534833ebd73868e801859dd31a61bdbb" +sha256 = "a8702c42e23c22a458207d0efa38cc1b64c8c6299b0e3152aa84327a7c1c952b" +sha512 = "da69a5d498b6afe0facf77ec3d21f6e8a2a4d4661ebfec310a2ce6f943cb01f92131a746765648febf96563ddac788e9f218941d3db2b905f3746dc8e05cf54d" 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 8e6bcfa8..2e9c9fe0 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-2026-02-09) +@since(version = 0.3.0-rc-2026-03-15) interface ip-name-lookup { - @since(version = 0.3.0-rc-2026-02-09) + @since(version = 0.3.0-rc-2026-03-15) use types.{ip-address}; /// Lookup error codes. - @since(version = 0.3.0-rc-2026-02-09) + @since(version = 0.3.0-rc-2026-03-15) variant error-code { /// Access denied. /// @@ -56,6 +56,6 @@ interface ip-name-lookup { /// - /// - /// - - @since(version = 0.3.0-rc-2026-02-09) + @since(version = 0.3.0-rc-2026-03-15) 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 5aec5eb8..fe2c0448 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-2026-02-09) +@since(version = 0.3.0-rc-2026-03-15) interface types { - @since(version = 0.3.0-rc-2026-02-09) - use wasi:clocks/types@0.3.0-rc-2026-02-09.{duration}; + @since(version = 0.3.0-rc-2026-03-15) + use wasi:clocks/types@0.3.0-rc-2026-03-15.{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-2026-02-09) + @since(version = 0.3.0-rc-2026-03-15) variant error-code { /// Access denied. /// @@ -92,7 +92,7 @@ interface types { other(option), } - @since(version = 0.3.0-rc-2026-02-09) + @since(version = 0.3.0-rc-2026-03-15) enum ip-address-family { /// Similar to `AF_INET` in POSIX. ipv4, @@ -101,18 +101,18 @@ interface types { ipv6, } - @since(version = 0.3.0-rc-2026-02-09) + @since(version = 0.3.0-rc-2026-03-15) type ipv4-address = tuple; - @since(version = 0.3.0-rc-2026-02-09) + @since(version = 0.3.0-rc-2026-03-15) type ipv6-address = tuple; - @since(version = 0.3.0-rc-2026-02-09) + @since(version = 0.3.0-rc-2026-03-15) variant ip-address { ipv4(ipv4-address), ipv6(ipv6-address), } - @since(version = 0.3.0-rc-2026-02-09) + @since(version = 0.3.0-rc-2026-03-15) record ipv4-socket-address { /// sin_port port: u16, @@ -120,7 +120,7 @@ interface types { address: ipv4-address, } - @since(version = 0.3.0-rc-2026-02-09) + @since(version = 0.3.0-rc-2026-03-15) record ipv6-socket-address { /// sin6_port port: u16, @@ -132,7 +132,7 @@ interface types { scope-id: u32, } - @since(version = 0.3.0-rc-2026-02-09) + @since(version = 0.3.0-rc-2026-03-15) variant ip-socket-address { ipv4(ipv4-socket-address), ipv6(ipv6-socket-address), @@ -170,7 +170,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-2026-02-09) + @since(version = 0.3.0-rc-2026-03-15) resource tcp-socket { /// Create a new TCP socket. @@ -191,7 +191,7 @@ interface types { /// - /// - /// - - @since(version = 0.3.0-rc-2026-02-09) + @since(version = 0.3.0-rc-2026-03-15) create: static func(address-family: ip-address-family) -> result; /// Bind the socket to the provided IP address and port. @@ -227,7 +227,7 @@ interface types { /// - /// - /// - - @since(version = 0.3.0-rc-2026-02-09) + @since(version = 0.3.0-rc-2026-03-15) bind: func(local-address: ip-socket-address) -> result<_, error-code>; /// Connect to a remote endpoint. @@ -264,7 +264,7 @@ interface types { /// - /// - /// - - @since(version = 0.3.0-rc-2026-02-09) + @since(version = 0.3.0-rc-2026-03-15) connect: async func(remote-address: ip-socket-address) -> result<_, error-code>; /// Start listening and return a stream of new inbound connections. @@ -337,7 +337,7 @@ interface types { /// - /// - /// - - @since(version = 0.3.0-rc-2026-02-09) + @since(version = 0.3.0-rc-2026-03-15) listen: func() -> result, error-code>; /// Transmit data to peer. @@ -362,7 +362,7 @@ interface types { /// - /// - /// - - @since(version = 0.3.0-rc-2026-02-09) + @since(version = 0.3.0-rc-2026-03-15) send: func(data: stream) -> future>; /// Read data from peer. @@ -392,7 +392,7 @@ interface types { /// - /// - /// - - @since(version = 0.3.0-rc-2026-02-09) + @since(version = 0.3.0-rc-2026-03-15) receive: func() -> tuple, future>>; /// Get the bound local address. @@ -412,7 +412,7 @@ interface types { /// - /// - /// - - @since(version = 0.3.0-rc-2026-02-09) + @since(version = 0.3.0-rc-2026-03-15) get-local-address: func() -> result; /// Get the remote address. @@ -425,13 +425,13 @@ interface types { /// - /// - /// - - @since(version = 0.3.0-rc-2026-02-09) + @since(version = 0.3.0-rc-2026-03-15) 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-2026-02-09) + @since(version = 0.3.0-rc-2026-03-15) get-is-listening: func() -> bool; /// Whether this is a IPv4 or IPv6 socket. @@ -439,7 +439,7 @@ interface types { /// This is the value passed to the constructor. /// /// Equivalent to the SO_DOMAIN socket option. - @since(version = 0.3.0-rc-2026-02-09) + @since(version = 0.3.0-rc-2026-03-15) get-address-family: func() -> ip-address-family; /// Hints the desired listen queue size. Implementations are free to @@ -453,7 +453,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-2026-02-09) + @since(version = 0.3.0-rc-2026-03-15) set-listen-backlog-size: func(value: u64) -> result<_, error-code>; /// Enables or disables keepalive. @@ -466,9 +466,9 @@ interface types { /// 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-2026-02-09) + @since(version = 0.3.0-rc-2026-03-15) get-keep-alive-enabled: func() -> result; - @since(version = 0.3.0-rc-2026-02-09) + @since(version = 0.3.0-rc-2026-03-15) set-keep-alive-enabled: func(value: bool) -> result<_, error-code>; /// Amount of time the connection has to be idle before TCP starts @@ -483,9 +483,9 @@ interface types { /// /// # Typical errors /// - `invalid-argument`: (set) The provided value was 0. - @since(version = 0.3.0-rc-2026-02-09) + @since(version = 0.3.0-rc-2026-03-15) get-keep-alive-idle-time: func() -> result; - @since(version = 0.3.0-rc-2026-02-09) + @since(version = 0.3.0-rc-2026-03-15) set-keep-alive-idle-time: func(value: duration) -> result<_, error-code>; /// The time between keepalive packets. @@ -499,9 +499,9 @@ interface types { /// /// # Typical errors /// - `invalid-argument`: (set) The provided value was 0. - @since(version = 0.3.0-rc-2026-02-09) + @since(version = 0.3.0-rc-2026-03-15) get-keep-alive-interval: func() -> result; - @since(version = 0.3.0-rc-2026-02-09) + @since(version = 0.3.0-rc-2026-03-15) set-keep-alive-interval: func(value: duration) -> result<_, error-code>; /// The maximum amount of keepalive packets TCP should send before @@ -516,9 +516,9 @@ interface types { /// /// # Typical errors /// - `invalid-argument`: (set) The provided value was 0. - @since(version = 0.3.0-rc-2026-02-09) + @since(version = 0.3.0-rc-2026-03-15) get-keep-alive-count: func() -> result; - @since(version = 0.3.0-rc-2026-02-09) + @since(version = 0.3.0-rc-2026-03-15) set-keep-alive-count: func(value: u32) -> result<_, error-code>; /// Equivalent to the IP_TTL & IPV6_UNICAST_HOPS socket options. @@ -527,9 +527,9 @@ interface types { /// /// # Typical errors /// - `invalid-argument`: (set) The TTL value must be 1 or higher. - @since(version = 0.3.0-rc-2026-02-09) + @since(version = 0.3.0-rc-2026-03-15) get-hop-limit: func() -> result; - @since(version = 0.3.0-rc-2026-02-09) + @since(version = 0.3.0-rc-2026-03-15) set-hop-limit: func(value: u8) -> result<_, error-code>; /// Kernel buffer space reserved for sending/receiving on this socket. @@ -553,18 +553,18 @@ interface types { /// /// # Typical errors /// - `invalid-argument`: (set) The provided value was 0. - @since(version = 0.3.0-rc-2026-02-09) + @since(version = 0.3.0-rc-2026-03-15) get-receive-buffer-size: func() -> result; - @since(version = 0.3.0-rc-2026-02-09) + @since(version = 0.3.0-rc-2026-03-15) set-receive-buffer-size: func(value: u64) -> result<_, error-code>; - @since(version = 0.3.0-rc-2026-02-09) + @since(version = 0.3.0-rc-2026-03-15) get-send-buffer-size: func() -> result; - @since(version = 0.3.0-rc-2026-02-09) + @since(version = 0.3.0-rc-2026-03-15) set-send-buffer-size: func(value: u64) -> result<_, error-code>; } /// A UDP socket handle. - @since(version = 0.3.0-rc-2026-02-09) + @since(version = 0.3.0-rc-2026-03-15) resource udp-socket { /// Create a new UDP socket. @@ -582,7 +582,7 @@ interface types { /// - /// - /// - - @since(version = 0.3.0-rc-2026-02-09) + @since(version = 0.3.0-rc-2026-03-15) create: static func(address-family: ip-address-family) -> result; /// Bind the socket to the provided IP address and port. @@ -604,7 +604,7 @@ interface types { /// - /// - /// - - @since(version = 0.3.0-rc-2026-02-09) + @since(version = 0.3.0-rc-2026-03-15) bind: func(local-address: ip-socket-address) -> result<_, error-code>; /// Associate this socket with a specific peer address. @@ -643,7 +643,7 @@ interface types { /// - /// - /// - - @since(version = 0.3.0-rc-2026-02-09) + @since(version = 0.3.0-rc-2026-03-15) connect: func(remote-address: ip-socket-address) -> result<_, error-code>; /// Dissociate this socket from its peer address. @@ -661,7 +661,7 @@ interface types { /// - /// - /// - - @since(version = 0.3.0-rc-2026-02-09) + @since(version = 0.3.0-rc-2026-03-15) disconnect: func() -> result<_, error-code>; /// Send a message on the socket to a particular peer. @@ -706,7 +706,7 @@ interface types { /// - /// - /// - - @since(version = 0.3.0-rc-2026-02-09) + @since(version = 0.3.0-rc-2026-03-15) send: async func(data: list, remote-address: option) -> result<_, error-code>; /// Receive a message on the socket. @@ -732,7 +732,7 @@ interface types { /// - /// - /// - - @since(version = 0.3.0-rc-2026-02-09) + @since(version = 0.3.0-rc-2026-03-15) receive: async func() -> result, ip-socket-address>, error-code>; /// Get the current bound address. @@ -752,7 +752,7 @@ interface types { /// - /// - /// - - @since(version = 0.3.0-rc-2026-02-09) + @since(version = 0.3.0-rc-2026-03-15) get-local-address: func() -> result; /// Get the address the socket is currently "connected" to. @@ -765,7 +765,7 @@ interface types { /// - /// - /// - - @since(version = 0.3.0-rc-2026-02-09) + @since(version = 0.3.0-rc-2026-03-15) get-remote-address: func() -> result; /// Whether this is a IPv4 or IPv6 socket. @@ -773,7 +773,7 @@ interface types { /// This is the value passed to the constructor. /// /// Equivalent to the SO_DOMAIN socket option. - @since(version = 0.3.0-rc-2026-02-09) + @since(version = 0.3.0-rc-2026-03-15) get-address-family: func() -> ip-address-family; /// Equivalent to the IP_TTL & IPV6_UNICAST_HOPS socket options. @@ -782,9 +782,9 @@ interface types { /// /// # Typical errors /// - `invalid-argument`: (set) The TTL value must be 1 or higher. - @since(version = 0.3.0-rc-2026-02-09) + @since(version = 0.3.0-rc-2026-03-15) get-unicast-hop-limit: func() -> result; - @since(version = 0.3.0-rc-2026-02-09) + @since(version = 0.3.0-rc-2026-03-15) set-unicast-hop-limit: func(value: u8) -> result<_, error-code>; /// Kernel buffer space reserved for sending/receiving on this socket. @@ -800,13 +800,13 @@ interface types { /// /// # Typical errors /// - `invalid-argument`: (set) The provided value was 0. - @since(version = 0.3.0-rc-2026-02-09) + @since(version = 0.3.0-rc-2026-03-15) get-receive-buffer-size: func() -> result; - @since(version = 0.3.0-rc-2026-02-09) + @since(version = 0.3.0-rc-2026-03-15) set-receive-buffer-size: func(value: u64) -> result<_, error-code>; - @since(version = 0.3.0-rc-2026-02-09) + @since(version = 0.3.0-rc-2026-03-15) get-send-buffer-size: func() -> result; - @since(version = 0.3.0-rc-2026-02-09) + @since(version = 0.3.0-rc-2026-03-15) 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 69ebe857..227662da 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-2026-02-09; +package wasi:sockets@0.3.0-rc-2026-03-15; -@since(version = 0.3.0-rc-2026-02-09) +@since(version = 0.3.0-rc-2026-03-15) world imports { - @since(version = 0.3.0-rc-2026-02-09) + @since(version = 0.3.0-rc-2026-03-15) import types; - @since(version = 0.3.0-rc-2026-02-09) + @since(version = 0.3.0-rc-2026-03-15) import ip-name-lookup; }