<feed xmlns='http://www.w3.org/2005/Atom'>
<title>mirrors/arti.git/crates/arti-rpcserver/src/stream.rs, branch arti-v1.2.7</title>
<subtitle>mirror of https://gitlab.torproject.org/tpo/core/arti
</subtitle>
<id>http://git.dilluti0n.com/mirrors/arti.git/atom?h=arti-v1.2.7</id>
<link rel='self' href='http://git.dilluti0n.com/mirrors/arti.git/atom?h=arti-v1.2.7'/>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/'/>
<updated>2024-07-25T12:43:30Z</updated>
<entry>
<title>rpc: Refactor errors part 1: a new RpcMethod trait.</title>
<updated>2024-07-25T12:43:30Z</updated>
<author>
<name>Nick Mathewson</name>
<email>nickm@torproject.org</email>
</author>
<published>2024-07-23T17:23:58Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=c7c630c44d9e937d7185f591d75fd42c33ab5238'/>
<id>urn:sha1:c7c630c44d9e937d7185f591d75fd42c33ab5238</id>
<content type='text'>
It is no longer necessary to say, for every RPC method,
that its error type is RpcError.
</content>
</entry>
<entry>
<title>Un-indent a block.</title>
<updated>2024-06-11T21:02:04Z</updated>
<author>
<name>Nick Mathewson</name>
<email>nickm@torproject.org</email>
</author>
<published>2024-06-05T16:05:37Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=5654215e51eb514d6b72278706b7a859fc1c54e9'/>
<id>urn:sha1:5654215e51eb514d6b72278706b7a859fc1c54e9</id>
<content type='text'>
</content>
</entry>
<entry>
<title>RPC: Use RPC methods instead of the "ClientConnectionTarget" trait.</title>
<updated>2024-06-11T21:02:04Z</updated>
<author>
<name>Nick Mathewson</name>
<email>nickm@torproject.org</email>
</author>
<published>2024-06-04T17:22:30Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=c07455965fd201ec66631e649a10660e5955e47c'/>
<id>urn:sha1:c07455965fd201ec66631e649a10660e5955e47c</id>
<content type='text'>
On its own, this might not seem like a huge improvement, but it will
later let us implement these RPC methods for types that can't
reasonably implement ClientConnectionTarget.

It also serves as a proof of concept that special-method invocation
can actually work, so that we can build things like this in cases
where introducing a trait isn't practical.

Closes #1427
</content>
</entry>
<entry>
<title>rpc: Pass around our rpc::Context in an Arc.</title>
<updated>2024-06-10T14:33:01Z</updated>
<author>
<name>Nick Mathewson</name>
<email>nickm@torproject.org</email>
</author>
<published>2024-06-04T15:31:19Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=acdc2cbe0bc54141e33da320a9551fbcf2e1d7fc'/>
<id>urn:sha1:acdc2cbe0bc54141e33da320a9551fbcf2e1d7fc</id>
<content type='text'>
Formerly we used a Box.  That was okay at first, but now that we
want RPC methods to be able to invoke other RPC methods, we don't
want the Invocable methods to have to consume the Context.

This requires that Context become Sync.
</content>
</entry>
<entry>
<title>RPC: Require an Error type in methods.</title>
<updated>2024-05-16T12:40:06Z</updated>
<author>
<name>Nick Mathewson</name>
<email>nickm@torproject.org</email>
</author>
<published>2024-05-14T18:19:30Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=98765e5a4cdf70356db38d324b0896d2b6f83c2f'/>
<id>urn:sha1:98765e5a4cdf70356db38d324b0896d2b6f83c2f</id>
<content type='text'>
This is needed so that we can cast special methods' return types
properly.

I wish I could make this optional, but Rust doesn't allow
defaulting an associated type.
</content>
</entry>
<entry>
<title>RPC: Use RPC method names in a consistent format.</title>
<updated>2024-05-14T13:33:36Z</updated>
<author>
<name>Nick Mathewson</name>
<email>nickm@torproject.org</email>
</author>
<published>2024-05-14T13:33:36Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=24efb91741ba1acc139207ee805d385240f8c393'/>
<id>urn:sha1:24efb91741ba1acc139207ee805d385240f8c393</id>
<content type='text'>
Specifically, we want a single colon, and we want our
method names to be in snake_case.
</content>
</entry>
<entry>
<title>RPC: Require DynClone for ClientConnectionError.</title>
<updated>2024-05-14T12:04:03Z</updated>
<author>
<name>Nick Mathewson</name>
<email>nickm@torproject.org</email>
</author>
<published>2024-05-13T15:19:21Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=cb9ae08a5fe9e035b5d72562d05e33d16ca821d0'/>
<id>urn:sha1:cb9ae08a5fe9e035b5d72562d05e33d16ca821d0</id>
<content type='text'>
</content>
</entry>
<entry>
<title>RPC: Document RpcDataSTream state transitions.</title>
<updated>2024-05-14T12:04:03Z</updated>
<author>
<name>Nick Mathewson</name>
<email>nickm@torproject.org</email>
</author>
<published>2024-05-13T14:51:21Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=8c1f86b7b91d5d4e76b511ad4765740db689543e'/>
<id>urn:sha1:8c1f86b7b91d5d4e76b511ad4765740db689543e</id>
<content type='text'>
</content>
</entry>
<entry>
<title>RPC: Rename RpcDataStream::{Waiting =&gt; Launching}</title>
<updated>2024-05-14T12:04:03Z</updated>
<author>
<name>Nick Mathewson</name>
<email>nickm@torproject.org</email>
</author>
<published>2024-05-13T14:44:49Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=aa786226d2ab3a5e4922f71d54cbd3c76ea1a1d2'/>
<id>urn:sha1:aa786226d2ab3a5e4922f71d54cbd3c76ea1a1d2</id>
<content type='text'>
Also, improve documentation.
</content>
</entry>
<entry>
<title>RPC: RpcDataStream type to act as a "stream-shaped hole"</title>
<updated>2024-05-14T12:04:03Z</updated>
<author>
<name>Nick Mathewson</name>
<email>nickm@torproject.org</email>
</author>
<published>2024-05-10T01:32:03Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=d014d60e9e5fe439846e4c05fdd8e73bfc67a1fd'/>
<id>urn:sha1:d014d60e9e5fe439846e4c05fdd8e73bfc67a1fd</id>
<content type='text'>
The application creates these, using a new-stream-handle RPC command,
on an object that can actually create streams.

Then later, the application provides the (global) identity of one of
these objects when it's making a SOCKS connection.  This causes the
object to take hold of a `DataStreamCtrl`.
</content>
</entry>
</feed>
