cdfpp

Create pep517 compliant packages from the meson build system


Keywords
cdf, cpp-library, cpp17, nasa, plasma-physics, space
License
GPL-3.0
Install
pip install cdfpp==0.0.0

Documentation

License: GPL v3 CPP17 CI Coverage

CDFpp (CDF++)

A NASA's CDF modern C++ library. This is not a C++ wrapper but a full C++ implementation. Why? CDF files are still used for space physics missions but few implementations are available. The main one is NASA's C implementation available here but it lacks multi-threads support, has an old C interface and has a license which isn't compatible with most Linux distributions policy. There are also Java and Python implementations which are not usable in C++.

List of features and roadmap:

  • read uncompressed file headers
  • read uncompressed attributes
  • read uncompressed variables
  • read variable attributes
  • loads cdf files from memory (std::vector or char*)
  • read variables with nested VXRs
  • read compressed file
  • read compressed variables
  • write uncompressed headers
  • write uncompressed attributes
  • write uncompressed variables
  • write compressed attributes
  • write compressed file variables
  • handle leap seconds
  • Python wrappers
  • Documentation
  • Examples
  • Benchmarks

If you want to understand how it works, how to use the code or what works, you may have to read tests.

Installing

From PyPi

# this is no possible yet
pip3 install --user cdfpp

From sources

meson build
cd build
ninja
sudo ninja install