Comments (12)
I don't think the frames match the HTTP spec itself, so I don't think you'll find much to use from the http crate.
I forgot to mention it, but I agree that a separate crate would make sense. To disambiguate the HTTP protocol version, I think it would be good to call it quinn-h3
.
from quinn.
Any progress?
from quinn.
Not yet, we've been focusing on updating our spec compliance to the latest draft. Would you like to help out? I'm happy to mentor!
from quinn.
Sorry, I am busy recently. I am happy to do this in the future.
from quinn.
No problem, I figured it was worth asking. We'll get to it eventually, hopefully somewhat soon.
from quinn.
Hey! I'd like to start working on this next !
from quinn.
@stammw great! The idea here is just to implement the bytes-to-types and types-to-bytes code for the data structures defined in the HTTP spec. Ideally the module would include unit tests that just check whether round-tripping works as expected. I think it would make sense to use the Codec
trait as is used for example in the frame
module (which should provide good examples).
Let us know if you have questions!
from quinn.
It might be worth leveraging types from the http crate, though I'm not sure how much work might be required on their end to play well with HTTP3 concepts.
I'd also ideally like to see this be a separate crate in the workspace (e.g. quinn-http
) so non-http users don't need to deal with the extra code/dependencies.
from quinn.
Hey,
What do you think about how I should handle the QPACK encoded frames (HEADERS, including PUSH_PROMISE ones) ?
- Return
HttpFrame
variant that contains rawBytes
- Return
HttpFrame
variant that contains a stubbed QPACK type - Do not implement them for the moment
from quinn.
In the interest of being able to run tests, stubbing them out seems most practical. Unless there's some conceivable use for the raw data other than immediately decompressing it?
from quinn.
Actually, I think QPACK wouldn't be a data type but a trait. So stubbing and using raw types inside variants might be more or less the same solution. And at the and the encode -> decode -> compare tests still be writable even if the given
part would have to be changed afterward?
I wonder how much effort it would take to finish the existing QPACK PR... I worry that #130 will be blocked until then, eventually.
from quinn.
closed via #130
from quinn.
Related Issues (20)
- GSO padding has high overhead for application datagrams larger than half MTU
- Consider more aggressive GSO batching
- stream sending buffer size and how much left HOT 3
- ECN interop failures HOT 3
- aggressive open_bi HOT 1
- Create my own AsyncUdpSocket HOT 1
- "SendableFrames was SendableFrames { acks: false, other: true }, but only ACKs have been written" HOT 11
- Black hole detection false-positives HOT 5
- Expose Packet Decoder? HOT 2
- ReadExactError::FinishedEarly byte count is sometimes incorrect HOT 1
- How to receive data in blocking way HOT 3
- Inconsistent documentation on platform availability of `local_ip` HOT 3
- long running bi stream HOT 5
- seems like quinn 0.11 not working well under heavy load HOT 12
- API for awaiting for stream reset on the reader HOT 5
- build fails on Solaris HOT 4
- Rotation of Connection IDs HOT 5
- How to run insecure connection example? HOT 1
- Weird issue when transferring large file HOT 3
- `ACKs are delivered in order` panic when packets are reordered
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from quinn.