27 个版本
新 0.10.5 | 2024 年 8 月 20 日 |
---|---|
0.9.3 | 2024 年 5 月 20 日 |
0.9.1 | 2024 年 3 月 28 日 |
0.8.3 | 2023 年 10 月 8 日 |
0.1.0 | 2015 年 6 月 27 日 |
#147 在 编码
4,095 每月下载量
用于 13 个 包(8 个直接使用)
305KB
8K SLoC
netcdf
Medium-level netCDF bindings for Rust, allowing easy reading and writing of array-like structures to a file. netCDF can read and write hdf5
files, which is a commonly used file format in scientific computing.
状态
支持
- 变量
- 常规维度
- 属性
- 子组
- 打开/追加/创建模式
- 从内存中读取
- 无限维度
- 用户定义类型,使用
derive
功能(枚举、复合类型等需要额外工作)
不支持(欢迎 PR)
- 使用内存映射文件写入
所有变量数据都读取到一个连续的缓冲区中,或者如果激活了 ndarray
功能,则读取到一个 ndarray 中。
构建
此包依赖于 libnetcdf
,但还支持从源代码的静态构建,可以使用 static
功能启用。
此包使用 github actions 在多个平台上构建,目前已知可以在所有主要平台(linux、macos、windows(gnu+msvc))上从源代码构建,并通过包安装程序 conda
和 apt
构建。
如果在编译过程中构建 hdf5
包时出现错误,请考虑使用 static
功能,这将包括兼容的 netcdf
和 hdf5
版本。这可能是上游问题 upstream。
不使用 libnetcdf
或静态构建
gitclone https://github.com/georust/netcdf
gitsubmodule update --init --recursive
cargobuild --功能static
文档
一些使用示例可以在 tests/lib.rs 文件中找到。文档也可以使用 cargo doc
生成。
线程安全
netcdf
库是线程安全的,尽管其底层库 netcdf-c
本身不是线程安全的。为了提供一个安全的接口,使用全局互斥锁来序列化对底层库的访问。考虑使用非线程安全的 hdf5
版本来避免双重锁定(考虑性能)。
netcdf-sys
的使用不是线程安全的。使用此库的用户必须注意,调用不应干扰例如 netcdf
或 hdf5-sys
的同时使用。使用 netcdf-sys
提供的锁来序列化对 hdf5
和 netCDF
库的访问。
许可证
根据您选择的以下任一许可证授权:
- Apache 许可证 2.0 版,(LICENSE-APACHE 或 http://www.apache.org/licenses/LICENSE-2.0)
- MIT 许可证 (LICENSE-MIT 或 http://opensource.org/licenses/MIT)
任选其一。
贡献
除非您明确声明,否则根据 Apache-2.0 许可证定义的,您有意提交给作品的所有贡献,应按上述方式双许可,而不附加任何额外条款或条件。
依赖关系
~3–17MB
~227K SLoC