1 stable release
1.4.0 | Jun 23, 2024 |
---|
#14 in #zmq
59KB
1.5K
SLoC
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
andzmq
, optionally 2 additional crates are needed for the async subscriber,async_zmq
andfutures-util
. - Handles all message types from Bitcoin Core:
hashblock
,hashtx
,block
,tx
andsequence
. - 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 3 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 (bitcoincore-rpc PR: #295) - raw messages
- zmq publisher
- include source in message
Dependencies
~7–9.5MB
~120K SLoC