Expand description
Β§π About The Project
Fuel Streams Core is a library for building data streaming applications on the Fuel blockchain. It provides tools for efficient handling of real-time blockchain data, using NATS for scalable streaming and offering support for Fuel-specific data types.
[!NOTE] This crate is specifically modeled for the Fuel Data Systems project, and is not intended for general use outside of the project.
Β§π οΈ Installing
Add this dependency to your Cargo.toml
:
[dependencies]
fuel-streams-core = "*"
Β§π Usage
Hereβs a simple example to get you started with Fuel Streams Core:
use fuel_streams_core::prelude::*;
use futures::StreamExt;
#[tokio::main]
async fn main() -> BoxedResult<()> {
// Connect to NATS server
let opts = NatsClientOpts::new("nats://localhost:4222");
let client = NatsClient::connect(&opts).await?;
// Create a stream for blocks
let stream = Stream::<Block>::new(&client).await;
// Subscribe to the stream
let wildcard = BlocksSubject::wildcard(None, None); // blocks.*.*
let mut subscription = stream.subscribe(&wildcard).await?;
// Process incoming blocks
while let Some(bytes) = subscription.next().await {
let block = Block::decode_raw(bytes.unwrap()).await;
dbg!(block);
}
Ok(())
}
Β§π€ Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
For more information on contributing, please see the CONTRIBUTING.md file in the root of the repository.
Β§π License
This repo is licensed under the Apache-2.0
license. See LICENSE
for more information.
Re-exports§
pub use stream::*;