#tor #nym #privacy #noise-protocol #cypherpunk

cyphernet

Cyphernet是一组用于隐私保护网络应用的库

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网络编程

Download history 101/week @ 2024-04-26 465/week @ 2024-05-03 101/week @ 2024-05-10 97/week @ 2024-05-17 98/week @ 2024-05-24 141/week @ 2024-05-31 156/week @ 2024-06-07 160/week @ 2024-06-14 166/week @ 2024-06-21 116/week @ 2024-06-28 86/week @ 2024-07-05 96/week @ 2024-07-12 156/week @ 2024-07-19 99/week @ 2024-07-26 117/week @ 2024-08-02 153/week @ 2024-08-09

每月562次下载
用于13个crates(4个直接使用)

Apache-2.0

275KB
2K SLoC

Cyphernet:隐私保护网络和互联网应用

Build Tests Lints codecov

crates.io Docs Apache-2 licensed

此仓库提供了一组用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:支持混合网络地址,包括tornymi2p(可能需要额外的加密库来解析公钥);
  • 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 是一种基于以下层级的隐私保护网络的概念性方法

Cyphernet stack

许可

库在 Apache 2.0 开源许可的条款下分发。请参阅 LICENCE 文件了解许可详情。

依赖

~0.5–2.2MB
~34K SLoC