Crates.io | cyphernet |
lib.rs | cyphernet |
version | 0.5.2 |
source | src |
created_at | 2023-01-16 12:05:30.022856 |
updated_at | 2024-05-06 18:38:53.619256 |
description | Cyphernet is a set of libraries for privacy-preserving networking apps |
homepage | https://cyphernet.org |
repository | https://github.com/Cyphernet-DAO/rust-cyphernet |
max_upload_size | |
id | 760127 |
size | 192,169 |
This repository provides a set of libraries for privacy-preserving networking & internet applications written in rust.
The set of libraries supports mix networks (Tor, I2P, Nym), proxies, end-to-end encryption without central authorities/PKI (Noise-based encryption protocols like lightning wire protocol, NTLS etc).
Name: cyphernet
Type: Library
Kind: Free software
License: Apache-2.0
Language: Rust
Compiler: 1.65
Author: Maxim Orlovsky
Maintained: Cyphernet DAO, Switzerland
Maintainers:
Maxim Orlovsky:
GitHub: @dr-orlovsky
GPG: EAE730CEC0C663763F028A5860094BAF18A26EC9
SSH: BoSGFzbyOKC7Jm28MJElFboGepihCpHop60nS8OoG/A
EMail: dr@orlovsky.ch
Alexis Sellier:
GitHub: @cloudhead
SSH: iTDjRHSIaoL8dpHbQ0mv+y0IQqPufGl2hQwk4TbXFlw
The library provides three main components, structured as modules:
cypheraddr
), which allow simple use of
noise-framework
) for end-to-end
encrypted network communications.socks5-client
) for accessing Tor and other
mixnets via proxy.All the components has a minimal set of non-optional dependencies and short compile times. For instance, SOCKS5 proxy and cyphernet addresses both have zero non-optional dependencies.
The library tries to minimize number of dependencies. Most of its functionality is available via non-default features, like:
noise
: support for noise protocols;mixnets
: supports for mixnet network addresses, including tor
, nym
,
i2p
(may require additional crypto libraries for parsing public keys);serde
: encoding for addresses types;dns
: enable use of DNS names alongside IP addresses and mixnet names.Network addresses provided by the library include the following types:
InetHost
- IP addr or DNS name
HostName
- IP, DNS, Tor, I2P, Nym host name (no port or proxy information)
NetAddr
- any type of host name + port information
PartialAddr
- any type of host name + optional port, which defaults to
generic const if not provided
PeerAddr
- any of the above addresses + node public key for authentication
ProxiedHost
- host name + proxy (there are IP/DNS w/o proxy and with proxy)
ProxiedAddr
- any of the above addresses + proxy (thus IP/DNS is always
proxied)
API reference documentation for the library can be accessed at https://docs.rs/cyphernet/.
Cyphernet is a conceptual approach for a privacy-preserving networking, based on the following stack of layers:
The libraries are distributed on the terms of Apache 2.0 opensource license. See LICENCE file for the license details.