|
2 | 2 |
|
3 | 3 | ## Unreleased
|
4 | 4 |
|
| 5 | +### Added |
| 6 | + |
| 7 | +- Complete rewrite of `DatasetBuilder`; dataset creation API is now different and not |
| 8 | + backwards-compatible (however, it integrates all of the new features and is more |
| 9 | + flexible and powerful). It is now possible to create and write the datasets in one step. |
| 10 | + Refer to the API docs for full reference. |
| 11 | +- New `Extents` type matching HDF5 extents types: null (no elements), scalar, simple (fixed |
| 12 | + dimensionality); it is used to query and specify shapes of datasets. Extents objects |
| 13 | + are convertible from numbers and also tuples, slices and vectors of indices - all of |
| 14 | + which can be used whenever extents are required (e.g., when creating a new dataset). |
| 15 | +- New `Selection` type and the API around it closely matching HDF5 selection API - this |
| 16 | + includes 'all' selection, point-wise selection and hyperslab selection (only 'regular' |
| 17 | + hyperslabs are supported - that is, hyperslabs that can be represented as a single |
| 18 | + multi-dimensional box some of whose dimensions may be infinite). Selection objects |
| 19 | + are convertible from numbers and ranges and tuples and arrays of numbers and ranges; |
| 20 | + one can also use `s!` macro from `ndarray` crate. Selections can be provided when |
| 21 | + reading and writing slices. |
| 22 | +- LZF / Blosc filters have been added, they have to be enabled by `"lzf"` / `"blosc"` |
| 23 | + cargo features and depend on `lzf-sys` / `blosc-sys` crates respectively. Blosc filter |
| 24 | + is a meta-filter providing multi-threaded access to the best-in-class compression codecs |
| 25 | + like Zstd and LZ4 and is recommended to use as a default when compression is critical. |
| 26 | +- New `Filter` type to unify all of the filters API; if LZF / Blosc filters are enabled, |
| 27 | + this enum also contains the corresponding variants. It is now also possible to provide |
| 28 | + user-defined filters with custom filter IDs and parameters. |
| 29 | +- Dataset creation property list (DCPL) API is now supported; this provides access to all |
| 30 | + of the properties that can be specified at dataset creation time (e.g., layout, chunking, |
| 31 | + fill values, external file linking, virtual maps, object time tracking, attribute |
| 32 | + creation order, and a few other low-level settings). |
| 33 | +- As part of DCPL change, virtual dataset maps (VDS API in HDF5 1.10+) are now supported. |
| 34 | +- Link creation property list (LCPL) API is now also wrapped. |
| 35 | +- File creation property list (FCPL) API has been extended to include a few previously |
| 36 | + missing properties (object time tracking, attribute creation order and few other |
| 37 | + low-level settings). |
| 38 | +- Added `h5-alloc` feature to `hdf5-types` crate - uses the HDF5 allocator for |
| 39 | + varlen types and dynamic values. This may be necessary on platforms where different |
| 40 | + allocators may be used in different libraries (e.g. dynamic libraries on Windows), |
| 41 | + or if `libhdf5` is compiled with the memchecker option enabled. This option is |
| 42 | + force-enabled by default if using a dll version of the library on Windows. |
| 43 | +- New `DynValue` type which represents a dynamic self-describing HDF5 object that |
| 44 | + also knows how to deallocate itself; it supports all of the HDF5 types including |
| 45 | + compound types, strings and arrays. |
| 46 | +- Added methods to `Dataset`: `layout`, `dapl`, `access_plist`, `dcpl`, `create_plist`. |
| 47 | + |
| 48 | + ### Changed |
| 49 | + |
| 50 | +- `Dataspace` type has been reworked and can be now constructed from an extents object |
| 51 | + and sliced with a selection object. |
| 52 | +- `Dataset::fill_value` now returns an object of the newly added `DynValue` type; this |
| 53 | + object is self-describing and knows how to free itself. |
| 54 | +- Automatic chunking now uses a fill-from-back approach instead of the previously |
| 55 | + used method which is used in `h5py`. |
| 56 | +- Removed `Filters` type (there's now `Filter` that represents a single filter). |
| 57 | +- `write_slice`, `read_slice`, `read_slice_1d`, `read_slice_2d` now take any object |
| 58 | + convertible to `Selection` (instead of `SliceInfo`). |
| 59 | +- `Dataset::chunks` has been renamed to `Dataset::chunk` |
| 60 | +- Const generics support (MSRV 1.51): `hdf5-types` now uses const generics for array types, |
| 61 | + allowing fixed-size arrays of arbitrary sizes. |
| 62 | +- The `ndarray` dependency has been updated to `0.15`. |
| 63 | + |
5 | 64 | ## 0.7.1
|
6 | 65 |
|
7 | 66 | ### Added
|
|
0 commit comments