Skip to content

kination/webbundle

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

42 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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.

About

WebBundle library for packing web sites

Resources

License

Contributing

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages

  • Rust 100.0%