#archive #format #web-archive #website #container #file-format #waj

libwaj

处理waj文件,网站打包格式的库

2个版本

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

#546 in 压缩


用于 waj

MIT 许可证

54KB
1.5K SLoC

什么是waj

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

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

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

如果您熟悉zim文件格式,Waj与它非常相似,除了少数(重要的)特性外

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

工作原理

Jubako是一种通用的容器格式,允许以结构化的方式存储数据,压缩或未压缩。其主要优点(除了其通用性之外)是它设计用来允许快速检索存档中的数据,而无需解压整个存档。

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

  • 存储压缩的内容。
  • 可以在waj存档上执行随机访问,以允许快速响应用户请求

安装waj

Windows、MacOS和Linux的二进制文件可在每个版本中获取。您也可以使用Cargo安装arx

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。

依赖项

~11–21MB
~325K SLoC