#tor #relay #arti #logic #purpose #whether #order

tor-relay-selection

针对特定目的选择Tor中继的逻辑

5个版本 (重大更新)

0.21.0 2024年8月1日
0.20.0 2024年6月27日
0.19.0 2024年6月5日
0.18.0 2024年4月30日
0.17.0 2024年4月2日

#1891 in 网络编程

Download history • Rust 包仓库 375/week @ 2024-04-28 • Rust 包仓库 232/week @ 2024-05-05 • Rust 包仓库 84/week @ 2024-05-12 • Rust 包仓库 424/week @ 2024-05-19 • Rust 包仓库 717/week @ 2024-05-26 • Rust 包仓库 456/week @ 2024-06-02 • Rust 包仓库 534/week @ 2024-06-09 • Rust 包仓库 1380/week @ 2024-06-16 • Rust 包仓库 1097/week @ 2024-06-23 • Rust 包仓库 1538/week @ 2024-06-30 • Rust 包仓库 238/week @ 2024-07-07 • Rust 包仓库 475/week @ 2024-07-14 • Rust 包仓库 485/week @ 2024-07-21 • Rust 包仓库 1002/week @ 2024-07-28 • Rust 包仓库 1174/week @ 2024-08-04 • Rust 包仓库 793/week @ 2024-08-11 • Rust 包仓库

每月下载量3,560
22个crate中使用了(5个直接使用)

MIT/Apache

1.5MB
19K SLoC

tor-relay-selection

针对特定目的选择Tor中继的逻辑

概述

tor-relay-selection crate提供了高级功能,用于选择Tor中继以用于特定目的,或检查它们是否适合这些目的。它封装了来自tor-netdir的底层功能。

此crate是Arti项目的一部分,Arti项目旨在用Rust实现Tor

设计

我们的主要类型是RelayUsageRelayExclusionRelayRestrictionRelaySelector

RelayUsage回答了“这个中继是用来做什么的?”这个问题。

RelayExclusion排除了一个或多个中继,因为它们已经被选择,或者与已选择的中继共享家族。

RelayRestriction对中继施加额外的限制。

RelaySelector是一组使用、排除和任意数量的限制。

RelaySelector中,使用和限制可以是严格的或灵活的。如果我们未能选择中继,并且有任何灵活的使用/限制,那么我们会移除这些使用/限制以产生一个放松的选择器,然后再次尝试。

许可证:MIT OR Apache-2.0

依赖项

~20–32MB
~499K SLoC