Barcode.Rustは、Rustでバーコードを生成するライブラリです。
REST APIやバッチ処理に最適なRust版(Pure Rust ライブラリ)に加え、
C++ バーコードエンジンを Node.js 経由で利用するWASM版を提供しています。

最新リリース情報

Barcode.Rust 1.0.0

2026年2月 リリース

Rustによるバーコード生成ライブラリの初回リリース。
Pure Rust版(REST API対応)とWASM版(C++ WASMエンジン)の2パッケージを提供。
PNG / JPEG / SVG出力に対応。全18種バーコードをサポート。

2つのパッケージ

用途や環境に応じて、最適なパッケージをお選びください。

WASM版(C++ WASMエンジン)

C++ バーコードエンジン + Node.js

C++ バーコードエンジンを 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次元バーコード
  • Code39 / Code93 / Code128
  • GS1-128 (EAN-128)
  • NW-7 (Codabar)
  • ITF
  • Matrix 2of5 / NEC 2of5
  • JAN-8 / JAN-13 (EAN-8 / EAN-13)
  • UPC-A / UPC-E
  • GS1 DataBar (標準型/限定型/拡張型)
  • 郵便カスタマバーコード
2次元バーコード
  • QRコード
  • DataMatrix (GS1対応)
  • PDF417

製品価格・ライセンス

価格(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版)

Native FFI版(C++ DLL直接呼び出し)
cargo add barcode-pao → crates.io
WASM版(C++ WASMエンジン)
cargo add barcode-pao-wasm → crates.io

GitHub サンプルコード

Pure Rust版 サンプル
C++版 サンプル(FFI / WASM)

マニュアル

Barcode.Rust マニュアル(Pure Rust版)

Rust版のAPIリファレンス、インストール方法、サンプルコードを記載。

→ PDF→ HTML
Barcode.Rust マニュアル(C++ WASM版)

C++ WASMエンジンを利用するRust版のAPIリファレンス。

→ PDF→ HTML

サンプルコード

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(&params.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)の保守・保証につきましては、 保守・保証に関する規定をご覧ください。