17 releases
new 0.0.25 | Feb 13, 2025 |
---|---|
0.0.24 | Feb 5, 2025 |
0.0.23 | Jan 29, 2025 |
0.0.16 | Dec 28, 2024 |
0.0.6 | Aug 29, 2024 |
#61 in #cryptocurrencies
606 downloads per month
Used in 2 crates
495KB
11K
SLoC
📝 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 fuel_streams_store::db::*;
use fuel_message_broker::*;
use futures::StreamExt;
#[tokio::main]
async fn main() -> anyhow::Result<()> {
// Connect to NATS server
let db = Db::new(DbConnectionOpts::default()).await?;
let broker = NatsMessageBroker::setup("nats://localhost:4222", None).await?;
// Create or get existing stream for blocks
let stream = Stream::<Block>::get_or_init(&broker, &db.arc()).await;
// Subscribe to the stream
let subject = BlocksSubject::new(); // blocks.*.*
let mut subscription = stream.subscribe(subject, DeliverPolicy::New).await;
// Process incoming blocks
while let Some(block) = subscription.next().await {
println!("Received block: {:?}", 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.
Dependencies
~210MB
~4M SLoC