for a while now i've been following the QUIC protocol's development, with a long-term goal of supporting HTTP/3 in rgw. QUIC also looks attractive for use in ceph's Messenger for cluster communications the QUIC RFCs[1] were published last year but HTTP/3 is still undergoing 'final review' there are several C and C++ implementations to choose from, including projects out of cloudflare[2], facebook[3], google[4], and microsoft[5] there are still some barriers to adoption: * openssl doesn't/won't support QUIC implementations, so they're all stuck with forks like BoringSSL. this might make it hard to ship something, but it doesn't stop us from prototyping * for rgw, there's a corresponding lack of support from S3 clients and official SDKs. we may have to build our own S3 clients for any prototyping/performance work rgw's ideal QUIC/H3 library would support boost::asio's networking, but i haven't found one yet - unfortunately, boost::beast will only ever support HTTP/1.1 and websockets. so i experimented with a C library called lsquic[6], and built a prototype client/server library (see repo[7] and docs[8]) with asio integration on top. it needs work and testing, but it has the H3 interfaces to support a new rgw frontend, and the QUIC interfaces for a potential ceph Messenger. this asio model isn't compatible with crimson-osd, but we might build similar async interfaces for seastar over the same C library? anyway, i'm hoping to start some rgw projects around this sometime after the quincy release. i also wanted to start the conversation and gauge interest from the rest of ceph. let me know what you think [1] https://www.rfc-editor.org/rfc/rfc9000.html [2] https://github.com/cloudflare/quiche/ [3] https://github.com/facebookincubator/mvfst [4] https://www.chromium.org/quic/ [5] https://github.com/microsoft/msquic [6] https://github.com/litespeedtech/lsquic/ [7] https://github.com/cbodley/nexus/ [8] https://cbodley.github.io/nexus/ _______________________________________________ Dev mailing list -- dev@xxxxxxx To unsubscribe send an email to dev-leave@xxxxxxx