Skip to content
Go to file

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time


Tabulata is a web application built in Javascript which calculates and aggregates list-based data. Its function expressions are versatile and easy to read and use.

For a quick overview of the functionality, see

A working installation of tabulata including the examples is available at

Technical Design

Tabulata has a slim server backend built in Node.js using Express. Persistence is done using Redis (which was chosen due to having a very easy interface). The client is written using Javascript and jQuery. It uses JSON-REST to fetch content from the backend. Calculation is done client-side (but could be done also server-side).

The client divides responsabilitiy between frontend (GUI, rendering) and backend (calculation). The backend code is designed to be executed as a WebWorker, though currently it's not to facilitate development. PEG.js is used to parse the tabulata expressions (which are then translated into Javascript to be executed). The grammar is defined in prototype/docs/tabulata-expression.peg.

Source Files Organization

Installation and Running

  1. Tabulata uses Node.js and Redis. Have them installed.

  2. Edit the config file prototype/config/config.json, if necessary

  3. Install packages and run node:

    npm install
    node app

Future Plans

  • Use a client-side framework for event handling, rendering
  • Make WebWorker working again
  • Offer results as JSON feed
  • Many GUI improvements
  • More help when constructing expressions: custom keyboard, especially for tablet users
  • Include custom calculation functions
  • Use precise Numbers library


GNU Affero General Public License

Copyright (C) 2012 Samuel Rutishauser (

This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details.

You should have received a copy of the GNU Affero General Public License along with this program. If not, see


tabulata calculates and aggregates list-based data. Its function expressions are versatile and easy to read and use.




No packages published
You can’t perform that action at this time.