FAQ

What datatypes are supported?

Type Precisions
Integer 1, 2, 4 or 8 byte, BE/LE, signed/unsigned
Float 4, 8 byte, BE/LE
Compound Arbitrary names and offsets
Strings (fixed-length) Any length
Strings (variable-length) Any length, ASCII
Opaque Any length
Array Any supported type
Enumeration Any integer type
References Region and object

Unsupported types:

Type Status
HDF5 VLEN (non-string) Coming soon!
HDF5 “time” type  
Opaque  
Bitfields  

Why does h5serv use those long ids?

h5serv uses the UUID standard (http://en.wikipedia.org/wiki/Universally_unique_identifier) to identify objects (datasets, groups, and committed datatypes) uniquely. The benefit of using UUIDs is that objects can be uniquely identified without requiring any central coordination.

How can I get a dataset (or group) via a pathname?

You will need to iterate through the path to get the UUID of each subgroup. E.g. suppose the path of interest is “/g1/g1.1” in the domain: “tall.data.hdfgroup.org”. Perform these actions to get the UUID of the group at /g1/g1.1.

  1. GET / // returns the UUID of the root group
  2. GET /groups/<root_uuid>/links/g1 // returns the UUID of the group at “/g1”
  3. GET /groups/<g1_uuid>/links/g1.1 // returns the UUID of the group at “/g1/g1.1’

How do I guard against an attribute (dataset/group/file) from being deleted by a request?

Future releases of h5serv will support authorization and permissions to protect content that shouldn’t be altered.

For now the choices are:

  1. Don’t expose the h5serv endpoint on a non-trusted network
  2. Make the files readonly
  3. Make periodic backups of all data files
  4. Don’t share the domain name with non-trusted sources. Since h5serv doesn’t provide an operation to list all domains on the server, creating a non-trivial domain name (e.g. “mydata_18494”) will be relatively secure.

How can I display my data in a nice Web UI?

There are many Javascript libraries (e.g. http://d3js.org) that can take the data returned by h5serv to create compelling graphics.

I have a C or Fortran application that uses HDF5, how can I take advantage of h5serv?

We are planning on creating a hdf5 library plugin that will transparently invoke the REST api. For now, you can use C-libraries such as libcurl to invoke h5serv requests.

Is there documentation on the JSON format generated by h5tojson.py:

Yes. There is a grammer published here: http://hdf5-json.readthedocs.org/en/latest/index.html.

How do I submit a bug report?

If you have a Github account, create an issue here: https://github.com/HDFGroup/h5serv/issues.

Alternatively, you send a email to the HDF Group help desk: help@hdfgroup.org.