Crates

This is an index of all of Cuprate's in-house crates it uses and maintains.

They are categorized into groups.

Crate documentation for each crate can be found by clicking the crate name or by visiting https://doc.cuprate.org. Documentation can also be built manually by running this at the root of the cuprate repository:

cargo doc --package $CRATE

For example, this will generate and open cuprate-blockchain documentation:

cargo doc --open --package cuprate-blockchain

Consensus

Networking

CrateIn-tree pathPurpose
cuprate-epee-encodingnet/epee-encoding/Epee (de)serialization
cuprate-fixed-bytesnet/fixed-bytes/Fixed byte containers backed by byte::Byte
cuprate-levinnet/levin/Levin bucket protocol implementation
cuprate-wirenet/wire/TODO

P2P

CrateIn-tree pathPurpose
cuprate-address-bookp2p/address-book/TODO
cuprate-async-bufferp2p/async-buffer/A bounded SPSC, FIFO, asynchronous buffer that supports arbitrary weights for values
cuprate-dandelion-towerp2p/dandelion-tower/TODO
cuprate-p2pp2p/p2p/TODO
cuprate-p2p-corep2p/p2p-core/TODO

Storage

CrateIn-tree pathPurpose
cuprate-blockchainstorage/blockchain/Blockchain database built on-top of cuprate-database & cuprate-database-service
cuprate-databasestorage/database/Pure database abstraction
cuprate-database-servicestorage/database-service/tower::Service + thread-pool abstraction built on-top of cuprate-database
cuprate-txpoolstorage/txpool/Transaction pool database built on-top of cuprate-database & cuprate-database-service

RPC

CrateIn-tree pathPurpose
cuprate-json-rpcrpc/json-rpc/JSON-RPC 2.0 implementation
cuprate-rpc-typesrpc/types/Monero RPC types and traits
cuprate-rpc-interfacerpc/interface/RPC interface & routing
cuprate-rpc-handlerrpc/handler/RPC inner handlers

1-off crates

CrateIn-tree pathPurpose
cuprate-cryptonightcryptonight/CryptoNight hash functions
cuprate-pruningpruning/Monero pruning logic/types
cuprate-helperhelper/Kitchen-sink helper crate for Cuprate
cuprate-test-utilstest-utils/Testing utilities for Cuprate
cuprate-typestypes/Shared types across Cuprate
Last change: 2024-09-08, commit: 0162553