Skip to content

Commit 50b674e

Browse files
Release WASI v0.3.0-rc-2026-03-15 (#904)
Co-authored-by: ricochet <974323+ricochet@users.noreply.github.com>
1 parent ec760e0 commit 50b674e

28 files changed

Lines changed: 252 additions & 252 deletions

File tree

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
1-
package wasi:cli@0.3.0-rc-2026-02-09;
1+
package wasi:cli@0.3.0-rc-2026-03-15;
22

3-
@since(version = 0.3.0-rc-2026-02-09)
3+
@since(version = 0.3.0-rc-2026-03-15)
44
world command {
5-
@since(version = 0.3.0-rc-2026-02-09)
5+
@since(version = 0.3.0-rc-2026-03-15)
66
include imports;
77

8-
@since(version = 0.3.0-rc-2026-02-09)
8+
@since(version = 0.3.0-rc-2026-03-15)
99
export run;
1010
}
Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,19 @@
11
[clocks]
22
path = "../../clocks/wit-0.3.0-draft"
3-
sha256 = "888647625fec3eaaf276cb884e426bc32bfa79ced22955f10eb239df74c8550c"
4-
sha512 = "f08a2828b88fc6ddea935af584531c484ad4a7a5f30340265e11e91b2bfe0f81e74a660a512f72e5197d60278feccc00534833ebd73868e801859dd31a61bdbb"
3+
sha256 = "a8702c42e23c22a458207d0efa38cc1b64c8c6299b0e3152aa84327a7c1c952b"
4+
sha512 = "da69a5d498b6afe0facf77ec3d21f6e8a2a4d4661ebfec310a2ce6f943cb01f92131a746765648febf96563ddac788e9f218941d3db2b905f3746dc8e05cf54d"
55

66
[filesystem]
77
path = "../../filesystem/wit-0.3.0-draft"
8-
sha256 = "39549a7fe0950d26d292eabc9aad193416394214f8cddb1bf786eda0ad9b764e"
9-
sha512 = "fe44c8f5c80ace68f455746df28e2f67e0ba12fae2777a3ec5514de2b924450b903f4676aafb891672d1f7c99653dbac3a601c3e00b623dc592deea509392077"
8+
sha256 = "d9db43c43b4e09899a9e54c76544eef17439fb42e2f730ed96d40eac994b0dfd"
9+
sha512 = "3b7a1bef322ba36b1e9df768d740e4238f58d3c15d3e4c51fe899b93cf1e6641a79b5a8665ae71d38a80e1e0f852b30b023ecf318f4cbeacb36dd1ae0ac7e37b"
1010

1111
[random]
1212
path = "../../random/wit-0.3.0-draft"
13-
sha256 = "2d54fe2815781a7462f3540b0959842b7e15d9fe8530c2b961b35451b6922670"
14-
sha512 = "ac1a04d180f8aa11ac82529a0de7ff01c8d51d10424806aefe1c1d52ea9ade9911eaee2b3f7d9c23f4b3bfdff469af6482f4a9e5b800c465b9fb7b73ccc635c7"
13+
sha256 = "d44de4e427505fdfd584a23479dba5899ad80aa8e174dc0528df840db8ae9a43"
14+
sha512 = "6b08b32a197aee74076d0cdca6a09f78da9040eedd9ab3f64e5f14901ad5a0c5bbc592ad46a0d575dc6705249b3e10a413e09835616f753788aa598af605c776"
1515

1616
[sockets]
1717
path = "../../sockets/wit-0.3.0-draft"
18-
sha256 = "5bc5dd55a678bee6d8de9043a1c9def9b1aee884d00349f89456f2e2a4622c9a"
19-
sha512 = "d3d6af8d3a6c6105ce166e551032af10a71c2f1d9119ef189bab1617c4951d64f9e783ab3dc59956bbd5eb1b8a79cf3303a4cbfd4a27e1be04f22ec8abff9a57"
18+
sha256 = "ee64b45d3826b6ff2cd27f6ac24fe23c41e65ba4d155294671dc7d0a0b47ddfe"
19+
sha512 = "dd797ab47b899aee52799f797497fa286f5e217307e8a451a7ba89bd05b7b9bfe2a6e0cf39c0e609ed4c76ed102487adff6e73156340f14baf70a9cc9e48ecbc"
Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
@since(version = 0.3.0-rc-2026-02-09)
1+
@since(version = 0.3.0-rc-2026-03-15)
22
interface environment {
33
/// Get the POSIX-style environment variables.
44
///
@@ -8,15 +8,15 @@ interface environment {
88
/// Morally, these are a value import, but until value imports are available
99
/// in the component model, this import function should return the same
1010
/// values each time it is called.
11-
@since(version = 0.3.0-rc-2026-02-09)
11+
@since(version = 0.3.0-rc-2026-03-15)
1212
get-environment: func() -> list<tuple<string, string>>;
1313

1414
/// Get the POSIX-style arguments to the program.
15-
@since(version = 0.3.0-rc-2026-02-09)
15+
@since(version = 0.3.0-rc-2026-03-15)
1616
get-arguments: func() -> list<string>;
1717

1818
/// Return a path that programs should use as their initial current working
1919
/// directory, interpreting `.` as shorthand for this.
20-
@since(version = 0.3.0-rc-2026-02-09)
20+
@since(version = 0.3.0-rc-2026-03-15)
2121
get-initial-cwd: func() -> option<string>;
2222
}

proposals/cli/wit-0.3.0-draft/exit.wit

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
1-
@since(version = 0.3.0-rc-2026-02-09)
1+
@since(version = 0.3.0-rc-2026-03-15)
22
interface exit {
33
/// Exit the current instance and any linked instances.
4-
@since(version = 0.3.0-rc-2026-02-09)
4+
@since(version = 0.3.0-rc-2026-03-15)
55
exit: func(status: result);
66

77
/// Exit the current instance and any linked instances, reporting the
Lines changed: 20 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1,34 +1,34 @@
1-
package wasi:cli@0.3.0-rc-2026-02-09;
1+
package wasi:cli@0.3.0-rc-2026-03-15;
22

3-
@since(version = 0.3.0-rc-2026-02-09)
3+
@since(version = 0.3.0-rc-2026-03-15)
44
world imports {
5-
@since(version = 0.3.0-rc-2026-02-09)
6-
include wasi:clocks/imports@0.3.0-rc-2026-02-09;
7-
@since(version = 0.3.0-rc-2026-02-09)
8-
include wasi:filesystem/imports@0.3.0-rc-2026-02-09;
9-
@since(version = 0.3.0-rc-2026-02-09)
10-
include wasi:sockets/imports@0.3.0-rc-2026-02-09;
11-
@since(version = 0.3.0-rc-2026-02-09)
12-
include wasi:random/imports@0.3.0-rc-2026-02-09;
5+
@since(version = 0.3.0-rc-2026-03-15)
6+
include wasi:clocks/imports@0.3.0-rc-2026-03-15;
7+
@since(version = 0.3.0-rc-2026-03-15)
8+
include wasi:filesystem/imports@0.3.0-rc-2026-03-15;
9+
@since(version = 0.3.0-rc-2026-03-15)
10+
include wasi:sockets/imports@0.3.0-rc-2026-03-15;
11+
@since(version = 0.3.0-rc-2026-03-15)
12+
include wasi:random/imports@0.3.0-rc-2026-03-15;
1313

14-
@since(version = 0.3.0-rc-2026-02-09)
14+
@since(version = 0.3.0-rc-2026-03-15)
1515
import environment;
16-
@since(version = 0.3.0-rc-2026-02-09)
16+
@since(version = 0.3.0-rc-2026-03-15)
1717
import exit;
18-
@since(version = 0.3.0-rc-2026-02-09)
18+
@since(version = 0.3.0-rc-2026-03-15)
1919
import stdin;
20-
@since(version = 0.3.0-rc-2026-02-09)
20+
@since(version = 0.3.0-rc-2026-03-15)
2121
import stdout;
22-
@since(version = 0.3.0-rc-2026-02-09)
22+
@since(version = 0.3.0-rc-2026-03-15)
2323
import stderr;
24-
@since(version = 0.3.0-rc-2026-02-09)
24+
@since(version = 0.3.0-rc-2026-03-15)
2525
import terminal-input;
26-
@since(version = 0.3.0-rc-2026-02-09)
26+
@since(version = 0.3.0-rc-2026-03-15)
2727
import terminal-output;
28-
@since(version = 0.3.0-rc-2026-02-09)
28+
@since(version = 0.3.0-rc-2026-03-15)
2929
import terminal-stdin;
30-
@since(version = 0.3.0-rc-2026-02-09)
30+
@since(version = 0.3.0-rc-2026-03-15)
3131
import terminal-stdout;
32-
@since(version = 0.3.0-rc-2026-02-09)
32+
@since(version = 0.3.0-rc-2026-03-15)
3333
import terminal-stderr;
3434
}
Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
@since(version = 0.3.0-rc-2026-02-09)
1+
@since(version = 0.3.0-rc-2026-03-15)
22
interface run {
33
/// Run the program.
4-
@since(version = 0.3.0-rc-2026-02-09)
4+
@since(version = 0.3.0-rc-2026-03-15)
55
run: async func() -> result;
66
}

proposals/cli/wit-0.3.0-draft/stdio.wit

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
@since(version = 0.3.0-rc-2026-02-09)
1+
@since(version = 0.3.0-rc-2026-03-15)
22
interface types {
3-
@since(version = 0.3.0-rc-2026-02-09)
3+
@since(version = 0.3.0-rc-2026-03-15)
44
enum error-code {
55
/// Input/output error
66
io,
@@ -11,7 +11,7 @@ interface types {
1111
}
1212
}
1313

14-
@since(version = 0.3.0-rc-2026-02-09)
14+
@since(version = 0.3.0-rc-2026-03-15)
1515
interface stdin {
1616
use types.{error-code};
1717

@@ -28,11 +28,11 @@ interface stdin {
2828
///
2929
/// Multiple streams may be active at the same time. The behavior of concurrent
3030
/// reads is implementation-specific.
31-
@since(version = 0.3.0-rc-2026-02-09)
31+
@since(version = 0.3.0-rc-2026-03-15)
3232
read-via-stream: func() -> tuple<stream<u8>, future<result<_, error-code>>>;
3333
}
3434

35-
@since(version = 0.3.0-rc-2026-02-09)
35+
@since(version = 0.3.0-rc-2026-03-15)
3636
interface stdout {
3737
use types.{error-code};
3838

@@ -44,11 +44,11 @@ interface stdout {
4444
///
4545
/// Otherwise if there is an error the readable end of the stream will be
4646
/// dropped and this function will return an error-code.
47-
@since(version = 0.3.0-rc-2026-02-09)
47+
@since(version = 0.3.0-rc-2026-03-15)
4848
write-via-stream: func(data: stream<u8>) -> future<result<_, error-code>>;
4949
}
5050

51-
@since(version = 0.3.0-rc-2026-02-09)
51+
@since(version = 0.3.0-rc-2026-03-15)
5252
interface stderr {
5353
use types.{error-code};
5454

@@ -60,6 +60,6 @@ interface stderr {
6060
///
6161
/// Otherwise if there is an error the readable end of the stream will be
6262
/// dropped and this function will return an error-code.
63-
@since(version = 0.3.0-rc-2026-02-09)
63+
@since(version = 0.3.0-rc-2026-03-15)
6464
write-via-stream: func(data: stream<u8>) -> future<result<_, error-code>>;
6565
}

proposals/cli/wit-0.3.0-draft/terminal.wit

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,10 @@
33
/// In the future, this may include functions for disabling echoing,
44
/// disabling input buffering so that keyboard events are sent through
55
/// immediately, querying supported features, and so on.
6-
@since(version = 0.3.0-rc-2026-02-09)
6+
@since(version = 0.3.0-rc-2026-03-15)
77
interface terminal-input {
88
/// The input side of a terminal.
9-
@since(version = 0.3.0-rc-2026-02-09)
9+
@since(version = 0.3.0-rc-2026-03-15)
1010
resource terminal-input;
1111
}
1212

@@ -15,48 +15,48 @@ interface terminal-input {
1515
/// In the future, this may include functions for querying the terminal
1616
/// size, being notified of terminal size changes, querying supported
1717
/// features, and so on.
18-
@since(version = 0.3.0-rc-2026-02-09)
18+
@since(version = 0.3.0-rc-2026-03-15)
1919
interface terminal-output {
2020
/// The output side of a terminal.
21-
@since(version = 0.3.0-rc-2026-02-09)
21+
@since(version = 0.3.0-rc-2026-03-15)
2222
resource terminal-output;
2323
}
2424

2525
/// An interface providing an optional `terminal-input` for stdin as a
2626
/// link-time authority.
27-
@since(version = 0.3.0-rc-2026-02-09)
27+
@since(version = 0.3.0-rc-2026-03-15)
2828
interface terminal-stdin {
29-
@since(version = 0.3.0-rc-2026-02-09)
29+
@since(version = 0.3.0-rc-2026-03-15)
3030
use terminal-input.{terminal-input};
3131

3232
/// If stdin is connected to a terminal, return a `terminal-input` handle
3333
/// allowing further interaction with it.
34-
@since(version = 0.3.0-rc-2026-02-09)
34+
@since(version = 0.3.0-rc-2026-03-15)
3535
get-terminal-stdin: func() -> option<terminal-input>;
3636
}
3737

3838
/// An interface providing an optional `terminal-output` for stdout as a
3939
/// link-time authority.
40-
@since(version = 0.3.0-rc-2026-02-09)
40+
@since(version = 0.3.0-rc-2026-03-15)
4141
interface terminal-stdout {
42-
@since(version = 0.3.0-rc-2026-02-09)
42+
@since(version = 0.3.0-rc-2026-03-15)
4343
use terminal-output.{terminal-output};
4444

4545
/// If stdout is connected to a terminal, return a `terminal-output` handle
4646
/// allowing further interaction with it.
47-
@since(version = 0.3.0-rc-2026-02-09)
47+
@since(version = 0.3.0-rc-2026-03-15)
4848
get-terminal-stdout: func() -> option<terminal-output>;
4949
}
5050

5151
/// An interface providing an optional `terminal-output` for stderr as a
5252
/// link-time authority.
53-
@since(version = 0.3.0-rc-2026-02-09)
53+
@since(version = 0.3.0-rc-2026-03-15)
5454
interface terminal-stderr {
55-
@since(version = 0.3.0-rc-2026-02-09)
55+
@since(version = 0.3.0-rc-2026-03-15)
5656
use terminal-output.{terminal-output};
5757

5858
/// If stderr is connected to a terminal, return a `terminal-output` handle
5959
/// allowing further interaction with it.
60-
@since(version = 0.3.0-rc-2026-02-09)
60+
@since(version = 0.3.0-rc-2026-03-15)
6161
get-terminal-stderr: func() -> option<terminal-output>;
6262
}

proposals/clocks/wit-0.3.0-draft/monotonic-clock.wit

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package wasi:clocks@0.3.0-rc-2026-02-09;
1+
package wasi:clocks@0.3.0-rc-2026-03-15;
22
/// WASI Monotonic Clock is a clock API intended to let users measure elapsed
33
/// time.
44
///
@@ -7,14 +7,14 @@ package wasi:clocks@0.3.0-rc-2026-02-09;
77
///
88
/// A monotonic clock is a clock which has an unspecified initial value, and
99
/// successive reads of the clock will produce non-decreasing values.
10-
@since(version = 0.3.0-rc-2026-02-09)
10+
@since(version = 0.3.0-rc-2026-03-15)
1111
interface monotonic-clock {
1212
use types.{duration};
1313

1414
/// A mark on a monotonic clock is a number of nanoseconds since an
1515
/// unspecified initial value, and can only be compared to instances from
1616
/// the same monotonic-clock.
17-
@since(version = 0.3.0-rc-2026-02-09)
17+
@since(version = 0.3.0-rc-2026-03-15)
1818
type mark = u64;
1919

2020
/// Read the current value of the clock.
@@ -26,22 +26,22 @@ interface monotonic-clock {
2626
/// the value of the clock in a `mark`. Consequently, implementations
2727
/// should ensure that the starting time is low enough to avoid the
2828
/// possibility of overflow in practice.
29-
@since(version = 0.3.0-rc-2026-02-09)
29+
@since(version = 0.3.0-rc-2026-03-15)
3030
now: func() -> mark;
3131

3232
/// Query the resolution of the clock. Returns the duration of time
3333
/// corresponding to a clock tick.
34-
@since(version = 0.3.0-rc-2026-02-09)
34+
@since(version = 0.3.0-rc-2026-03-15)
3535
get-resolution: func() -> duration;
3636

3737
/// Wait until the specified mark has occurred.
38-
@since(version = 0.3.0-rc-2026-02-09)
38+
@since(version = 0.3.0-rc-2026-03-15)
3939
wait-until: async func(
4040
when: mark,
4141
);
4242

4343
/// Wait for the specified duration to elapse.
44-
@since(version = 0.3.0-rc-2026-02-09)
44+
@since(version = 0.3.0-rc-2026-03-15)
4545
wait-for: async func(
4646
how-long: duration,
4747
);

proposals/clocks/wit-0.3.0-draft/system-clock.wit

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package wasi:clocks@0.3.0-rc-2026-02-09;
1+
package wasi:clocks@0.3.0-rc-2026-03-15;
22
/// WASI System Clock is a clock API intended to let users query the current
33
/// time. The clock is not necessarily monotonic as it may be reset.
44
///
@@ -9,7 +9,7 @@ package wasi:clocks@0.3.0-rc-2026-02-09;
99
/// monotonic, making it unsuitable for measuring elapsed time.
1010
///
1111
/// It is intended for reporting the current date and time for humans.
12-
@since(version = 0.3.0-rc-2026-02-09)
12+
@since(version = 0.3.0-rc-2026-03-15)
1313
interface system-clock {
1414
use types.{duration};
1515

@@ -29,7 +29,7 @@ interface system-clock {
2929
///
3030
/// [POSIX's Seconds Since the Epoch]: https://pubs.opengroup.org/onlinepubs/9699919799/xrat/V4_xbd_chap04.html#tag_21_04_16
3131
/// [Unix Time]: https://en.wikipedia.org/wiki/Unix_time
32-
@since(version = 0.3.0-rc-2026-02-09)
32+
@since(version = 0.3.0-rc-2026-03-15)
3333
record instant {
3434
seconds: s64,
3535
nanoseconds: u32,
@@ -41,11 +41,11 @@ interface system-clock {
4141
/// will not necessarily produce a sequence of non-decreasing values.
4242
///
4343
/// The nanoseconds field of the output is always less than 1000000000.
44-
@since(version = 0.3.0-rc-2026-02-09)
44+
@since(version = 0.3.0-rc-2026-03-15)
4545
now: func() -> instant;
4646

4747
/// Query the resolution of the clock. Returns the smallest duration of time
4848
/// that the implementation permits distinguishing.
49-
@since(version = 0.3.0-rc-2026-02-09)
49+
@since(version = 0.3.0-rc-2026-03-15)
5050
get-resolution: func() -> duration;
5151
}

0 commit comments

Comments
 (0)