This version is a major one and is breaking some usage compare to v2. Read the migration guide from the documentation: https://bluebrain.github.io/HighFive/md__2home_2runner_2work_2_high_five_2_high_five_2doc_2migration__guide.html
The minimum version for C++ has been moved to C++14
.
- Removed `read(T*, ...)`, use explicit `read_raw(T*, ...)` for `Slice` or `Attribute`. (#928)
- Removed `FixedLenStringArray`, use any container with strings instead. (#932)
- Removed `FileDriver` and `MPIOFileDriver`, use file access properties instead. (#949)
- Removed default constructor for `Group` and `DataSet`. (#947, #948)
- Broadcasting have been removed. Use `squeeze` and `reshape` feature instead. (#992)
- `ObjectCreateProps` and `ObjectAccessProps` those don't map well to HighFive and are unused. (#1002)
- Added support for `std::span`. (#987)
- Added `squeezeMemSpace` and `reshapeMemSpace` for `Attribute` and `Slice` to reshape the memory space. (#991)
- Added `ProductSet` to select a Cartesian products of (generalized) slices. (#842)
- Optimized chained hyperslab selection. (#1031)
- Type `T[N]` or `T[N][M]` will work better. (#929)
- `DataspaceType` is now an enum class for `dataspace_scalar` or `dataspace_null`. (#900)
- `File::AccessMode` is now an enum class. (#1020)
- Add named ctors for scalar and null dataspaces. (#899)
- Named ctor for empty property lists. (#904)
- Enable running tests in parallel. (#849)
- Wrap all used HDF5 function calls and always check status codes. (#863)
- Utilities for writing tests in a container independent manner. (#871)
- Improve test rigour.
- Log messages were slightly misformatted. (#854)
- Fix bug in `enforce_ascii_hack`. (#856)
- Fix `create_datatype<bool>()`. (#869)
- Guard functionality introduced in 1.10.0. (#905)
- `inspector` guard for empty containers. (#913)
- Avoid non-collective behaviour. (#912)
- `Eigen::Matrix` is (by default) stored with column-major index ordering. Under
certain conditions `Eigen::Matrix` was written and read as row-major.
Due to code duplication H5Easy isn't affected by this bug. Starting
`2.8.0` HighFive will now throw an exception whenever prior versions would
have read with incorrect assumptions about the index ordering. (#731)
- Improve reading and writing `std::string` as fixed and variable length HDF5 strings (#744).
- Implement creation of hard links (#765). Thanks to @Quark-X10.
- Get the size of file and amound of tracked unused space (#764). Thanks to @Quark-X10.
- `class DataType` has a new ctor to open a commited `DataType` (#796). Thanks to @Quark-X10.
- Allow user-specified `mem_space` for hyperslabs. (#740)
- New properties: `AttributePhaseChange`. (#785)
- New options to link against HDF5 statically (#823). Thanks @HunterBelanger.
- Add support for `std::complex<integral_type>` valid with C++23 (#828). Thanks @unbtorsten.
- Add a top-level header to include all compononents (#818).
- Add concept checks to `Property` if C++20 for better errors (#811). Thanks @antonysigma.
- Add parallel HDF5 test in CI (#760).
- Simplify github workflow (#761).
- Move inspectors in their own file to be able to better implements strings (#759).
- Fix vector constructor ambiguity in H5DataType.hpp (#775). Thanks to @hn-sl.
- `getElementCount()` fixed. (#787)
- Remove leak when calling dtor of `CompoundType`. (#798)
- Revert removing `#include "H5FileDriver.hpp"` from `H5File.hpp` (#711).
- Change relative import to "../H5Utility.hpp" (#726).
- Fix nameclash with macros on Windows (#717 #722 #723).
- Add workaround for MSVC bug (#728).
- Don't downgrade the requested C++ standard (#729).
- Properties can now be read (#684).
- Adding a property for LinkCreationOrder (#683).
- Adding a logging infrastructure (#690).
- Support of bool in the way of h5py (#654).
- Support `std::bool` in C++17 mode (#698).
- Catch2 move to v3 (#655).
- To avoid build failure in certain circumstances, user can not set `Boost_NO_BOOST_CMAKE` (#687).
- Fix leak when reading variable length strings (#660).
- Use `H5free_memory` instead of `free` in error handler (#665). Thanks to Moritz Koenemann.
- Fix a bug with old GCC due to templated friend classes (#688).
- Fix regression in broadcasting support (#697).
- Fix bug related to zero-length datasets (#702).
- Allow CMake to use Config mode to find HDF5.
- Version bump in `CMakeLists.txt`.
- Enable page buffered reading (#639).
- Warn when detecting lossy reads or write of floating point data (#636).
- Fix missing `inline` for collective metadata properties.
- Enable collective MPI IO using the Data Transfer Property (#623). Thanks to Rob Latham.
- Add a support for half-precision (16-bit) floating-point based on the Half library (https://half.sourceforge.net) (#587). Thanks to Sergio Botelh.
- Enable choosing the allocation time of datasets (#627).
- Add possibility to get and set file space strategy. For page allocated files wrap the API to set/retrieve the page size (#618).
- Add API for getting Access and Create property lists of HighFive objects (#629).
- Let users configure metadata reads and writes at file level (#624). Thanks to Rob Latham.
- MPIOFileDriver is now deprecated. Use FileAccessProps (#622).
- Support of block argument in API (#584).
- Serialization of types is now automagic and so recursive (#586).
- Add an argument to specific File Create Properties in File class construtor (#626).
- Padding of Compound Types (#581).
- Compilation with Visual Studio with C++17 or later (#578). Thanks to Mark Bicknell.
- Avoid leaking when printing stack for error (#583).
- Support `std::complex`. Thanks to Philipp.
- Improve EnumType/CompoundType
- Revert quirky behaviour of `select(const HyperSlab&)`.
- All `get_name` functions takes `size_t` and not `hsize_t`.
- Remove nix recipes.
- Computation of padding.
- Related to `0` being an invalid hid but not equal to `H5I_INVALID_HID`.
- Construct a compound type from an already existing hid (#469). Thanks to Maximilian Nöthe.
- Add support for long double (#494)
- Add support for H5Pset_libver_bounds and H5Pset_meta_block_size support (#500)
- New interface to select complex hyperslabs, irregular hyperslabs are limited to/from 1D array (#538 and #545)
- Use inline where it is needed, otherwise some code can lead to "multiple definition" (#516). Thanks to Chris Byrohl.
- Use Catch2 instead of boost for tests, reduces dependencies (#521)
- CI reworked to test external libraries more thoroughly (boost, eigen, xtensor) (#536)
- Better support of const types (#460). Thanks to Philip Deegan.
- Vector of size zero was previously lead to UB (#502). Thanks to Haoran Ni.
- Use H5T_NATIVE_SCHAR instead of H5T_NATIVE_CHAR for "signed char" (#518)
- Clean cmake files from old code (#465)
- Adding path to type warning message (#471)
- Adding compound types example, w dataset and attr (#467)
- Resolve an issue where padding of nested compound types were being calculated incorrectly (#461) (#468)
- GHA: drop previous runs (#462)
- Add SZIP support (#435)
- Add option *parents* to createDataSet (#425)
- Implementing getting the filename dynamically (#424)
- Ability to create soft and external links (#421)
- Generalizing getPath and adding getFile as PathTraits (#417)
- Unified reading/writing attributes and datasets (#450)
- Old compilers have been removed from docker image (#430)
- Cleaning up and improving property lists (#429)
- An example using hdf5 references (#396) (#397)
- Add all property lists alias for completeness (#427)
- Add property CreateIntermediateGroup (#423)
- Add code coverage through codecov.io (#420)
- Introducing GitHub Actions CI (#416)
- Create issue and PR templates (#412)
- Initialize SilenceHDF5 to true in _exist (#411)
- Generalizing xtensor API (#407)
- Minor doc updates (#409)
- Fixing minor error in GH Action (#408)
- Uploading docs to gh-pages using GitHub Actions (#403)
- Various minor documentation updates (#405)
- optional documentation building in cmake (#377)
- From can be automatic now (#384)
- get_dim_vector in inspector (#383)
- Put type_of_array in inspector (#382)
- Move array_dims in the future manipulator (#381)
- Unify interface of H5Attribute with H5Slice_traits (#378)
- Use std::move in NRVO depending of version of GCC (#375)
- Fixed typo '-DD' to '-D' in 'Dependencies'. (#371)
- Changing date format (#364)
- Fix use before initialization (#414)
- Adding CMake include guard (#389)
- [H5Easy] Adding OpenCV support (#343)
- [H5Easy] Enabling compression & Adding attributes (#337)
- Adding missing function to H5Attribute (#337)
- Add methods to retrieve Node paths or Dataset names and rename objects (#346)
- Add a file with the current version number of HighFive (#349)
- [H5Easy] Updating error message dump (#335)
- [H5Easy] Switching implementation to partial specialization based on static dispatch (#327)
- Simplifying imports, new policy (#324)
- Add a mechanism to not include target HighFive several times (#336)
- Fix SilenceHDF5 initialization for NodeTraits (#333)
- Compound Types: API to register and read/write structs (#78). Thanks to Richard Shaw.
- Fixed-length strings. API via char[] and `FixedLenStringArray`(#277)
- Enum data types (#297)
- Datasets of HDF5 References. Support to dereference groups and datasets (#306)
- Objects (hard/soft link) can now be deleted with `unlink` (#284). Thanks to Tom Vander Aa.
- Attributes can be deleted with `deleteAttribute` (#239)
- `Attribute`s (metadata) now support additional types (#298)
- H5Easy: Reworked for compatibility with `Eigen::ref` and `Eigen::Map` (#291, #293)
- Hdf5 1.12 compatibility: working `Object::getInfo` and marking getAddress deprecated (#311)
- Strict compatibility with CMake 3.1 and C++11 (#304)
- CMake: Dependencies may be re-detected on FindPackage, fixed export targets and added integration tests (#255, #304, #312, #317)
- Support for array of `Eigen::Matrix` (#258)
- Selection: `ElementSet` working for N-dimensions (#247)
- Shortcut syntax with c arrays (#273)
- Compatibility with in MSVC (Exception messages #263 and avoid throwing in `exist` check #308)
- Inspection: API to get the type of links/objects and datasets data-types (#221)
- H5Easy: API for simple import/export to Eigen and xtensor (#141)
- Support for chunk and deflate configuration at dataset creation/open (#125). Added generic RawPropertyLists. (#157)
- Recursive `createGroup` and `exist` (#152)
- Shortcut syntax: ability to create a filled dataset in a single line (#130)
- DataSet now accepts `std::complex` and `std::array`'s (#128, #129)
- Improved compat with MSVC and ICC compilers
- CMake build system: modernized, create exported targets, better messages, etc.
- Building and publishing documentation: https://bluebrain.github.io/HighFive/
- Several other. See #231
- Fixed header dependencies. They are now all include-able (#225)
- Fixed read/write of N-Dimensional data as nested vectors (#191)
- Fixed data broadcasting for reading (#136)
- First version with C++11 enforcement
- Support for property list
- Support for Chunking
- Support for Compression / Deflate
- Fix: missing move constructor for properties
- Fix: typo in MPI IO driver
- Fix: several typo fixes
- Fix: Add missing include
- SliceTraits::read split in two overloads, the first one for plain C arrays
and the second one for other types.
- Add support for complex number
- Add exist() method to the API
- Will be last release before 2.0 and enforcement of C++11
- Support id selection for the `select` function
- Suport STL containers of const elements
- Support scalar values and strings management
- Fix attribute assignment issue #40
- Fix Object assignment operator missing unref (possible memory leak )
- Introduce SilenceHDF5 for HDF5 error report
- Fix a unit test issue with SilenceHDF5
- Minor fixes
- Add Attribute support for Dataset
- Extend testing of Attribute support
- Fix issue related to multiple definitions in default driver
- Add more examples about attribute support
- Add support and examples for Parallel HDF5
- Initial implementation for H5 Properties
- Support for Attributes
- Improve documentation
- Add example for boost.Ublas matrix support
- Initial release