IRPC
A streaming rpc system for iroh
Goals
See the module docs.
Feature flags
| Feature | Default | Description |
|---|---|---|
rpc |
yes | Remote transport over noq. Without it, irpc only has in-process channels. |
iroh |
yes | Remote transport over iroh. Enables rpc. |
stream |
yes | Convert channels to Stream and Sink. |
derive |
yes | The rpc_requests macro. |
noq_endpoint_setup |
no | Helpers to create noq endpoints, for tests and for rpc on localhost. |
varint-util |
no | Varint helpers in irpc::util, without rpc. |
tracing-subscriber-03 |
no | Span propagation to the remote, with a layer for tracing-subscriber 0.3. irpc-opentelemetry enables it. |
Docs
Properly building docs for this crate is quite complex. For all the gory details, see [DOCS.md].
Development
Run cargo make format before committing, it will run cargo fmt with the arguments expected by this project.
License
Copyright 2026 N0, INC.
This project is licensed under either of
- Apache License, Version 2.0, (LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0)
- MIT license (LICENSE-MIT or http://opensource.org/licenses/MIT)
at your option.
Contribution
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in this project by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.