Nanocubes: an in-memory data structure for spatiotemporal data cubes
Nanocubes are a fast datastructure for in-memory data cubes developed at the Information Visualization department at AT&T Labs โ Research. Visualizations powered by nanocubes can be used to explore datasets with billions of elements at interactive rates in a web browser, and in some cases nanocubes uses sufficiently little memory that you can run a nanocube in a modern-day laptop.
News
2013-10-22: Overview: how to use nanocubes
Prerequisites
The nanocubes server is written in C++ 11. You'll need a recent version of boost (we use 1.51) and the GNU build system.
Building
$ git clone https://github.com/laurolins/nanocube.git
$ ./bootstrap
$ CXX='g++-4.7' ./configure
$ make
Running
The way nanocube servers currently work is they read a dataset from
stdin
and then start an HTTP server which answers queries. There's
no authentication mechanism! You should solve this at a different
level of your stack (we internally use nginx running as an HTTP proxy).
You'll also need a client application that can issue nanocube queries and build visualizations with it. We offer an example Javascript client API here, and are currently working on a complete, self-contained example. We'll be releasing the C++ client as open source in the near future as well.
You'll quickly learn that the nanocube HTTP server is not as, ahem, battle-hardened as you and we would like it to be. We welcome feedback on the form of email, issues, and, especially, pull requests.
Branches
You should probably start with the 1.0 branch. The master branch is currently much more unstable than the 1.0 branch, which is the one that hosts the nanocube server code that's currently running on nanocubes.net.