#neuroscience #viewer #nwb

app nwbview

Neurodata Without Borders viewer

3 unstable releases

0.2.4 Mar 14, 2023
0.2.3 Feb 20, 2023
0.2.0 Dec 3, 2022
0.1.0 Nov 30, 2022

#88 in Biology

Download history 6/week @ 2023-11-06 3/week @ 2023-11-13 7/week @ 2023-11-20 20/week @ 2023-11-27 6/week @ 2023-12-04 6/week @ 2023-12-11 12/week @ 2023-12-25 1/week @ 2024-01-01 3/week @ 2024-01-08 12/week @ 2024-01-29 2/week @ 2024-02-05 29/week @ 2024-02-12 128/week @ 2024-02-19

171 downloads per month


675 lines


Rust Latest version Apache unsafe forbidden

nwbview is a software to display the contents of the binary NWB file format. It is written in Rust for high-performance, memory safety and ease of deployment.

NWB format

Neurodata Without Borders (NWB) is a standard data format to represent neurophysiology data files. It enables interoperability between neurophysiology data produced by different neuroscience labs. Examples of the data stored in .NWB format range from patch clamp experiments to optical physiology experiments.

The underlying storage technology used by the NWB format is the binary HDF format. While storing the files as binary brings advantages on the read/write speed as well as the file size, it stores the data in a way that is not readable by humans. I.e. one cannot open the file in a text editor to see the contents, thus there is need for a viewer.


The screenshot below shows the nwbview GUI. The left panel shows the contents of the NWB file in a tree structure. The right panel shows the details of the selected item, which can be a plot, a table or a text.


nwbview uses the egui Rust GUI library for rendering.

Public NWB Data Sources

Below are some public NWB data sources that can be displayed with nwbview.

To install and run using cargo

First install the cargo package manager and then run the following command to install nwbview.

cargo install nwbview

Once you completed the installation, simply type nwbview on the console to run it.


To build and run from the source code

The Rust library dependencies are provided in the cargo.toml file.

Note that the Rust libraries depend on the following system packages that need to be provided.

  • libgtk-3-dev
  • librust-atk-dev
  • libhdf5-serial-dev

The exact names of the packages may differ between systems.

Once all the dependencies are satisfied, go to the directory containing cargo.toml and run the following command.

cargo run --release

The release flag builds the artifacts with optimizations. Do not specify it when you need to debug.

How to contribute

All contributions are welcome and very much appreciated :)

nwbview is currently in alpha version. Do not hesitate to create a new issue with your suggestions.

We use Github's issue tracker, pull requests and the discussion interfaces for the contributions.

The pull requests require the approval from a maintainer as well as the CI checks.


~812K SLoC