Skip to content
CAI
Software that uses CAICheck a score

livebook-dev/vega_lite

58.7

Adequate · 18 September 2026

1.3k

lines of production code

Elixir

primary language

1

measurement over time

CAI band scale
CAI lens gauges

What this system is

This system is an Elixir library that provides bindings for the Vega-Lite visualization specification. It enables developers to construct declarative graphics specifications through a pipeline-based API, supporting data initialization from values, URLs, or Table.Reader protocols. The library handles the translation of Elixir data structures into the JSON format required by Vega-Lite, including automatic normalization of option keys and type inference.

Features

Initial release of Vega-Lite Elixir bindings

This change introduces the core \VegaLite\ module, providing a pipeline-based API for building declarative Vega-Lite graphics specifications in Elixir. Users can now initialize specs with \VegaLite.new/1\, parse existing JSON definitions via \VegaLite.from\_json/1\ (requiring the \Jason\ library), and construct visualizations using functions like \data\_from\_values/3\, \mark/2\, and \encode\_field/4\. The implementation automatically normalizes Elixir-style snake\_case options into the camelCase format required by the Vega-Lite specification.

lib · high confidence

Behavioural changes

Introduces data shorthand API and deprecates legacy export/viewer modules

The library adds a new \VegaLite.Data\ module that provides a \chart/3\ and \chart/4\ shorthand for creating visualizations directly from data implementing the \Table.Reader\ protocol, including automatic type inference for columns. Simultaneously, the existing \VegaLite.Export\ and \VegaLite.Viewer\ modules are marked as deprecated in favor of the external \:vega\_lite\_convert\ package, with their functions (such as \save!/3\, \to\_json/1\, and \show/1\) now emitting deprecation warnings to guide users toward the new conversion-based workflow.

_lib/vega\lite · high confidence

Test coverage

Added comprehensive test coverage for VegaLite data specification functions; Added tests for the Data module shorthand API.

Dependencies

Initial release of VegaLite v0.1.11 with documentation and dependency setup

This entry marks the initial release of the VegaLite library (v0.1.11), establishing the core Elixir bindings to Vega-Lite. The project now depends on \table\ (\~\> 0.1.0) for data handling and \jason\ (\~\> 1.2) for JSON processing (dev/test only). It raises the minimum supported Elixir version to \~\> 1.12 and configures \ex\_doc\ (\~\> 0.24) for generating documentation, which is now included in the package metadata along with Apache-2.0 licensing and GitHub link information.

(dependencies) · high confidence

Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.

How this codebase got here

Baseline

  • First survey — no prior run to compare against. CAI 59.

Lenses

  • Code Health 97
  • Architecture 69
  • Maturity 41
  • Readiness 67
  • Security 98

Changes since last survey

  • 76 commits — 71 feature/other, 5 fixes

By area

  • (root) — 33 commits
  • lib/vega_lite.ex — 18 commits
  • lib/vega_lite — 14 commits
  • guides/data.livemd — 5 commits
  • .github/workflows — 2 commits
  • notebooks/dev.livemd — 2 commits
  • notebooks/examples.livemd — 1 commit
  • test/vega_lite_test.exs — 1 commit

Notable commits

  • fix: Fix encode_field/4 docs
  • fix: Fix example code (#48)
  • fix: Fix mark types list
  • fix: Fix xref exclude deprecation warning (#86)
  • fix: Fixes on Elixir v1.16
  • change: Add HTML export (#4)
  • change: Add HTML viewer using wx web view (#6)
  • change: Add PNG, SVG and PDF exports (#7)
  • change: Add example to snake-case rewriting
  • change: Add examples notebook
  • change: Add extra note about option casing
  • change: Add initial API
  • change: Add missing aliases in the docs
  • change: Add more examples to VegaLite.param/3
  • change: Add notebook with some examples
  • change: Add offset channels. (#25)
  • change: Add support for datasets (#17)
  • change: Add support for encoding channels with arrays (#15)
  • change: Add tests
  • change: Add url as a valid channel (#32)
  • …and 56 more

Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.

Survey your own repository

livebook-dev/vega_lite was measured the same way every project in this corpus was: the same rubric, at a pinned commit, with the result published in full. Point a surveyor at a repository you know and see whether you agree with it.

About this page

  • The score is its most recent published measurement, taken on 18 September 2026 at a pinned commit. It is not a live figure and does not change until the project is measured again.
  • Measured at commit 3d7a641387687ba101d43d149960e92539d44485 — the exact code this score is about.
  • Scored under rubric-2026.09.15 — the same rubric and the same method as every other entry in this index.
  • Measured by watchdog.canine.dev using codehealth-analyzer preprod-5d04157a340d.