Hello.
I'm evaluating Wasmtime as an embedding runtime from Java through the public Wasmtime C API.
I noticed that Async Component Model support (component-model-async) appears to be available in the Rust API, including APIs such as:
Func::call_concurrent
Func::start_call_concurrent
Func::finish_call_concurrent
Store::run_concurrent
func_wrap_concurrent
- native handling of component-model
future<T> and stream<T>
At the same time, I cannot find equivalent functionality in the public C API.
From the documentation it looks like the C API currently exposes the older async mechanism based on:
wasmtime_config_async_support_set
wasmtime_func_call_async
wasmtime_call_future_t
which solves host-side asynchronous execution, but does not appear to expose the Async Component Model scheduler or guest task APIs.
Questions:
-
Is exposing Async Component Model functionality in the C API part of the current roadmap?
-
Is there already an issue tracking support for:
call_concurrent
run_concurrent
- concurrent guest Tasks
- component-model
future / stream
func_wrap_concurrent
-
Is the current recommendation for non-Rust embedders to:
- use Rust as an adapter layer and expose custom FFI,
- or wait for first-class C API support?
-
Are there known architectural blockers preventing a direct mapping of the Async Component Model APIs into the C API?
The motivation is support for WASI 0.3 style component composition from Java without introducing an intermediate Rust host layer.
Thanks.
Hello.
I'm evaluating Wasmtime as an embedding runtime from Java through the public Wasmtime C API.
I noticed that Async Component Model support (
component-model-async) appears to be available in the Rust API, including APIs such as:Func::call_concurrentFunc::start_call_concurrentFunc::finish_call_concurrentStore::run_concurrentfunc_wrap_concurrentfuture<T>andstream<T>At the same time, I cannot find equivalent functionality in the public C API.
From the documentation it looks like the C API currently exposes the older async mechanism based on:
wasmtime_config_async_support_setwasmtime_func_call_asyncwasmtime_call_future_twhich solves host-side asynchronous execution, but does not appear to expose the Async Component Model scheduler or guest task APIs.
Questions:
Is exposing Async Component Model functionality in the C API part of the current roadmap?
Is there already an issue tracking support for:
call_concurrentrun_concurrentfuture/streamfunc_wrap_concurrentIs the current recommendation for non-Rust embedders to:
Are there known architectural blockers preventing a direct mapping of the Async Component Model APIs into the C API?
The motivation is support for WASI 0.3 style component composition from Java without introducing an intermediate Rust host layer.
Thanks.