13 个不稳定版本 (4 个重大变更)

0.5.1 2022年12月5日
0.4.1 2022年11月30日
0.3.2 2022年6月8日
0.2.0 2022年1月18日
0.1.3 2020年3月27日

#14 in #packaging

Download history 77/week @ 2024-04-23 3/week @ 2024-05-07 18/week @ 2024-05-14 1/week @ 2024-05-21 4/week @ 2024-05-28 3/week @ 2024-06-11 2/week @ 2024-06-18 7/week @ 2024-06-25 59/week @ 2024-07-30

59 每月下载量
3 crates 中使用

Apache-2.0

53KB
1K SLoC

Web捆绑包

build

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

这不是一个官方支持的谷歌产品。

规范

Crates

仓库中有几个crates。

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 Bundles构建器
    • 从目录结构创建Web Bundle
    • 创建和操作Web Bundle文件的底层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

依赖关系

~2–10MB
~100K SLoC