HDF5 bindings for D

John Colvin via Digitalmars-d-announce digitalmars-d-announce at puremagic.com
Mon Dec 22 09:56:22 PST 2014


On Monday, 22 December 2014 at 04:51:44 UTC, Laeeth Isharc wrote:
> https://github.com/Laeeth/d_hdf5
>
> HDF5 is a very valuable tool for those working with large data 
> sets.
>
> From HDF5group.org
>
> HDF5 is a unique technology suite that makes possible the 
> management of extremely large and complex data collections. The 
> HDF5 technology suite includes:
>
> * A versatile data model that can represent very complex data 
> objects and a wide variety of metadata.
> * A completely portable file format with no limit on the number 
> or size of data objects in the collection.
> * A software library that runs on a range of computational 
> platforms, from laptops to massively parallel systems, and 
> implements a high-level API with C, C++, Fortran 90, and Java 
> interfaces.
> * A rich set of integrated performance features that allow for 
> access time and storage space optimizations.
> * Tools and applications for managing, manipulating, viewing, 
> and analyzing the data in the collection.
> * The HDF5 data model, file format, API, library, and tools are 
> open and distributed without charge.
>
> From h5py.org:
> [HDF5] lets you store huge amounts of numerical data, and 
> easily manipulate that data from NumPy. For example, you can 
> slice into multi-terabyte datasets stored on disk, as if they 
> were real NumPy arrays. Thousands of datasets can be stored in 
> a single file, categorized and tagged however you want.
>
> H5py uses straightforward NumPy and Python metaphors, like 
> dictionary and NumPy array syntax. For example, you can iterate 
> over datasets in a file, or check out the .shape or .dtype 
> attributes of datasets. You don't need to know anything special 
> about HDF5 to get started.
>
> In addition to the easy-to-use high level interface, h5py rests 
> on a object-oriented Cython wrapping of the HDF5 C API. Almost 
> anything you can do from C in HDF5, you can do from h5py.
>
> Best of all, the files you create are in a widely-used standard 
> binary format, which you can exchange with other people, 
> including those who use programs like IDL and MATLAB.
>
> ===========
> As far as I know there has not really been a complete set of 
> HDF5 bindings for D yet.
>
> Bindings should have three levels:
> 1. pure C API declaration
> 2. 'nice' D wrapper around C API (eg that knows about strings, 
> not just char*)
> 3. idiomatic D interface that uses CTFE/templates
>
> I borrowed Stefan Frijter's work on (1) above to get started.  
> I cannot keep track of things when split over too many source 
> files, so I put everything in one file - hdf5.d.
>
> Have implemented a basic version of 2.  Includes throwOnError 
> rather than forcing checking status C style, but the exception 
> code is not very good/complete (time + lack of experience with 
> D exceptions).
>
> (3) will have to come later.
>
> It's more or less complete, and the examples I have translated 
> so far mostly work.  But still a work in progress.  Any 
> help/suggestions appreciated.  [I am doing this for myself, so 
> project is not as pretty as I would like in an ideal world].
>
>
> https://github.com/Laeeth/d_hdf5

Also relevant to some: http://code.dlang.org/packages/netcdf


More information about the Digitalmars-d-announce mailing list