summaryrefslogtreecommitdiff
path: root/crates/arti-client
Commit message (Collapse)AuthorAgeFilesLines
* Merge branch 'release-1.4.3-semver' into 'main'wesleyac2025-05-011-28/+28
|\ | | | | | | | | release: Bump versions. See merge request tpo/core/arti!2981
| * release: Bump all unstable tor/arti crates to 0.30.0Wesley Aptekar-Cassels2025-05-011-28/+28
| | | | | | | | | | | | | | | | ``` for crate in $(./maint/list_crates | rg '^(tor|arti-)'); do cargo set-version -p $crate 0.30.0 done ```
* | release: Update release date.Wesley Aptekar-Cassels2025-05-011-1/+1
|/ | | | Done via `./maint/update-release-date`.
* chore: Run fixup-features.Wesley Aptekar-Cassels2025-04-301-1/+1
| | | | | | | | | | | | cargo run -p fixup-features -- --exclude examples/ --exclude maint/ Cargo.toml The following features in arti-ureq were manually added to full or marked non-additive: * rustls * native-tls * tokio * async-std
* Update rand requirement to 0.9.1Nick Mathewson2025-04-291-2/+2
| | | | | (This is going to be a _requirement_, since rand 0.9.1 has a behavioral change from 0.9.0)
* Run cargo update.Wesley Aptekar-Cassels2025-04-291-2/+2
| | | | | I updated everything except rand, because the new version of rand interacts with #1903, thus requiring more care.
* arti-client: remove incorrect note about `StateDirectory` usageSteven Engler2025-04-231-1/+0
|
* Merge branch 'proto_enforce' into 'main'Nick Mathewson2025-04-229-3/+578
|\ | | | | | | | | | | | | Enforce recommended and required protocol versions in arti-client Closes #1849 and #1923 See merge request tpo/core/arti!2929
| * Rename recommended_protocols to protocol_statuses.Nick Mathewson2025-04-161-3/+3
| | | | | | | | | | This name reflects its purpose better than the original one, since it includes required protocols as well as recommended ones.
| * arti-client: Document spec of checking date on cached protosNick Mathewson2025-04-161-3/+6
| | | | | | | | | | Also move the comment outside the block it documents, to prevent a too-long line.
| * arti-client: On shutdown for missing proto, print to stderrNick Mathewson2025-04-161-1/+17
| | | | | | | | Also wait a little so logs can flush.
| * arti-client README: Document undesirable exit(1) behavior.Nick Mathewson2025-04-161-1/+12
| |
| * protover, *: Add documentation about what "supported" means.Nick Mathewson2025-04-161-1/+1
| |
| * arti-client: Small test for evaluating protocol status.Nick Mathewson2025-04-162-0/+71
| |
| * arti,arti-client: Add an option to override required protocolsNick Mathewson2025-04-164-6/+77
| | | | | | | | | | (This isn't a boolean, because we really don't want people ignoring all possible required protocols.)
| * arti-client: Keep a somewhat accurate notion of our release date.Nick Mathewson2025-04-164-3/+40
| | | | | | | | | | | | | | | | | | This doesn't need to be perfect, but we need to use it to see if a consensus is new enough that we should obey its recommendations. This commit also adds a script to update or check our release date, and calls this script from our cargo-publish script.
| * Add warnings about removing supported protocols.Nick Mathewson2025-04-161-0/+3
| |
| * arti-client: Implement the basics of protocol enforcement.Nick Mathewson2025-04-165-2/+266
| | | | | | | | This is the major part of #1849.
| * New functions to report supported subprotocolsNick Mathewson2025-04-162-0/+99
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Part of #1849. Note that these functions are distributed across crates, so that if (in the future) we stop doing API breaks with every release, we will get the right outputs. Note also that these functions build the list of protocols out of specific symbolic features, rather than numbers: this makes it easier to avoid errors about "which feature was Relay=4 again", and easier to avoid accidentally referring to a protocol that doesn't exist, like "Consensus" (should be "Cons") or "HsDir" (case is wrong).
* | arti-client: Added TODO about replacing OnceCellhashcatHitman2025-04-171-0/+7
|/ | | | | - [`once_cell::sync::OnceCell`] should be replaced by [`std::sync::OnceLock`] once the blocking methods are stabilized and within our MSRV.
* Merge branch 'todo-errordetail' into 'main'David Goulet2025-04-142-2/+8
|\ | | | | | | | | arti-client: Add ErrorDetail::OnionServiceSetup See merge request tpo/core/arti!2923
| * arti-client: Add ErrorDetail::OnionServiceSetuphjrgrn2025-04-142-2/+8
| |
* | arti-client: xref to fork policyIan Jackson2025-04-072-0/+17
|/
* Remove outdated TODOCocytusDEDI2025-04-031-4/+0
|
* Bump all the unstable tor- and arti- crates to 0.29.0.Gabriela Moldovan2025-03-311-27/+27
| | | | | | | | | | Done using: ``` for crate in $(./maint/list_crates | rg '^(tor|arti-)'); do cargo set-version -p $crate 0.29.0 done ```
* Bump the versions of the non-{arti-,tor-} crates.Gabriela Moldovan2025-03-311-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The non-{arti-,tor-} crates are: ``` ./maint/list_crates | rg -v '^(tor|arti)' oneshot-fused-workaround slotmap-careful test-temp-dir fslock-guard hashx equix caret fs-mistrust safelog retry-error ``` We split them in the following categories: * crates with no changes (no version bumps): ``` maint/changed_crates -v "arti-v$LAST_VERSION" 2>&1 >/dev/null | grep -i "no change" | grep -v '\(tor\|arti\)-' oneshot-fused-workaround: No change. slotmap-careful: No change. fslock-guard: No change. caret: No change. retry-error: No change. ``` * crates that only have non-functional changes (bump the patch version): - test-temp-dir - equix - fs-mistrust - safelog * crates where APIs were broken (bump minor): - hashx (`RngCore` impl for `SipRand`) The bumps from this commit were created using this script: ``` PATCH=" test-temp-dir equix fs-mistrust safelog " for crate in $PATCH; do cargo set-version --bump patch -p $crate; done MINOR=" hashx " for crate in $MINOR; do cargo set-version --bump minor -p $crate; done ```
* Upgrade strum dependency to 0.27.1.Gabriela Moldovan2025-03-271-1/+1
| | | | | | | | | In 0.27.0, strum's MSRV was bumped to 1.66.1, but that's okay because ours is 1.77. We aren't affected by any of its [breaking changes]. [breaking changes]: https://github.com/Peternator7/strum/blob/master/CHANGELOG.md#0270
* Mark rpc features as non-experimental.Nick Mathewson2025-03-251-2/+3
|
* Use CautiousRng for keys going into the KeyMgr.Nick Mathewson2025-03-241-2/+2
|
* Merge branch 'client-arti' into 'main'opara2025-03-201-16/+12
|\ | | | | | | | | replace state_dir and storage_mistrust with tor_persist::state_dir::StateDirectory See merge request tpo/core/arti!2863
| * replace state_dir and storage_mistrust with ↵abdul28012025-03-201-16/+12
| | | | | | | | tor_persist::state_dir::StateDirectory
* | squash! Upgrade rand dependency to 0.9.Nick Mathewson2025-03-182-3/+3
| | | | | | | | - `rand::thread_rng()` has been deprecated and renamed to `rand::rng()`
* | Upgrade rand dependency to 0.9.Nick Mathewson2025-03-181-2/+2
|/ | | | | | (Per discussion at #1774, we think the changes are acceptable.) This commit won't compile on its own; subsequent commits will fix it.
* tor-rtmock: task: Remove Default impl for ThreadDescriptorIan Jackson2025-03-041-1/+1
| | | | | | | | | This is going to become a hazard. Let's be explicit. This means using educe to derive the Default for Data. We also need to update our educe dependency to 0.4.22, since that's when Default(expression= "...") started working correctly.
* Bump minor versions in tor-*, arti-*.Nick Mathewson2025-03-031-27/+27
|
* Upgrade to derive_more 2Nick Mathewson2025-02-261-1/+1
| | | | | This took a little refactoring, since derive_more::Foo no longer re-exports std::ops::Foo.
* Fix `crate_bootstrapped` typokpcyrd2025-02-161-1/+1
|
* Enable derive-deftly beta featuresIan Jackson2025-02-121-1/+1
| | | | | | | | Right now this will give us `${Xmeta as ... default ...}`, which may improve things in the future. The Cargo.toml syntax is precisely that from https://docs.rs/derive-deftly/1.0.0/derive_deftly/doc_changelog/index.html#t:beta
* Update to derive-deftly 1.0Ian Jackson2025-02-121-1/+1
| | | | | | | | | This is released now. Prepared with: cargo upgrade -i -p derive-deftly There is some new duplication now I think mostly because pwd-grp uses old derive-deftly.
* Bump minor version of fs-mistrustIan Jackson2025-02-071-1/+1
| | | | Fixes #1841.
* Version bumps to 0.27.0Ian Jackson2025-02-061-27/+27
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | See Release.md. maint/list_crates | grep -P '^tor-|^arti-' | xargs -n1 nailing-cargo -Eu set-version --bump minor -p This completes the version bumps. The report of changed crates, before I started the release work, is: $ maint/changed_crates -v "arti-v$LAST_VERSION" oneshot-fused-workaround: No change. slotmap-careful: No change. test-temp-dir: No change. fslock-guard: No change. hashx: No change. equix: No change. tor-basic-utils: No change. caret: No change. fs-mistrust safelog: No change. retry-error: No change. tor-error tor-general-addr: No change. tor-geoip: No change. tor-rtcompat tor-rtmock tor-async-utils tor-config tor-config-path tor-rpc-connect tor-log-ratelim: No change. tor-rpcbase tor-memquota: No change. tor-units tor-llcrypto: No change. tor-protover: No change. tor-bytes tor-checkable: No change. tor-cert tor-key-forge tor-hscrypto: No change. tor-socksproto: No change. tor-linkspec: No change. tor-cell: No change. tor-proto tor-netdoc: No change. tor-consdiff: No change. tor-netdir tor-relay-selection: No change. tor-persist tor-chanmgr tor-ptmgr: No change. tor-guardmgr: No change. tor-circmgr tor-dirclient: No change. tor-dirmgr: No change. tor-keymgr tor-hsclient tor-hsservice tor-hsrproxy: No change. tor-relay-crypto arti-client arti-relay arti-rpcserver arti arti-rpc-client-core $
* fs-mistrust: bump minor version, and in-tree depsIan Jackson2025-02-061-1/+1
| | | | | | | | | | | | There are new features. cargo set-version --offline --bump minor -p fs-mistrust Actually, I have discovered by diffing that some methods now take `&self` where previously they took `self`. This will need a further bump to the fs-mistrust version and a fix to the changelog. I will do that. Filed blocker ticket #1841 for it.
* rpc: Correct API documentation about optimismNick Mathewson2025-01-301-4/+0
| | | | | | | | | | | Our documentation had dated to an older version of our RPC stream code, where all streams were automatically optimistic. But as explained, our use of "optimistic"ness in RPC stream code is now purely internal, to make it possible to get an DataStreamCtrl. This isn't user-visible in our rpc_conn_open_stream code. Closes #1583
* tor-rtcompat: Add the ability to get a StreamOps handle.Gabriela Moldovan2025-01-151-0/+4
| | | | | | | | | | | | | | | | | | | | | | | Needed for cases where we wrap an object that implements `StreamOps` in an external type, thereby losing access to the `StreamOps` functionality. For example, during the channel handshake, we `.split()` the stream that implements `StreamOps`, which leaves us with a `SplitSink` and a `SplitStream`, neither of which implement `StreamOps`. Getting a handle to the underlying object that implements `StreamOps` (for example, a file handle) *before* the stream is `.split()` enables us to use `StreamOps` to manipulate the underlying split stream. This commit also introduces a special `UnsupportedStreamOpsHandle`, which is a type that implements `StreamOps`, but always returns an error. This type is meant to simplify error handling and usage, and is meant to be used in cases where `StreamOps` is not supported. TODO: the name of this type is pretty confusing (it's very similar to `UnsupportedStreamOp`, which is an error type), and should probably be renamed to something else (`NoOpStreamOpsHandle`, `BrokenStreamOpsHandle`, `DummyStreamOpsHandle` come to mind...). Note: this changes the `StreamOps` trait to be slightly different from what I originally envisioned in !2660 and #1769
* Bump versions of internal arti crates for Arti 1.3.2Nick Mathewson2025-01-071-27/+27
| | | | | | | | | | | | | The affected crates follow our regular versioning. They all get bumped to 0.26.0. Done with ``` for crate in $(./maint/list_crates |grep '^arti-\|tor-' ); do cargo set-version --bump minor -p $crate; done ```
* Merge branch 'mod-module-files' into 'main'Nick Mathewson2025-01-071-0/+1
|\ | | | | | | | | clippy: deny `mod_module_files` See merge request tpo/core/arti!2689
| * clippy: deny `mod_module_files`Steven Engler2025-01-061-0/+1
| | | | | | | | | | | | Denies 'mod.rs' files for consistency. https://rust-lang.github.io/rust-clippy/master/index.html#mod_module_files
* | fix: fix typosDimitris Apostolou2025-01-061-1/+1
|/
* tor-rtcompat: Require NetStream{Listener,Provider} streams to impl StreamOps ↵Gabriela Moldovan2024-12-101-2/+6
| | | | (fmt).
* tor-rtcompat: Require NetStream{Listener,Provider} streams to impl StreamOps.Gabriela Moldovan2024-12-101-1/+8
| | | | Part of #1769