[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]

Re: [tor-dev] [TSoP] stem.client - introductions



Dave Rolek <dmr-x@xxxxxxxxxx> writes:

> Hi everyone!

Hi Dave,

Congratulations on your project/acceptance!

> In particular, I'll be working on expanding stem's support to act as a
> Tor client, aka stem.client, speaking with Tor's ORPort. You can see
> more about stem in general [1], and read concepts for stem.client [2],
> but at the end of this email I list my high-level plan for the summer
> project.

I don't know if you've gotten far enough to discuss code layout/design,
but it would be really cool if you follow the "sans-IO" approach for the
design of the actual "OR protocol" part of the project.

A great example of this is the Hyper/H2 libraries by Cory Benfield for
the HTTP2 protocol -- this what drives Twisted HTTP2 support as well as
threaded (blocking I/O) servers.

   https://github.com/python-hyper/hyper-h2

There are several advantages to this approach:

 - makes for a nice and clean separation between core "protocol stuff"
   and the I/O.
 - the above makes testing easier and cleaner (e.g. end-to-end tests
   that don't use any "real networking", all in-memory)
 - allows use in blocking / threaded implementations but also async
   (event-based) implementations (for example, someone could then
   leverage the bulk of your work to make an asyncio binding without
   having to re-write all the parsing and state-machine code)
 - it's the new hotness

I'm usually idling in #tor-dev as meejah, ping me any time

Good luck with your project, sounds interesting!

-- 
meejah
_______________________________________________
tor-dev mailing list
tor-dev@xxxxxxxxxxxxxxxxxxxx
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-dev