summaryrefslogtreecommitdiff
path: root/crates/arti-rpc-client-core
Commit message (Collapse)AuthorAgeFilesLines
* Bump all the unstable tor- and arti- crates to 0.43.0Gabriela Moldovan2026-06-011-6/+6
| | | | | | | | | | 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 ```
* Upgrade rand crates to 0.10.Wesley Aptekar-Cassels2026-05-122-4/+4
| | | | | | | | | | | When the circ-padding feature is enabled, we use maybenot, which does not yet support rand 0.10. In the meantime, enabling this feature pulls in rand 0.9. This is not ideal, but should be okay as a temporary situation. This also replaces the use of ReseedingRng (which was removed in 0.10) with the reseeding_rng crate. This is somewhat less performant, but it should be okay.
* release: Bump tor- and arti- crate versions.Wesley Aptekar-Cassels2026-05-061-6/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | cargo set-version -p arti-client 0.42.0 cargo set-version -p arti-config 0.42.0 cargo set-version -p arti-relay 0.42.0 cargo set-version -p arti-rpc-client-core 0.42.0 cargo set-version -p arti-rpcserver 0.42.0 cargo set-version -p arti-testing 0.42.0 cargo set-version -p arti-ureq 0.42.0 cargo set-version -p tor-async-utils 0.42.0 cargo set-version -p tor-basic-utils 0.42.0 cargo set-version -p tor-bytes 0.42.0 cargo set-version -p tor-cell 0.42.0 cargo set-version -p tor-cert 0.42.0 cargo set-version -p tor-cert-x509 0.42.0 cargo set-version -p tor-chanmgr 0.42.0 cargo set-version -p tor-checkable 0.42.0 cargo set-version -p tor-circmgr 0.42.0 cargo set-version -p tor-config 0.42.0 cargo set-version -p tor-config-path 0.42.0 cargo set-version -p tor-consdiff 0.42.0 cargo set-version -p tor-dirclient 0.42.0 cargo set-version -p tor-dircommon 0.42.0 cargo set-version -p tor-dirmgr 0.42.0 cargo set-version -p tor-dirserver 0.42.0 cargo set-version -p tor-error 0.42.0 cargo set-version -p tor-events 0.42.0 cargo set-version -p tor-general-addr 0.42.0 cargo set-version -p tor-geoip 0.42.0 cargo set-version -p tor-guardmgr 0.42.0 cargo set-version -p tor-hsclient 0.42.0 cargo set-version -p tor-hscrypto 0.42.0 cargo set-version -p tor-hsrproxy 0.42.0 cargo set-version -p tor-hsservice 0.42.0 cargo set-version -p tor-key-forge 0.42.0 cargo set-version -p tor-keymgr 0.42.0 cargo set-version -p tor-linkspec 0.42.0 cargo set-version -p tor-llcrypto 0.42.0 cargo set-version -p tor-log-ratelim 0.42.0 cargo set-version -p tor-memquota 0.42.0 cargo set-version -p tor-memquota-cost 0.42.0 cargo set-version -p tor-netdir 0.42.0 cargo set-version -p tor-netdoc 0.42.0 cargo set-version -p tor-persist 0.42.0 cargo set-version -p tor-proto 0.42.0 cargo set-version -p tor-protover 0.42.0 cargo set-version -p tor-ptmgr 0.42.0 cargo set-version -p tor-relay-crypto 0.42.0 cargo set-version -p tor-relay-selection 0.42.0 cargo set-version -p tor-rpcbase 0.42.0 cargo set-version -p tor-rpc-connect 0.42.0 cargo set-version -p tor-rtcompat 0.42.0 cargo set-version -p tor-rtmock 0.42.0 cargo set-version -p tor-socksproto 0.42.0 cargo set-version -p tor-units 0.42.0
* Bump versions: tor-* and arti-* unstable cratesIan Jackson2026-03-301-6/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | As per https://gitlab.torproject.org/tpo/core/arti/-/issues/2436#note_3384773 Made with nailing-cargo -Eu set-version -p arti-client 0.41.0 nailing-cargo -Eu set-version -p arti-relay 0.41.0 nailing-cargo -Eu set-version -p arti-rpcserver 0.41.0 nailing-cargo -Eu set-version -p arti-ureq 0.41.0 nailing-cargo -Eu set-version -p arti-rpc-client-core 0.41.0 nailing-cargo -Eu set-version -p tor-basic-utils 0.41.0 nailing-cargo -Eu set-version -p tor-error 0.41.0 nailing-cargo -Eu set-version -p tor-general-addr 0.41.0 nailing-cargo -Eu set-version -p tor-geoip 0.41.0 nailing-cargo -Eu set-version -p tor-memquota-cost 0.41.0 nailing-cargo -Eu set-version -p tor-llcrypto 0.41.0 nailing-cargo -Eu set-version -p tor-cert-x509 0.41.0 nailing-cargo -Eu set-version -p tor-rtcompat 0.41.0 nailing-cargo -Eu set-version -p tor-rtmock 0.41.0 nailing-cargo -Eu set-version -p tor-async-utils 0.41.0 nailing-cargo -Eu set-version -p tor-config 0.41.0 nailing-cargo -Eu set-version -p tor-config-path 0.41.0 nailing-cargo -Eu set-version -p tor-rpc-connect 0.41.0 nailing-cargo -Eu set-version -p tor-log-ratelim 0.41.0 nailing-cargo -Eu set-version -p tor-rpcbase 0.41.0 nailing-cargo -Eu set-version -p tor-memquota 0.41.0 nailing-cargo -Eu set-version -p tor-units 0.41.0 nailing-cargo -Eu set-version -p tor-bytes 0.41.0 nailing-cargo -Eu set-version -p tor-protover 0.41.0 nailing-cargo -Eu set-version -p tor-checkable 0.41.0 nailing-cargo -Eu set-version -p tor-cert 0.41.0 nailing-cargo -Eu set-version -p tor-key-forge 0.41.0 nailing-cargo -Eu set-version -p tor-hscrypto 0.41.0 nailing-cargo -Eu set-version -p tor-socksproto 0.41.0 nailing-cargo -Eu set-version -p tor-linkspec 0.41.0 nailing-cargo -Eu set-version -p tor-cell 0.41.0 nailing-cargo -Eu set-version -p tor-persist 0.41.0 nailing-cargo -Eu set-version -p tor-keymgr 0.41.0 nailing-cargo -Eu set-version -p tor-relay-crypto 0.41.0 nailing-cargo -Eu set-version -p tor-proto 0.41.0 nailing-cargo -Eu set-version -p tor-netdoc 0.41.0 nailing-cargo -Eu set-version -p tor-consdiff 0.41.0 nailing-cargo -Eu set-version -p tor-netdir 0.41.0 nailing-cargo -Eu set-version -p tor-relay-selection 0.41.0 nailing-cargo -Eu set-version -p tor-chanmgr 0.41.0 nailing-cargo -Eu set-version -p tor-ptmgr 0.41.0 nailing-cargo -Eu set-version -p tor-dircommon 0.41.0 nailing-cargo -Eu set-version -p tor-guardmgr 0.41.0 nailing-cargo -Eu set-version -p tor-circmgr 0.41.0 nailing-cargo -Eu set-version -p tor-dirclient 0.41.0 nailing-cargo -Eu set-version -p tor-dirmgr 0.41.0 nailing-cargo -Eu set-version -p tor-dirserver 0.41.0 nailing-cargo -Eu set-version -p tor-hsclient 0.41.0 nailing-cargo -Eu set-version -p tor-hsservice 0.41.0 nailing-cargo -Eu set-version -p tor-hsrproxy 0.41.0
* Re-run cbindgen.Nick Mathewson2026-03-251-2/+2
|
* rpc: Fix up documentation linksNick Mathewson2026-03-252-1/+6
|
* rpc: tweak documentation and variable names wrt renamingNick Mathewson2026-03-253-69/+74
| | | | | | | Since we renamed PollingStream and NonblockingStream to BlockingConnection and NonblockingConnection, it no longer makes sense to refer to them as streams, or put them in variables called "stream".
* rpc: Make stream type in NonblockingConnection opaque.Nick Mathewson2026-03-253-22/+52
|
* Split ll_conn module into blocking/nonblocking layersNick Mathewson2026-03-253-901/+939
| | | | | | | | This commit is almost entirely code movement; it's probably best to review this one with --color-moved. I've had to make a field (temporarily) pub(super). The next commit will fix that.
* rpc: Rename nb_stream.rs → ll_conn.rsNick Mathewson2026-03-256-11/+11
| | | | | Since we are no longer calling these types "streams" I've decided to revert to the old name for this module.
* rpc: Rename NonblockingStream → NonblockingConnection.Nick Mathewson2026-03-252-23/+23
|
* rpc: Rename PollingStream → BlockingConnection.Nick Mathewson2026-03-254-31/+31
|
* rpc: Remove mention of two already-removed arguments.Nick Mathewson2026-03-251-4/+0
|
* Fix typosTobias Stoeckmann2026-03-242-2/+2
| | | | Typos found with codespell
* rpc: re-run cbindben.Nick Mathewson2026-03-231-3/+3
|
* typo fixes from @jnewsomeNick Mathewson2026-03-231-1/+1
|
* Run cbindgen to regenerate header file.Nick Mathewson2026-03-232-1/+230
|
* rpc: add ffi wrappers for nonblocking and event-loop functions.Nick Mathewson2026-03-232-6/+313
| | | | | This commit adds FFI wrappers for the "poll" API, which lets the user integrate with a poll(2)-style event loop.
* rpc: define FFI wrappers for nonblocking request APIsNick Mathewson2026-03-231-1/+137
| | | | | | This commit adds wrappers for the "submit/wait" methods on RpcConn (which are used to submit tagged requests, and then wait for responses to all tagged requests at once).
* Merge branch 'typos' into 'main'opara2026-03-162-3/+3
|\ | | | | | | | | Fix various typos See merge request tpo/core/arti!3781
| * Fix word duplicate typosTobias Stoeckmann2026-03-152-3/+3
| |
* | Merge branch 'rpc-su-v2' into 'main'Nick Mathewson2026-03-165-2/+114
|\ \ | | | | | | | | | | | | | | | | | | RPC: Provide superuser mode Closes #2285 See merge request tpo/core/arti!3743
| * | rpc-client: Run cbindgen to regenerate C header.Nick Mathewson2026-03-161-0/+20
| | |
| * | rpc-client: add support to prefer/require su permissionNick Mathewson2026-03-164-2/+94
| |/
* / arti-rpc-client-core: Fix windows buildTobias Stoeckmann2026-03-151-1/+1
|/ | | | Fix a typo in use-statement for windows.
* rpc: Actually call the stop_writing method when data is all written!Nick Mathewson2026-03-101-0/+4
| | | | | Without this, the poll() method wouldn't actually perform as advertised.
* Merge branch 'nonblocking-rpc-part3' into 'main'Nick Mathewson2026-03-057-213/+1007
|\ | | | | | | | | rpc: API for event-driven IO. See merge request tpo/core/arti!3652
| * rpc: edit and revise EventLoop documentation.Nick Mathewson2026-03-051-7/+8
| |
| * rpc: Transpose Results in RpcPoll::poll.Nick Mathewson2026-03-051-7/+5
| |
| * rpc: document when try_as_{fd,socket} can fail.Nick Mathewson2026-03-051-1/+11
| |
| * rpc: Usage documentation for polling APIIan Jackson2026-03-053-22/+168
| |
| * rpc: Propose to transpose a Result<Result<>>Ian Jackson2026-03-051-0/+2
| |
| * rpc: Add a question in the form of a TODOIan Jackson2026-03-051-0/+2
| |
| * rpc: Fix many long lines in docs and commentsIan Jackson2026-03-054-22/+44
| |
| * rpc: Fix two mis-formatted json! blocksIan Jackson2026-03-051-2/+13
| | | | | | | | | | | | rustfmt doesn't like to touch things inside macros. These were misformatted as a result, with long lines and in one case a missing space.
| * rpc: Remove WantIo and expose wants_to_write().Nick Mathewson2026-03-053-43/+21
| |
| * rpc: Change Waker implementation to EventLoop.Nick Mathewson2026-03-056-112/+150
| | | | | | | | | | | | | | | | | | | | | | Per discussion, it makes more sense to have the API be one that gets called when our IO interests change. Additionally, this commit removes the try_reading and try_writing booleans, as previously discussed. I've left a couple of XXXX comments where more documentation or thought is likely needed.
| * rpc: API for event-driven IO.Nick Mathewson2026-03-055-21/+245
| | | | | | | | | | | | | | This API provides the necessary functionality to use an RpcConn inside a poll-like event loop. This is part of #1856.
| * RPC: Explain why UserTag is a separate type.Nick Mathewson2026-03-051-0/+8
| |
| * RPC: Raname Tag,RequestTag to UserTag.Nick Mathewson2026-03-053-37/+33
| |
| * rpc: documentation fixes and clarificationsNick Mathewson2026-02-261-3/+8
| | | | | | (from Diziet)
| * rpc: Add a paragraph to the connimpl overviewNick Mathewson2026-02-261-0/+3
| |
| * rpc: Add overview documentation to connimpl.Nick Mathewson2026-02-261-0/+64
| | | | | | | | This is based on a pad with input from nickm and Diziet
| * rpc: Nonblocking request submit API (Rust only)Nick Mathewson2026-02-262-5/+52
| | | | | | | | | | | | | | | | | | | | | | This commit finally adds a `RpcConn::submit()` method to send a request without having to wait on it specifically, and an `RpcConn::wait()` method to wait for the next response from _any_ such request. Thanks to the previous patches, this is relatively simple! This is part of #1856.
| * rpc: Backend support for pollable requests.Nick Mathewson2026-02-263-7/+92
| | | | | | | | | | | | In order to implement tagged pollable requests, we need a separate response queue for them, and we need to dispatch requests to that queue as appropriate.
| * rpc: Add "Tag"s to response queues.Nick Mathewson2026-02-261-25/+49
| | | | | | | | | | | | | | For pollable requests, we'll want to associate each one with a tag. But we'd rather not carry tags around for _every_ pending request: it would waste space and lead to possible errors. So instead we add a Tag type as a member of QueueId.
| * rpc: Refactor connimpl in preparation for pollable requests.Nick Mathewson2026-02-263-59/+189
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In order to implement this part of #1856, we will internally divide requests into two kinds: "Waitable" and "Pollable". Waitable requests are the kind that we have now: They are created with an "execute" method. They each have their own response queue and their own condvar, and in order to see if they have any responses, the caller needs to call some kind of request-specific method. Pollable requests are the ones we will add. They are created with a "submit" method, and associated with a user-provided tag. They all share the same queue and the same condvar. To see if any of them have a response, the caller will run a function that returns tagged responses. In order to support this division, this commit: - turns `RequestState` into an enum, - makes `ResponseQueue` into its own type, - Adds a trait that will be implemented by every type that can identify a response queue.
* | Remove semver.md files post-releaseGabriela Moldovan2026-03-031-1/+0
| |
* | Bump all the unstable tor- and arti- crates to 0.40.0.Gabriela Moldovan2026-03-021-6/+6
| | | | | | | | | | | | | | | | | | Done using: ``` for crate in $(./maint/list_crates | rg '^(tor|arti-)'); do cargo set-version -p $crate 0.40.0 done