REST APIやバッチ処理に最適なRust版(Pure Rust ライブラリ)に加え、
C++ バーコードエンジンを Node.js 経由で利用するWASM版を提供しています。
最新リリース情報
Barcode.Rust 1.0.02026年2月 リリース
Rustによるバーコード生成ライブラリの初回リリース。
Pure Rust版(REST API対応)とWASM版(C++ WASMエンジン)の2パッケージを提供。
PNG / JPEG / SVG出力に対応。全18種バーコードをサポート。
2つのパッケージ
用途や環境に応じて、最適なパッケージをお選びください。
Rust版(Pure Rust ライブラリ)
cargo add / ZIP配布Pure Rustで実装されたバーコードライブラリ。REST APIサーバーやバッチ処理に最適です。
- Pure Rust実装 ─ 外部依存最小限
- REST API サーバー構築に最適
- Windows / macOS / Linux 対応
- axum で REST API サーバーを構築
- PNG / JPEG / SVG 出力対応
22,000円(税込)
WASM版(C++ WASMエンジン)
C++ バーコードエンジン + Node.jsC++ バーコードエンジンを Node.js 経由で利用。Rust から簡単にバーコードを生成できます。
- C++ 高速バーコードエンジン搭載
- Node.js サブプロセスで WASM 実行
- serde/serde_json のみ依存
- REST API サーバー構築に対応
11,000円(税込)
製品概要
Pure Rust実装
unsafe不要。Pure Rustで実装されているため、安全性を保ちながらあらゆるプラットフォームでビルド・実行可能です。
REST API対応
axumと組み合わせてREST APIサーバーを簡単に構築。マイクロサービスに最適です。
PNG / JPEG画像出力
バーコードをBase64形式のPNG/JPEG画像として出力。HTMLやAPIレスポンスに直接埋め込み可能。
SVGベクター出力
拡大しても劣化しないSVG形式で出力。印刷や高解像度ディスプレイに最適です。
C++ WASMエンジン
C++ バーコードエンジンを Node.js 経由で利用。Rust から簡単に高品質バーコードを生成。
外部依存最小限
Rust版は外部依存最小限。cargo add するだけでプロジェクトに組み込めます。
対応バーコード
| 分類 | 対応バーコード |
|---|---|
| 1次元バーコード |
|
| 2次元バーコード |
|
製品価格・ライセンス
価格(1開発ライセンスあたり):
- Rust版(Pure Rust ライブラリ):22,000円(税込) / 20,000円(税抜)
- WASM版(C++ WASMエンジン):11,000円(税込) / 10,000円(税抜)
※必要開発ライセンス数:Barcode.Rustを利用して開発するパソコンの台数分必要になります。
※ランタイムライセンス:無償で提供されます。開発環境にのみライセンスが必要です。お客様環境など開発環境ではない場合は、配布は無償です。
※Rust版:Pure Rust実装のバーコードライブラリをご利用いただけます。
※WASM版:C++ WASMエンジンを利用するRustラッパーとサンプルが含まれます。
デモ・ダウンロード
試用版には「SAMPLE」の透かしが表示されます。製品版をご購入いただくと透かしなしでご利用いただけます。
Rust版(Pure Rustライブラリ)
Pure Rust実装のバーコードライブラリ。REST APIサンプル付き。
PNG / JPEG / SVG出力に対応。全18種バーコード対応。
WASM版(C++ WASMエンジン)
C++ バーコードエンジンを Node.js 経由で利用する Rust ラッパー。
REST API サンプル付き。全18種バーコード対応。
cargo add(Native FFI版 / WASM版)
GitHub サンプルコード
Pure Rust版 サンプル
C++版 サンプル(FFI / WASM)
サンプルコード
cargo addでクレートを追加するだけで、すぐにバーコードを生成できます。
基本的な使い方(QRコード)
use barcode_pao::{QR, FORMAT_PNG};
fn main() -> Result<(), Box<dyn std::error::Error>> {
// QRコード生成(2ステップ)
let mut qr = QR::new(FORMAT_PNG); // Step 1
qr.draw("https://www.pao.ac/", 300)?; // Step 2
// Base64 PNG画像を取得
let base64_img = qr.base_2d.base.get_image_base64()?;
println!("{}", base64_img);
Ok(())
}
1次元バーコード
use barcode_pao::{Code39, FORMAT_PNG};
// Code39 バーコード生成
let mut bc = Code39::new(FORMAT_PNG);
bc.base_1d.show_text = true;
bc.base_1d.text_even_spacing = true;
bc.draw("HELLO-123", 400, 100)?;
// Base64画像を取得
let base64_img = bc.base_1d.base.get_image_base64()?;
// ファイルに保存する場合
let img_bytes = bc.base_1d.base.get_image_memory()?;
std::fs::write("barcode.png", &img_bytes)?;
SVGベクター出力
use barcode_pao::{Code128, FORMAT_SVG};
// SVG形式で出力
let mut bc = Code128::new(FORMAT_SVG);
bc.base_1d.show_text = true;
bc.draw("Hello-2026", 400, 100)?;
// SVG文字列を取得
let svg_string = bc.base_1d.base.get_svg()?;
// ファイルに保存
std::fs::write("barcode.svg", &svg_string)?;
REST APIサーバー(axum)
use axum::{extract::Query, routing::get, Json, Router};
use barcode_pao::{QR, FORMAT_PNG};
use serde::{Deserialize, Serialize};
use std::collections::HashMap;
#[derive(Deserialize)]
struct BarcodeParams {
code: String,
}
async fn handle_barcode(Query(params): Query<BarcodeParams>) -> Json<HashMap<&'static str, String>> {
let mut qr = QR::new(FORMAT_PNG);
qr.draw(¶ms.code, 300).unwrap();
let b64 = qr.base_2d.base.get_image_base64().unwrap();
Json(HashMap::from([("image", b64)]))
}
#[tokio::main]
async fn main() {
let app = Router::new().route("/api/barcode", get(handle_barcode));
let listener = tokio::net::TcpListener::bind("0.0.0.0:5720").await.unwrap();
axum::serve(listener, app).await.unwrap();
}
色やスタイルのカスタマイズ
use barcode_pao::{JAN13, FORMAT_PNG};
let mut bc = JAN13::new(FORMAT_PNG);
bc.base_1d.show_text = true;
bc.base_1d.base.set_foreground_color(0, 0, 128, 255); // 紺色のバー
bc.base_1d.base.set_background_color(255, 255, 240, 255); // アイボリーの背景
bc.draw("4901234567894", 300, 120)?;
let base64_img = bc.base_1d.base.get_image_base64()?;
動作環境
Rust版 (Pure Rust ライブラリ)
- Rust 1.70 以上 (edition 2021)
- Windows / macOS / Linux
- unsafe不要(Pure Rust実装)
- 外部クレート: image, ab_glyph(自動取得)
WASM版 (C++ WASMエンジン)
- Node.js 16 以上
- Rust 1.70 以上 (edition 2021)
- Windows / macOS / Linux
- C++ WASMエンジンを Node.js 経由で実行
サポート
製品のサポートは情報共有のため で行わせていただいております。
個別にメールinfo@pao.acも多くいただいております。 どちらでも結構です。お問い合わせ・ご意見・ご要望等よろしくお願いいたします。
本製品(Barcode.Rust)の保守・保証につきましては、 保守・保証に関する規定をご覧ください。