Skip to main content

[WIP] Compose once, chart anywhere with gguppy

Project description

gguppy

[!CAUTION] 🚧 This package is still in work and subject to great change.

gguppy (né arwggplot) is an interactive, unified, Layered Grammar of Graphics implementation in pure Rust. Compose once, chart anywhere with gguppy.

Why gguppy?

1. Friendly syntax

Rust is strange for python and R users. gguppy aims to provide a familiar, friendly and ergonomic syntax. You can even write in different coding styles.

Grammar of Graphics is a first class citizen in gguppy:

use gguppy::prelude::*;

// let df = minidf!["x" => &[1, 2, 3], "y" => &[4, 5, 6]];
// let plot = ggplot![df, aes("x", "y")] + geom_point![];

A MATLAB/matplotlib-esque syntax will also be supported.

use gguppy::prelude::*;

// fig, axis = mplot![];

2. Batteries included

gguppy aims to allow you to write once, plot anywhere using its flexible and extensible architecture.

3. Speed

Workspace Structure

Crates

  • 🛠️ gguppy_core

    • 🛠️ Implementation of the Grammar of Graphics in no_std Rust
    • 🛠️ Consumes any DataFrame-like structure implementing the GGData trait
    • 🛠️ Extensible with any plot types implementing the GGCapable trait
    • 🛠️ Produces geometric primitives implementing the DrawablePrim trait
    • 🛠️ Compiles for static desktop display or interactive wasm plots
  • 🛠️ gguppy_data

    • 🛠️ Minimalist DataFrame-like minidf plottable by gguppy in no_std Rust
    • 🛠️ Features adapters for arrow and arrow2
    • 🛠️ Features adapters for polars, pandas, and more
  • 🛠️ arwggplot

    • 🛠️ Minimalist svg backend for gguppy in no_std Rust
    • 🛠️ Features vector backends to svg, eps, and more
    • 🛠️ Features raster backends to bmp, png, and more

Module Layout

  • src

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

gguppy-0.1.0.tar.gz (7.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

gguppy-0.1.0-py3-none-any.whl (7.7 kB view details)

Uploaded Python 3

File details

Details for the file gguppy-0.1.0.tar.gz.

File metadata

  • Download URL: gguppy-0.1.0.tar.gz
  • Upload date:
  • Size: 7.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.6.5

File hashes

Hashes for gguppy-0.1.0.tar.gz
Algorithm Hash digest
SHA256 4d969f8a6fcb3d9e9a551c94b33b2c613c2e2df79a2c7ace6bdf990d33805b6e
MD5 370b3f654a46ca4d1d88ddfea681facd
BLAKE2b-256 0f41e43218d8c21c59f944347a1bd5dbf4e3050dcd1f2ed58c68d61d3c666bf9

See more details on using hashes here.

File details

Details for the file gguppy-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: gguppy-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 7.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.6.5

File hashes

Hashes for gguppy-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 f0101f1ec999cdcf4c34f5995c4e4a88e6a2e47670013ee6bc2255a8c00f95b2
MD5 c660f6708d1bf601683a774b42cbbf8b
BLAKE2b-256 3ffd306b038f05e5bc18ca46ce9ae4bc195848ba89c9572b2d1f205e96311190

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page