seanmonstar / httparse

A push parser for the HTTP 1.x protocol in Rust.
https://docs.rs/httparse
Apache License 2.0
584 stars 114 forks source link

Uninit headers - second approach #98

Closed Soveu closed 3 years ago

Soveu commented 3 years ago

Previous attempt: #97 Fixes: #95 and #58

Soveu commented 3 years ago

@seanmonstar do we consider bumping minimal rustc version, like in hyper? Looks like CI is failing (mainly) because of no MaybeUninit in 1.10

Soveu commented 3 years ago

@seanmonstar ?

RalfJung commented 3 years ago

Looks like CI is failing (mainly) because of no MaybeUninit in 1.10

https://crates.io/crates/maybe-uninit would let you support at least Rust 1.20 while ensuring soundness on Rust 1.36+.

Even older versions of Rust do not really have any good way to work with uninit data correctly. If they still need to be supported, possibly a feature flag could be used to provide this API only when the user asks for it? I will note though that Rust 1.20 is already ancient, it was released 4 years ago.

seanmonstar commented 3 years ago

Ok, let's work on this! First thing I did was get CI moved from Travis to GH Actions.

For MSRV, it's probably fine we just bump it to 1.36. It's two years old at this point!

Soveu commented 3 years ago

A force-pushed empty commit would restart CI?

seanmonstar commented 3 years ago

Hm, probably a rebase of master.

Soveu commented 3 years ago

ugh, sorry for the wait, git didn't want to cooperate with me -_-

seanmonstar commented 3 years ago

Yea, so the new CI is failing the msrv job. You can just update the yaml file to set the new MSRV.