Skip to content

Latest commit

 

History

History
134 lines (107 loc) · 10.5 KB

README.md

File metadata and controls

134 lines (107 loc) · 10.5 KB

Awesome Blockchain Rust

Collect libraries and packages about blockchain in Rust. include: cryptography, distributed, p2p, consensus and so on

Blockchain

  • CITA A high performance blockchain kernel for enterprise users.
  • CodeChain Programmable multi-asset chain.
  • Conflux The Rust implementation of Conflux protocol.
  • Exonum An extensible open-source framework for creating private/permissioned blockchain applications.
  • Grin Minimal implementation of the MimbleWimble protocol.
  • Holochain The core Holochain framework written in rust, a container API for running it (with rust and node implementations), and hdk-rust library for writing Zomes.
  • NEAR NEAR Protocol - scalable and usable blockchain.
  • Nervos CKB Nervos CKB is a public permissionless blockchain, the common knowledge layer of Nervos network.
  • Parity Bitcoin The Parity Bitcoin client.
  • Parity Ethereum The fast, light, and robust EVM and WASM client.
  • Parity Zcash Rust implementation of Zcash protocol.
  • Polkadot Polkadot Node Implementation.
  • Shasper Parity Shasper beacon chain implementation using the Substrate framework.
  • Solana Blockchain Rebuilt for Scale.
  • Witnet Open source implementation of Witnet decentralized oracle network protocol in Rust.
  • Zero-chain A privacy-preserving blockchain on Substrate.
  • Tari The Tari Digital Assets Protocol

Cryptography

Collection library

  • mesalink MesaLink is a memory safe and OpenSSL-compatible TLS library.
  • ring Safe, fast, small crypto using Rust. (curve25519, aes-gcm, sha-256, sha-384, sha-512, hmac, hkdf, pbkdf2, p-256, p-384, x25519, chacha20-poly1305, ed25519).
  • rust-crypto A (mostly) pure-Rust implementation of various cryptographic algorithms.
  • rustls A modern TLS library in Rust.
  • sodiumoxide Sodium Oxide: Fast cryptographic library for Rust (bindings to libsodium).

Symmetric cryptography

  • block-ciphers Collection of block cipher algorithms written in pure Rust. (AES, Blowfish, DES + 3DES, Kuznyechik, Magma, RC2, Twofish).
  • stream-ciphers Collection of stream cipher algorithms.

Public-key Cryptography / Asymmetric Cryptography

RSA
  • RSA RSA implementation in pure Rust. (PKCS1v1.5: Encryption & Decryption, Sign & Verify)
DH
  • x25519-dalek Fast and efficient ed25519 signing and verification in Rust. (dalek)

One-way Hash Function

  • hashes Collection of cryptographic hash functions written in pure Rust. (sha1, sha2, sha3, md4, md5, BLAKE2, RIPEMD-160, RIPEMD-320, GOST94, Grøstl, Streebog, Whirlpool)
  • tiny-keccak A tiny implementation of SHA-3, SHAKE, Keccak, and sha3sum in rust.
  • poseidon252 Starkad and Poseidon: New Hash Functions for Zero Knowledge Proof Systems.

Message Authentication Code (MAC)

  • MACs Message authentication code algorithms written in pure Rust. (CMAC, DAA, HMAC, PMAC)

Digital Signature

ECDSA
  • curve25519-dalek A pure-Rust implementation of group operations on Ristretto and Curve25519. (dalek)
  • ed25519-dalek Fast and efficient ed25519 signing and verification in Rust. (dalek)
  • signatures Cryptographic signature algorithms (e.g. ECDSA, Ed25519).
  • rust-secp256k1 Rust language bindings for Bitcoin secp256k1 library. (rust-bitcoin)
  • libsecp256k1-rs Pure Rust Implementation of secp256k1. (Wei Tang)
  • Jubjub Implementation of the Jubjub elliptic curve group.
  • BLS12-381 Implementation of the BLS12-381 pairing-friendly elliptic curve group.
  • bls Aggregatable BLS sigantures. (w3f)
Threshold Signature & Multi Party Signatures
  • multi-party-ecdsa Rust implementation of {t,n}-threshold ECDSA (elliptic curve digital signature algorithm).
  • multi-party-schnorr Rust implementation of multi-party Schnorr signatures over elliptic curves.
  • threshold_crypto A pairing-based threshold cryptosystem for collaborative decryption and signatures.

Rseudo Random Number Generator (PRNG)

  • rand A Rust library for random number generation.

Zero-Knowledge Proofs

  • bulletproofs A pure-Rust implementation of Bulletproofs using Ristretto.
  • bellman zk-SNARK library. (zcash - librustzcash).
  • bulletproofs Bulletproof Rust implementation for Aggregated Range Proofs over multiple elliptic curves.
  • rust-secp256k1-zkp ZKP fork for rust-secp256k1, adds wrappers for range proofs, pedersen commitments, etc
  • ZoKrates A toolbox for zkSNARKs on Ethereum
  • sonic a protocol for quickly verifiable, compact zero-knowledge proofs of arbitrary computations.
  • Dusk-Zerocaf Fast, efficient and bulletproof-friendly cryptographic operations.

Homomorphic Encryption

Others

  • nalgebra Linear algebra library for Rust.
  • librustzcash Rust-language assets for Zcash. (bellman-zk-SNARK, pairing-elliptic curves)
  • zexe Rust library for decentralized private computation.
  • RustySecrets A Rust implementation of threshold Shamir's secret sharing.
  • Double Ratchet Pure Rust implementation of the Double Ratchet algorithm. (communicate securely).
  • molasses A Rust implementation of the Message Layer Security group messaging protocol.
  • KDFs Collection of Key Derivation Functions written in pure Rust.
  • PAKEs Password-Authenticated Key Agreement protocols. (SRP, spake2)
  • password-hashing Password-based key derivation functions. (PBKDF2, scrypt)
  • rcmixed Mixed cryptosystem. inspired by PGP.
  • kms-secp256k1 Multi Party Key Management System (KMS) for Secp256k1 Elliptic curve based digital signatures.
  • MLSAG Multilayered Linkable Spontaneous Anonymous Group, This particular version leverages Ristretto255.
  • vdf An implementation of Verifiable Delay Functions in Rust.
  • schnorrkel Schnorr VRFs and signatures on the Ristretto group.

Consensus

  • Raft Raft distributed consensus algorithm implemented in Rust.
  • parsec Protocol for Asynchronous, Reliable, Secure and Efficient Consensus.
  • Tendermint ABCI A rust implementation of the ABCI protocol for tendermint core.
  • hbbft An implementation of the paper "Honey Badger of BFT Protocols" in Rust.

P2P Network

  • crust Reliable p2p network connections in Rust with NAT traversal. One of the most needed libraries for any server-less / decentralised projects
  • libp2p The Rust Implementation of libp2p networking stack.
  • p2p A multiplexed p2p network framework that supports custom protocols. (漂流)
  • quic-p2p peer-to-peer communications library for Rust based on QUIC protocol.
  • p2p NAT Traversal techniques for p2p communication. (Spandan Sharma)
  • chamomile p2p implement on Actor. Everything is for ease of use.
  • routing Routing - specialised storage DHT.
  • rckad Efficient and flexible S/Kademlia implementation.

Build Blockchain Infrastructure

  • Substrate Substrate: The platform for blockchain innovators.
  • slingshot A new blockchain architecture under active development, with a strong focus on scalability, privacy and safety.
  • TDN Trusted Distributed Network.

Build Dapp Tool

  • rust-eos Rust crates for building smart contracts and full-stack applications on EOSIO blockchains.
  • rust-mosaic Asynchronous, heterogeneous composition of blockchains.

Contribute

Contributions are most welcome

License

Creative Commons License

This work is licensed under a Creative Commons Attribution 4.0 International License.