Repolode
vicanso

vicanso/charts-rs

一个 Rust 图表库,无需浏览器即可将 29 种图表渲染为 SVG 或 PNG、JPEG、WebP、AVIF 图片。

可替代:Apache ECharts

Star
400
Fork
25
未关闭 Issue
1
最近提交
4天前

这是什么?

charts-rs 是一个 Rust 图表库,可以将图表生成为 SVG,也能导出为 PNG、JPEG、WebP 或 AVIF 图片。图表既可以通过类型化的 Rust API 构建,也可以用与 Apache ECharts 相近的选项,从 JSON 文档生成。它适合在服务端渲染报表、邮件、机器人和仪表盘等场景,不需要无头浏览器或 Node.js。

库内支持 29 种图表,包括柱状图、折线图、饼图、雷达图、K 线图、热力图、桑基图、甘特图、树图和地图等,并可通过 MultiChart 将多种图表排布在同一画布上。系列支持堆叠、双 Y 轴混合,以及平滑线、面积和误差线等绘制方式。坐标轴支持类目、数值、时间和对数刻度。

样式方面提供十款内置主题以及自定义主题,支持自定义字体(TTF、OTF、TTC)并包含中日韩字体,还提供图例、提示框和 SVG 动画。图片导出通过 png、jpeg、webp、avif 等 Cargo feature 启用。

核心功能

  • 01支持 29 种图表,从柱状图、折线图到 K 线图、桑基图和地图。
  • 02既可用类型化的 Rust API 构建图表,也可直接从 JSON 文档生成。
  • 03可导出 SVG,并通过 feature 开关输出 PNG、JPEG、WebP 或 AVIF 图片。
  • 04提供十款内置主题,支持包括中文在内的自定义字体。
  • 05通过 MultiChart 将多个图表组合在同一画布上。

适用场景

  • 在服务端为定时报表或 PDF 导出生成图表图片。
  • 无需浏览器,将图表嵌入邮件或聊天机器人消息。
  • 在 Rust 后端接口的响应中渲染仪表盘图表。
  • 基于存储在应用数据旁的 JSON 配置生成图表。

快速上手

  1. 1

    在 Cargo.toml 中添加该 crate

    [dependencies] charts-rs = "2"
  2. 2

    用 Rust 构建图表并渲染为 SVG

    let svg = chart.svg().unwrap();
  3. 3

    如需 PNG 输出,启用 png 特性

    charts-rs = { version = "2", features = ["png"] }

使用前须知

  • 需要 Rust 1.88 或更高版本(edition 2024)。

标签

常见问题

charts-rs 是什么?
一个 Rust 图表库,无需浏览器即可将 29 种图表渲染为 SVG 或 PNG、JPEG、WebP、AVIF 图片。 charts-rs 是一个 Rust 图表库,可以将图表生成为 SVG,也能导出为 PNG、JPEG、WebP 或 AVIF 图片。图表既可以通过类型化的 Rust API 构建,也可以用与 Apache ECharts 相近的选项,从 JSON 文档生成。它适合在服务端渲染报表、邮件、机器人和仪表盘等场景,不需要无头浏览器或 Node.js。
charts-rs 可以免费使用吗?用的什么许可证?
charts-rs 以 Apache-2.0 许可证开源。用于商业产品前,请先确认许可证条款。
charts-rs 还在维护吗?
活跃维护中。charts-rs 最近一次提交是在 2026年10月17日。
charts-rs 适合用来做什么?
在服务端为定时报表或 PDF 导出生成图表图片。 无需浏览器,将图表嵌入邮件或聊天机器人消息。 在 Rust 后端接口的响应中渲染仪表盘图表。 基于存储在应用数据旁的 JSON 配置生成图表。
charts-rs 怎么安装和运行?
在 Cargo.toml 中添加该 crate: [dependencies] charts-rs = "2" 用 Rust 构建图表并渲染为 SVG: let svg = chart.svg().unwrap(); 如需 PNG 输出,启用 png 特性: charts-rs = { version = "2", features = ["png"] }
在哪里获取 charts-rs?
源代码和安装说明在 GitHub 上:https://github.com/vicanso/charts-rs

概要由 AI 根据项目 README 生成;GitHub 数据每日更新。

相关项目