Open-Awesome
CategoriesAlternativesStacksSelf-HostedExplore
Open-Awesome

© 2026 Open-Awesome. Curated for the developer elite.

TermsPrivacyAboutGitHubRSS
  1. Home
  2. Machine Learning
  3. Oz

Oz

EPL-1.0Clojure

A Clojure library for creating interactive data visualizations and scientific documents using Vega and Vega-Lite.

GitHubGitHub
835 stars74 forks0 contributors

What is Oz?

Oz is a Clojure library that provides tools for creating interactive data visualizations and scientific documents using Vega and Vega-Lite. It solves the problem of integrating declarative visualization grammars into Clojure workflows, enabling seamless visualization from the REPL, in web applications, notebooks, and static sites.

Target Audience

Clojure developers and data scientists who need to create, share, and embed interactive visualizations in REPL environments, web apps, or static documents.

Value Proposition

Oz offers a unified Clojure interface to Vega/Vega-Lite with features like live reloading, hiccup embedding, and static site generation, making it easier to build and share reproducible, interactive visualizations within the Clojure ecosystem.

Overview

Data visualizations in Clojure and ClojureScript using Vega and Vega-lite

Use Cases

Best For

  • Creating interactive data visualizations directly from a Clojure REPL
  • Embedding Vega/Vega-Lite charts in ClojureScript web applications using Reagent
  • Building static websites with embedded visualizations from markdown and hiccup
  • Developing data science workflows with live code reloading and immediate visual feedback
  • Sharing visualizations via GitHub gists and live editors like Vega Editor
  • Using Vega/Vega-Lite in Jupyter notebooks with Clojupyter or IClojure kernels

Not Ideal For

  • Projects requiring real-time data streaming or continuous updates without manual reloading, as Oz focuses on static or REPL-driven visualizations.
  • Teams not using Clojure or ClojureScript, since Oz is deeply integrated with these languages and their toolchains.
  • Applications needing highly custom or 3D visualizations beyond the declarative grammar of Vega and Vega-Lite.
  • Environments where minimal JavaScript dependencies are critical, as Oz relies on client-side Vega rendering and may increase bundle size.

Pros & Cons

Pros

REPL Integration

Enables immediate visual feedback by pushing Vega/Vega-Lite specs directly to a browser from the Clojure REPL using `view!`, streamlining data exploration.

Hiccup Embedding

Allows combining visualizations with HTML markup using Clojure's hiccup syntax, as shown in examples for flexible document layouts and dashboards.

Static Site Generation

Provides `build!` to generate static websites from markdown and Vega files with live reloading, making it easy to create and edit content dynamically.

Live Code Reloading

Offers Figwheel-like hot reloading with `live-reload!`, which re-evaluates code from the first changed form, optimized for data science workflows.

Cons

Setup Complexity

Requires starting a server with `oz/start-server!` and managing CLJS builds with Shadow-CLJS, which can be daunting for newcomers and adds overhead.

Notebook Support Fragility

Jupyter integration depends on specific kernels like Clojupyter, and the README notes it's sensitive to version/environment details, often requiring Docker for reliability.

Vega Ecosystem Dependency

Visualizations are limited to Vega/Vega-Lite's capabilities, and updating versions may be necessary for new features, as admitted in the debugging section.

Frequently Asked Questions

Quick Stats

Stars835
Forks74
Contributors0
Open Issues63
Last commit2 years ago
CreatedSince 2018

Tags

#hiccup#vega-lite#clojurescript#dataviz#vega#data-visualization#clojure#jupyter-notebooks#static-site-generation#scientific-documents

Built With

C
Clojure
s
shadow-cljs
V
Vega-Lite
C
ClojureScript
R
Reagent

Included in

Machine Learning72.2k
Auto-fetched 2 hours ago

Related Projects

clojupyterclojupyter

a Jupyter kernel for Clojure

Stars862
Forks95
Last commit1 year ago
Community-curated · Updated weekly · 100% open source

Found a gem we're missing?

Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.

Submit a projectStar on GitHub