Repolode
vicanso

vicanso/charts-rs

ブラウザー不要で29種類のチャートをSVGやPNG/JPEG/WebP/AVIFに出力できるRust製ライブラリ。

代替できる製品:Apache ECharts

スター
400
フォーク
25
未解決の Issue
1
最終コミット
4 日前

これは何?

charts-rsは、チャートをSVGとして生成し、PNG、JPEG、WebP、AVIF画像としても出力できるRust用のチャートライブラリです。Apache EChartsを参考にした同じオプションを使い、型付きのRust APIまたはJSONドキュメントからチャートを作成できます。ヘッドレスブラウザーやNode.jsが不要なため、レポート、メール、ボット、ダッシュボード向けのサーバーサイドレンダリングを想定しています。

棒、折れ線、円、レーダー、ローソク足、ヒートマップ、サンキー、ガント、ツリーマップ、マップなど、29種類のチャートに対応しています。MultiChartを使えば、複数のチャートを1つのキャンバスに配置できます。系列は積み上げ表示、2つのy軸を使った混合表示が可能で、滑らかな線、面、エラーバーも描画できます。軸はカテゴリ、数値、時間、対数スケールに対応しています。

スタイル設定には10種類の組み込みテーマ、CJK対応のカスタムフォント(TTF、OTF、TTC)、凡例、ツールチップ、SVGアニメーションがあります。画像出力は、png、jpeg、webp、avifなどのCargo feature flagsで有効にできます。

主な機能

  • 01棒や折れ線からローソク足、サンキー、マップまで、29種類のチャートを描画できます。
  • 02型付きのRust APIまたはJSONドキュメントからチャートを作成できます。
  • 03SVGに加え、feature flagsを使ってPNG、JPEG、WebP、AVIF画像を出力できます。
  • 0410種類の組み込みテーマを備え、CJKを含むカスタムフォントに対応しています。
  • 05MultiChartを使って複数のチャートを1つのキャンバスにまとめられます。

ユースケース

  • サーバー上で定期レポートやPDF出力向けのチャート画像を生成する。
  • ブラウザーを使わずに、メールやチャットボットのメッセージにチャートを添付する。
  • RustバックエンドAPIのレスポンスでダッシュボード用チャートを描画する。
  • アプリケーションデータとともに保存されたJSON設定からチャートを生成する。

クイックスタート

  1. 1

    Cargo.toml にクレートを追加します

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

    Rust でチャートを作成し、SVG にレンダリングします

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

    PNG 出力を使うには、png feature を有効にします

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

使う前に知っておきたいこと

  • Rust 1.88 以降(edition 2024)が必要です。

トピック

よくある質問

charts-rs とは?
ブラウザー不要で29種類のチャートをSVGやPNG/JPEG/WebP/AVIFに出力できるRust製ライブラリ。 charts-rsは、チャートをSVGとして生成し、PNG、JPEG、WebP、AVIF画像としても出力できるRust用のチャートライブラリです。Apache EChartsを参考にした同じオプションを使い、型付きのRust APIまたはJSONドキュメントからチャートを作成できます。ヘッドレスブラウザーやNode.jsが不要なため、レポート、メール、ボット、ダッシュボード向けのサーバーサイドレンダリングを想定しています。
charts-rs は無料で使えますか?ライセンスは?
charts-rs は Apache-2.0 ライセンスのオープンソースです。商用製品で使う前にライセンス条件を確認してください。
charts-rs は今もメンテナンスされていますか?
活発にメンテナンス中。charts-rs の最終コミットは 2026年10月17日 です。
charts-rs は何に使えますか?
サーバー上で定期レポートやPDF出力向けのチャート画像を生成する。 ブラウザーを使わずに、メールやチャットボットのメッセージにチャートを添付する。 RustバックエンドAPIのレスポンスでダッシュボード用チャートを描画する。 アプリケーションデータとともに保存されたJSON設定からチャートを生成する。
charts-rs のインストール方法は?
Cargo.toml にクレートを追加します: [dependencies] charts-rs = "2" Rust でチャートを作成し、SVG にレンダリングします: let svg = chart.svg().unwrap(); PNG 出力を使うには、png feature を有効にします: charts-rs = { version = "2", features = ["png"] }
charts-rs はどこで入手できますか?
ソースコードとインストール手順は GitHub にあります:https://github.com/vicanso/charts-rs

概要はプロジェクトの README をもとに AI が生成しています。GitHub の数値は毎日更新されます。

関連プロジェクト