Aerostream is Bluesky client using EventStream.
```rust use std::{ io::{stdout, Write}, time::Duration, };
use aerostream::Client; use anyhow::Result; use chrono::Local;
fn main() -> Result<()> {
envlogger::init();
let mut client = Client::default();
client.settimeout(5);
client.connectws()?;
loop {
for (filter, event) in client.nexteventfilteredall()?.iter() {
let Some(commit) = event.ascommit() else {
continue;
};
let posts = commit.getposttext();
if posts.isempty() {
continue;
}
let text = posts.join(" ").replace("\n", " ");
let time = commit.time.withtimezone(&Local).format("%m/%d %H:%M");
let handle = match client.getrepo(&commit.repo) {
Ok(r) => r.handle.clone(),
_ => String::from("UNKNOWN"),
};
let blobs = commit
.blobs
.iter()
.map(|b| b.tostring())
.collect::