aboutsummaryrefslogtreecommitdiff
path: root/crates/arti-rpc-client-core/src
Commit message (Collapse)AuthorAgeFilesLines
* Merge branch 'remove-lint' into 'main'Jim Newsome2026-07-151-1/+1
|\ | | | | | | | | | | | | Removed unnecessary lint Closes #2556 See merge request tpo/core/arti!4210
| * add_warning: add reference to arti#2556Jim Newsome2026-07-151-1/+1
| |
| * Removed unnecessary lintpryty262026-07-151-1/+1
| | | | | | | | Removed unnecessary lint
* | multiple crates: Fix clippy warningshjrgrn2026-07-101-1/+1
|/
* maint: Run maint/add_warning to deny string slicesClara Engler2026-06-098-0/+8
| | | | | | | | | | | | 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.
* Upgrade rand crates to 0.10.Wesley Aptekar-Cassels2026-05-121-1/+1
| | | | | | | | | | | 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.
* 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
* typo fixes from @jnewsomeNick Mathewson2026-03-231-1/+1
|
* 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-164-2/+94
|\ \ | | | | | | | | | | | | | | | | | | RPC: Provide superuser mode Closes #2285 See merge request tpo/core/arti!3743
| * | 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-056-213/+1006
|\ | | | | | | | | 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-055-112/+149
| | | | | | | | | | | | | | | | | | | | | | 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.
* | Add missing #[cfg(unix)] in arti-rpc-client-core to fix Windows build.Alexander Hansen Færøy2026-02-281-0/+1
|/
* Merge branch 'ticket_2338' into 'main'Nick Mathewson2026-02-191-0/+4
|\ | | | | | | | | | | | | Use ErrorSources where appropriate to walk an error stack. Closes #2338 See merge request tpo/core/arti!3685
| * arti-rpc-client-core: Document why we don't need ErrorSources.Nick Mathewson2026-02-161-0/+4
| |
* | Allow clippy::collapsible_if to triggerGabriela Moldovan2026-02-161-0/+1
|/ | | | | | | | | `clippy::collapsible_if` started triggering after bumping the MSRV to 1.88. Since this triggers from a lot of places, and since there even are a couple of instances where we explicitly allow `clippy::collapsible_ifs`, I've opened #2342 for deciding what to do about it.
* rpc nb: Fix documentation link.Nick Mathewson2026-02-121-1/+1
|