[Twisted-Python] WebSockets and QUIC for Twisted

Cory Benfield cory at lukasa.co.uk
Thu Jul 6 01:36:29 MDT 2017


> On 5 Jul 2017, at 10:32, Barry Scott <barry.scott at forcepoint.com> wrote:
> 
> I am interested in using Twisted with a couple of technologies: WebSockets and 
> QUIC. I'm researching what is already available.
> 
> I found the autobahn-python for WebSockets, are there other projects that 
> provide WebSockets that I have missed?
> 
> I could not find references to any projects supporting the QUIC protocol for 
> python. I did find the libquic project. Do you know of any work going on for 
> this protocol for Twisted?

Right now QUIC is in its *very* early stages. For reference the current interop draft is -4, and the interop goal is literally just to be able to complete the handshake. None of the currently available OSS implementations have a goal at this stage to actually be able to transmit data amongst themselves. Even this goal is currently hard to reach due to disagreements about which TLS 1.3 draft version should be used (-18 or -20).

The upshot of this is that QUIC is at least a year away from being a serious proposition to deploy in the wild!

I am constantly keeping an eye on the landscape of OSS QUIC implementations that could be bound into Twisted. At this time there is nothing really useful. The two best options are ngtcp2 and quicly. Both of these are C libraries which can easily be bound by Twisted. However, both are currently not well suited for use with Twisted due to their insistence on using non-OpenSSL TLS backends (BoringSSL and pictols respectively). ngtcp2 will eventually support OpenSSL, which will make it the best option for Twisted, but until the difficulty about TLS 1.3 drafts is resolved it will stay on BoringSSL for the forseeable future.

I suppose the TL;DR here is that you can’t really deploy QUIC in the wild, so the absence of a Twisted implementation is not hugely meaningful. ;)

Cory



More information about the Twisted-Python mailing list