BiagioFesta / wtransport

Async-friendly WebTransport implementation in Rust
Apache License 2.0
402 stars 27 forks source link

Dedicated Inner QPACK protocol #119

Closed BiagioFesta closed 9 months ago

BiagioFesta commented 9 months ago

Currently wtransport depends on ls-qpack-rs for QPACK implementation. However, ls-qpack-rs relies its C core-implementation and that implies compiling it requires some additional dependencies: LLVM (for libclang), CMake and, of course, a C compiler.

Those dependencies are thus transitively required by wtransport.

Especially on Windows (where dependencies are generally not distributed with a simple packager manager), compilation might not be super user-friendly. Some users were not clear about that requirements, and rightfully opened some issues. For example:


Well, this PR aims to solve the problem.

wtransport-proto will now include a dedicated, full-rust, native QPACK implementation, breaking dependency with ls-qpack-rs.

This new QPACK implementation, of course, is not as feature-complete as ls-qpack-rs, but considering QPACK usage in WebTransport protocol is pretty much minimal that should be fine. This new QPACK implementation indeed will be dedicated for wtransport

Hopefully this will make wtransport much more easier to test/build/play with.