Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
248 changes: 71 additions & 177 deletions components/Cargo.lock

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion components/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -12,4 +12,4 @@ members = [
resolver = "3"

[workspace.dependencies]
wit-bindgen = "0.44"
wit-bindgen = "0.48"
2 changes: 1 addition & 1 deletion components/build.sh
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ wac plug ./lib/greeter.wasm --plug ./lib/empty-config.wasm -o ./lib/hello.wasm
static-config -p greeting="Aloha" -o ./lib/aloha-config.wasm
wac plug ./lib/greeter.wasm --plug ./lib/aloha-config.wasm -o ./lib/aloha.wasm

wkg oci pull -o ./lib/valkey-client.wasm ghcr.io/componentized/valkey/valkey-client:v0.1.1
wkg oci pull -o ./lib/valkey-client.wasm ghcr.io/componentized/valkey/valkey-client:v0.2.0
wac plug ./lib/incrementor.wasm --plug ./lib/valkey-client.wasm -o ./lib/valkey-incrementor.wasm
wac plug ./lib/valkey-incrementor.wasm --plug ./lib/empty-config.wasm -o ./lib/default-incrementor.wasm

Expand Down
16 changes: 8 additions & 8 deletions components/calculator/calculator.wat
Original file line number Diff line number Diff line change
@@ -1,22 +1,22 @@
(module
(func (export "add") (param f32 f32) (result f32)
(func (export "add") (param i32 i32) (result i32)
local.get 0
local.get 1
f32.add
i32.add
)
(func (export "subtract") (param f32 f32) (result f32)
(func (export "subtract") (param i32 i32) (result i32)
local.get 0
local.get 1
f32.sub
i32.sub
)
(func (export "multiply") (param f32 f32) (result f32)
(func (export "multiply") (param i32 i32) (result i32)
local.get 0
local.get 1
f32.mul
i32.mul
)
(func (export "divide") (param f32 f32) (result f32)
(func (export "divide") (param i32 i32) (result i32)
local.get 0
local.get 1
f32.div
i32.div_s
)
)
2 changes: 1 addition & 1 deletion components/calculator/componentize.sh
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

wat2wasm calculator.wat -o calculator.core.wasm

sed 's/(export "\([^"]*\)")/(export "modulewise:demo\/calculator@0.1.0#\1")/g' calculator.wat | \
sed 's/(export "\([^"]*\)")/(export "modulewise:demo\/calculator@0.2.0#\1")/g' calculator.wat | \
wat2wasm /dev/stdin --output=- | \
wasm-tools component embed ../wit -w calculator-world - | \
wasm-tools component new - -o calculator.wasm
2 changes: 1 addition & 1 deletion components/counter/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "counter"
version = "0.1.0"
version = "0.2.0"
edition = "2024"

[lib]
Expand Down
2 changes: 1 addition & 1 deletion components/flights/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "flights"
version = "0.1.0"
version = "0.2.0"
edition = "2024"

[lib]
Expand Down
2 changes: 1 addition & 1 deletion components/greeter/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "greeter"
version = "0.1.0"
version = "0.2.0"
edition = "2024"

[lib]
Expand Down
2 changes: 1 addition & 1 deletion components/hotels/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "hotels"
version = "0.1.0"
version = "0.2.0"
edition = "2024"

[lib]
Expand Down
2 changes: 1 addition & 1 deletion components/incrementor/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "incrementor"
version = "0.1.0"
version = "0.2.0"
edition = "2024"

[lib]
Expand Down
2 changes: 1 addition & 1 deletion components/intercepting-greeter/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "intercepting-greeter"
version = "0.1.0"
version = "0.2.0"
edition = "2024"

[lib]
Expand Down
2 changes: 1 addition & 1 deletion components/publish.sh
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ set -euo pipefail
COMPONENTS=("calculator" "hello")

for COMPONENT in "${COMPONENTS[@]}"; do
VERSION=0.1.0
VERSION=0.2.0
wkg oci push \
--annotation "org.opencontainers.image.title=${COMPONENT}" \
--annotation "org.opencontainers.image.description=${COMPONENT} component for modulewise demos" \
Expand Down
2 changes: 1 addition & 1 deletion components/rest-client/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "rest-client"
version = "0.1.0"
version = "0.2.0"
edition = "2024"

[lib]
Expand Down
2 changes: 1 addition & 1 deletion components/valkey-publisher/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "valkey-publisher"
version = "0.1.0"
version = "0.2.0"
edition = "2024"

[lib]
Expand Down
8 changes: 4 additions & 4 deletions components/wit/calculator.wit
Original file line number Diff line number Diff line change
Expand Up @@ -2,16 +2,16 @@
interface calculator {

/// add two numbers
add: func(a: f32, b: f32) -> f32;
add: func(a: s32, b: s32) -> s32;

/// subtract the second number from the first
subtract: func(a: f32, b: f32) -> f32;
subtract: func(a: s32, b: s32) -> s32;

/// multiply two numbers
multiply: func(a: f32, b: f32) -> f32;
multiply: func(a: s32, b: s32) -> s32;

/// divide the first number by the second
divide: func(a: f32, b: f32) -> f32;
divide: func(a: s32, b: s32) -> s32;
}

/// the calculator world
Expand Down
2 changes: 1 addition & 1 deletion components/wit/counter.wit
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ interface counter {

/// the counter world
world counter-world {
include wasi:config/imports@0.2.0-draft;
import wasi:config/store@0.2.0-rc.1;
import incrementor;
export counter;
}
Original file line number Diff line number Diff line change
@@ -1,19 +1,19 @@
package wasi:cli@0.2.3;
package wasi:cli@0.2.6;

interface stdout {
use wasi:io/streams@0.2.3.{output-stream};
use wasi:io/streams@0.2.6.{output-stream};

get-stdout: func() -> output-stream;
}

interface stderr {
use wasi:io/streams@0.2.3.{output-stream};
use wasi:io/streams@0.2.6.{output-stream};

get-stderr: func() -> output-stream;
}

interface stdin {
use wasi:io/streams@0.2.3.{input-stream};
use wasi:io/streams@0.2.6.{input-stream};

get-stdin: func() -> input-stream;
}
Expand Down
29 changes: 0 additions & 29 deletions components/wit/deps/wasi-clocks-0.2.3/package.wit

This file was deleted.

157 changes: 157 additions & 0 deletions components/wit/deps/wasi-clocks-0.2.6/package.wit
Original file line number Diff line number Diff line change
@@ -0,0 +1,157 @@
package wasi:clocks@0.2.6;

/// WASI Monotonic Clock is a clock API intended to let users measure elapsed
/// time.
///
/// It is intended to be portable at least between Unix-family platforms and
/// Windows.
///
/// 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.2.0)
interface monotonic-clock {
@since(version = 0.2.0)
use wasi:io/poll@0.2.6.{pollable};

/// An instant in time, in nanoseconds. An instant is relative to an
/// unspecified initial value, and can only be compared to instances from
/// the same monotonic-clock.
@since(version = 0.2.0)
type instant = u64;

/// A duration of time, in nanoseconds.
@since(version = 0.2.0)
type duration = u64;

/// Read the current value of the clock.
///
/// The clock is monotonic, therefore calling this function repeatedly will
/// produce a sequence of non-decreasing values.
@since(version = 0.2.0)
now: func() -> instant;

/// Query the resolution of the clock. Returns the duration of time
/// corresponding to a clock tick.
@since(version = 0.2.0)
resolution: func() -> duration;

/// Create a `pollable` which will resolve once the specified instant
/// has occurred.
@since(version = 0.2.0)
subscribe-instant: func(when: instant) -> pollable;

/// Create a `pollable` that will resolve after the specified duration has
/// elapsed from the time this function is invoked.
@since(version = 0.2.0)
subscribe-duration: func(when: duration) -> pollable;
}

/// WASI Wall Clock is a clock API intended to let users query the current
/// time. The name "wall" makes an analogy to a "clock on the wall", which
/// is not necessarily monotonic as it may be reset.
///
/// It is intended to be portable at least between Unix-family platforms and
/// Windows.
///
/// A wall clock is a clock which measures the date and time according to
/// some external reference.
///
/// External references may be reset, so this clock is not necessarily
/// monotonic, making it unsuitable for measuring elapsed time.
///
/// It is intended for reporting the current date and time for humans.
@since(version = 0.2.0)
interface wall-clock {
/// A time and date in seconds plus nanoseconds.
@since(version = 0.2.0)
record datetime {
seconds: u64,
nanoseconds: u32,
}

/// Read the current value of the clock.
///
/// This clock is not monotonic, therefore calling this function repeatedly
/// will not necessarily produce a sequence of non-decreasing values.
///
/// The returned timestamps represent the number of seconds since
/// 1970-01-01T00:00:00Z, also known as [POSIX's Seconds Since the Epoch],
/// also known as [Unix Time].
///
/// The nanoseconds field of the output is always less than 1000000000.
///
/// [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.2.0)
now: func() -> datetime;

/// Query the resolution of the clock.
///
/// The nanoseconds field of the output is always less than 1000000000.
@since(version = 0.2.0)
resolution: func() -> datetime;
}

@unstable(feature = clocks-timezone)
interface timezone {
@unstable(feature = clocks-timezone)
use wall-clock.{datetime};

/// Information useful for displaying the timezone of a specific `datetime`.
///
/// This information may vary within a single `timezone` to reflect daylight
/// saving time adjustments.
@unstable(feature = clocks-timezone)
record timezone-display {
/// The number of seconds difference between UTC time and the local
/// time of the timezone.
///
/// The returned value will always be less than 86400 which is the
/// number of seconds in a day (24*60*60).
///
/// In implementations that do not expose an actual time zone, this
/// should return 0.
utc-offset: s32,
/// The abbreviated name of the timezone to display to a user. The name
/// `UTC` indicates Coordinated Universal Time. Otherwise, this should
/// reference local standards for the name of the time zone.
///
/// In implementations that do not expose an actual time zone, this
/// should be the string `UTC`.
///
/// In time zones that do not have an applicable name, a formatted
/// representation of the UTC offset may be returned, such as `-04:00`.
name: string,
/// Whether daylight saving time is active.
///
/// In implementations that do not expose an actual time zone, this
/// should return false.
in-daylight-saving-time: bool,
}

/// Return information needed to display the given `datetime`. This includes
/// the UTC offset, the time zone name, and a flag indicating whether
/// daylight saving time is active.
///
/// If the timezone cannot be determined for the given `datetime`, return a
/// `timezone-display` for `UTC` with a `utc-offset` of 0 and no daylight
/// saving time.
@unstable(feature = clocks-timezone)
display: func(when: datetime) -> timezone-display;

/// The same as `display`, but only return the UTC offset.
@unstable(feature = clocks-timezone)
utc-offset: func(when: datetime) -> s32;
}

@since(version = 0.2.0)
world imports {
@since(version = 0.2.0)
import wasi:io/poll@0.2.6;
@since(version = 0.2.0)
import monotonic-clock;
@since(version = 0.2.0)
import wall-clock;
@unstable(feature = clocks-timezone)
import timezone;
}
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package wasi:config@0.2.0-draft;
package wasi:config@0.2.0-rc.1;

interface store {
/// An error type that encapsulates the different errors that can occur fetching configuration values.
Expand Down
Loading