#selium #switchboard #messaging #virtualization #module

selium-switchboard

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

#358 in WebAssembly

Download history 24/week @ 2026-01-17 24/week @ 2026-01-24 38/week @ 2026-01-31 2/week @ 2026-02-07

54 downloads per month
Used in selium-atlas

MPL-2.0 license

170KB
4K 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

~14–20MB
~301K SLoC