An experimental WebBundle library for packaging web sites.
This is not an officially supported Google product.
https://docs.rs/webbundle
See contributing.md for instructions.
The development is at very early stage. There are many TODO items:
- Parser
- WebBundle Builder
- Create a WebBundle from a directory structure
- Low-level APIs to create and manipulate WebBundle file
- Use
http::Request,http::Responseandhttp::Urifor better engonomics - Support Signatures
- Support Variants
- Use async/await to avoid blocking operations
- More CLI subcommands
-
create -
dump(deprecated) -
list -
extract - Make these subcommands more ergonomics
-
- Focus the performance. Avoid copy as much as possible.
- Split this crate into several crates:
-
webbundle: Core library -
webbundle-cli: CLI, like atarcommand -
webbundle-ffi: Foreign function interface for C or C++ program, like a chromium -
webbundle-server: Experimental http server which can assemble and serve a webbundle dynamically, based on request parameters
-
This repository also contains a command line tool, called webbundle.
Archives of precompiled binaries for webbundle are available for
Windows, macOS and Linux.
If you're a Rust programmer, webbundle can be installed with cargo.
cargo install --features=cli webbundleCreate example.wbn from the files under build/dist directory.
This is similar to tar cvf example.tar build/dist.
$ webbundle create --base-url "https://example.com/" --primary-url "https://example.com/foo/" example.wbn build/dist
List the contents of example.wbn.
This is similar to tar tvf example.tar.
$ webbundle list ./example.wbn
Extract the contents of example.wbn.
This is similar to tar xvf example.tar.
$ webbundle extract ./example.wbn
See webbundle --help for detail usage.