https://github.com/cyphernet-labs/cyphernet.rs
Cyphernet is a set of libraries for privacy-preserving networking apps
https://github.com/cyphernet-labs/cyphernet.rs
cyphernet cypherpunk i2p noise-framework noise-protocol nym privacy rust tor
Last synced: 4 months ago
JSON representation
Cyphernet is a set of libraries for privacy-preserving networking apps
- Host: GitHub
- URL: https://github.com/cyphernet-labs/cyphernet.rs
- Owner: cyphernet-labs
- License: apache-2.0
- Created: 2022-10-07T22:50:31.000Z (over 3 years ago)
- Default Branch: master
- Last Pushed: 2025-04-10T18:50:34.000Z (about 1 year ago)
- Last Synced: 2026-01-11T11:42:09.192Z (6 months ago)
- Topics: cyphernet, cypherpunk, i2p, noise-framework, noise-protocol, nym, privacy, rust, tor
- Language: Rust
- Homepage:
- Size: 464 KB
- Stars: 56
- Watchers: 2
- Forks: 9
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- Funding: .github/FUNDING.yml
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
- Security: SECURITY.md
Awesome Lists containing this project
README
# Cyphernet: privacy-preserving networking & internet applications



[](https://codecov.io/gh/Cyphernet-DAO/rust-cyphernet)
[](https://crates.io/crates/cyphernet)
[](https://docs.rs/cyphernet)
[](./LICENSE)
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).
## Overview
The library provides three main components, structured as modules:
- **Network addresses** (sub-crate `cypheraddr`), which allow simple use of
- Tor, Nym, I2P and other mix networks and SOCKS proxies
- P2P addresses with node public keys
- May be used in a way that prevents using DNS names (outside mixnet scope).
- **Noise protocol framework** (sub-crate `noise-framework`) for end-to-end
encrypted network communications.
- **SOCKS5 client** (sub-crate `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)
## Documentation
API reference documentation for the library can be accessed at
.
## About cyphernet
Cyphernet is a conceptual approach for a privacy-preserving networking, based on
the following stack of layers:

## Licensing
The libraries are distributed on the terms of Apache 2.0 opensource license.
See [LICENCE](LICENSE) file for the license details.