webbundle 0.1.3

WebBundle library
Documentation

WebBundle library

build crates.io

An experimental WebBundle library for packaging web sites.

This is not an officially supported Google product.

Documentation

https://docs.rs/webbundle

Specification

Contributing

See contributing.md for instructions.

TODO

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::Response and http::Uri for 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 a tar 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

Command line tool

This repository also contains a command line tool, called webbundle.

Instalation

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 webbundle

Examples

create

Create 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

List the contents of example.wbn. This is similar to tar tvf example.tar.

$ webbundle list ./example.wbn

extract

Extract the contents of example.wbn. This is similar to tar xvf example.tar.

$ webbundle extract ./example.wbn

See webbundle --help for detail usage.