6个版本 (重大更新)

0.5.1 2022年12月5日
0.4.1 2022年11月30日
0.3.0 2022年6月8日
0.2.0 2022年5月2日
0.1.0 2020年4月15日

#590 in HTTP服务器

Apache-2.0

66KB
1.5K SLoC

Web包

build

google/webbundle 是一个旨在提供高性能库和用于处理Web包格式的各种工具的项目。

这不是Google官方支持的产品。

规范

仓库中有几个包。

webbundle

crates.io

核心库。请参阅 文档

webbundle-cli

crates.io

用于将资源打包为Web包的命令行工具。

安装

Windows、macOS和Linux的预编译二进制文件存档可用于 webbundle-cli.

如果您使用Rust,可以使用 cargo 安装 webbundle-cli

cargo install webbundle-cli

示例

webbundle-cli 的二进制文件名是 webbundle

创建

build/dist 目录下的文件创建 example.wbn。这与 tar cvf example.tar build/dist 类似。

$ webbundle create example.wbn build/dist

列出

列出 example.wbn 的内容。这与 tar tvf example.tar 类似。

$ webbundle list ./example.wbn

提取

提取 example.wbn 的内容。这与 tar xvf example.tar 类似。

$ webbundle extract ./example.wbn

有关详细信息,请参阅 webbundle --help

webbundle-server

crates.io

这是一个实验性Web服务器,可以从底层资源动态地提供Web包。

webbundle-bench

crates.io

用于衡量浏览器使用Web包加载性能的基准工具。

待办事项

开发处于非常早期阶段。有许多待办事项

  • 解析器
    • 支持b2格式
  • 编码器
    • 支持b2格式
  • Web包构建器
    • 从目录结构创建Web包
    • 用于创建和操作Web包文件的底层API
  • 使用http::Requesthttp::Responsehttp::Uri以获得更好的用户体验
  • 使用async/await以避免阻塞操作
  • 更多的CLI子命令
    • 创建
    • 列出
    • 提取
    • 使这些子命令更加用户体验良好
  • 关注性能。尽可能避免复制。
  • 将此crate拆分为几个crate
    • webbundle:核心库
    • webbundle-cli:CLI,类似于tar命令
    • webbundle-ffi:用于C或C++程序的外部函数接口,类似于chromium。
    • webbundle-server:实验性http服务器,可以根据请求参数动态组装和提供webbundle
    • webbundle-wasm:WebAssembly绑定
    • webbundle-bench:基准工具

贡献

有关说明,请参阅contributing.md

依赖项

~15-26MB
~403K SLoC