This repository contains the following crates:
rgb-node
: main indexing daemon, which can be used as an embedded multi-thread service, or compiled into a standalone binary (rgbd
);rgb-client
: client to work with the daemon and a command-line utilityrgb-cli
;rgb-rpc
: a shared crate betweenrgb-node
andrgb-client
.
The node operates as a set of threads, communicating through Crossbeam channels.
It leverages microservices.rs
and netservices.rs
crates,
which serves as the node non-blocking reactor-based (see io-reactor
) microservice frameworks.
The node daemon has the following components:
- Broker, integrating all services and managing their communications;
- RPC: reactor-based thread managing incoming client connections, notifying them about changes to the subscribed information;
- ...
By default, the node exposes a binary RPC API over TCP, which can be exposed as more high-level APIs (HTTP REST, Websocket-based or JSON-RPC) using special adaptor services.
The project currently supports Linux, macOS and UNIX.
Windows support is a work-in-progress, requiring downstream io-reactor
framework changes.