2个不稳定版本
0.2.0 | 2024年5月16日 |
---|---|
0.1.0 | 2024年5月15日 |
#205 in 压缩
每月 39 次下载
7KB
92 行
NdjsonZst
NdjsonZst是一个Rust库,用于编写和读取使用Zstandard (zstd)压缩的换行分隔JSON (NDJSON)文件。此库提供了两个主要结构:NdjsonZstWriter
和 NdjsonZstReader
,使您能够高效地处理带压缩的NDJSON文件。
特性
- 使用Zstandard压缩写入NDJSON:使用
NdjsonZstWriter
将NDJSON数据写入压缩文件。 - 从压缩文件读取NDJSON:使用
NdjsonZstReader
从压缩文件读取NDJSON数据。 - 可选移除行:
NdjsonZstWriter
允许在写入数据的同时移除输入字符串中的换行 (\n
) 和回车 (\r
) 字符。
用法
添加依赖项
要使用NdjsonZst,请将以下依赖项添加到您的 Cargo.toml
[dependencies]
ndjson_zst = "0.1.0"
示例
写入NDJSON数据
use std::fs::File;
use ndjson_zst::NdjsonZstWriter;
fn main() {
let file_path = "data.zst";
let mut writer = NdjsonZstWriter::from(file_path);
writer.write(r#"{"name": "Alice", "age": 30}"#);
writer.write_with_remove_line("Line with\nnewlines\n");
}
读取NDJSON数据
use ndjson_zst::NdjsonZstReader;
fn main() {
let file_path = "data.zst";
let reader = NdjsonZstReader::from(file_path);
for line in reader.lines() {
println!("{}", line);
}
}
API文档
NdjsonZstWriter
from(value: &str) -> Self
从文件路径创建一个新的 NdjsonZstWriter
实例。
new(f:File) -> Self
从 File
创建一个新的 NdjsonZstWriter
实例。
write(&mut self,data: &str)
将一个字符串写入NDJSON文件,后跟一个换行符。
write_with_remove_line(&mut self,data: &str)
在移除所有换行 (\n
) 和回车 (\r
) 字符后,将一个字符串写入NDJSON文件,后跟一个换行符。
NdjsonZstReader
from(value: &str) -> Self
从文件路径创建一个新的 NdjsonZstReader
实例。
new(f:File) -> Self
从 File
创建一个新的 NdjsonZstReader
实例。
lines(&self) -> std::str::Lines
返回NDJSON文件行的迭代器。
许可证
本项目采用MIT许可证。
贡献
欢迎贡献!请随时提交拉取请求或打开一个问题,如果您有任何建议或改进。
鸣谢
- zstd-rs 为Rust提供了Zstandard绑定。
备注
- 当前
NdjsonZstReader
的实现会将整个文件读入内存。未来的改进可能包括支持流式读取,以高效地处理大文件。
本README文件提供了NdjsonZst库的基本概述和示例用法。如需更多详细信息,请参考源代码和内联文档。
依赖关系
约3MB
约51K SLoC