2个版本

0.2.1 2024年2月20日
0.2.0 2024年2月6日

#274 in 压缩

MIT 许可证

71KB
1.5K SLoC

什么是waj

Waj是一种基于jubako容器格式的网站容器格式。

它允许您创建和提供网站存档。

Waj(和Jubako)正在积极开发中。

如果您了解zim文件格式,Waj与它非常相似,除了几个(重要)特性外

  • 没有存储书籍元数据。
  • 没有标题索引。
  • 没有全文搜索。

工作原理

Jubako是一种多用途容器格式,允许以结构化的方式存储数据,压缩或不压缩。其主要优势(除其灵活性外)在于它设计用于允许快速从存档中检索数据,而无需解压整个存档。

Waj使用jubako格式并创建waj存档,该存档

  • 存储压缩内容。
  • 可以对waj存档进行随机访问,以便快速响应请求

安装waj

提供Windows、MacOS和Linux的二进制文件,可在每个版本中找到。您还可以使用Cargo安装waj

cargo install waj

使用waj

创建存档

创建存档很简单

假设您有一个包含静态网站的目录 my_directory

waj create -o my_archive.waj -1 --strip-prefix "my_directory/" my_directory 

它将创建一个文件: my_archive.waj,其中将包含my_directory目录中的所有内容。由于我们不希望my_directory/成为url路径的一部分,我们从条目路径中删除它。

列出存档内容

您可以使用以下命令列出存档内容

waj list my_archive.waj

提供存档

waj 二进制文件提供了一个小型服务器。

waj serve my_archive.waj localhost:8080

它将提供存档中的内容。路由非常简单

  • 它将删除请求中的任何尾部 / 并搜索它。
  • 如果存在查询字符串(?),则从路径中删除它并搜索新路径。
  • 如果(原始)路径(不包含 ?)以 / 结尾,则搜索 <path> + "index.html"

例如

  • / -> 搜索 `` 和 index.html
  • /foo/?value=bar -> 搜索 foo/?value=barfoo/foo/index.html

如果你的主页不是 index.html(比如说 main),你可以在 waj 创建时使用 `-m main` 选项创建一个重定向到 main

Zim2Waj

https://github.com/jubako/zim2waj 有一个小工具可以将任何现有的 zim 文件转换为 waj。

依赖项

~19–32MB
~520K SLoC