Skip to content

A typed Rust library for easily interacting with and consuming the Bluesky Jetstream service.

License

Notifications You must be signed in to change notification settings

videah/jetstream-oxide

Repository files navigation

jetstream-oxide

Crate docs.rs

A typed Rust library for easily interacting with and consuming the Bluesky Jetstream service.

let config = JetstreamConfig {
    endpoint: DefaultJetstreamEndpoints::USEastOne.into(),
    compression: JetstreamCompression::Zstd,
    ..Default::default()
};

let jetstream = JetstreamConnector::new(config).unwrap();
let receiver = jetstream.connect().await?;

while let Ok(event) = receiver.recv_async().await {
    if let Commit(commit) = event {
        match commit {
            CommitEvent::Create { info, commit } => {
                println!("Received create event: {:#?}", info);
            }
            CommitEvent::Update { info, commit } => {
                println!("Received update event: {:#?}", info);
            }
            CommitEvent::Delete { info, commit } => {
                println!("Received delete event: {:#?}", info);
            }
        }
    }
}

Example

A small example CLI utility to show how to use this crate can be found in the examples directory. To run it, use the following command:

cargo run --example basic -- --nsid "app.bsky.feed.post"

This will display a real-time feed of every single post that is being made or deleted in the entire Bluesky network, right in your terminal!

You can filter it down to just specific accounts like this:

cargo run --example basic -- \
--nsid "app.bsky.feed.post" \
--did "did:plc:inze6wrmsm7pjl7yta3oig77"

This listens for posts that I personally make. You can substitute your own DID and make a few test posts yourself if you'd like of course!

About

A typed Rust library for easily interacting with and consuming the Bluesky Jetstream service.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages