#binary-format #codec #file-format #binary-encoding #data #tabular #utf-8

librsv

一个用于编码/解码 RSV 文件格式(字符串值行)的简单 crate。

2 个版本

0.1.1 2024 年 1 月 12 日
0.1.0 2024 年 1 月 12 日

#2125 in 编码

MIT 许可证

13KB
192

完整文档: https://docs.rs/librsv/0.1.0/librsv/

RSV(字符串值行)是一种非常简单的二进制格式,用于编码表格数据。它与 CSV 类似,但由于避免了转义字符,因此更加简单。这是通过将字符串编码为 UTF-8,并使用永远不会出现在有效 UTF-8 字符串中的字节作为分隔符来实现的。

完整规范可以在以下位置找到:https://github.com/Stenway/RSV-Specification

基本用法

有三种方便的方法可以一次性编码和解码 RSV 文档。

  • encode_rsv - 从结构如 Vec<Vec<Option<String>>> 的结构中编码 RSV 文档。
  • decode_rsv- 将 RSV 文档解码为 Vec<Vec<Option<String>>>
  • decode_rsv_borrowed- 将 RSV 文档解码为 Vec<Vec<Option<&str>>>
use librsv::{encode_rsv, decode_rsv};

let data = vec![
    vec![Some("Hello".into()), Some("world".into())],
    vec![Some("asdf".into()), None, Some("".into())],
];

let encoded = encode_rsv(&data);
let decoded = decode_rsv(&encoded).unwrap();

assert_eq!(data, decoded);

依赖关系

~320–790KB
~19K SLoC