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编码

Download history 467/week @ 2024-05-02 358/week @ 2024-05-09 623/week @ 2024-05-16 551/week @ 2024-05-23 671/week @ 2024-05-30 696/week @ 2024-06-06 429/week @ 2024-06-13 434/week @ 2024-06-20 535/week @ 2024-06-27 563/week @ 2024-07-04 492/week @ 2024-07-11 516/week @ 2024-07-18 754/week @ 2024-07-25 765/week @ 2024-08-01 1836/week @ 2024-08-08 608/week @ 2024-08-15

4,095 每月下载量
用于 13 包(8 个直接使用)

MIT/Apache

305KB
8K SLoC

netcdf

Docs Build Status Crates.io codecov Crates.io

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))上从源代码构建,并通过包安装程序 condaapt 构建。

如果在编译过程中构建 hdf5 包时出现错误,请考虑使用 static 功能,这将包括兼容的 netcdfhdf5 版本。这可能是上游问题 upstream

不使用 libnetcdf 或静态构建

  1. gitclone https://github.com/georust/netcdf
  2. gitsubmodule update --init --recursive
  3. cargobuild --功能static

文档

一些使用示例可以在 tests/lib.rs 文件中找到。文档也可以使用 cargo doc 生成。

线程安全

netcdf 库是线程安全的,尽管其底层库 netcdf-c 本身不是线程安全的。为了提供一个安全的接口,使用全局互斥锁来序列化对底层库的访问。考虑使用非线程安全的 hdf5 版本来避免双重锁定(考虑性能)。

netcdf-sys 的使用不是线程安全的。使用此库的用户必须注意,调用不应干扰例如 netcdfhdf5-sys 的同时使用。使用 netcdf-sys 提供的锁来序列化对 hdf5netCDF 库的访问。

许可证

根据您选择的以下任一许可证授权:

任选其一。

贡献

除非您明确声明,否则根据 Apache-2.0 许可证定义的,您有意提交给作品的所有贡献,应按上述方式双许可,而不附加任何额外条款或条件。

依赖关系

~3–17MB
~227K SLoC