Loading CHANGELOG.md +162 −122 Original line number Diff line number Diff line Loading @@ -41,7 +41,7 @@ See also what other projects are writing about Lunar: - `Runtime` now implies `SpawnBlocking` with `spawn_blocking`. Out-of-tree implementors of `Runtime` will need to change. !2678 ([!2678]) ### Major features Loading @@ -53,24 +53,24 @@ See also what other projects are writing about Lunar: ### Breaking changes in lower-level crates - `tor-chanmgr`: `AbstractChannel` now has a `reparameterize_kist()` method. !2706 ([!2706]) - `tor-key-forge`: `ErasedKey` is now `Box<dyn ItemType>`; `EncodableItem::item_type()` moved to `ItemType`; `ToEncodableCert::Cert` replaced with `::ParsedCert` and `::EncodableCert`; `ToEncodableCert::validate` now takes a `Self::ParsedCert` and returns `Self`; `ToEncodableCert::from_encodableCert` removed. !2672 ([!2672]) - `tor-proto`: `StreamOps` trait now has a (defaulted) `new_handle` function; any wrapper implementing `StreamOps` should also wrap it. !2706 ([!2706]) - `tor-proto`: stream types are now required to implement `StreamOps`. !2706 ([!2706]) - `tor-rtcompat`: in many traits, stream types must now implement `StreamOps`. !2706 ([!2706]) - `tor-proto`: `ConversationInHandler` now only has one lifetime parameter; and `::send_message` is now `async`. !2747 ([!2747]) - `fs-mistrust`: A few methods now take `&self` rather than `self`. !2707 Loading @@ -78,188 +78,124 @@ See also what other projects are writing about Lunar: - Major refactoring of the circuit reactor, to use `select!`, lifting it from async Rust's low-level "poll" to "async fn". !2747 !2733 #1816 !2720 !2760 #1832 !2768 !2765 ([!2747], [!2733], [#1816], [!2720], [!2760], [#1832], [!2768], [!2765]) - Improved CLI and add config loading. !2699 #1736 !2709 ([!2699], [#1736], [!2709]) - High-level certificate types (implementing `ToEncodableCert`) in `tor-relay-crypto`. !2672 #1777 ([!2672], [#1777]) - Initial [KIST] support (Linux-only) in `tor-proto`. !2706 #1728 #1728 #1729 #1730 ([!2706], [#1728], [#1728], [#1729], [#1730]) - Congestion control. [proposal 324] !2675 #534 ([proposal 324], [!2675], [#534]) - Apply the standard lint block. !2708 ([!2708]) ### RPC development - Cookie authentication. !2702 #1529 !2716 ([!2702], [#1529], [!2716]) - Fixed the remaining outstanding TODOs in the RPC code. !2740 !2743 !2745 !2737 !2731 ([!2740], [!2743], [!2745], [!2737], [!2731]) - Improved names for many type and methods: `MethodNotFound` to `NoSuchMethod` !2714 #1500 ; ([!2714], [#1500]); `new_stream_handle` to `new_oneshot_client` !2715 #1664 ; ([!2715], [#1664]); make `Params`/`Reply` structs consistent. !2729 #1586 !2732 ([!2729], [#1586], [!2732]) - Implement request cancellation. !2722 #818 ([!2722], [#818]) - Fix portability problems on Windows. !2761 #1831 !2713 #1798 !2756 !2718 ([!2761], [#1831], [!2713], [#1798], [!2756], [!2718]) - Move support for weak references behind an experimental feature, and clean up some related comments. !2742 #868 !2741 ([!2742], [#868], [!2741]) - Improve and write a bunch of RPC documentation. !2748 #1520 #1527 #1296 ([!2748], [#1520], [#1527], [#1296]) - Fixes and maintenance on rpc-docs-tool. !2736 #1520 #1708 ([!2736], [#1520], [#1708]) - No longer generate internal errors for expected situations. !2730 ([!2730]) - Tolerate nonexistence of a the connect point directory. !2735 ([!2735]) - Improve error outputs, including the origin of each failed connect attempt. !2766 #1650 #1826 !2744 #1826 ([!2766], [#1650], [#1826], [!2744], [#1826]) - `fs-mistrust`: New facilities for file access. !2707 #1746 ([!2707], [#1746]) - Clarify and fix some issues surrounding relative paths. !2712 #1748 #1749 ([!2712], [#1748], [#1749]) - Tweaked `tor-proto` `StreamCtrl` APIs to better support use with RPC. !2755 ([!2755]) - Document stream optimism. !2753 #1583 ([!2753], [#1583]) - Specify the RPC connection banner format. !2700 #1753 ([!2700], [#1753]) ### Other development - Update plan for Proof of Work DoS prevention, `service-side-pow.md`. !2701 ([!2701]) - Design notes for implementation of [Conflux]. !2750 ([!2750]) ### Documentation - Rewrite download manager example. !2725 #1471 #1386 ([!2725], [#1471], [#1386]) - `arti`: Add `restricted-discovery` to the list of experimental features in the crate documentation. !2719 #1808 ([!2719], [#1808]) - `tor-config`: clarify that `ConfigurationSources::set_mistrust`is unrelated to the paths defined within the configuration file itself, and reference `storage.permissions.dangerously_trust_everyone`. !2727 ([!2727]) - Integrate the Docusaurus-based documentation overhaul (aka [`arti-doc-project-2023`]) into `arti.git/web/` and deploy it to <https://tpo.pages.torproject.net/core/arti/>. !2746 !2752 !2754 !2757 ([!2746], [!2752], [!2754], [!2757]) ### Cleanups, minor features, and bugfixes - Fix `watch_configuration = true`. Previously this caused an infinite loop and was not useable. #1794 !2696 ([#1794], [!2696]) - `tor-circmgr`: Add trace log on circuit build timeout. !2698 ([!2698]) - `tor-proto`: Make `Channel::wait_for_close` non-experimental. !2666 ([!2666]) - Fix non-Unix build and test failures. !2615 !2738 #1809 !2717 ([!2615], [!2738], [#1809], [!2717]) - Replace an async `Mutex` with a sync one in file watcher. !2763 ([!2763]) - Remove confusing `use asynchronous_codec as futures_codec` #1690 !2769 ([#1690], [!2769]) - Fix many typos. !2751 ([!2751]) ### Testing - `tor-rtmock`: Fix misleading task lists from `MockExecutor` when panicking due to stall and tasks unstick each other in `Drop`. !2682 ([!2682]) - `tor-proto`: Fix flaky test `invalid_circ_sendme` by using `MockExecutor` and replacing `sleep()` with `advance_until_stalled()`. !2721 ([!2721]) - More uniform handling of some test key data. !2764 #1396 ([!2764], [#1396]) ### Infrastructure - `maint/matrix-check`: properly find the crate subdir. !2762 ([!2762]) - Un-ignore [RUSTSEC-2024-0421] as we no longer use an affected `hickory`. !2693 #1773 ([!2693], [#1773]) - Update our main CI image (`RECENT_RUST_IMAGE`) to 1.83. !2694 ([!2694]) - Better instructions for handling new MPL-licensed dependencies. !2726 ([!2726]) - Style guide for this changelog, and small script to help format it. !2739 !2616 ([!2739], [!2616]) ### Acknowledgments Loading @@ -272,6 +208,110 @@ the [Bureau of Democracy, Human Rights and Labor], and our [other sponsors] for funding the development of Arti! [!2615]: https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/2615 [!2616]: https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/2616 [!2666]: https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/2666 [!2672]: https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/2672 [!2675]: https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/2675 [!2678]: https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/2678 [!2682]: https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/2682 [!2693]: https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/2693 [!2694]: https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/2694 [!2696]: https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/2696 [!2698]: https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/2698 [!2699]: https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/2699 [!2700]: https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/2700 [!2701]: https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/2701 [!2702]: https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/2702 [!2706]: https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/2706 [!2707]: https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/2707 [!2708]: https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/2708 [!2709]: https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/2709 [!2712]: https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/2712 [!2713]: https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/2713 [!2714]: https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/2714 [!2715]: https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/2715 [!2716]: https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/2716 [!2717]: https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/2717 [!2718]: https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/2718 [!2719]: https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/2719 [!2720]: https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/2720 [!2721]: https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/2721 [!2722]: https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/2722 [!2725]: https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/2725 [!2726]: https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/2726 [!2727]: https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/2727 [!2729]: https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/2729 [!2730]: https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/2730 [!2731]: https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/2731 [!2732]: https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/2732 [!2733]: https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/2733 [!2735]: https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/2735 [!2736]: https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/2736 [!2737]: https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/2737 [!2738]: https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/2738 [!2739]: https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/2739 [!2740]: https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/2740 [!2741]: https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/2741 [!2742]: https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/2742 [!2743]: https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/2743 [!2744]: https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/2744 [!2745]: https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/2745 [!2746]: https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/2746 [!2747]: https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/2747 [!2748]: https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/2748 [!2750]: https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/2750 [!2751]: https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/2751 [!2752]: https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/2752 [!2753]: https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/2753 [!2754]: https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/2754 [!2755]: https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/2755 [!2756]: https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/2756 [!2757]: https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/2757 [!2760]: https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/2760 [!2761]: https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/2761 [!2762]: https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/2762 [!2763]: https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/2763 [!2764]: https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/2764 [!2765]: https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/2765 [!2766]: https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/2766 [!2768]: https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/2768 [!2769]: https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/2769 [#1296]: https://gitlab.torproject.org/tpo/core/arti/-/issues/1296 [#1386]: https://gitlab.torproject.org/tpo/core/arti/-/issues/1386 [#1396]: https://gitlab.torproject.org/tpo/core/arti/-/issues/1396 [#1471]: https://gitlab.torproject.org/tpo/core/arti/-/issues/1471 [#1500]: https://gitlab.torproject.org/tpo/core/arti/-/issues/1500 [#1520]: https://gitlab.torproject.org/tpo/core/arti/-/issues/1520 [#1527]: https://gitlab.torproject.org/tpo/core/arti/-/issues/1527 [#1529]: https://gitlab.torproject.org/tpo/core/arti/-/issues/1529 [#1583]: https://gitlab.torproject.org/tpo/core/arti/-/issues/1583 [#1586]: https://gitlab.torproject.org/tpo/core/arti/-/issues/1586 [#1650]: https://gitlab.torproject.org/tpo/core/arti/-/issues/1650 [#1664]: https://gitlab.torproject.org/tpo/core/arti/-/issues/1664 [#1690]: https://gitlab.torproject.org/tpo/core/arti/-/issues/1690 [#1708]: https://gitlab.torproject.org/tpo/core/arti/-/issues/1708 [#1728]: https://gitlab.torproject.org/tpo/core/arti/-/issues/1728 [#1729]: https://gitlab.torproject.org/tpo/core/arti/-/issues/1729 [#1730]: https://gitlab.torproject.org/tpo/core/arti/-/issues/1730 [#1736]: https://gitlab.torproject.org/tpo/core/arti/-/issues/1736 [#1746]: https://gitlab.torproject.org/tpo/core/arti/-/issues/1746 [#1748]: https://gitlab.torproject.org/tpo/core/arti/-/issues/1748 [#1749]: https://gitlab.torproject.org/tpo/core/arti/-/issues/1749 [#1753]: https://gitlab.torproject.org/tpo/core/arti/-/issues/1753 [#1773]: https://gitlab.torproject.org/tpo/core/arti/-/issues/1773 [#1777]: https://gitlab.torproject.org/tpo/core/arti/-/issues/1777 [#1794]: https://gitlab.torproject.org/tpo/core/arti/-/issues/1794 [#1798]: https://gitlab.torproject.org/tpo/core/arti/-/issues/1798 [#1808]: https://gitlab.torproject.org/tpo/core/arti/-/issues/1808 [#1809]: https://gitlab.torproject.org/tpo/core/arti/-/issues/1809 [#1816]: https://gitlab.torproject.org/tpo/core/arti/-/issues/1816 [#1826]: https://gitlab.torproject.org/tpo/core/arti/-/issues/1826 [#1831]: https://gitlab.torproject.org/tpo/core/arti/-/issues/1831 [#1832]: https://gitlab.torproject.org/tpo/core/arti/-/issues/1832 [#534]: https://gitlab.torproject.org/tpo/core/arti/-/issues/534 [#818]: https://gitlab.torproject.org/tpo/core/arti/-/issues/818 [#868]: https://gitlab.torproject.org/tpo/core/arti/-/issues/868 [Bureau of Democracy, Human Rights and Labor]: https://www.state.gov/bureaus-offices/under-secretary-for-civilian-security-democracy-and-human-rights/bureau-of-democracy-human-rights-and-labor/ [Conflux]: https://spec.torproject.org/proposals/329-traffic-splitting.html [KIST]: https://blog.torproject.org/kist-and-tell-tors-new-traffic-scheduling-feature/ Loading Loading
CHANGELOG.md +162 −122 Original line number Diff line number Diff line Loading @@ -41,7 +41,7 @@ See also what other projects are writing about Lunar: - `Runtime` now implies `SpawnBlocking` with `spawn_blocking`. Out-of-tree implementors of `Runtime` will need to change. !2678 ([!2678]) ### Major features Loading @@ -53,24 +53,24 @@ See also what other projects are writing about Lunar: ### Breaking changes in lower-level crates - `tor-chanmgr`: `AbstractChannel` now has a `reparameterize_kist()` method. !2706 ([!2706]) - `tor-key-forge`: `ErasedKey` is now `Box<dyn ItemType>`; `EncodableItem::item_type()` moved to `ItemType`; `ToEncodableCert::Cert` replaced with `::ParsedCert` and `::EncodableCert`; `ToEncodableCert::validate` now takes a `Self::ParsedCert` and returns `Self`; `ToEncodableCert::from_encodableCert` removed. !2672 ([!2672]) - `tor-proto`: `StreamOps` trait now has a (defaulted) `new_handle` function; any wrapper implementing `StreamOps` should also wrap it. !2706 ([!2706]) - `tor-proto`: stream types are now required to implement `StreamOps`. !2706 ([!2706]) - `tor-rtcompat`: in many traits, stream types must now implement `StreamOps`. !2706 ([!2706]) - `tor-proto`: `ConversationInHandler` now only has one lifetime parameter; and `::send_message` is now `async`. !2747 ([!2747]) - `fs-mistrust`: A few methods now take `&self` rather than `self`. !2707 Loading @@ -78,188 +78,124 @@ See also what other projects are writing about Lunar: - Major refactoring of the circuit reactor, to use `select!`, lifting it from async Rust's low-level "poll" to "async fn". !2747 !2733 #1816 !2720 !2760 #1832 !2768 !2765 ([!2747], [!2733], [#1816], [!2720], [!2760], [#1832], [!2768], [!2765]) - Improved CLI and add config loading. !2699 #1736 !2709 ([!2699], [#1736], [!2709]) - High-level certificate types (implementing `ToEncodableCert`) in `tor-relay-crypto`. !2672 #1777 ([!2672], [#1777]) - Initial [KIST] support (Linux-only) in `tor-proto`. !2706 #1728 #1728 #1729 #1730 ([!2706], [#1728], [#1728], [#1729], [#1730]) - Congestion control. [proposal 324] !2675 #534 ([proposal 324], [!2675], [#534]) - Apply the standard lint block. !2708 ([!2708]) ### RPC development - Cookie authentication. !2702 #1529 !2716 ([!2702], [#1529], [!2716]) - Fixed the remaining outstanding TODOs in the RPC code. !2740 !2743 !2745 !2737 !2731 ([!2740], [!2743], [!2745], [!2737], [!2731]) - Improved names for many type and methods: `MethodNotFound` to `NoSuchMethod` !2714 #1500 ; ([!2714], [#1500]); `new_stream_handle` to `new_oneshot_client` !2715 #1664 ; ([!2715], [#1664]); make `Params`/`Reply` structs consistent. !2729 #1586 !2732 ([!2729], [#1586], [!2732]) - Implement request cancellation. !2722 #818 ([!2722], [#818]) - Fix portability problems on Windows. !2761 #1831 !2713 #1798 !2756 !2718 ([!2761], [#1831], [!2713], [#1798], [!2756], [!2718]) - Move support for weak references behind an experimental feature, and clean up some related comments. !2742 #868 !2741 ([!2742], [#868], [!2741]) - Improve and write a bunch of RPC documentation. !2748 #1520 #1527 #1296 ([!2748], [#1520], [#1527], [#1296]) - Fixes and maintenance on rpc-docs-tool. !2736 #1520 #1708 ([!2736], [#1520], [#1708]) - No longer generate internal errors for expected situations. !2730 ([!2730]) - Tolerate nonexistence of a the connect point directory. !2735 ([!2735]) - Improve error outputs, including the origin of each failed connect attempt. !2766 #1650 #1826 !2744 #1826 ([!2766], [#1650], [#1826], [!2744], [#1826]) - `fs-mistrust`: New facilities for file access. !2707 #1746 ([!2707], [#1746]) - Clarify and fix some issues surrounding relative paths. !2712 #1748 #1749 ([!2712], [#1748], [#1749]) - Tweaked `tor-proto` `StreamCtrl` APIs to better support use with RPC. !2755 ([!2755]) - Document stream optimism. !2753 #1583 ([!2753], [#1583]) - Specify the RPC connection banner format. !2700 #1753 ([!2700], [#1753]) ### Other development - Update plan for Proof of Work DoS prevention, `service-side-pow.md`. !2701 ([!2701]) - Design notes for implementation of [Conflux]. !2750 ([!2750]) ### Documentation - Rewrite download manager example. !2725 #1471 #1386 ([!2725], [#1471], [#1386]) - `arti`: Add `restricted-discovery` to the list of experimental features in the crate documentation. !2719 #1808 ([!2719], [#1808]) - `tor-config`: clarify that `ConfigurationSources::set_mistrust`is unrelated to the paths defined within the configuration file itself, and reference `storage.permissions.dangerously_trust_everyone`. !2727 ([!2727]) - Integrate the Docusaurus-based documentation overhaul (aka [`arti-doc-project-2023`]) into `arti.git/web/` and deploy it to <https://tpo.pages.torproject.net/core/arti/>. !2746 !2752 !2754 !2757 ([!2746], [!2752], [!2754], [!2757]) ### Cleanups, minor features, and bugfixes - Fix `watch_configuration = true`. Previously this caused an infinite loop and was not useable. #1794 !2696 ([#1794], [!2696]) - `tor-circmgr`: Add trace log on circuit build timeout. !2698 ([!2698]) - `tor-proto`: Make `Channel::wait_for_close` non-experimental. !2666 ([!2666]) - Fix non-Unix build and test failures. !2615 !2738 #1809 !2717 ([!2615], [!2738], [#1809], [!2717]) - Replace an async `Mutex` with a sync one in file watcher. !2763 ([!2763]) - Remove confusing `use asynchronous_codec as futures_codec` #1690 !2769 ([#1690], [!2769]) - Fix many typos. !2751 ([!2751]) ### Testing - `tor-rtmock`: Fix misleading task lists from `MockExecutor` when panicking due to stall and tasks unstick each other in `Drop`. !2682 ([!2682]) - `tor-proto`: Fix flaky test `invalid_circ_sendme` by using `MockExecutor` and replacing `sleep()` with `advance_until_stalled()`. !2721 ([!2721]) - More uniform handling of some test key data. !2764 #1396 ([!2764], [#1396]) ### Infrastructure - `maint/matrix-check`: properly find the crate subdir. !2762 ([!2762]) - Un-ignore [RUSTSEC-2024-0421] as we no longer use an affected `hickory`. !2693 #1773 ([!2693], [#1773]) - Update our main CI image (`RECENT_RUST_IMAGE`) to 1.83. !2694 ([!2694]) - Better instructions for handling new MPL-licensed dependencies. !2726 ([!2726]) - Style guide for this changelog, and small script to help format it. !2739 !2616 ([!2739], [!2616]) ### Acknowledgments Loading @@ -272,6 +208,110 @@ the [Bureau of Democracy, Human Rights and Labor], and our [other sponsors] for funding the development of Arti! [!2615]: https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/2615 [!2616]: https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/2616 [!2666]: https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/2666 [!2672]: https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/2672 [!2675]: https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/2675 [!2678]: https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/2678 [!2682]: https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/2682 [!2693]: https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/2693 [!2694]: https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/2694 [!2696]: https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/2696 [!2698]: https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/2698 [!2699]: https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/2699 [!2700]: https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/2700 [!2701]: https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/2701 [!2702]: https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/2702 [!2706]: https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/2706 [!2707]: https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/2707 [!2708]: https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/2708 [!2709]: https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/2709 [!2712]: https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/2712 [!2713]: https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/2713 [!2714]: https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/2714 [!2715]: https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/2715 [!2716]: https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/2716 [!2717]: https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/2717 [!2718]: https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/2718 [!2719]: https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/2719 [!2720]: https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/2720 [!2721]: https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/2721 [!2722]: https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/2722 [!2725]: https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/2725 [!2726]: https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/2726 [!2727]: https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/2727 [!2729]: https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/2729 [!2730]: https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/2730 [!2731]: https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/2731 [!2732]: https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/2732 [!2733]: https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/2733 [!2735]: https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/2735 [!2736]: https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/2736 [!2737]: https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/2737 [!2738]: https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/2738 [!2739]: https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/2739 [!2740]: https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/2740 [!2741]: https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/2741 [!2742]: https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/2742 [!2743]: https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/2743 [!2744]: https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/2744 [!2745]: https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/2745 [!2746]: https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/2746 [!2747]: https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/2747 [!2748]: https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/2748 [!2750]: https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/2750 [!2751]: https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/2751 [!2752]: https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/2752 [!2753]: https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/2753 [!2754]: https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/2754 [!2755]: https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/2755 [!2756]: https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/2756 [!2757]: https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/2757 [!2760]: https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/2760 [!2761]: https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/2761 [!2762]: https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/2762 [!2763]: https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/2763 [!2764]: https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/2764 [!2765]: https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/2765 [!2766]: https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/2766 [!2768]: https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/2768 [!2769]: https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/2769 [#1296]: https://gitlab.torproject.org/tpo/core/arti/-/issues/1296 [#1386]: https://gitlab.torproject.org/tpo/core/arti/-/issues/1386 [#1396]: https://gitlab.torproject.org/tpo/core/arti/-/issues/1396 [#1471]: https://gitlab.torproject.org/tpo/core/arti/-/issues/1471 [#1500]: https://gitlab.torproject.org/tpo/core/arti/-/issues/1500 [#1520]: https://gitlab.torproject.org/tpo/core/arti/-/issues/1520 [#1527]: https://gitlab.torproject.org/tpo/core/arti/-/issues/1527 [#1529]: https://gitlab.torproject.org/tpo/core/arti/-/issues/1529 [#1583]: https://gitlab.torproject.org/tpo/core/arti/-/issues/1583 [#1586]: https://gitlab.torproject.org/tpo/core/arti/-/issues/1586 [#1650]: https://gitlab.torproject.org/tpo/core/arti/-/issues/1650 [#1664]: https://gitlab.torproject.org/tpo/core/arti/-/issues/1664 [#1690]: https://gitlab.torproject.org/tpo/core/arti/-/issues/1690 [#1708]: https://gitlab.torproject.org/tpo/core/arti/-/issues/1708 [#1728]: https://gitlab.torproject.org/tpo/core/arti/-/issues/1728 [#1729]: https://gitlab.torproject.org/tpo/core/arti/-/issues/1729 [#1730]: https://gitlab.torproject.org/tpo/core/arti/-/issues/1730 [#1736]: https://gitlab.torproject.org/tpo/core/arti/-/issues/1736 [#1746]: https://gitlab.torproject.org/tpo/core/arti/-/issues/1746 [#1748]: https://gitlab.torproject.org/tpo/core/arti/-/issues/1748 [#1749]: https://gitlab.torproject.org/tpo/core/arti/-/issues/1749 [#1753]: https://gitlab.torproject.org/tpo/core/arti/-/issues/1753 [#1773]: https://gitlab.torproject.org/tpo/core/arti/-/issues/1773 [#1777]: https://gitlab.torproject.org/tpo/core/arti/-/issues/1777 [#1794]: https://gitlab.torproject.org/tpo/core/arti/-/issues/1794 [#1798]: https://gitlab.torproject.org/tpo/core/arti/-/issues/1798 [#1808]: https://gitlab.torproject.org/tpo/core/arti/-/issues/1808 [#1809]: https://gitlab.torproject.org/tpo/core/arti/-/issues/1809 [#1816]: https://gitlab.torproject.org/tpo/core/arti/-/issues/1816 [#1826]: https://gitlab.torproject.org/tpo/core/arti/-/issues/1826 [#1831]: https://gitlab.torproject.org/tpo/core/arti/-/issues/1831 [#1832]: https://gitlab.torproject.org/tpo/core/arti/-/issues/1832 [#534]: https://gitlab.torproject.org/tpo/core/arti/-/issues/534 [#818]: https://gitlab.torproject.org/tpo/core/arti/-/issues/818 [#868]: https://gitlab.torproject.org/tpo/core/arti/-/issues/868 [Bureau of Democracy, Human Rights and Labor]: https://www.state.gov/bureaus-offices/under-secretary-for-civilian-security-democracy-and-human-rights/bureau-of-democracy-human-rights-and-labor/ [Conflux]: https://spec.torproject.org/proposals/329-traffic-splitting.html [KIST]: https://blog.torproject.org/kist-and-tell-tors-new-traffic-scheduling-feature/ Loading