#tor #daemon #refer #flags #run #bundle #own

libtor

在您的项目中捆绑并运行Tor

22个稳定版本 (5个主要版本)

使用旧的Rust 2015

47.13.0+0.4.7.x2023年2月10日
47.8.0+0.4.7.x2022年6月28日
47.7.0+0.4.7.x2022年5月27日
46.9.0+0.4.6.x2022年1月11日
42.7.0+0.4.2.7 2020年3月21日

#7 in #refer

Download history 862/week @ 2024-03-14 819/week @ 2024-03-21 710/week @ 2024-03-28 626/week @ 2024-04-04 1019/week @ 2024-04-11 909/week @ 2024-04-18 676/week @ 2024-04-25 860/week @ 2024-05-02 599/week @ 2024-05-09 679/week @ 2024-05-16 816/week @ 2024-05-23 882/week @ 2024-05-30 453/week @ 2024-06-06 643/week @ 2024-06-13 845/week @ 2024-06-20 642/week @ 2024-06-27

每月 2,652次下载
用于 4 crates

MIT许可证

26KB
580

libtor

libtor是一个Rust crate,可以在您的项目中捆绑一个完整运行的Tor守护进程。与裸机版本libtor-sys相比,它提供了一个更友好的接口来操作。如果您需要有关如何构建或交叉编译项目的进一步说明,请参阅libtor-sys README.md

libtor使多个平台上的项目使用Tor变得更加容易,而无需依赖用户从其他外部软件配置复杂的代理设置。

示例

use libtor::{Tor, TorFlag, TorAddress, HiddenServiceVersion};

Tor::new()
    .flag(TorFlag::DataDirectory("/tmp/tor-rust".into()))
    .flag(TorFlag::SocksPort(19050))
    .flag(TorFlag::HiddenServiceDir("/tmp/tor-rust/hs-dir".into()))
    .flag(TorFlag::HiddenServiceVersion(HiddenServiceVersion::V3))
    .flag(TorFlag::HiddenServicePort(TorAddress::Port(8000), None.into()))
    .start()?;

由于Tor内部使用一些静态变量来保持其状态,请注意,您不能在每个进程中启动多个Tor实例。

支持的平台

目前支持以下平台

  • Linux(在Fedora 30和Ubuntu Xenial上进行了测试)
  • 通过NDK的Android
  • MacOS
  • iOS
  • 使用mingw从Linux交叉编译的Windows

即将推出™️

  • Windows(本地构建)

依赖关系

需要以下依赖项

  • openssl
  • pkg-config
  • file
  • “常规”C构建工具:编译器、automakeautoconf

依赖关系

~2.6–6MB
~132K SLoC