pipestreamr
Rust SDK and CLI for the PipeStreamr unified events API.
Installation
cargo install pipestreamr
CLI Usage
export PIPESTREAMR_API_KEY="ps_your_key"
export PIPESTREAMR_URL="https://api.pipestreamr.com"
pipestreamr events --limit 10
pipestreamr events --type message --platform discord
pipestreamr events --type log --severity 9 --service my-app
pipestreamr event <uuid>
pipestreamr stats
pipestreamr health
Library Usage
use pipestreamr::{PipeStreamrClient, EventQuery};
#[tokio::main]
async fn main() -> Result<(), pipestreamr::Error> {
let client = PipeStreamrClient::new(
"https://api.pipestreamr.com",
"ps_your_api_key",
);
let response = client.list_events(&EventQuery {
event_type: Some("message".into()),
platform: Some("discord".into()),
limit: Some(10),
..Default::default()
}).await?;
for evt in &response.events {
println!("[{}] {}: {}",
evt.platform.as_deref().unwrap_or("?"),
evt.from_name.as_deref().unwrap_or("?"),
evt.body.as_deref().unwrap_or(""),
);
}
let logs = client.list_events(&EventQuery {
event_type: Some("log".into()),
severity: Some(13), ..Default::default()
}).await?;
for evt in &logs.events {
println!("[{}] {}",
evt.severity_text.as_deref().unwrap_or("?"),
evt.body.as_deref().unwrap_or(""),
);
}
let stats = client.stats().await?;
println!("Total messages: {}", stats.total);
Ok(())
}
License
MIT