Skip to content

0.2.0

Compare
Choose a tag to compare
@aldanor aldanor released this 12 Mar 23:07
· 1197 commits to master since this release

Added

  • Full support of msvc target on Windows. CI tests on AppVeyor now use
    official releases of HDF5 binaries (1.8.16, VS2015, x86_x64). The gnu
    target are still unofficially supported but won't be tested.
  • If HDF5_LIBDIR is not specified when building on Windows and PATH
    contains what looks like the bin folder of HDF5 installation, the library
    directory will be inferred automatically. The official HDF5 installers add
    the bin folder to user path, so the official MSVC releases should just work
    out of the box without having to set any environment variables.
  • The library is now split into three crates: hdf5-lib (requests linkage to
    HDF5), hdf5-sys (contains bindings, requires hdf5-lib at build time in
    order to conditionally enable or disable certain HDF5 functionality), and
    hdf5 (the user-facing crate, requires both lower-level crates at build time).
  • Added hdf5::hdf5_version function.
  • The minimum required version of the HDF5 library is now 1.8.4.
  • Both hdf5-sys and hdf5 crates can now use version attributes at compile
    time to enable/disable/change functionality. All functions and definitions
    that appeared in HDF5 versions past 1.8.4 are now conditionally enabled in
    hdf5-sys.
  • Added bindings for HDF5 functions that were added in 1.8.15 and 1.8.16.
  • Static global variables in HDF5 (H5E, H5P, H5T) are now linked based on HDF5
    version and not the target platform (_ID_g variables were introduced in
    1.8.14). When msvc target is used, dllimport stub prefixes are also
    accounted for. Constants exposed by hdf5-sys are now of reference type and
    need to be dereferenced (for msvc, they have to be dereferenced twice).

Changed

  • API simplification: many methods previously expecting Into<String> inputs
    now just take &str.
  • util::to_cstring now takes Borrow<str> instead of Into<String> to avoid
    unnecessary allocations, and the return value is now wrapped in Result so
    that interior null bytes in input strings trigger an error.

Fixed

  • Fixed dangling pointer problems when strings were passed as pointers to
    the C API.
  • Fixed target path not being passed correctly in Container::link_soft.