{"id":13637073,"url":"https://github.com/georust/netcdf","last_synced_at":"2025-04-09T05:12:27.081Z","repository":{"id":44721917,"uuid":"38167715","full_name":"georust/netcdf","owner":"georust","description":"High-level netCDF bindings for Rust","archived":false,"fork":false,"pushed_at":"2024-10-03T09:10:56.000Z","size":750,"stargazers_count":81,"open_issues_count":8,"forks_count":28,"subscribers_count":16,"default_branch":"master","last_synced_at":"2024-10-29T20:23:39.243Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/georust.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE-APACHE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2015-06-27T16:54:59.000Z","updated_at":"2024-10-03T09:11:00.000Z","dependencies_parsed_at":"2023-02-01T02:45:42.640Z","dependency_job_id":"3c0b50e9-a762-4ca6-9d5c-c86ad55da36c","html_url":"https://github.com/georust/netcdf","commit_stats":{"total_commits":428,"total_committers":22,"mean_commits":"19.454545454545453","dds":"0.32242990654205606","last_synced_commit":"13963b10bc2d1009e82aceffe77135e33e65b6b1"},"previous_names":[],"tags_count":56,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/georust%2Fnetcdf","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/georust%2Fnetcdf/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/georust%2Fnetcdf/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/georust%2Fnetcdf/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/georust","download_url":"https://codeload.github.com/georust/netcdf/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247737787,"owners_count":20987735,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-08-02T00:01:10.109Z","updated_at":"2025-04-09T05:12:27.065Z","avatar_url":"https://github.com/georust.png","language":"Rust","readme":"# netcdf\n\n[![Docs](https://docs.rs/netcdf/badge.svg)](https://docs.rs/netcdf)\n![Build Status](https://github.com/georust/netcdf/workflows/CI/badge.svg)\n[![Crates.io](https://img.shields.io/crates/d/netcdf.svg)](https://crates.io/crates/netcdf)\n[![](http://meritbadge.herokuapp.com/netcdf)](https://crates.io/crates/netcdf)\n[![codecov](https://codecov.io/gh/georust/netcdf/branch/master/graph/badge.svg)](https://codecov.io/gh/georust/netcdf)\n![Crates.io](https://img.shields.io/crates/l/netcdf)\n\u003c!-- [![dependency status](https://deps.rs/repo/github/georust/netcdf/status.svg)](https://deps.rs/repo/github/georust/netcdf) --\u003e\n\nMedium-level [netCDF](http://www.unidata.ucar.edu/software/netcdf/) bindings for Rust, allowing easy reading and writing of array-like structures to a file.\nnetCDF can read and write `hdf5` files, which is a commonly used file format in scientific computing.\n\n## Status\n\nSupported:\n\n* Variables\n* Normal Dimensions\n* Attributes\n* Subgroups\n* Open/Append/Create modes\n* Reading from memory\n* Unlimited dimensions\n* User defined types, using the feature `derive` (enum, compound, other types requires additional work)\n\nNot (yet) supported (PRs welcome):\n* Writing using memory-mapped file\n\nAll variable data is read into a contiguous buffer, or into an [ndarray](https://github.com/rust-ndarray/ndarray) if the `ndarray` feature is activated.\n\n## Building\n\nThis crate depends on `libnetcdf`, but a static build from source is also supported, which can be enabled using the `static` feature.\n\nThe crate is built on several platforms using github actions, and is currently known to build form from source on all major platforms (linux, macos, windows (gnu+msvc)), and through the package installers `conda` and `apt`.\n\nIf during compilation there is an error in building the `hdf5` crate, consider using the `static` feature which will include a compatible version of both `netcdf` and `hdf5`. This is likely to be an issue [upstream](https://github.com/aldanor/hdf5-rust/issues/262).\n\n### Building without `libnetcdf` or building statically\n1. `git clone https://github.com/georust/netcdf`\n2. `git submodule update --init --recursive`\n3. `cargo build --features static`\n\n\n## Documentation\n\nSome examples of usage can be found in the [tests/lib.rs](netcdf/tests/lib.rs) file. The documentation can also be generated using `cargo doc`.\n\n\n## Thread safety\n\nThe `netcdf` crate is thread-safe, although the `netcdf-c` library is not itself threadsafe. To render a safe interface, a global mutex is used to serialize access to the underlying library. Consider using a non threadsafe version of `hdf5` to avoid double locking (performance consideration).\n\nUse of `netcdf-sys` is not thread-safe. Users of this library must take care that calls do not interfere with simultaneous use of e.g. `netcdf` or `hdf5-sys`. Use the lock provided by `netcdf-sys` to serialise access to the `hdf5` and `netCDF` libraries.\n\n## License\n\nLicensed under either of\n\n * Apache License, Version 2.0, ([LICENSE-APACHE](LICENSE-APACHE) or http://www.apache.org/licenses/LICENSE-2.0)\n * MIT license ([LICENSE-MIT](LICENSE-MIT) or http://opensource.org/licenses/MIT)\n\nat your option.\n\n### Contribution\n\nUnless you explicitly state otherwise, any contribution intentionally submitted\nfor inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any\nadditional terms or conditions.\n","funding_links":[],"categories":["Libraries","Rust"],"sub_categories":["Encoding"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgeorust%2Fnetcdf","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgeorust%2Fnetcdf","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgeorust%2Fnetcdf/lists"}