Skip to content

nervana21/ethos

Repository files navigation

License: CC0-1.0

Ethos

A formal RPC description for type-safe Rust clients

Why Ethos?

Recent discussion has suggested a renewed interest in a formal description of the RPC API surface. The Bitcoin Core RPC surface is the predominant means through which external clients query the blockchain. As tooling continues to depend on RPC behavior, the need for and benefits from a behavioral specification are likely to increase.

Ethos is a PoC for the capabilities of such a specification. Other comprehensive specifications may be adapted to.

Architecture

SchemaIRcodegen

Getting Started

Prerequisites

  1. Rust (edition 2021, rust-version 1.70+)
  2. just command runner (install with cargo install just)
  3. Protocol executable (for integration tests): bitcoind (Bitcoin Core)

Quick Start

Run the complete code generation workflow:

just generate

This will generate a Bitcoin Core client library from the IR file (resources/ir/bitcoin.ir.json).

Contributing

Contributors are warmly welcome, see CONTRIBUTING.md.

License

CC0-1.0

Security

This is experimental software in active development. Please use appropriate caution.

About

A meta-compiler for The Bitcoin Protocol

Topics

Resources

License

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors