Skip to content

ruststream-sea-file

ruststream-sea-file is the file and stdio transport for the RustStream messaging framework, built on sea-streamer-file and sea-streamer-stdio. A broker here is either a .ss stream file on disk (durable, replayable, shared between processes) or the process's own standard input and output.

Handlers, routers, codecs, and middleware come from the framework; this crate supplies the transport, and nothing broker-specific leaks back into the framework. There is no server anywhere in it, so it is the zero-infrastructure entry point to RustStream, and the reference implementation of the Seekable capability.

ruststream = { version = "0.6", features = ["macros", "json"] }
ruststream-sea-file = "0.6"
serde = { version = "1", features = ["derive"] }
crates/ruststream-sea-file/examples/file_service.rs
#[ruststream::app]
fn app() -> impl App {
    RustStream::new(AppInfo::new("orders", "0.1.0")).with_broker(
        FileBroker::new("/tmp/orders.ss"),
        |b| {
            b.include(handle);
        },
    )
}

Where to go next

How this site relates to the RustStream docs

This site documents the file and stdio transport only. Framework concepts that apply to every broker (writing subscribers, publishing, routing, codecs, middleware, observability, the CLI) live in the RustStream documentation. The pages here cover what is specific to this transport and link back to the framework docs where the two meet.