A general purpose, real-time visualization library.
By Ryan Sandor Richards
Epoch is a general purpose charting library for application developers and visualization designers. It focuses on two different aspects of visualization programming: basic charts for creating historical reports, and real-time charts for displaying frequently updating timeseries data.
To get started using Epoch, please refer to the Epoch Project Site. There you can find full documentation and guides to help you start using Epoch right away.
Epoch can be easily installed via the following package managers:
Important: Epoch requires d3. In order to work properly your page must load d3 before epoch.
If you don't want to host the files yourself, you can use jsDelivr to serve the files:
Developing Epoch is a reasonably straight forward process. In this section we'll cover the basic on how to develop Epoch by detailing common build task, exploring how the source is arranged, and finally show how to use rendering tests to aid development.
Epoch requires the following for development:
Once both are installed on your machine you will need to run
npm installfrom the repository's root directory in order to install the npm packages required to develop epoch.
Once you have installed the required npm packages you can use
gulp buildto fully rebuild the source (see more information about gulp tasks below).
The best way to start contributing to Epoch is to follow these steps:
gulp watchto recompile the project after source files change
test/index.htmland browse the rendering tests
Epoch uses two types of testing to ensure that changes do not cause unintended side effects. The first, unit tests, ensure that the core functional components of the library work as expected. The second, rendering tests, allow you to ensure that charts and graphs are correctly rendered.
It is important to keep both unit test and rendering tests up-to-date! When developing, use the following guidelines:
Keeping the tests current makes it easier for others to review your code and spot issues. Also, pull requests without appropriate testing will not be merged.
Epoch uses gulp to perform various tasks. The
gulpfile.jsfile defines the following tasks:
gulp clean- Cleans the
gulp build- Builds the CoffeeScript and Sass source into the
gulp watch- Starts a watch script to recompile CoffeeScript and Sass when any files change.
The directory structure for the Epoch project follows some basic guidelines, here's an overview of how it is structured:
npm testand ensure all tests pass
npm version [major|minor|patch]
gh-pagesbranch's library version in