ethos-bitcoind

Crates.ioethos-bitcoind
lib.rsethos-bitcoind
version30.2.0
created_at2026-01-25 22:20:38.199569+00
updated_at2026-01-25 22:20:38.199569+00
descriptionGenerated client for ethos-bitcoind.
homepagehttps://github.com/nervana21/ethos
repositoryhttps://github.com/nervana21/ethos
max_upload_size
id2069708
size759,469
nervana21 (nervana21)

documentation

https://docs.rs/ethos-bitcoind

README

ethos-bitcoind

License: CC0-1.0 Docs.rs crates.io

A type-safe Rust client for Bitcoin Core v30.2.0 RPCs.

Why Use This?

This client aims to provide:

  • Less repetitive boilerplate
  • Easier upgrades across protocol versions
  • Compile-time type checks for RPC requests/responses
  • Managed integration testing (spawns protocol daemons as subprocesses, handles ports)

Project Structure

  • client_trait/: Rust traits for Bitcoin Core RPC endpoints
  • node/: Node manager for process orchestration in integration environments
  • bitcoin_core_clients/: Utilities for driving integration tests against spawned local nodes
  • transport/: Async transport layer with batching and error handling
  • types/: Typed response structs and enums for all RPC methods

Example

This async example (using Tokio) demonstrates integration testing with a spawned node:

[dependencies]
ethos-bitcoind = "30.2.0"
tokio = { version = "1", features = ["full"] }
#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
    let manager = crate::node::BitcoinNodeManager::new()?;
    manager.start().await?;
    let transport = manager.create_transport().await?;
    let client = crate::BitcoinTestClient::new(transport);
    let result = client.getblockchaininfo().await?;
    println!("Blockchain info: {:?}", result);
    manager.stop().await?;
    Ok(())
}

Requirements

Requires a working bitcoind in $PATH.

About

This crate is generated by ethos. Its code is kept synchronized with upstream protocol changes through code generation.

Contributing

See CONTRIBUTING.md.

License

Ethos is released under the terms of the CC0-1.0 license. See LICENSE for details.

Security

This library launches Bitcoin Core daemons for local integration testing. For real network use, use strong network/firewall controls and carefully audit all dependencies.

Commit count: 67

cargo fmt