summaryrefslogtreecommitdiff
path: root/crates/arti
Commit message (Collapse)AuthorAgeFilesLines
* Version bumps for 2.5.0Nick Mathewson2026-06-301-32/+32
| | | | | | | | | | | | | Closes #2617. We've lucked out this time, and it turns out that every one of our published crates gets a minor bump. So this was generated with: ``` for cr in $(./maint/list-crates); do cargo set-version -p $cr --bump minor done ```
* arti: remove references to old `trace_filter` in commentsSteven Engler2026-06-252-2/+2
|
* arti: subcommands: keys: Fix compact outputhjrgrn2026-06-221-1/+1
|
* Merge branch 'keys-list-tests' into 'main'opara2026-06-1811-597/+33
|\ | | | | | | | | arti: Rewrite hand-written tests using `trycmd` See merge request tpo/core/arti!4126
| * arti: Gate the "arti keys" tests behind onion-service-serviceGabriela Moldovan2026-06-171-2/+6
| | | | | | | | | | | | | | | | Now that these test more than just the help output, we need to gate them behind the `onion-service-service` feature: the tests involve some C Tor keystores, and require at least one onion service to be configured, because onion services (and clients) are the only thing these keystores are used for.
| * arti: Remove no longer used test helperGabriela Moldovan2026-06-171-13/+1
| |
| * arti: Remove now-obsolete keys test moduleGabriela Moldovan2026-06-173-581/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We now have `trycmd` tests that cover most cases, so I am removing this module. The reason this was introduced in the first place is in the module level docs ```rust //! The `assert_cmd` crate is used here instead of the preferred `trycmd` (see //! [`README`](../README.md)) because the output of `keys list` is not deterministic across //! different machines. The design choices of some components are workarounds for this limitation. ``` But this is no longer an issue now that the `keys list` output is sorted. Ideally, all tests would be written this way (we have a few more modules in `cli_tests` that we should probably port to `trycmd` sometime). Note: some of the tests I'm removing here don't have a `trycmd` counterpart in `arti/tests/testcases/keys`. In my opinion, this is perfectly fine, because the old tests were unnecessarily testing all the possible configurations involving 1-2 keystores (one arti, and one C Tor): it is not the responsibility of the CLI tests to cover all these permutations (they should be tested in `tor-keymgr`).
| * arti: Add a trycmd-based test for arti keys list error handlingGabriela Moldovan2026-06-173-0/+5
| | | | | | | | | | This is a `trycmd`-based replacement for the `list_unregistered_keystore_fails()` test, which will be removed soon.
| * doc/keys.md: Un-ignore some of the example snippetsGabriela Moldovan2026-06-172-1/+16
| | | | | | | | | | | | | | | | | | This un-ignores some of the output snippets from the `doc/keys.md` file, so that our `trycmd` test runner will actually run them. This will force us to keep the snippet in sync with the code. This involved adding some extra config for the test C Tor keystore, and tweaking the output to match what the commands actually print out.
| * arti: Sort the arti keys list outputGabriela Moldovan2026-06-171-0/+5
| | | | | | | | | | This will make the output deterministic and enable us to write some `trycmd` tests in the form of markdown output snippets.
* | Merge branch 'msrv-1.91' into 'main'gabi-2502026-06-181-1/+1
|\ \ | | | | | | | | | | | | Bump MSRV to 1.91 See merge request tpo/core/arti!4105
| * | Bump MSRV to 1.91Clara Engler2026-06-151-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This commit bumps the MSRV to 1.91 which was released on 2025-10-30. The Cargo.toml files were updated as follows: ```sh git ls-files | \ grep ".*Cargo\.toml$" | \ xargs sed -i '' 's/^rust-version = "1\.89"$/rust-version = "1\.91"/g' ``` The following files were updated manually: ``` modified: .gitlab-ci.yml modified: README.md modified: flake.nix modified: maint/docker-android/Dockerfile ```
* | | Merge branch 'misc_string_slices_1' into 'main'Clara Engler2026-06-181-2/+1
|\ \ \ | |_|/ |/| | | | | | | | Fix string_slice exceptions outside of netdoc See merge request tpo/core/arti!4092
| * | arti: remove string slicesNick Mathewson2026-06-101-2/+1
| | |
* | | arti, keymgr: s/IDEA/TODOGabriela Moldovan2026-06-171-1/+1
| | | | | | | | | | | | | | | | | | It's better to use "TODO" like we do in the rest of Arti, because otherwise this has a chance of being forgotten (because nobody really greps for "IDEA").
* | | arti: Don't mention entry validity in the help messageGabriela Moldovan2026-06-172-2/+2
| | | | | | | | | | | | | | | | | | This actually applies to unrecognized entries too, and besides, most users aren't going to think in terms of "valid" vs "invalid" entries, so it's best to omit this qualifier.
* | | arti: subcommands: keys: Rework output of keys listhjrgrn2026-06-174-149/+384
| |/ |/|
* | Merge branch 'cgo-stable' into 'main'Nick Mathewson2026-06-101-2/+2
|\ \ | | | | | | | | | | | | | | | | | | Mark "counter-galois-onion" as stable Closes #2550 See merge request tpo/core/arti!4069
| * | Mark "counter-galois-onion" as stableNick Mathewson2026-06-041-2/+2
| | |
* | | arti: add "dep:" prefix to 'rpc' feature dependenciesSteven Engler2026-06-101-1/+1
| |/ |/| | | | | | | | | This is technically a breaking change since it removes the tor-rpc-connect, tor-rpcbase, and arti-rpcserver features from arti. But I think these implicit features should not be expected to be stable.
* | Merge branch 'clippy-string-slice' into 'main'Nick Mathewson2026-06-1012-0/+12
|\ \ | | | | | | | | | | | | Lint for clippy::string_slice See merge request tpo/core/arti!4086
| * | everywhere: Add #[allow(clippy::string_slice)]Clara Engler2026-06-091-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | This commit adds #[allow(clippy::string_slice)] to all functions in the code where string slices are used, alongside a TODO comment. We do this add the function header to have it consistent, as things like expression based allow's are still experimental.
| * | maint: Run maint/add_warning to deny string slicesClara Engler2026-06-0911-0/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This commit executes maint/add_warning with the just added change to deny string slices except in tests. I recommend auditing this by checking out the previous commit followed by running the script yourself and then verifying that the diff is identical to this commit. This commit makes cargo clippy fail. We will add exceptions in the next commit.
* | | Merge branch 'cc-default' into 'main'Nick Mathewson2026-06-101-0/+1
|\ \ \ | | | | | | | | | | | | | | | | Add 'flowctl-cc' to 'default' See merge request tpo/core/arti!4042
| * | | arti: add 'flowctl-cc' to 'default'Steven Engler2026-06-011-0/+1
| | | |
* | | | Bump derive-deftly to 1.11.3Ian Jackson2026-06-091-1/+1
| |/ / |/| | | | | | | | New beta semver policy means we should pin the patchlevel.
* | | proto: Move RateLimitedWriter to tor-async-utilsDavid Goulet2026-06-081-1/+1
| | | | | | | | | | | | Signed-off-by: David Goulet <[email protected]>
* | | arti: rpc functionality to bootstrap a defer_bootstrapped client.Nick Mathewson2026-06-085-7/+100
| | |
* | | Option to defer bootstrapping at startup.Nick Mathewson2026-06-085-17/+127
| |/ |/| | | | | | | | | This option will primarily be used by integrators who want to modify the configuration, either directly or via RPC, before launching Arti completely.
* | Upgrade tokio to LTS 1.47.1Neel Chauhan2026-06-031-1/+1
| | | | | | | | Closes #2137.
* | arti: Bump the versions of our opentelemetry depsGabriela Moldovan2026-06-032-7/+7
|/ | | | Part of #2559
* Bump arti crate to 2.4.0Gabriela Moldovan2026-06-011-1/+1
|
* Bump all the unstable tor- and arti- crates to 0.43.0Gabriela Moldovan2026-06-011-26/+26
| | | | | | | | | | Done using: ``` for crate in $(./maint/list-crates | rg '^(tor|arti-)'); do cargo set-version -p $crate 0.43.0 done ```
* Bump the versions of the non-{arti-,tor-} cratesGabriela Moldovan2026-06-011-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The non-{arti-,tor-} crates are: ``` ./maint/list-crates | rg -v '^(tor|arti)' oneshot-fused-workaround web-time-compat slotmap-careful test-temp-dir fslock-guard hashx equix caret fs-mistrust safelog retry-error futures-copy ``` We split them in the following categories: * crates with no changes (no version bumps): ``` oneshot-fused-workaround: No change. web-time-compat: No change. slotmap-careful: No change. test-temp-dir: No change. caret: No change. safelog: No change. retry-error: No change. futures-copy: No change. ``` Obtained with: ``` maint/changed-crates -v "arti-v$LAST_VERSION" 2>&1 >/dev/null | grep -i "no change" | grep -v '\(tor\|arti\)-' ``` * crates that only have non-functional changes (bump the patch version, but not the dependend-on version): - equix * crates where functional changes were made, but no APIs were broken (bump patch): - fs-mistrust * crates where APIs were broken (bump minor): - hashx - fslock-guard The bumps from this commit were created using this script: ``` PATCH_NF=( equix ) PATCH=" fs-mistrust " MINOR=" hashx fslock-guard " ./maint/bump-nodep "${PATCH_NF[@]}" for crate in $PATCH; do cargo set-version --bump patch -p $crate; done for crate in $MINOR; do cargo set-version --bump minor -p $crate; done ```
* Merge branch 'client_typestate' into 'main'Nick Mathewson2026-05-271-1/+1
|\ | | | | | | | | Client: Refactor most managers into a typestate, and construct it on bootstrap. See merge request tpo/core/arti!4011
| * client: Factor out the "running a client" code into an inner typestateNick Mathewson2026-05-261-1/+1
| | | | | | | | | | | | We'll use this to distinguish "not running" from "running", in order to make it easier to be sure that non-bootstrapping clients will definitely not try to connect to the network.
* | Give resolve_return_results options to control output_tree.Nick Mathewson2026-05-271-2/+2
|/ | | | | | | I've left the options here as booleans, but moved them into a struct. (IMO, booleans are at their riskiest when they are passed as function arguments, and much less risky when they are used as struct fields.)
* Move metrics config types to tor-config.Wesley Aptekar-Cassels2026-05-261-30/+1
| | | | | | | | | | | | | | This will allow these types to be shared by arti and arti-relay. This does change these types from being behind the experimental-api flag. I think this is okay, as tor-config is not a stable crate anyways, but it's worth keeping in mind. There is also an argument to be made for having two separate types, one in arti and one in arti-relay, as we do for LoggingConfig. I think that using a single type has benefits, and we should strive to eventually merge the LoggingConfigs, for instance, and perhaps other types, but it doesn't seem critical in either direction at the moment.
* arti: move 'flowctl-cc' from 'experimental' to 'full'Steven Engler2026-05-221-2/+2
|
* Merge branch 'no-version-override' into 'main'wesleyac2026-05-212-15/+0
|\ | | | | | | | | | | | | Remove `use_obsolete_software`. Closes #1960 See merge request tpo/core/arti!3995
| * Remove `use_obsolete_software`.Nick Mathewson2026-05-142-19/+4
| | | | | | | | | | | | | | | | Discussion on #1960 suggests that this option is not a good idea: it encourages developers to work around deliberate signals that the software they're shipping won't work on the network. Closes #1960.
* | Merge branch 'socket-buf-size' into 'main'opara2026-05-214-5/+59
|\ \ | | | | | | | | | | | | | | | | | | Set socket buffer sizes (`SO_SNDBUF` and `SO_RCVBUF`) for proxy sockets Closes #2500 See merge request tpo/core/arti!3957
| * | arti: add 'proxy.socket_{send,recv}_buf_size' config optionsSteven Engler2026-05-074-23/+58
| | |
| * | arti: use 128 KB socket buffers for proxy socketsSteven Engler2026-05-071-2/+18
| | |
| * | tor-rtcompat+misc: add `NetStreamProvider::ListenOptions`Steven Engler2026-05-071-1/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | This adds the trait type `ListenOptions` to `NetStreamProvider` and adds this `ListenOptions` as an argument to `NetStreamProvider::listen()`. You probably want to look at the changes in tor-rtcompat first, then the rest of this commit is updating the various places we use `NetStreamProvider`.
* | | Merge branch 'keymgr-raw-ids' into 'main'opara2026-05-191-13/+11
|\ \ \ | | | | | | | | | | | | | | | | keymgr: more docs for the `RawEntryId` APIs, and some dead code removal See merge request tpo/core/arti!3997
| * | | keymgr: Remove RawKeystoreEntryGabriela Moldovan2026-05-181-13/+11
| | |/ | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | I think this adds unnecessary indirection, and it's a bit confusing to have two separate keystore entry types (we have `KeystoreEntry` too). This type exists just to server as a wrapper over the `RawEntryId` of an unrecognized keystore entry, and the `KeystoreId` of the keystore it was found in. This commit folds `RawKeystoreEntry` into `UnrecognizedEntry`, which was previously a thin wrapper over `RawKeystoreEntry`.
* | | Merge branch 'rpc-config-preliminary' into 'main'Nick Mathewson2026-05-182-81/+87
|\ \ \ | |/ / |/| | | | | | | | | | | | | | Hopefully non-controversial parts of RPC configuration prep work Closes #2532 See merge request tpo/core/arti!3979
| * | arti::reload_cfg: Extract common part of select_biased! blockNick Mathewson2026-05-181-15/+3
| | |
| * | arti: Reformat reload_cfg.rs and cfg.rsNick Mathewson2026-05-182-66/+84
| | | | | | | | | | | | | | | | | | | | | | | | This is _just_ the results of a rustfmt invocation on this file. Due to #2532, these modules were getting overlooked by our regular rustfmt checks. I'm planning to circle back later on and fix #2532, but for now, reformatting these files will make future edits cleaner.