2个版本
使用旧的Rust 2015
0.1.1 | 2018年9月26日 |
---|---|
0.1.0 | 2018年8月16日 |
#1982 在 编码
61 每月下载量
66KB
1.5K SLoC
tsv项目引入了一种新的数据序列化/反序列化格式,它是基于文本的,用于处理表格数据。
问题
从serde的角度来看,经典的 tsv 只适用于由原始数据(整数、浮点数、字符串等)组成的结构体(序列)的架构。必须扩展规范以允许任意架构,例如由结构体组成的结构体。
解决方案
本项目通过将序列放置在列中扩展了规范。请参阅tsv-spec.txt以获取规范。它使用serde包进行序列化/反序列化,并使用反射包生成列名和处理枚举。
注意
如果您为您的类型实现Serialize/Deserialize以告诉serde它们是序列/映射,请确保它们的 schemata()
和 Vec::schemata()
/HashMap::schemata()
是同构的。
优点
-
简单。对于最终用户来说,使用tsv文件的唯一要求是理解什么是表格。它作为一个配置文件格式对于非技术用户来说是极其简单的。
-
可用。您可以使用Microsoft Excel、OpenOffice/LibreOffie Calc以及支持弹性制表位的文本编辑器来查看/编辑tsv文件。如果您阅读了规范中的所有63行,手动编写tsv也很容易。
缺点
-
不注重效率。
-
不具有自描述性。
许可证
MIT。
示例
以下是一个使用tsv格式编写的cargo配置文件,其中用空格替换了制表符:
deps
package lib value
name version authors keyword macro name Version Path
tsv 0.1.0 oooutlk tsv X serde 1.0
tab trees ~/trees
table
serde
依赖项
~2.5MB
~59K SLoC