All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- update
messaging
to0.2.0
- reenable
clippy::pedantic
- remove unused dependencies
- remove compat crate
- update WIT dependencies
- move CallTargetInterface to core
- simplify error handling
- fix clippy lints
- integrate set-link-name and wrpc
- remove
Actor
abstraction - import
wrpc-runtime-wasmtime
- remove
wit-component
dep Ciao - appease Clippy Chillax, Clip
- switch wasi-keyvalue to
main
- fix
wasi-keyvalue
incoming value ownership mismatch - implement preview 2 interfaces
- update WIT packages
- remove logging
with
pin - update to Wasmtime 15
- polish tracing and logging levels
- integrate
wash
into the workspace - update to Wasmtime 14 and latest WIT
- resolve 1.73.0 warnings
- reduce verbosity of instrumented functions
- mark non-exhaustive Debug impls as such
- remove noisy fields from instruments
- updated with newest features
- replace references to 'actor' with 'component'
-
update
wrpc:keyvalue
in providers part of this process is adoptingwit-bindgen-wrpc
in the host -
update
wasi:keyvalue
-
Bumps our wasmcloud wit to 1.0 This bumps our main
wasmcloud:bus
package and the package in theruntime
crate to 1.0.0 in preparation for release. Also removes the use of the wasmcloud interface in tests where it wasn't needed -
update to wasmtime 19
-
migrate to
wrpc:keyvalue
-
implement
wrpc:blobstore/blobstore
for FS -
implement Redis
wrpc:keyvalue/{atomic,eventual}
-
implement
wasi:http/outgoing-handler
provider -
support p1 module execution
-
support pubsub on wRPC subjects Up until now, publishing and subscribing for RPC communcations on the NATS cluster happened on subjects that were related to the wasmbus protocol (i.e. 'wasmbus.rpc.*').
To support the WIT-native invocations, i.e. wRPC (#1389), we must change the publication and subscription subjects to include also the subjects that are expected to be used by wprc.
This commit updates the provider-sdk to listen additionally to subjects that are required/used by wrpc, though we do not yet have an implementation for encode/deocde.
-
Switches runtime config to use a pooling allocator This leads to significant performance increases on Linux and brings it up to the same performance levels as other operating systems
-
improve byte stream efficiency
-
Switches modules to use pre instantiation instead In my load testing of this locally, this led to a 20% increase in throughput
-
implement
wrpc:http/incoming-handler
-
switch to
wrpc
forwasmcloud:messaging
-
switch to
wrpc:{keyvalue,blobstore}
-
implement
wrpc:http/outgoing-handler.handle
-
change set-target to set-link-name Up until the relatively low-level
wasmcloud:bus/lattice
WIT interface has used a function calledset-target
to aim invocations that occurred in compliant actors and providers.Since wRPC (#1389) enabled wasmCloud 1.0 is going to be WIT-first going forward, all WIT-driven function executions have access to the relevant interface (WIT interfaces, rather than Smithy-derived ones) that they call, at call time.
Given that actor & provider side function executions have access to their WIT interfaces (ex.
wasi:keyvalue/readwrite.get
), what we need to do is differentiate between the case where multiple targets might be responding to the same WIT interface-backed invocations.Unlike before,
set-target
only needs to really differentiate between link names.This commit updates
set-target
to perform differentiate between link names, building on the work already done to introduce more opaque targeting via Component IDs. -
record polyfilled component imports
-
fix custom interface support and tests
-
remove module support
-
add resource handling stubs
-
support composite types
-
support composite Wasmtime type reflection in polyfills
-
add (most of) custom interface plumbing
-
Adds some additional context around test failures I was seeing
-
Adds support for actor config This is a fairly large PR because it is adding several new control interface topics as well as actually adding the actor config feature.
This feature was motivated by 2 major reasons:
- We have been needing something like this for a while, at the very least for being able to configure link names in an actor at runtime
- There aren't currently any active (yes there were some in the past) efforts
to add a generic
wasi:cloud/guest-config
interface that can allow any host to provide config values to a component. I want to use this as a springboard for the conversation in wasi-cloud as we will start to use it and can give active feedback as to how the interface should be shaped
- make claims optional (at least for now)
- add streaming support to
wasmcloud:bus
- rename
wasmcloud_host
->wasmcloud_runtime
- remove all
wasmcloud-interface-*
usages - add support for
command
executables (I/O actors) - add local lattice proving the concept, which is used for testing of the feature
- implement an actor instance pool
- generate crate changelogs
- limit max execution time to 10 minutes
- update to Wasmtime 20
- generate crate changelogs
- count epoch in a separate OS thread
- propagate
max_execution_time
to the runtime
-
rustdoc spelling
-
fix
link_name
functionality, reorganize tests -
correct name and data streaming, update WIT
-
do not polyfill wasi:blobstore interfaces
-
do not polyfill wasi cloud interfaces
-
improve target lookup error handling
-
add messaging triggered test actor This commit is the culmination of a few things that were required for getting our flavor of E2E tests (in the top level
tests/
dir) working for a Provider & Actor.This commit is quite large because it does many things:
- Adds missing implementation to bindgen for provider -> actor invocations
- clarify the instance exclusions
- update to Wasmtime 18
- update to wasmtime 17
- update to wasmtime 16 Note this uses a release branch as 16 is not out yet.
- pin blobstore to upstream rev Pin until WebAssembly/wasi-blobstore#14 merged
- bump crate versions
- bump to
0.79.0
- update dependencies
- switch to upstream
wasi:blobstore
- update WIT dependencies
- update to Wasmtime 12
- update WIT dependencies
This fixes
poll-oneof
mismatch - update dependencies
- wascap::jwt::Actor -> wascap::jwt::Component
- link actors on creation
- improve WASI linking error
- remove instance pooling
- reduce verbosity on actor logs
- component instantiation error message
- split interface implementations into separate modules
- replicate component test in modules and compat
- Removes old guest config and uses runtime config instead
Most of the changes are related to wit updates, but this removes the
guest config from
wasmcloud:bus
and pulls downwasi:config
in its place - convert to
wrpc:blobstore
- use
wasmcloud:messaging
in providers Also implement statically invoking thehandler
on components in the host - support interface link put, component spec
- Updates topics to the new standard This is a wide ranging PR that changes all the topics as described in #1108. This also involved removing the start and stop actor operations. While I was in different parts of the code I did some small "campfire rule" cleanups mostly of clippy lints and removal of clippy pedant mode.
- 124 commits contributed to the release over the course of 293 calendar days.
- 120 commits were understood as conventional.
- 0 issues like '(#ID)' were seen in commit messages
view details
- Uncategorized
- Updated with newest features (
0f03f1f
) - Generate crate changelogs (
f986e39
) - Count epoch in a separate OS thread (
3eb4534
) - Propagate
max_execution_time
to the runtime (a66921e
) - Limit max execution time to 10 minutes (
e928020
) - Replace references to 'actor' with 'component' (
7702e69
) - Update to Wasmtime 20 (
33b50c2
) - Update
wrpc:keyvalue
in providers (9cd2b40
) - Update
wasi:keyvalue
(a175419
) - Clarify the instance exclusions (
663b49e
) - Update
messaging
to0.2.0
(955a689
) - Bumps our wasmcloud wit to 1.0 (
2352092
) - Removes old guest config and uses runtime config instead (
6b2e1b5
) - Rustdoc spelling (
7abc170
) - Wascap::jwt::Actor -> wascap::jwt::Component (
468268e
) - Reenable
clippy::pedantic
(327975d
) - Update to wasmtime 19 (
023358b
) - Migrate to
wrpc:keyvalue
(f56492a
) - Fix
link_name
functionality, reorganize tests (4ed3891
) - Convert to
wrpc:blobstore
(91874e9
) - Remove unused dependencies (
1bad246
) - Correct name and data streaming, update WIT (
ccb3c73
) - Use
wasmcloud:messaging
in providers (716d251
) - Implement
wrpc:blobstore/blobstore
for FS (383b3f3
) - Do not polyfill wasi:blobstore interfaces (
bff9816
) - Implement Redis
wrpc:keyvalue/{atomic,eventual}
(614af7e
) - Implement
wasi:http/outgoing-handler
provider (e0dac9d
) - Remove compat crate (
f2aed15
) - Do not polyfill wasi cloud interfaces (
c8f26b8
) - Update WIT dependencies (
5e45723
) - Support p1 module execution (
0c5aee7
) - Improve target lookup error handling (
149f98b
) - Add messaging triggered test actor (
0f6a1eb
) - Move CallTargetInterface to core (
0d90023
) - Support pubsub on wRPC subjects (
76c1ed7
) - Switches runtime config to use a pooling allocator (
590a494
) - Improve byte stream efficiency (
400802a
) - Do not polyfill logging (
d1c3a59
) - Tone down instrumentation level (
923c650
) - Switches modules to use pre instantiation instead (
25e3e51
) - Simplify error handling (
d61303d
) - Implement
wrpc:http/incoming-handler
(f2223a3
) - Switch to
wrpc
forwasmcloud:messaging
(0c0c004
) - Switch to
wrpc:{keyvalue,blobstore}
(5ede01b
) - Implement
wrpc:http/outgoing-handler.handle
(2463845
) - Fix clippy lints (
b83082a
) - Bindgen issues preventing builds (
e9bea42
) - Integrate set-link-name and wrpc (
4f55396
) - Change set-target to set-link-name (
5d19ba1
) - Record polyfilled component imports (
5d1590e
) - Remove
Actor
abstraction (45445a6
) - Fix custom interface support and tests (
18875a7
) - Remove module support (
fec6f5f
) - Import
wrpc-runtime-wasmtime
(22e71e5
) - Add resource handling stubs (
2193423
) - Parse package (
542427e
) - Support composite types (
eb61ce2
) - Remove
wit-component
dep (6678fea
) - Appease Clippy (
9dc14c5
) - Support composite Wasmtime type reflection in polyfills (
da6e2b3
) - Update to Wasmtime 18 (
03c9d1c
) - Support interface link put, component spec (
5af1138
) - Add (most of) custom interface plumbing (
713e774
) - Updates topics to the new standard (
42d069e
) - Fix clippy warning, added ; for consistency, return directly the instance instead of wrapping the instance's components in a future (
c6fa704
) - Add comments, remove useless future::ready (
7db1183
) - Fmt (
1d3fd96
) - Fix(1365): Encapsulate in spawn instance's process in response to a nats event. Also encapsulate the .clone on the wasmtime module. After this two modification the workload spread on all core of the CPU. Relates to issue #1365 (
ba7590a
) - Switch wasi-keyvalue to
main
(eee6c73
) - Fix
wasi-keyvalue
incoming value ownership mismatch (089b895
) - Implement preview 2 interfaces (
08b8a3c
) - Update WIT packages (
a7e0e13
) - Update to wasmtime 17 (
49f3883
) - Update to wasmtime 16 (
75c0739
) - Remove logging
with
pin (8b7152a
) - Pin blobstore to upstream rev (
a278764
) - Update to Wasmtime 15 (
7a6e6a0
) - Adds some additional context around test failures I was seeing (
64d21b1
) - Adds support for actor config (
1a048a7
) - Polish tracing and logging levels (
2389f27
) - Link actors on creation (
e128173
) - Implement wasifills for simple types (
cfb66f8
) - Improve WASI linking error (
770731c
) - Merge pull request #807 from rvolosatovs/merge/wash (
f2bc010
) - Integrate
wash
into the workspace (dfad0be
) - Implement outgoing HTTP (
2e8982c
) - Return
Ready
on trailers (c555bab
) - Bump crate versions (
d163240
) - Update to Wasmtime 14 and latest WIT (
831e901
) - Resolve 1.73.0 warnings (
93c0981
) - Reduce verbosity of instrumented functions (
0023f7e
) - Bump to
0.79.0
(578c72d
) - Mark non-exhaustive Debug impls as such (
099ebcd
) - Update dependencies (
22276ff
) - Remove instance pooling (
017e6d4
) - Allow namespaces with slashes (
1829b27
) - Include context on host errors (
0e6e2da
) - Reduce verbosity on actor logs (
6c42d5c
) - Properly handle
path_with_query
(b13a50c
) - Add support for call aliases (
123cb2f
) - Remove noisy fields from instruments (
4fb8206
) - Support chunking and dechunking of requests (
813ce52
) - Switch to upstream
wasi:blobstore
(3179982
) - Implement
wasi:blobstore
(bef159a
) - Switch to wasmCloud messaging WIT (
a82847f
) - Update WIT dependencies (
083f8e8
) - Partially implement
wasi:keyvalue/atomic
(d434e14
) - Component instantiation error message (
b5aac8e
) - Update to Wasmtime 12 (
1f3448e
) - Implement
wasmcloud:http/incoming-handler
support (50d0ed1
) - Replicate component test in modules and compat (
5f92225
) - Move builtin smithy structs to
compat
(54f0afa
) - Implement link names and a2a calls (
2e3bd2b
) - Implement
wasmcloud:messaging/consumer
support (77d663d
) - Implement
wasi:keyvalue/readwrite
support (02c1ddc
) - Split interface implementations into separate modules (
2540b2a
) - Introduce Blobstore trait (
9eda090
) - Update WIT dependencies (
2bb60f3
) - Implement actor -> provider linking (
4de853a
) - Provide wasmCloud interface stubs (
3ae7cce
) - Update dependencies (
cb86378
) - Merge pull request #396 from rvolosatovs/feat/provider-sdk (
6ed04f0
) - Implement linkdef add/delete (
e943eca
) - Implement data streaming (
7364dd8
)
- Updated with newest features (