A Rust plotting library powered by Plotly.js for creating interactive and static visualizations.
Plotly.rs is a Rust library that provides a native interface to the Plotly.js visualization engine. It enables Rust developers to create rich, interactive plots and export them as HTML files or static images, supporting both desktop and web (WASM) environments.
Rust developers and data scientists who need to generate interactive or static visualizations from Rust applications, including those targeting web frontends via WebAssembly.
It offers a type-safe Rust API for the powerful Plotly.js engine, with flexible export options including interactive HTML, static images via WebDriver or Kaleido, and seamless WebAssembly compatibility for web frontends.
Plotly for Rust
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Provides a native Rust interface to Plotly.js, enabling compile-time safety and seamless integration into Rust codebases, as demonstrated in the basic usage examples with Scatter traces.
Supports interactive HTML plots and static images in multiple formats (PNG, JPEG, WEBP, SVG, PDF) via WebDriver or legacy Kaleido backends, detailed in the export sections with code snippets.
Works with WebAssembly for web frontends like Yew, allowing Rust-driven visualizations in browsers, with examples provided for WASM environments in the README.
Includes timeseries downsampling methods like LTTB for efficient visualization of large datasets, as highlighted in the timeseries downsampling section using external crates.
Static image export requires WebDriver or Kaleido binaries, which must be installed or downloaded separately, adding complexity to setup and deployment, as noted in the static export and Kaleido dependency sections.
Enabling the plotly_embed_js feature increases binary size by approximately 3.5 MB, as admitted in the feature flags section, which can be prohibitive for size-sensitive applications.
The Kaleido backend is marked as legacy and has cross-platform installation issues, forcing reliance on the newer WebDriver method which still depends on external tools and can break in headless environments.