# THIS FILE IS AUTOMATICALLY GENERATED BY CARGO
#
# When uploading crates to the registry Cargo will automatically
# "normalize" Cargo.toml files for maximal compatibility
# with all versions of Cargo and also rewrite `path` dependencies
# to registry (e.g., crates.io) dependencies.
#
# If you are reading this file be aware that the original Cargo.toml
# will likely look very different (and much more reasonable).
# See Cargo.toml.orig for the original contents.

[package]
edition = "2024"
rust-version = "1.92"
name = "ruviz"
version = "0.4.1"
authors = ["Ruviz Contributors"]
build = false
exclude = [
    "generated/",
    "docs/assets/gallery/",
    "docs/assets/rustdoc/",
    "docs/gallery/",
    "tests/",
    "benches/",
    "*.log",
    ".github/",
]
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "High-performance 2D plotting library for Rust"
readme = "README.md"
keywords = [
    "plotting",
    "visualization",
    "graphics",
    "charts",
]
categories = [
    "visualization",
    "graphics",
]
license = "MIT OR Apache-2.0"
repository = "https://github.com/Ameyanagi/ruviz"
resolver = "2"

[features]
animation = [
    "gif",
    "color_quant",
    "crossbeam-channel",
]
animation-gif = ["animation"]
animation-hq-gif = [
    "animation",
    "gifski",
]
animation-video = [
    "animation",
    "rav1e",
    "av1-grain",
]
default = [
    "ndarray",
    "parallel",
]
full = [
    "ndarray_support",
    "polars_support",
    "nalgebra_support",
    "window",
    "serde",
    "performance",
    "gpu",
    "svg",
    "pdf",
    "interactive-gpu",
    "animation",
    "typst-math",
]
gpu = [
    "wgpu",
    "bytemuck",
    "wgsl_bindgen",
    "pollster",
    "futures-intrusive",
]
interactive = ["window"]
interactive-gpu = [
    "interactive",
    "gpu",
]
nalgebra = ["nalgebra_support"]
nalgebra_support = ["dep:nalgebra"]
ndarray_support = ["ndarray"]
parallel = ["rayon"]
pdf = ["svg2pdf"]
performance = [
    "parallel",
    "simd",
]
polars_support = ["polars"]
serde = [
    "dep:serde",
    "serde_json",
    "palette/serde",
]
simd = ["wide"]
svg = []
typst-math = [
    "dep:typst",
    "dep:typst-svg",
    "dep:typst-render",
    "dep:typst-kit",
]
window = [
    "winit",
    "raw-window-handle",
    "dep:softbuffer",
    "dep:rfd",
    "dep:arboard",
]

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

[[bin]]
name = "generate_gallery"
path = "scripts/generate_gallery.rs"

[[example]]
name = "animation_basic"
path = "examples/animation_basic.rs"
required-features = ["animation"]

[[example]]
name = "animation_easing"
path = "examples/animation_easing.rs"
required-features = ["animation"]

[[example]]
name = "animation_reactive"
path = "examples/animation_reactive.rs"
required-features = ["animation"]

[[example]]
name = "animation_simple"
path = "examples/animation_simple.rs"
required-features = ["animation"]

[[example]]
name = "animation_wave"
path = "examples/animation_wave.rs"
required-features = ["animation"]

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

[[example]]
name = "axis_legend_test"
path = "gallery/basic/axis_legend_test.rs"

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

[[example]]
name = "basic_example"
path = "gallery/basic/basic_example.rs"

[[example]]
name = "basic_interaction"
path = "examples/basic_interaction.rs"
required-features = ["interactive"]

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

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

[[example]]
name = "data_brushing"
path = "examples/data_brushing.rs"
required-features = ["interactive"]

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

[[example]]
name = "font_demo"
path = "gallery/advanced/font_demo.rs"

[[example]]
name = "generate_animation_gallery"
path = "examples/generate_animation_gallery.rs"
required-features = ["animation"]

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

[[example]]
name = "gpu_api_test"
path = "examples/gpu_api_test.rs"
required-features = ["gpu"]

[[example]]
name = "gpu_benchmark"
path = "examples/gpu_benchmark.rs"
required-features = ["gpu"]

[[example]]
name = "gpu_debug_test"
path = "examples/gpu_debug_test.rs"
required-features = ["gpu"]

[[example]]
name = "gpu_integration_test"
path = "examples/gpu_integration_test.rs"
required-features = ["gpu"]

[[example]]
name = "gpu_memory_test"
path = "examples/gpu_memory_test.rs"
required-features = ["gpu"]

[[example]]
name = "gpu_performance_plot"
path = "examples/gpu_performance_plot.rs"
required-features = ["gpu"]

[[example]]
name = "gpu_plot_example"
path = "examples/gpu_plot_example.rs"
required-features = ["gpu"]

[[example]]
name = "gpu_scaling_benchmark"
path = "examples/gpu_scaling_benchmark.rs"
required-features = ["gpu"]

[[example]]
name = "gpu_vs_cpu_benchmark"
path = "examples/gpu_vs_cpu_benchmark.rs"
required-features = ["gpu"]

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

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

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

[[example]]
name = "interactive_heatmap"
path = "examples/interactive_heatmap.rs"
required-features = ["interactive"]

[[example]]
name = "interactive_multi_series"
path = "examples/interactive_multi_series.rs"
required-features = ["interactive"]

[[example]]
name = "interactive_scatter_clusters"
path = "examples/interactive_scatter_clusters.rs"
required-features = ["interactive"]

[[example]]
name = "legend_features_example"
path = "gallery/publication/legend_features_example.rs"

[[example]]
name = "legend_handles_test"
path = "gallery/basic/legend_handles_test.rs"

[[example]]
name = "legend_horizontal_test"
path = "gallery/basic/legend_horizontal_test.rs"

[[example]]
name = "legend_rounded_test"
path = "gallery/basic/legend_rounded_test.rs"

[[example]]
name = "legend_scatter_test"
path = "gallery/basic/legend_scatter_test.rs"

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

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

[[example]]
name = "million_points"
path = "examples/performance/million_points.rs"

[[example]]
name = "minimal_gpu_benchmark"
path = "examples/minimal_gpu_benchmark.rs"
required-features = ["gpu"]

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

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

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

[[example]]
name = "pdf_export_example"
path = "examples/pdf_export_example.rs"
required-features = ["pdf"]

[[example]]
name = "performance_data_collector"
path = "examples/performance_data_collector.rs"
required-features = ["gpu"]

[[example]]
name = "plotting_benchmark_runner"
path = "examples/performance/plotting_benchmark_runner.rs"
required-features = ["serde"]

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

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

[[example]]
name = "reactive_example"
path = "examples/reactive_example.rs"
required-features = ["interactive"]

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

[[example]]
name = "real_time_performance"
path = "examples/real_time_performance.rs"
required-features = ["interactive"]

[[example]]
name = "scaling_benchmark"
path = "examples/performance/scaling_benchmark.rs"

[[example]]
name = "scientific_plotting"
path = "gallery/scientific/scientific_plotting.rs"

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

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

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

[[example]]
name = "simple_publication_test"
path = "gallery/publication/simple_publication_test.rs"

[[example]]
name = "simple_scaling_test"
path = "examples/simple_scaling_test.rs"
required-features = ["gpu"]

[[example]]
name = "simple_visual_test"
path = "gallery/basic/simple_visual_test.rs"

[[example]]
name = "streaming_demo"
path = "examples/performance/streaming_demo.rs"

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

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

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

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

[[example]]
name = "wgpu_test"
path = "examples/wgpu_test.rs"
required-features = ["gpu"]

[dependencies.anyhow]
version = "1.0"

[dependencies.arboard]
version = "3.6.1"
optional = true

[dependencies.av1-grain]
version = "0.4"
optional = true

[dependencies.bytemuck]
version = "1.25"
optional = true

[dependencies.color_quant]
version = "1.1"
optional = true

[dependencies.cosmic-text]
version = "0.16"

[dependencies.crossbeam-channel]
version = "0.5"
optional = true

[dependencies.futures-intrusive]
version = "0.5"
optional = true

[dependencies.gif]
version = "0.14"
optional = true

[dependencies.gifski]
version = "1.34"
optional = true

[dependencies.glam]
version = "0.32"

[dependencies.image]
version = "0.25"
features = ["png"]
default-features = false

[dependencies.log]
version = "0.4"

[dependencies.nalgebra]
version = "0.34"
optional = true

[dependencies.ndarray]
version = "0.17"
optional = true

[dependencies.num_cpus]
version = "1.17"

[dependencies.palette]
version = "0.7"

[dependencies.polars]
version = "0.50"
optional = true

[dependencies.pollster]
version = "0.4"
optional = true

[dependencies.rav1e]
version = "0.8"
optional = true
default-features = false

[dependencies.raw-window-handle]
version = "0.6"
optional = true

[dependencies.rayon]
version = "1.11"
optional = true

[dependencies.serde]
version = "1.0"
features = ["derive"]
optional = true

[dependencies.serde_json]
version = "1.0"
optional = true

[dependencies.softbuffer]
version = "0.4"
optional = true

[dependencies.svg2pdf]
version = "0.13"
optional = true

[dependencies.thiserror]
version = "2.0"

[dependencies.tiny-skia]
version = "0.12"

[dependencies.tiny-skia-path]
version = "0.12"

[dependencies.typst]
version = "0.13.1"
optional = true

[dependencies.typst-kit]
version = "0.13.1"
features = [
    "fonts",
    "embed-fonts",
]
optional = true
default-features = false

[dependencies.typst-render]
version = "0.13.1"
optional = true

[dependencies.typst-svg]
version = "0.13.1"
optional = true

[dependencies.unicode-width]
version = "0.2"

[dependencies.wgpu]
version = "29.0"
optional = true

[dependencies.wgsl_bindgen]
version = "0.21"
optional = true

[dependencies.wide]
version = "0.7"
optional = true

[dependencies.winit]
version = "0.30"
optional = true

[dev-dependencies.approx]
version = "0.5"

[dev-dependencies.criterion]
version = "0.8"
features = ["html_reports"]

[dev-dependencies.env_logger]
version = "0.11"

[dev-dependencies.plotters]
version = "0.3.7"
features = [
    "bitmap_backend",
    "line_series",
]
default-features = false

[dev-dependencies.proptest]
version = "1.11"

[dev-dependencies.rand]
version = "0.10"

[dev-dependencies.regex]
version = "1"

[dev-dependencies.sha2]
version = "0.10"

[dev-dependencies.tempfile]
version = "3.27"

[dev-dependencies.tokio]
version = "1.50"
features = ["full"]

[dev-dependencies.trybuild]
version = "1.0"

[target.'cfg(target_os = "freebsd")'.dependencies.ctor]
version = "0.8"

[target.'cfg(target_os = "freebsd")'.dependencies.rfd]
version = "=0.15.4"
features = ["gtk3"]
optional = true
default-features = false

[target.'cfg(target_os = "linux")'.dependencies.rfd]
version = "=0.15.4"
features = ["gtk3"]
optional = true
default-features = false

[target.'cfg(target_os = "macos")'.dependencies.rfd]
version = "=0.15.4"
optional = true
default-features = false

[target."cfg(windows)".dependencies.rfd]
version = "=0.15.4"
optional = true
default-features = false

[target."cfg(windows)".dependencies.windows-sys]
version = "0.61"
features = ["Win32_Storage_FileSystem"]

[profile.bench]
debug = 2

[profile.release]
lto = true
codegen-units = 1
