google/webbundle
is a project which aims to provide a high-performace library
and various tools for handling Web bundles format.
This is not an officially supported Google product.
There are several crates in the repository.
The core library. See the documentation.
The command line tool for packaging resources as Web Bundles.
Archives of precompiled binaries for webbundle-cli
are available for Windows, macOS and Linux.
If you're using Rust, webbundle-cli
can be installed with cargo
.
cargo install webbundle-cli
The binary name for webbundle-cli
is webbundle
.
Create example.wbn
from the files under build/dist
directory. This is
similar to tar cvf example.tar build/dist
.
$ webbundle create 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.
The experimental web server which dynamically serves Web bundles from underlying resources.
The benchmark tool for measuring the browser's loading performance with Web bundles.
The development is at very early stage. There are many TODO items:
- Parser
- Support b2 format
- Encoder
- Support b2 format
- Web Bundles Builder
- Create a Web Bundle from a directory structure
- Low-level APIs to create and manipulate Web Bundle file
- Use
http::Request
,http::Response
andhttp::Uri
for better ergonomics - Use async/await to avoid blocking operations
- More CLI subcommands
-
create
-
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 atar
command -
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 -
webbundle-wasm
: WebAssembly binding -
webbundle-bench
: The benchmark tool
-
See contributing.md for instructions.