Skip to content

ruststream-pulsar

ruststream-pulsar is the Apache Pulsar broker for the RustStream messaging framework. It covers the four subscription types, multi-topic and pattern subscriptions, the consumer-side dead-letter policy, seeking over the retained log, and ships an in-process test broker under its testing feature.

Handlers, routers, codecs, and middleware come from the framework; this crate supplies the transport over the pulsar client maintained by StreamNative, and nothing broker-specific leaks back into the framework.

Building the crate requires protoc on the path, since the client compiles the Pulsar protocol definitions.

ruststream = { version = "0.6", features = ["macros", "json"] }
ruststream-pulsar = "0.6"
serde = { version = "1", features = ["derive"] }
crates/ruststream-pulsar/examples/pulsar_service.rs
#[ruststream::app]
fn app() -> impl App {
    RustStream::new(AppInfo::new("orders", "0.1.0")).with_broker(
        PulsarBroker::new("pulsar://localhost:6650"),
        |b| {
            b.include(handle);
        },
    )
}

Where to go next

  • Pulsar guide - subscription descriptors, seeking, acknowledgement, publishing, and testing.
  • RustStream docs - the framework itself: subscribers, routing, codecs, middleware, the CLI.
  • API reference - the crate's rustdoc on docs.rs.

How this site relates to the RustStream docs

This site documents the Pulsar broker 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 Pulsar and link back to the framework docs where the two meet.