26个稳定版本 (6个主要版本)
使用旧的Rust 2015
47.13.0+0.4.7.x | 2023年2月10日 |
---|---|
47.10.0+0.4.7.x | 2022年9月5日 |
47.8.0+0.4.7.x | 2022年6月28日 |
46.9.1+0.4.6.9 | 2022年1月18日 |
4.2.6-5+0.4.2.6 | 2020年3月8日 |
#29 in #zlib
2,660 monthly downloads
在 5 个包中使用 (via libtor)
1.5MB
37K SLoC
libtor-sys
此库将Tor及其一些依赖项(zlib、libevent和openssl)编译成一个单一的Rust库,可以像导入任何其他Rust包一样导入到现有项目中。这提供了一种使用Tor的方式,无需分发/下载额外的二进制文件 - 在允许运行它们的平台上 - 对于某些其他平台,如iOS和较新的Android版本,这是运行Tor的唯一方法,因为操作系统根本不允许执行二进制文件。
请注意,这里公开的接口非常非常“底层”(实际上是tor_api.h中存在的内容)。另一个将所有这些部分包装在漂亮的Rust接口中的包将单独发布。
默认情况下,此库仅与运行Tor所需的最小库集进行编译,即OpenSSL、Libevent和Zlib。可以使用 with-lzma
和 with-zstd
功能启用相应的压缩算法,并可以使用 vendored-lzma
和 vendored-zstd
功能编译并像那些库一样静态编译,而不是使用系统提供的库。
支持的平台
目前支持的平台有
- Linux(在Fedora 30和Ubuntu Xenial上测试过)
- 通过NDK在Android上
- MacOS
- iOS
- 通过Linux使用mingw从Linux交叉编译的Windows
即将推出™️
- Windows(原生构建)
构建注意事项
在 CROSS_COMPILING.md
中提供跨平台交叉编译的命令示例。
Linux/macOS
在类似于UNIX的操作系统上构建不应该太难,通常使用cargo build
应该可以正常工作。请记住,你需要在你的PATH中安装所有“通常”的构建工具,如编译器、automake、autoconf、make。在macOS上,你可以使用brew
安装这些工具。
如果你遇到aclocal-1.15 not found
或类似问题,尝试进入libevent-src
目录并运行autoreconf --force --install
。如果在tor-src
中也遇到相同问题,重复该操作,然后重新cargo build
。
Android
为Android进行交叉编译相当简单,只需确保你的PATH
中有NDK工具链。如果你这样做,cargo build
将使用正确的编译器,针对你使用的NDK的最小支持SDK版本进行编译(通常是armv7
为16,其他所有为21)。
iOS
在安装了Xcode Command Line Tools
的Mac上为iOS进行交叉编译应该能够直接工作。
Windows (MingW)
使用MingW为Windows进行交叉编译也应该能够直接工作,只要你有正确的编译器和所需的库。要将库链接到二进制文件中,通常还需要安装libwinpthreads
的静态版本。
依赖项
~1.1–2.8MB
~58K SLoC