#blockchain #data-stream

fuel-streams-core

Core components for working with streams of Fuel blockchain data

9 releases

new 0.0.12 Nov 21, 2024
0.0.11 Oct 15, 2024
0.0.10 Sep 27, 2024
0.0.6 Aug 29, 2024

#45 in #cryptocurrencies

Download history 266/week @ 2024-08-22 186/week @ 2024-08-29 486/week @ 2024-09-05 41/week @ 2024-09-12 17/week @ 2024-09-19 194/week @ 2024-09-26 11/week @ 2024-10-03 108/week @ 2024-10-10 37/week @ 2024-10-17 2/week @ 2024-10-24 5/week @ 2024-10-31 3/week @ 2024-11-07

99 downloads per month
Used in fuel-streams

Apache-2.0

160KB
2K SLoC


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:

[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.

Dependencies

~39–53MB
~1M SLoC