On Thu, 30 May 2024, at 17:05, Glyph wrote:
> We should resurrect the effort to build a first-party websockets 
> implementation: <https://github.com/twisted/twisted/issues/4173>.  It's been 
> nice to have Autobahn available, but websockets are by far the quickest and 
> easiest way to provide a *native* demonstration of Twisted's capabilities.  
> Luckily, we do not have to build an implementation ourselves, as a maintained 
> sans-io kernel implementation exists in the 
> <https://github.com/python-hyper/wsproto> project.  So we just need to do a 
> direct integration with the Resource model in twisted.web.  I will probably 
> do some work on this project myself.


Hello,

I don't want to tell excited developers to _not_ do a thing, but to me this 
seems a little weird since Autobahn already does all of this (including "a 
direct integration with the Resource model in twisted.web"). And has a done a 
_ton_ of work to ensure strict RFC compliance and high performance.

I'm 98% sure that PRs to improve any aspects of the Autobahn implementation 
would be accepted (by that project). Although IIRC it wasn't written with exact 
"Sans-IO" guidance in mind [1], the implementation is already 'fairly' 
separated since it supports both asyncio and Twisted (your choice) out of the 
box.

It has been a few years while since I've directly worked on Autobahn / Crossbar 
but I'd be happy to pair with anyone excited about this to pass on what I do 
know and where things are located.

I guess what I'm saying is that maybe modifying the proposed project slightly 
to become "integrate Hyper's state machine into Autobahn" makes a lot more 
sense. Assuming they handle that vast array of edge cases and weirdness that is 
WebSockets ;)
...or perhaps I misunderstand what "demonstrate Twisted's native capabilities" 
actually means in this context.


[1] I don't think e.g. a "threaded" / blocking backend would work well in the 
current implementation, but adding an AnyIO or curio one should be (relatively) 
straightforward.

-- 
meejah
_______________________________________________
Twisted mailing list -- twisted@python.org
To unsubscribe send an email to twisted-le...@python.org
https://mail.python.org/mailman3/lists/twisted.python.org/
Message archived at 
https://mail.python.org/archives/list/twisted@python.org/message/MILGHPJ4ECJD7S2JUNMH4HAGYLUJWWLK/
Code of Conduct: https://twisted.org/conduct

Reply via email to