Logo

Fuel Streams Core

The core library for data streaming in the Fuel Data Systems project.

CI Coverage Crates.io MSRV crates.io docs

📚 Documentation   🐛 Report Bug   ✨ Request Feature

## 📝 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`: ```toml [dependencies] fuel-streams-core = "*" ``` ## 🚀 Usage Here's a simple example to get you started with Fuel Streams Core: ```rust,no_run 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::::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](../../CONTRIBUTING.md) file in the root of the repository. ## 📜 License This repo is licensed under the `Apache-2.0` license. See [`LICENSE`](../../LICENSE) for more information.