Skip to main content

🌊 SeaStreamer is a stream processing toolkit to help you build stream processors in Rust


SeaStreamer provides an async API, and it supports both 'tokio' and 'async-std'. In tandem with other async Rust libraries, you can build highly concurrent stream processors.


We provide integration for Redis & Kafka / Redpanda behind a generic trait interface, so your program can be backend-agnostic.


SeaStreamer also provides a set of tools to work with streams via unix pipes, so it is testable without setting up a cluster, and extremely handy when working locally.

Micro-service Oriented

Let's build real-time (multi-threaded, no GC), self-contained (aka easy to deploy), low-resource-usage, long-running stream processors in Rust!

A quick taste of SeaStreamer

Here is a basic stream consumer, full example:

async fn main() -> Result<()> {
let Args { stream } = Args::from_args();
let streamer = SeaStreamer::connect(stream.streamer(), Default::default()).await?;
let mut options = SeaConsumerOptions::new(ConsumerMode::RealTime);
let consumer: SeaConsumer = streamer
.create_consumer(stream.stream_keys(), options)
loop {
let mess: SeaMessage =;
println!("[{}] {}", mess.timestamp(), mess.message().as_str()?);

Meet Terres, our official mascot

A friend of Ferris, Terres the hermit crab is a member of the Rustacean family.