velociplot 0.1.0

Fast, publication-quality scientific plotting library - Quick, precise, and deadly effective
Documentation
[package]
name = "velociplot"
version = "0.1.0"
edition = "2021"
rust-version = "1.70"
authors = ["Ibrahim Cesar <email@ibrahimcesar.com>"]
license = "MIT"
description = "Fast, publication-quality scientific plotting library - Quick, precise, and deadly effective"
homepage = "https://github.com/ibrahimcesar/velociplot"
repository = "https://github.com/ibrahimcesar/velociplot"
documentation = "https://docs.rs/velociplot"
keywords = ["plotting", "visualization", "graphics", "charts", "scientific"]
categories = ["graphics", "visualization", "science"]
readme = "README.md"

[lib]
name = "velociplot"
path = "src/lib.rs"

[[bin]]
name = "vplot"
path = "src/bin/vplot.rs"
required-features = ["cli"]

[dependencies]
# Core dependencies
thiserror = "1.0"

# Rendering backend
tiny-skia = { version = "0.11", optional = true }
fontdue = { version = "0.9", optional = true }

# Optional: CLI support
clap = { version = "4.5", features = ["derive", "cargo"], optional = true }
csv = { version = "1.3", optional = true }
serde = { version = "1.0", features = ["derive"], optional = true }
serde_json = { version = "1.0", optional = true }

# Optional: Output formats
png = { version = "0.17", optional = true }
# svg = { version = "0.14", optional = true }
# printpdf = { version = "0.7", optional = true }

# Optional: Math rendering
# rustybuzz = { version = "0.12", optional = true }  # For text shaping

# Optional: Color handling
# palette = { version = "0.7", optional = true }

# Optional: Integration
ndarray = { version = "0.16", optional = true }
polars = { version = "0.44", optional = true, default-features = false, features = [
    "dtype-full",
] }

[dev-dependencies]
approx = "0.5"

[features]
default = ["raster"]

# Rendering backend
raster = ["dep:tiny-skia", "dep:png", "dep:fontdue"]

# CLI tool
cli = ["dep:clap", "dep:csv", "dep:serde", "dep:serde_json", "raster"]

# Output formats (legacy feature names for compatibility)
# png feature is now part of raster
svg = [] # ["dep:svg"]
pdf = [] # ["dep:printpdf"]

# Math rendering
latex = [] # ["dep:rustybuzz"]

# Data integration
ndarray-support = ["dep:ndarray"]
polars-support = ["dep:polars"]

# All features
full = [
    "cli",
    "raster",
    "svg",
    "pdf",
    "latex",
    "ndarray-support",
    "polars-support",
]

[profile.release]
opt-level = 3
lto = true
codegen-units = 1
strip = true

[profile.dev]
opt-level = 0

[profile.bench]
opt-level = 3
lto = true

[[example]]
name = "basic_line"
path = "examples/basic_line.rs"

[[example]]
name = "scatter"
path = "examples/scatter.rs"

[[example]]
name = "histogram"
path = "examples/histogram.rs"

[[example]]
name = "custom_font"
path = "examples/custom_font.rs"

[[example]]
name = "legend_alignment_test"
path = "examples/legend_alignment_test.rs"

[[example]]
name = "scatter_markers"
path = "examples/scatter_markers.rs"

[[example]]
name = "bar_plot"
path = "examples/bar_plot.rs"

[[example]]
name = "box_plot"
path = "examples/box_plot.rs"

[[example]]
name = "qq_plot"
path = "examples/qq_plot.rs"

[[example]]
name = "pp_plot"
path = "examples/pp_plot.rs"

[[example]]
name = "violin_plot"
path = "examples/violin_plot.rs"

[[example]]
name = "axis_labels"
path = "examples/axis_labels.rs"

[[example]]
name = "legend_auto_position"
path = "examples/legend_auto_position.rs"

[[example]]
name = "svg_export"
path = "examples/svg_export.rs"

[[example]]
name = "math_notation"
path = "examples/math_notation.rs"

[[example]]
name = "legend_below"
path = "examples/legend_below.rs"

[[example]]
name = "colormaps"
path = "examples/colormaps.rs"

[[example]]
name = "legend_separate"
path = "examples/legend_separate.rs"

[[example]]
name = "ndarray_integration"
path = "examples/ndarray_integration.rs"

[[example]]
name = "polars_integration"
path = "examples/polars_integration.rs"

[[example]]
name = "heatmap"
path = "examples/heatmap.rs"

[[example]]
name = "bubble"
path = "examples/bubble.rs"

[[example]]
name = "legend_types"
path = "examples/legend_types.rs"

[[example]]
name = "bar_legend"
path = "examples/bar_legend.rs"

[[example]]
name = "stacked_bar"
path = "examples/stacked_bar.rs"

[[example]]
name = "area"
path = "examples/area.rs"

[[example]]
name = "treemap"
path = "examples/treemap.rs"

[[example]]
name = "timeline"
path = "examples/timeline.rs"

[[example]]
name = "datelistplot"
path = "examples/datelistplot.rs"

# Real-world data examples
[[example]]
name = "climate_nasa"
path = "examples/real-world/climate_nasa.rs"