Please check the build logs for more information.
See Builds for ideas on how to fix a failed build, or Metadata for how to configure docs.rs builds.
If you believe this is docs.rs' fault, open an issue.
kuva
A scientific plotting library in Rust. 30 plot types, SVG output, optional PNG/PDF backends, and a CLI binary that renders plots directly from the shell — including in the terminal itself.

Quick start
Install the CLI
Step 1 — install Rust (skip if you already have cargo):
|
# then restart your shell, or run:
Step 2 — install kuva:
# From crates.io — installs to ~/.cargo/bin/ (on your $PATH after rustup setup)
# From a local clone — SVG output only
# From a local clone — with PNG and PDF output
After installation, kuva is available anywhere in your shell — no need to reference ./target/release/kuva or set any paths manually.
Use as a library
Add to Cargo.toml:
[]
= "0.1"
# Optional backends
= { = "0.1", = ["png"] } # PNG output
= { = "0.1", = ["pdf"] } # PDF output
= { = "0.1", = ["full"] } # PNG + PDF
Then in Rust:
use *;
let plot = new
.with_data
.with_color
.with_legend;
let plots: = vec!;
let layout = auto_from_plots
.with_title
.with_x_label
.with_y_label;
let svg = render_to_svg;
write.unwrap;
Use the CLI
# Scatter plot to SVG
# Volcano plot, label top 20 genes
# Ridgeline plot — stacked density curves, one per group
# Box plot rendered directly in the terminal
Input is auto-detected TSV or CSV. Columns are selectable by name or 0-based index. Pipe from stdin by omitting the file argument. Output defaults to SVG on stdout; use -o file.svg/png/pdf to write a file.
Documentation
Full documentation — plot type reference, API guide, CLI flag reference, themes, palettes, and benchmarks — is at psy-fer.github.io/kuva.
Contributors
Thank you to everyone who has contributed to kuva!
Development note
kuva was initially built by hand, with a working library and several plot types already in place before AI tooling was introduced. From that point, development was heavily assisted by Claude (Anthropic) — accelerating the addition of new plot types, the CLI binary, tests, and documentation. The architecture, domain knowledge, and direction remain the author's own; Claude was used as an accelerant, not an author.
This disclaimer was written by Claude as an honest assessment of its own role in the project.
License
MIT