node package manager

Toji

Kyoto Cabinet bindings for Node.js with an Avro mapper.

Toji

Toji is Kyoto Cabinet bindings for Node.js with an Avro mapper.

Installation

Toji depends on Kyoto Cabinet. Use a package manager or build from source.

sudo pacman -S kyotocabinet      ## Arch Linux
sudo port install kyotocabinet   ## Mac Ports
sudo brew install kyoto-cabinet  ## Homebrew

Then, install with npm:

npm install Toji

Project Structure

Toji uses Kyoto Cabinet to store documents. Bindings are implemented in src/_kyoto.cc and wrapped lightly with Javascript in lib/kyoto.js.

Documents are stored in an Avro format. A partial Avro implementation can be found in lib/avro. Most Avro details are hidden by models (lib/models.js). Models allow schema to be defined by declaring Javascript types and manage serialization details.

Documents storage is managed by lib/storage.js. The storage layer exposes a query interface (lib/query.js) for retrieving documents and uses model validation (lib/validation.js) to check data integrity before saving it.

Future Work

  • Indexes
  • Query optimizer
  • Replication
  • Binary Avro encoding
  • Complete Avro schema support