Skip to main content

Crate decdn_protocol

Crate decdn_protocol 

Source
Expand description

Wire protocol types, ALPN identifiers, and message definitions for deCDN.

This is the leaf crate in the dependency graph — it has minimal dependencies and defines the shared vocabulary used by all other deCDN crates.

Re-exports§

pub use client::BINDING_SIG_LEN;
pub use client::CHUNK_BYTES;
pub use client::ChunkData;
pub use client::ChunkPreimage;
pub use client::ClientBinding;
pub use client::ClientMessage;
pub use client::MAX_CHAIN_LENGTH;
pub use client::MB_BYTES;
pub use client::StreamError;
pub use client::StreamRequest;
pub use client::StreamRequestExt;
pub use client::StreamResponse;
pub use client::StreamResponseBody;
pub use client::StreamResponseExt;
pub use client::VOUCHER_SIG_LEN;
pub use client::Voucher;
pub use client::VoucherRejectReason;
pub use client::encode_chunk_frame;
pub use client::encode_stream_request;
pub use client::encode_stream_response;
pub use client::parse_stream_request_ext;
pub use client::parse_stream_response_ext;
pub use coverage::Coverage;
pub use coverage::DISCOVERY_BLOCK_BYTES;
pub use coverage::discovery_block_bytes;
pub use coverage::num_blocks;
pub use dht::BatchStoreAck;
pub use dht::BatchStoreRequest;
pub use dht::CloserNodes;
pub use dht::CloserNodesError;
pub use dht::DhtMessage;
pub use dht::FindNodeRequest;
pub use dht::FindNodeResponse;
pub use dht::FindValueRequest;
pub use dht::FindValueResponse;
pub use dht::FindValueResponseExt;
pub use dht::MAX_BATCH_STORE_HASHES;
pub use dht::MAX_CLOSER_NODES;
pub use dht::MAX_PROVIDERS_PER_HASH;
pub use dht::StoreAck;
pub use dht::StoreRequest;
pub use dht::StoreRequestExt;
pub use dht::encode_find_value_response;
pub use dht::encode_store_request;
pub use dht::parse_find_value_response_ext;
pub use dht::parse_store_request_ext;
pub use framing::FrameError;
pub use framing::MAX_MESSAGE_SIZE;
pub use framing::TopLevelEnum;
pub use framing::decode_message;
pub use framing::encode_message;
pub use framing::is_unknown_variant;
pub use framing::read_frame;
pub use framing::write_frame;
pub use identity::ContentHash;
pub use identity::ID_LEN;
pub use identity::NodeId;
pub use message::MAX_RATE_PER_MB;
pub use message::MessageValidationError;
pub use message::ProbeMessage;
pub use message::ProbeRequest;
pub use message::ProbeResponse;
pub use message::ProbeResponseBody;
pub use message::ProbeResponseExt;
pub use message::SLASH_SIG_LEN;
pub use message::encode_probe_response;
pub use message::parse_probe_response_ext;
pub use region::InvalidRegion;
pub use region::Region;
pub use region::is_valid_region;

Modules§

client
Wire message payload types for the cdn/client/v1 paid-delivery protocol.
coverage
Range-keyed block coverage bitmap (ADR 039-adjacent partial-holder discovery).
dht
Wire message types for the cdn/dht/v1 Kademlia content DHT (ADR 022).
framing
Length-prefixed wire framing for deCDN ALPNs (ADR 013).
identity
Strongly-typed 32-byte identity newtypes for the deCDN wire protocol.
message
Wire message payload types for deCDN ALPN protocols.
region
ISO 3166-1 alpha-2 region-code validation.

Constants§

ALPN_CLIENT
ALPN protocol identifier for paid blob delivery (client-to-node and node-to-node).
ALPN_DHT
ALPN protocol identifier for Kademlia-based content discovery (ADR 022).
ALPN_PROBE
ALPN protocol identifier for latency and availability probing.
APP_ERR_RATE_LIMITED
Connection rejected by the per-source or global rate limiter (ADR 013 §0x10).