Dependencies
Testing
- TODO
Async
async-std
BLAKE3
blake3
The blake3 Rust crate, which includes optimized implementations for SSE2, SSE4.1, AVX2, AVX-512, and NEON, with automatic runtime CPU feature detection on x86. The rayon feature provides multithreading.
bao
Bao is an implementation of BLAKE3 verified streaming, as described in Section 6.4 of the BLAKE3 spec. Tree hashes like BLAKE3 make it possible to verify part of a file without re-hashing the entire thing, using an encoding format that stores the bytes of the file together with all the nodes of its hash tree. Clients can stream this encoding, or do random seeks into it, while verifying that every byte they read matches the root hash. For the details of how this works, see the Bao spec.
ChaCha20
chacha20
- https://crates.io/crates/chacha20
- pure rust implementation
sodiumoxide
- https://crates.io/crates/libsodium-sys
- https://github.com/sodiumoxide/sodiumoxide
- FFI bindings to C impl
- DEPRECATED
BARE
serde
serde_bare
Argon2
rust-argon2
ust implementation of the Argon2 password hashing function.
argon2
Pure Rust implementation of the Argon2 password hashing function with support for the Argon2d, Argon2i, and Argon2id algorithmic variants
argon2-async
This crate provides a relatively nice async wrapper for the argon2 crate.
DAG
daggy
A directed acyclic graph data structure library. It is Implemented on top of petgraph's Graph data structure and attempts to follow similar conventions where suitable.
hirpdag
Library and procedural macros for Hash Consed, Immutable, Reference Counted, Persistent, Directed Acyclic Graph data structures.
granite
Generic backing storage framework for building data structures.
Storage
rkv
- https://crates.io/crates/rkv
- with an LMDB backend
- supports serde for encoding/decoding of values
- issues
- see also
The rkv Rust crate is a simple, humane, typed key-value storage solution. It supports multiple backend engines with varying guarantees, such as LMDB for performance, or "SafeMode" for reliability.
lmdb-rkv
Idiomatic and safe APIs for interacting with the Symas Lightning Memory-Mapped Database (LMDB).
This repo is a fork of danburkert/lmdb-rs (lmdb crate) with fixes for issues encountered by mozilla/rkv.
lmdb-zero
lmdb-zero is a near-zero-cost wrapper around LMDB designed to allow using the full range of features offered by LMDB while keeping it reasonably easy to write safe programs.
lmdb-zero is as much as possible a 1:1 mapping of the raw API, mainly providing RAII constructs and integration into Rust's borrow checker to ensure safety.
sled
PubSub
circulate
bus_queue
flo_stream
inactive
tari_pubsub
- https://crates.io/crates/tari_pubsub
- archived
- uses async
- uses tari_broadcast_channel
- fork of bus_queue
- also archived
pubsub
- https://crates.io/crates/pubsub
- not maintained/developed anymore
- uses threads
Networking
quinn
darkfi
- https://github.com/darkrenaissance/darkfi
- TCP+TLS transport
libp2p
qp2p
does not allow client authentication