quicknode_cascade/lib.rs
1//! # quicknode-cascade
2//!
3//! Stream blockchain data at scale. Plugin-based framework powered by
4//! [QuickNode Cascade](https://cascade.quiknode.io) — an edge-cached block archive
5//! served from 300+ global PoPs with sub-50ms latency.
6//!
7//! Currently supports **Solana**. More chains coming soon.
8//!
9//! ## Quick Start
10//!
11//! ```rust,no_run
12//! use quicknode_cascade::{CascadeRunner, solana};
13//!
14//! struct MyPlugin;
15//!
16//! impl solana::Plugin for MyPlugin {
17//! fn name(&self) -> &'static str { "my-plugin" }
18//!
19//! fn on_block<'a>(&'a self, block: &'a solana::BlockData) -> solana::PluginFuture<'a> {
20//! Box::pin(async move {
21//! println!("slot {} — {} txs", block.slot, block.transaction_count);
22//! Ok(())
23//! })
24//! }
25//! }
26//!
27//! CascadeRunner::solana_mainnet()
28//! .auth_token("your-jwt-token")
29//! .backfill(400_000_000, 400_000_010)
30//! .with_plugin(Box::new(MyPlugin))
31//! .run()
32//! .expect("done");
33//! ```
34
35pub mod solana;
36pub mod plugins;
37
38pub(crate) mod source;
39pub(crate) mod cursor;
40mod runner;
41
42pub use runner::CascadeRunner;