bitcoincore-zmq

Crates.iobitcoincore-zmq
lib.rsbitcoincore-zmq
version1.5.2
sourcesrc
created_at2023-04-17 15:32:45.028736
updated_at2024-08-06 16:05:30.275371
descriptionBitcoin Core ZMQ subscriber with minimal dependencies
homepagehttps://github.com/antonilol/rust-bitcoincore-zmq
repositoryhttps://github.com/antonilol/rust-bitcoincore-zmq
max_upload_size
id841611
size89,758
Antoni Spaanderman (antonilol)

documentation

README

Build and test Integration tests crates.io docs.rs

Rust Bitcoin Core ZMQ Subscriber

Usage example

fn main() {
    for msg in bitcoincore_zmq::subscribe_receiver(&["tcp://127.0.0.1:28359"]).unwrap() {
        match msg {
            Ok(msg) => println!("Received message: {msg}"),
            Err(err) => println!("Error receiving message: {err}"),
        }
    }
}

For more examples, have a look in the examples directory.

Features

  • Minimal dependencies: the 2 crates bitcoin and zmq, optionally 2 additional crates are needed for the async subscriber, async_zmq and futures-util.
  • Handles all message types from Bitcoin Core: hashblock, hashtx, block, tx and sequence.
  • Flexible: choose between blocking functions with a callback, reading from a Receiver or reading from an asynchronous Stream without locking to a specific async runtime.

Testing

Tests run on every push and pull request. Integration tests use the latest version of the 5 most recent major Bitcoin Core versions, see integration_tests.yml.

Useful resources


TODO:

  • This README
  • SequenceMessage itest
  • Easy addEventListener like functionality with help of the getzmqnotifications rpc
  • raw messages
  • zmq publisher
  • include source in message
Commit count: 104

cargo fmt