summaryrefslogtreecommitdiff
path: root/crates/arti-rpcserver/src
Commit message (Collapse)AuthorAgeFilesLines
...
* Rename tor-rpccmd to tor-rpcbase.Nick Mathewson2023-04-122-3/+3
|
* rpc: Make AuthenticationMethod an enum.Nick Mathewson2023-04-121-13/+20
|
* rpc: Reify and expose DispatchTable.Nick Mathewson2023-04-121-1/+9
|
* rpc: Use Pin<Box<Stream/Sink>> for run_loopNick Mathewson2023-04-122-16/+24
|
* rpc: Import Pin/Context/Poll.Nick Mathewson2023-04-121-29/+13
| | | | | (Except for one case where we are using crate::Context and task::Context at the same time.)
* rpc: Document our intended read-blocking behavior.Nick Mathewson2023-04-121-0/+4
|
* rpc: Switch JsonLinesEncoder to have Default, not new.Nick Mathewson2023-04-122-6/+5
|
* rpc: Rename BoxedResponseBody => ResponseBodyNick Mathewson2023-04-123-18/+18
|
* rpc: Remove anyhow dependencyNick Mathewson2023-04-121-5/+13
|
* rpc: Add standard warnings to arti-rpcserverNick Mathewson2023-04-125-7/+85
|
* rpc: Add an authentication step.Nick Mathewson2023-04-121-1/+70
| | | | | | | | Per our design, every connection starts out unauthenticated, and needs one authenticate command to become authenticated. Right now the only authentication type is "This is a unix named socket where everybody who can connect has permission."
* RPC: add a temporary "listen" function.Nick Mathewson2023-04-122-0/+52
| | | | | It requires tokio, it's unix-only, and makes some unfortunate shortcuts. Probably good enough for initial testing.
* rpc: Declare a trivial Echo command that works on a session.Nick Mathewson2023-04-121-1/+24
|
* rpc: Wire up arti-rpcserver to use tor-rpccmd.Nick Mathewson2023-04-122-24/+159
|
* rpc: do a better job of hiding impl_const_type_id!Nick Mathewson2023-04-121-1/+2
|
* RPC: Initial implementation of a multiple-argument dispatchNick Mathewson2023-04-121-0/+1
| | | | | | | | | | This code uses some kludges (discussed with Ian previously and hopefully well documented here) to get a type-identifier for each type in a const context. It then defines a macro to declare a type-erased versions of a concrete implementation functions, and register those implementations to be called later. We will probably want to tweak a bunch of this code as we move ahead.
* Start on a lower-level tor-rpccmd crate.Nick Mathewson2023-04-121-35/+10
| | | | | This crate will hold the backend pieces of RPC interaction that different parts of Arti get to implement.
* rpc: Add a Session object and an interaction loop.Nick Mathewson2023-04-122-0/+184
|
* rpc: Add asynchronous_codec wrapper for jsonlines.Nick Mathewson2023-04-122-0/+101
|
* rpc: Add a cancellable future type.Nick Mathewson2023-04-122-0/+134
| | | | | | Ordinarily you can cancel a future just by dropping it, but we'll want the ability to cancel futures that we no longer own (because we gave them to a `FuturesUnordered`).
* rpc: Implement json message types for serde.Nick Mathewson2023-04-122-0/+222