17 个版本
0.7.6 | 2020 年 10 月 26 日 |
---|---|
0.7.3 | 2020 年 7 月 17 日 |
0.7.1 | 2020 年 1 月 19 日 |
0.5.0 | 2019 年 11 月 15 日 |
0.2.0 | 2018 年 3 月 10 日 |
#532 在 文件系统
每月 41 次下载
用于 3 crates
99KB
2.5K SLoC
N5
A (主要纯) rust 实现 N5 "Not HDF5" n 维张量文件系统存储格式,由 Janelia 研究营地的 Saalfeld 实验室创建。
兼容 Java N5 版本 2.1.3。
与 Java N5 的差异
- 数据集路径可以是相对路径。数据集中的根路径可以通过
"/" 和
""
访问。 - 数据集路径更加严格。调用位于数据集之外的路径的方法,例如,
".."
,将返回一个Result::Err
。
最低支持的 Rust 版本 (MSRV)
稳定版 1.39
快速入门
[dependencies]
n5 = "0.7"
use n5::prelude::*;
use n5::smallvec::smallvec;
fn n5_roundtrip(root_path: &str) -> std::io::Result<()> {
let n = N5Filesystem::open_or_create(root_path)?;
let block_size = smallvec![44, 33, 22];
let data_attrs = DatasetAttributes::new(
smallvec![100, 200, 300],
block_size.clone(),
DataType::INT16,
CompressionType::default(),
);
let block_data = vec![0i16; data_attrs.get_block_num_elements()];
let block_in = SliceDataBlock::new(
block_size,
smallvec![0, 0, 0],
&block_data);
let path_name = "/test/dataset/group";
n.create_dataset(path_name, &data_attrs)?;
n.write_block(path_name, &data_attrs, &block_in)?;
let block_out = n.read_block::<i16>(path_name, &data_attrs, smallvec![0, 0, 0])?
.expect("Block is empty");
assert_eq!(block_out.get_data(), &block_data[..]);
Ok(())
}
fn main() {
n5_roundtrip("tmp.n5").expect("N5 roundtrip failed!");
}
状态
此库与作者遇到的所有 N5 数据集兼容,并在生产服务中使用。然而,库的一些方面仍不便捷,接口可能仍会经历快速的变化。
许可
根据您的选择,许可为以下之一
- Apache 许可证 2.0 版,(LICENSE-APACHE 或 http://www.apache.org/licenses/LICENSE-2.0)
- MIT 许可证 (LICENSE-MIT 或 http://opensource.org/licenses/MIT)
。
贡献
除非您明确声明,否则根据 Apache-2.0 许可证定义的,您有意提交给作品的所有贡献,都将如上所述双许可,而不附加任何额外条款或条件。
依赖
~1–11MB
~100K SLoC