{"id":2292469,"url":"https://fastly.github.io/epoch","last_synced_at":"2025-07-17T00:31:11.692Z","repository":{"id":9201729,"uuid":"11010098","full_name":"epochjs/epoch","owner":"epochjs","description":"A general purpose, real-time visualization library.","archived":false,"fork":false,"pushed_at":"2019-02-14T08:38:22.000Z","size":2131,"stargazers_count":4959,"open_issues_count":70,"forks_count":278,"subscribers_count":202,"default_branch":"master","last_synced_at":"2025-07-09T13:19:25.244Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"http://epochjs.github.io/epoch","language":"HTML","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":"aws/aws-sdk-go","license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/epochjs.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2013-06-27T23:04:32.000Z","updated_at":"2025-07-06T09:22:11.000Z","dependencies_parsed_at":"2022-08-24T11:00:58.982Z","dependency_job_id":null,"html_url":"https://github.com/epochjs/epoch","commit_stats":null,"previous_names":["fastly/epoch"],"tags_count":21,"template":false,"template_full_name":null,"purl":"pkg:github/epochjs/epoch","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/epochjs%2Fepoch","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/epochjs%2Fepoch/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/epochjs%2Fepoch/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/epochjs%2Fepoch/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/epochjs","download_url":"https://codeload.github.com/epochjs/epoch/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/epochjs%2Fepoch/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":265554760,"owners_count":23787278,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-01-23T03:53:41.720Z","updated_at":"2025-07-17T00:31:11.402Z","avatar_url":"https://github.com/epochjs.png","language":"HTML","readme":"## Epoch\nBy Ryan Sandor Richards\n\n[![Build Status](https://travis-ci.org/epochjs/epoch.svg?branch=master)](https://travis-ci.org/epochjs/epoch)\n[![Dependency Status](https://david-dm.org/epochjs/epoch.svg)](https://david-dm.org/epochjs/epoch)\n[![devDependency Status](https://david-dm.org/epochjs/epoch/dev-status.svg)](https://david-dm.org/epochjs/epoch#info=devDependencies)\n\nEpoch 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.\n\nTo get started using Epoch, please refer to the [Epoch Project Site](http://epochjs.github.io/epoch/). There you can find full documentation and guides to help you start using Epoch right away.\n\n### Installation\nEpoch can be easily installed via the following package managers:\n\n* [npm](https://www.npmjs.com/package/epoch-charting)\n* [bower](http://bower.io/search/?q=epoch)\n* [packagist](https://packagist.org/packages/epochjs/epoch)\n\nIf you don't see your favorite package manager in the list above feel free to\n[open up an issue](https://github.com/epochjs/epoch/issues/new) and let us know.\nFinally, you can download any release of the library from the\n[project releases page](https://github.com/epochjs/epoch/releases).\n\n**Important:** Epoch requires [d3](https://github.com/mbostock/d3). In order to\nwork properly your page must load d3 before epoch.\n\n#### Public CDN URLs\nIf you don't want to host the files yourself, you can use\n[jsDelivr](http://www.jsdelivr.com/) to serve the files:\n\n1. Visit [epoch page on jsDelvr](http://www.jsdelivr.com/projects/epoch).\n2. Copy the provided URL's and link to them in your project.\n\n### Developing Epoch\n\nDeveloping Epoch is a reasonably straight forward process. In this section we'll\ncover the basic on how to develop Epoch by detailing common build task, exploring\nhow the source is arranged, and finally show how to use rendering tests to aid\ndevelopment.\n\n#### Configuring Development Environment\n\nEpoch requires the following for development:\n\n1. [Node.js](https://nodejs.org/en/) (v4.1.1+)\n2. [NPM](https://www.npmjs.com/) (v2.1.0+)\n\nOnce both are installed on your machine you will need to run `npm install` from\nthe repository's root directory in order to install the npm packages required\nto develop epoch.\n\nOnce you have installed the required npm packages you can use `gulp build` to\nfully rebuild the source (see more information about gulp tasks below).\n\n\n#### Basic Development Process\n\nThe best way to start contributing to Epoch is to follow these steps:\n\n1. Change to the source directory for the project\n2. Run `gulp watch` to recompile the project after source files change\n3. Make changes in a source file (either in `src/` or `sass/`)\n4. In a web browser open the `test/index.html` and browse the rendering tests\n5. Use the rendering tests to see if your changes had the desired result\n6. Ensure unit tests with pass `npm test`\n\n#### Testing\n\nEpoch uses two types of testing to ensure that changes do not cause unintended\nside effects. The first, unit tests, ensure that the core functional components\nof the library work as expected. The second, rendering tests, allow you to\nensure that charts and graphs are correctly rendered.\n\nIt is important to keep both unit test and rendering tests up-to-date! When\ndeveloping, use the following guidelines:\n\n* When adding new features make sure to add new tests\n* When changing existing functionality, ensure that the appropriate both types\n  of tests still pass\n* If you want to make a new type of chart, add a whole new test suite for that\n  chart!\n\nKeeping the tests current makes it easier for others to review your code and\nspot issues. Also, pull requests without appropriate testing will not be\nmerged.\n\n\n#### Gulp Tasks\n\nEpoch uses [gulp](https://github.com/gulpjs/gulp) to perform various tasks. The\n`gulpfile.js` file defines the following tasks:\n\n* `gulp clean` - Cleans the `dist/` directory.\n* `gulp build` - Builds the CoffeeScript and Sass source into the `dist/`\n  directory.\n* `gulp watch` - Starts a watch script to recompile CoffeeScript and Sass when\n  any files change.\n\n#### Source Structure\n\nThe directory structure for the Epoch project follows some basic guidelines, here's an overview of how it is structured:\n\n```\ndist/                  - Compiled JavaScript and CSS source\nsrc/                   - Main source directory\n  core/                - Core Epoch Library Files\n    util.coffee        - Library Utility Routines\n    d3.coffee          - d3 Extensions\n    format.coffee      - Data formatters\n    chart.coffee       - Base Chart Classes\n    css.coffee         - CSS Querying Engine\n  adapters/            - 3rd Party Library Adapters (currently only jQuery)\n  basic/               - Basic Chart Classes\n  time/                - Real-time Chart Classes\n  adapters.coffee      - Options / Global Classes for Adapter Implementations\n  basic.coffee         - Base Classes for Basic Charts\n  data.coffee          - Data Formatting\n  epoch.coffee         - Main source file, defines name spaces, etc.\n  model.coffee         - Data Model\n  time.coffee          - Base Classes for Real-Time Charts\nsass/                  - Scss source for the default epoch stylesheet\ntests/\n  render/              - Rendering tests\n    basic/             - Basic chart rendering tests\n    real-time/         - Real-time rendering tests\n  unit/                - Unit tests\n```\n\n### Release Checklist\n\n- Run `npm test` and ensure all tests pass\n- Run `npm version [major|minor|patch]`\n- Run `npm publish`\n- Update CHANGELOG.md with the changes since last release\n- Update the `gh-pages` branch's library version in `_config.yml`\n","funding_links":[],"categories":["开发工具和库"],"sub_categories":["调试、性能与安全"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/fastly.github.io%2Fepoch","html_url":"https://awesome.ecosyste.ms/projects/fastly.github.io%2Fepoch","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/fastly.github.io%2Fepoch/lists"}