7个版本 (4个破坏性更新)
0.5.2 | 2024年5月6日 |
---|---|
0.5.1 | 2024年5月6日 |
0.4.1 | 2023年9月5日 |
0.3.0 | 2023年5月19日 |
0.1.0 | 2023年1月16日 |
#335 在 网络编程
每月562次下载
用于13个crates(4个直接使用)
275KB
2K SLoC
Cyphernet:隐私保护网络和互联网应用
此仓库提供了一组用Rust编写的隐私保护网络和互联网应用的库。
该库支持混合网络(Tor、I2P、Nym)、代理、无需中心权威/PKI的端到端加密(基于闪电线协议、NTLS等基于噪声的加密协议)。
清单
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: [email protected]
Alexis Sellier:
GitHub: @cloudhead
SSH: iTDjRHSIaoL8dpHbQ0mv+y0IQqPufGl2hQwk4TbXFlw
概览
该库提供三个主要组件,以模块的形式组织
- 网络地址(子crate
cypheraddr
),允许简单使用- Tor、Nym、I2P和其他混合网络以及SOCKS代理
- 带有节点公钥的P2P地址
- 可以使用防止使用DNS名称(在混合网络范围之外)的方式。
- 噪声协议框架(子crate
noise-framework
)用于端到端加密网络通信。 - SOCKS5客户端(子crate
socks5-client
)通过代理访问Tor和其他混合网络。
所有组件都有一组最小数量的非必需依赖项和较短的编译时间。例如,SOCKS5代理和cyphernet地址都没有非必需依赖项。
该库试图最小化依赖项的数量。大多数功能都可通过非默认功能获得,例如
noise
:支持噪声协议;mixnets
:支持混合网络地址,包括tor
、nym
、i2p
(可能需要额外的加密库来解析公钥);serde
:地址类型的编码;dns
:启用与IP地址和混合网络名称一起使用DNS名称。
库提供的网络地址包括以下类型
InetHost
- IP地址或DNS名称HostName
- IP、DNS、Tor、I2P、Nym 主机名(无端口或代理信息)NetAddr
- 任何类型的主机名 + 端口信息PartialAddr
- 任何类型的主机名 + 可选端口,如果未提供则默认为通用常量PeerAddr
- 以上任何地址 + 节点公钥进行认证ProxiedHost
- 主机名 + 代理(有带代理和不带代理的 IP/DNS)ProxiedAddr
- 以上任何地址 + 代理(因此 IP/DNS 总是代理的)
文档
该库的 API 参考文档可在 https://docs.rs/cyphernet/ 查找。
关于 Cyphernet
Cyphernet 是一种基于以下层级的隐私保护网络的概念性方法
许可
库在 Apache 2.0 开源许可的条款下分发。请参阅 LICENCE 文件了解许可详情。
依赖
~0.5–2.2MB
~34K SLoC