c3 is a free, open source business intelligence & reporting project written in JavaScript and released under MIT. It has 9,350 GitHub stars, 1,360 forks and 771 open issues, and was last pushed 4 days ago. On this registry it ranks #15 of 57 tracked projects in Business Intelligence & Reporting, with 5 head-to-head comparisons available.

What is c3?

c3 is a D3-based reusable chart library that lets developers embed configurable, interactive SVG charts into web applications by describing each chart as a configuration object instead of writing D3 code directly.

What it is

c3 is a JavaScript charting library built on top of D3.js and released under the MIT licence. It is published on npm as c3, served through jsDelivr, and documented at c3js.org. The repository's topics — chart, d3, data-visualization, graph, graphics, interactive-visualizations, svg — map its scope precisely: it renders interactive SVG charts in the browser. It has no server component, no database, and no declared runtime dependency other than D3.

The problem it solves is the repetition D3 imposes. D3 gives complete control over SVG, but every chart in an application means writing and maintaining the same scale, axis, and rendering logic again. c3 replaces that per-chart D3 code with a reusable, declarative configuration surface, so a chart becomes data plus options rather than a bespoke rendering routine. The project states its purpose as enabling deeper integration of charts into web applications, which is the difference between a chart that participates in application code and one bolted on at the edge.

Key capabilities

  • Declarative chart configuration: a chart is defined as a configuration object over data, not as imperative D3 code.
  • Interactive SVG output, per the svg and interactive-visualizations topics.
  • Built on D3.js, with the dependency declared as ^5.0.0.
  • Distributed as the npm package c3 and available through jsDelivr.
  • Full API reference published at c3js.org/reference.html, alongside a Getting Started guide and an examples gallery.
  • Bundled sample set under htdocs/samples, runnable locally with npm run serve-static.
  • MIT licence, with CI on CircleCI and coverage reported through codecov.io.

Who uses it and how

  • Web application developers who need charts embedded inside an existing front end rather than rendered separately.
  • Teams already using D3 that want to stop rewriting axis, scale, and rendering logic for each chart.
  • Projects in mixed library stacks: the README routes questions about the interplay between c3 and another library, with AngularJS named as the example, to the Google Group rather than the issue queue.
  • Contributors working against a defined process — raise an issue first, then a PR, include test cases for new features, do not bump the version number, squash commits.
  • Anyone debugging output, since the README warns that custom CSS can modify c3 output.

Getting started

Install the npm package c3, or load it from jsDelivr, and follow c3js.org/gettingstarted.html. The bundled samples can be run locally with npm run serve-static.

How it compares

The facts name one related tool: D3.js, on which c3 depends. c3 sits above D3 as a reusable chart layer, trading D3's unrestricted control over the DOM for a configuration API that removes per-chart boilerplate, with D3 remaining the rendering engine either way. No other charting library is named in this entry, so on that axis c3 stands alone in this registry.

When to use it — and when not to

There is almost nothing to operate: c3 is a client-side library with no database, storage, or mail server, so the deployment burden is limited to the browser and D3 compatibility. A project pinned to a D3 major newer than 5.x cannot share that dependency with c3, and anyone needing a framework-native component or server-side rendering should look elsewhere. Two facts temper expectations: the repository carries 771 open issues, and the README defers documentation to c3js.org, so the repository is not a self-contained reference.

project readme (upstream, from github) — read inline

c3

CircleCI license codecov.io

jsDelivr Hits

c3 is a D3-based reusable chart library that enables deeper integration of charts into web applications.

Follow the link for more information: http://c3js.org

Documentation

Additional samples can be found in this repository:

You can run these samples as:

$ npm run serve-static

Google Group

For general C3.js-related discussion, please visit our Google Group at https://groups.google.com/forum/#!forum/c3js.

Gitter

Join the chat at https://gitter.im/c3js/c3

Using the issue queue

The issue queue is to be used for reporting defects and problems with C3.js, in addition to feature requests and ideas. It is not a catch-all support forum. For general support enquiries, please use the Google Group at https://groups.google.com/forum/#!forum/c3js. All questions involving the interplay between C3.js and any other library (such as AngularJS) should be posted there first!

Before reporting an issue, please do the following:

  1. Search for existing issues to ensure you're not posting a duplicate.

  2. Search the Google Group to ensure it hasn't been addressed there already.

  3. Create a JSFiddle or Plunkr highlighting the issue. Please don't include any unnecessary dependencies so we can isolate that the issue is in fact with C3. Please be advised that custom CSS can modify C3.js output!

  4. When posting the issue, please use a descriptive title and include the version of C3 (or, if cloning from Git, the commit hash — C3 is under active development and the master branch contains the latest dev commits!), along with any platform/browser/OS information that may be relevant.

Pull requests

Pull requests are welcome, though please post an issue first to see whether such a change is desirable. If you choose to submit a pull request, please do not bump the version number unless asked to, and please include test cases for any new features. Squash all your commits as well, please.

Playground

Please fork this fiddle:

Dependency

License

MIT

Frequently asked questions

Is c3 free to use?

c3 is open source under the MIT licence. There is no licence fee and no seat count — you can self-host it or, where the project offers one, pay a vendor for a managed version instead.

What does c3 do?

:bar_chart: A D3-based reusable chart library

What is c3 written in?

c3 is primarily written in JavaScript. Its source is publicly available at https://github.com/c3js/c3, and it has 9,350 GitHub stars.