Repository navigation
v0.5.0 - rkyv, brotli, cache-control, packer lib+bin, tested
Migrating from 0.4.x to 0.5.x
The 0.5.0 is almost a complete rewrite, however the general idea remains the same.
- We still have two parts - packer and loader. There is also a
commoncrate andtestscrate, however they are not meant to be used directly. - Lots of internals were changed, including rkyv for serialization / zero-copy deserialization. This of course makes packs built with previous versions incompatible with current loader and vice versa.
- We are now built around http crate, which makes web-static-pack compatible with hyper 1.0 without depending on it directly.
BREAKING CHANGES
- Packer is now built around subcommands. The previous behavior was moved to
directory-singlesubcommand, androot_pathparameter was dropped. See examples. - Since we no longer depend on
hyperin any way (thehttpcrate is common interface),hyper_loaderfeature is no longer present in loader. let loader = loader::Loader::new(...)is nowlet pack_archived = loader::load(...). This value is still used forResponder::new.hyper_loader::Responderis now justresponder::Responder, and it's now built aroundhttpcrate, compatible withhyper1.0.Responderwas rewritten. It now accepts (method, path, headers) not whole request.request_respond_or_errorandparts_respond_or_errorare squashed torespond.request_respondandparts_respondare squashed torespond_flatten.
New features and improvements
- True zero-copy deserialization with
rkyv. brotlicompression support.cache-controlsupport.- Packer is now a lib + bin, making it usable in build.rs. Multiple useful methods were exposed.
- Good test coverage, including integration tests.
- Lots of internal improvements.