#selium #switchboard #messaging #virtualization #module

selium-switchboard-protocol

Selium module for abstracting channel management and messaging patterns

5 unstable releases

Uses new Rust 2024

0.4.2 Feb 3, 2026
0.4.1 Jan 30, 2026
0.4.0 Jan 28, 2026
0.2.0 Jan 21, 2026
0.1.0 Jan 13, 2026

#775 in WebAssembly

Download history 32/week @ 2026-01-15 16/week @ 2026-01-22 30/week @ 2026-01-29 30/week @ 2026-02-05

73 downloads per month
Used in 3 crates (2 directly)

MPL-2.0 license

100KB
2.5K SLoC

Switchboard

The switchboard service provides an orchestration layer on top of core I/O. It provides realtime rationalising of channel infrastructure as the environment changes (e.g. a new subscriber being created, or a service being shut down), as well as a more ergonomic messaging library.

Crate structure

This service has 4 crates:

  • selium-switchboard (client/) - client library that guests consume
  • selium-switchboard-core (core/) - core logic
  • selium-switchboard-protocol (protocol/) - wire protocol
  • selium-switchboard-server (server/) - WASM module run by the host

Usage

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

cargo build --release --target wasm32-unknown-unknown -p selium-switchboard-server
cp target/wasm32-unknown-unknown/release/selium_switchboard_server.wasm /path/to/selium-runtime/work/modules/

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

selium-runtime \
  --work-dir /path/to/selium-runtime/work \
  --module "path=selium_switchboard_server.wasm;capabilities=ChannelLifecycle,ChannelReader,ChannelWriter,SingletonRegistry"

Dependencies

~0.3–2MB
~44K SLoC