Repolode
Psy-Fer

Psy-Fer/kuva

A scientific plotting library in Rust with 64 plot types, SVG output, optional PNG/PDF backends, and a CLI that renders plots from the shell or terminal.

Stars
892
Forks
42
Open issues
9
Last commit
19 days ago

What is it?

kuva is a plotting library written in Rust for scientific data visualization. It provides 64 plot types, including scatter, box, ridgeline, volcano and Sankey plots, and renders them to SVG by default. PNG and PDF output are available through optional feature flags.

Beyond the Rust API, kuva ships a CLI binary that draws plots directly from TSV, CSV or Parquet input, reading from a file or stdin. Output goes to stdout or to a file chosen by extension, and plots can also be drawn inside the terminal with a flag.

The library is usable from any Rust project via crates.io, and the project publishes documentation covering plot types, the API, CLI flags, themes and palettes.

Key features

  • 01Provides 64 plot types, from scatter and box plots to Sankey diagrams.
  • 02Outputs SVG by default, with optional PNG and PDF backends.
  • 03Includes a CLI that reads TSV, CSV or Parquet input.
  • 04Renders plots directly in the terminal.
  • 05Supports optional Typst-based math typesetting and Typst markup output.

Use cases

  • Generating publication-style scientific figures from Rust code.
  • Plotting gene expression results such as volcano or ridgeline plots from the command line.
  • Quickly inspecting tabular data in the terminal over SSH without a GUI.
  • Building automated plotting steps into data analysis pipelines.

Quick start

  1. 1

    Install Rust (skip if cargo is already installed)

  2. 2

    Restart your shell or load the Cargo environment

    source ~/.cargo/env
  3. 3

    Install the kuva CLI from crates.io

    cargo install kuva --features cli
  4. 4

    Render a scatter plot to SVG with the CLI

    kuva scatter data.tsv --x x --y y -o plot.svg

Things to know

  • Pulls in the PDF backend only with Rust 1.92 or newer, above the crate's own minimum of 1.87.
  • The README's development note says much of the codebase was built with heavy AI assistance.

In collections

Topics

FAQ

What is kuva?
A scientific plotting library in Rust with 64 plot types, SVG output, optional PNG/PDF backends, and a CLI that renders plots from the shell or terminal. kuva is a plotting library written in Rust for scientific data visualization. It provides 64 plot types, including scatter, box, ridgeline, volcano and Sankey plots, and renders them to SVG by default. PNG and PDF output are available through optional feature flags.
Is kuva free to use? What license does it have?
kuva is open source under the MIT license. Check the license terms before using it in commercial products.
Is kuva still maintained?
Actively maintained. The last commit to kuva was on Oct 19, 2026.
What can I use kuva for?
Generating publication-style scientific figures from Rust code. Plotting gene expression results such as volcano or ridgeline plots from the command line. Quickly inspecting tabular data in the terminal over SSH without a GUI. Building automated plotting steps into data analysis pipelines.
How do I install kuva?
Install Rust (skip if cargo is already installed) Restart your shell or load the Cargo environment: source ~/.cargo/env Install the kuva CLI from crates.io: cargo install kuva --features cli Render a scatter plot to SVG with the CLI: kuva scatter data.tsv --x x --y y -o plot.svg
Where can I get kuva?
The source code and installation instructions are on GitHub: https://github.com/Psy-Fer/kuva

Summary generated by AI from the project's README. GitHub stats refresh daily.

Related projects