6 releases

Uses new Rust 2024

new 0.3.3 Apr 10, 2026
0.3.2 Feb 3, 2026
0.3.1 Jan 30, 2026
0.2.1 Jan 21, 2026
0.1.0 Jan 12, 2026

#1134 in Development tools


Used in selium-remote-cli

MPL-2.0 license

200KB
5K SLoC

Remote Client module

Provides users with a client library and CLI for orchestrating Selium applications and servers from afar.

Crate structure

This service has 4 crates:

  • selium-remote-client-cli (cli/) - CLI binary for executing commands via the selium-remote-client lib
  • selium-remote-client (client/) - client library that guests consume
  • selium-remote-client-protocol (protocol/) - wire protocol
  • selium-remote-client-server (server/) - WASM module run by the host

Usage

Compile the selium-remote-client-server component to WebAssembly and install in the Runtime's work directory:

cargo build --release --target wasm32-unknown-unknown -p selium-remote-client-server
cp target/wasm32-unknown-unknown/release/selium_remote_client_server.wasm /path/to/selium-runtime/work/modules/

The selium-remote-client-server component should be added to the Selium Runtime's initialisation args:

selium-runtime \
  --work-dir /path/to/selium-runtime/work \
  --module "path=selium_remote_client_server.wasm;capabilities=ChannelLifecycle,ChannelReader,ChannelWriter,ProcessLifecycle,NetQuicBind,NetQuicAccept,NetQuicRead,NetQuicWrite;args=utf8:localhost,u16:7000"

Capabilities

The CLI accepts the following capability names:

SessionLifecycle, ChannelLifecycle, ChannelReader, ChannelWriter, ProcessLifecycle,
NetQuicBind, NetQuicAccept, NetQuicConnect, NetQuicRead, NetQuicWrite,
NetHttpBind, NetHttpAccept, NetHttpConnect, NetHttpRead, NetHttpWrite,
NetTlsServerConfig, NetTlsClientConfig, SingletonRegistry, SingletonLookup, TimeRead

Dependencies

~18–34MB
~495K SLoC