forked from
microcosm.blue/microcosm-rs
Constellation, Spacedust, Slingshot, UFOs: atproto crates and services for microcosm
fork of the awesome jetstream-oxide#
fork note: this readme is likely a bit out of date! i've been messing around with some apis.
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!
Running rustfmt (requires nightly)#
# get nightly set up
rustup toolchain install nightly --allow-downgrade -c rustfmt
# run the nightly version of fmt
cargo +nightly fmt