5 个版本 (1 个稳定版)

1.0.0 2022 年 6 月 2 日
0.2.2 2022 年 5 月 15 日
0.2.1 2022 年 5 月 15 日
0.2.0 2022 年 5 月 15 日
0.1.0 2022 年 5 月 13 日

810文件系统 中排名

每月下载 39
diffedit3 使用

MIT/Apache 协议

16KB
256 行代码(不包括注释)

txtar

crates.io version docs.rs docs license

txtar 是 txtar Go 包的 Rust 实现。

cargo add txtar

用法

let txt = "\
comment1
comment2
-- file1 --
File 1 text.
-- foo/bar --
File 2 text.
-- empty --
-- noNL --
hello world";

let archive = txtar::from_str(txt);
archive.materialize("/tmp/somedir/").unwrap();

txtar 目标

如 Go 包所述

txtar 包实现了一个简单的基于文本的文件存档格式。

该格式的目标是

  • 足够简单,可以手动创建和编辑。
  • 能够存储描述 go 命令测试用例的文本文件树。
  • 在 git 历史记录和代码审查中表现良好。

不包括的目标包括成为一个完全通用的存档格式、存储二进制数据、存储文件模式、存储特殊文件(如符号链接)等。

txtar 格式规范

格式规范以在 txtar Go 包源代码中编写的形式

txtar 格式

txtar 存档包含零个或多个注释行,然后是一系列文件条目。每个文件条目以形式为 "-- FILENAME --" 的文件标记行开始,后面跟着零个或多个构成文件数据的文件内容行。注释或文件内容在下一个文件标记行之前结束。文件标记行必须以三个字节序列 "-- " 开始,以三个字节序列 " --" 结束,但包含的文件名可以由额外的空白字符包围,所有这些都会被删除。

如果 txtar 文件在最后一行缺少尾随换行符,解析器应考虑在最后仍然存在一个换行符。

txtar 存档中不存在可能的语法错误。

许可协议

MITApache-2.0

依赖

~305–770KB
~18K SLoC