hopr-api 1.10.0

Common high-level external and internal API traits used by hopr-lib to implement the HOPR protocol
Documentation

hopr-api

Crates.io docs.rs Security License MSRV Crates.io Downloads

Common high-level API traits for the HOPR protocol.

This crate defines the public API surface as traits only — no concrete implementations. Implementations live in the main hoprnet repository.

Getting started

Choose the smallest feature set you need:

[dependencies]
hopr-api = { version = "1.7.0", features = ["chain", "network"] }

or enable the complete API surface:

[dependencies]
hopr-api = { version = "1.7.0", features = ["full"] }

Then import the traits your component implements:

use hopr_api::chain::{ChainReadAccountOperations, ChainValues};
use hopr_api::network::NetworkView;

Modules

All modules are feature-gated:

Feature Module Description
chain chain On-chain operation APIs (accounts, channels, tickets…)
ct ct Cover traffic and probing API traits
graph graph Network graph topology, QoS, routing costs
network network Network state, peer observations, connectivity
node node High-level HOPR node API traits and state machine
node-session-client node::session Session client for establishing HOPR sessions
node-session-server node::session Session server for processing incoming sessions
tickets tickets Winning ticket management and redemption
full all Enables all of the above + serde

Usage

[dependencies]
hopr-api = { version = "1.7.0", features = ["full"] }

Development

Requires Nix with flakes enabled.

# Enter development shell
nix develop

# Build
cargo build

# Test
cargo test --lib

# Lint
cargo clippy

# Format
nix fmt

License

GPL-3.0-only