GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — GitHub - google/webbundle: WebBundle library for packaging web sites

BranchesTags
Open more actions menu

Latest commit

 

History

126 Commits
126 Commits

Folders and files

NameName
Last commit message
Last commit date
.github/workflows
.github/workflows
 
 
webbundle-bench
webbundle-bench
 
 
webbundle-cli
webbundle-cli
 
 
webbundle-ffi
webbundle-ffi
 
 
webbundle-server
webbundle-server
 
 
webbundle
webbundle
 
 
.gitignore
.gitignore
 
 
Cargo.toml
Cargo.toml
 
 
LICENSE
LICENSE
 
 
README.md
README.md
 
 
contributing.md
contributing.md
 
 

Repository files navigation

Web bundles

build

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.

Specification

  • Web Bundles (IETF draft)
  • Subresource Loading (Explainer):

Crates

There are several crates in the repository.

webbundle

crates.io

The core library. See the documentation.

webbundle-cli

crates.io

The command line tool for packaging resources as Web Bundles.

Installation

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

Examples

The binary name for webbundle-cli is webbundle.

create

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

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.

webbundle-server

crates.io

The experimental web server which dynamically serves Web bundles from underlying resources.

webbundle-bench

crates.io

The benchmark tool for measuring the browser's loading performance with Web bundles.

TODO

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 and http::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 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
    • webbundle-wasm: WebAssembly binding
    • webbundle-bench: The benchmark tool

Contributing

See contributing.md for instructions.

About

WebBundle library for packaging web sites

Topics

rustwebbundle

Resources

Readme
Apache-2.0 license

Code of conduct

Code of conduct

Contributing

Contributing

Security policy

Security policy
Activity
Custom properties

Stars

106 stars

Watchers

10 watching

Forks

23 forks
Report repository

Releases

Packages

Used by

Contributors

Languages

You are visitor 01402503 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.