http-rs / http-types

Common types for HTTP operations
https://docs.rs/http-types
Apache License 2.0
200 stars 84 forks source link

WIP HeaderValue: make Cow<'static, str> #335

Open Fishrock123 opened 3 years ago

Fishrock123 commented 3 years ago

This allows HeaderValue to borrow 'static strings, rather than make allocations.

Unfortunately, we can't specialize TryFrom or From, so this also adds a new crate-only from_static_str() -> HeaderValue.

joshtriplett commented 2 years ago

Most header names (and many header values) will be short; we might want to use something like kstring here, with a small-string optimization. kstring also supports Cow.

jbr commented 2 years ago

Most header names (and many header values) will be short; we might want to use something like kstring here, with a small-string optimization. kstring also supports Cow.

trillium's header name implementation does something like this, using smartcow which is just a cow for smartstring. However it might also make sense to use some sort of string interning library because there are only a handful of header names used in reality and they're repeated across requests