Skip to content

HTTP 2 N5: Serve N5 datasets over HTTP as tiled image stacks

License

Apache-2.0, MIT licenses found

Licenses found

Apache-2.0
LICENSE-APACHE
MIT
LICENSE-MIT
Notifications You must be signed in to change notification settings

aschampion/h2n5

Repository files navigation

H2N5 Build Status

H2N5 is:

  • An Australian strain of avian flu
  • [(E)-Hydrazinylidenehydrazinylidene]azanide
  • HTTP 2 N5: A simple program to serve N5 datasets over HTTP as tiled image stacks

Minimum supported Rust version (MSRV)

Stable 1.56

Quick start

cargo install h2n5
h2n5 path/to/my.n5
curl http://127.0.0.1:8088/tile/group/dataset/0_1/512_256/1/2/3.jpg?q=80

Tile URLs are constructed as:

http://[bind_address]:[port]/tile/[n5_dataset]/[slicing_dims]/[tile_size]/[coordinates].[format]?[query parameters]

For example, the URL:

http://127.0.0.1:8088/tile/group/dataset/0_1/512_256/1/2/3.jpg?q=80

Will slice a 512 px by 256 px tile from the group/dataset dataset along axes 0 (as tile X) and 1 (as tile Y), respectively. The returned tile will start at voxel coordinates [1, 2, 3], be encoded as JPEG, with a quality of 80.

For more options, see the command line help:

h2n5 -h

Notes

  • PNG (png) and JPEG (jpg|jpeg) encoding formats are supported.
  • Currently, only grayscale tiles are returned (by slicing remaining dimensions as singletons) or grayscale + alpha or RGBA by packing these scalar values across channels using the pack query parameter. Slicing a third dimension for RGB(A) channels (e.g., slicing_dims as 0_1_4) will be supported, and is currently parsed correctly, but not yet implemented for tile encoding.

Supported data type, channel packing, and encoding formats

gray (default) graya rgba
UINT8 JPEG PNG
UINT16 PNG JPEG PNG
UINT32 PNG JPEG PNG
UINT64 PNG
FLOAT32 PNG JPEG PNG
FLOAT64 PNG

Logging

Logs are output to stderr using standard Rust log and env_logger in the actix_web scope. By default only major errors at the WARN level or above are shown. For example, to show all requests:

RUST_LOG=actix_web=info h2n5

For more information, see the env_logger and actix_web logging middleware documentation.

License

Licensed under either of

at your option.

Contribution

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.

About

HTTP 2 N5: Serve N5 datasets over HTTP as tiled image stacks

Resources

License

Apache-2.0, MIT licenses found

Licenses found

Apache-2.0
LICENSE-APACHE
MIT
LICENSE-MIT

Stars

Watchers

Forks

Packages

No packages published

Languages