パオ・アット・オフィス、バーコード製品群から 新規7製品を一斉リリース  WebAssembly版「Barcode.wasm」を核に Python版・Flutter版に続き、 Go・Rust・Ruby・Swift版も同時デビュー

──1つのC++エンジンが、7つの言語の扉を開く──

有限会社パオ・アット・オフィス(本社:千葉県習志野市、代表取締役:村井 誠、以下 Pao@Office)は、C++で開発した高性能バーコードエンジンを基盤とする新規3製品「Barcode.wasm」(税込22,000円)、「Barcode.Python」(税込11,000円~22,000円)、「Barcode.Flutter」(税込11,000円~22,000円)を2026年2月25日(水)にリリースしました。あわせて、既存製品「Barcode.jar」のバージョンアップも実施しています。

Pao@Officeの勢いが止まらない。
音声入力Androidアプリ VoiceToPCで世間を沸かせたかと思えば、この確定申告シーズンには定番のショッピングサイト集計アプリ KaimonoToExcelも破竹の勢いで利用者を伸ばしている。そこへきて今度は、Pao@Officeの根幹を成すバーコード製品群から、一気に7つの新製品が飛び出してきた。

しかもこの7つ、ただの横並びではない。1つの技術的決断が、残り6つの扉を開けている。

── WebAssemblyという「静かな革命」── Barcode.wasm ──

最初に紹介すべきはBarcode.wasmだ。
C++で書かれた高性能バーコードエンジンを、WebAssembly(WASM)にコンパイルした製品である。ブラウザの中で、サーバー通信なしに、1次元・2次元あわせて18種のバーコードを生成する。JavaScript / TypeScriptから数行のコードを書くだけで、PNGでもSVGでも、目の前にバーコードが現れる。npmパッケージも公開済みで、npm install @pao-at-office/barcode-wasm の一行から始められる。

ここまでなら「ブラウザ向けのバーコードライブラリ」で話は終わる。

だが、この製品の本当の凄みは、その先にある。

WebAssemblyは、もともとブラウザで重い処理をネイティブ並みの速度で実行するために生まれた技術だ。しかし今、WASMの実行環境はブラウザの外にまで広がっている。Wasmer、Wasmtime、Node.js──WASMバイナリを動かせる場所は、もはやブラウザだけではない。つまりBarcode.wasmの心臓部である.wasmファイルは、バインディングさえ書き換えれば、どの言語からでも呼び出せる汎用エンジンになる。

これが、今回の同時リリースの仕掛けだ。

Barcode.wasmは単体のブラウザ向け製品であると同時に、Python版とFlutter版の「WASM版エディション」を支える共通基盤でもある。1つのC++コアから生まれた1つのWASMバイナリが、バインディングの差し替えだけで、JavaScript・Python・Dartの3つの言語に渡って動く。コードベースは1つ、品質も1つ、速度もほぼ変わらない。

開発者なら、この構造のエレガントさにピンとくるはずだ。

構成図 - C++コアからWASM経由で各言語に展開するアーキテクチャ図

── Barcode.wasmが開けた最初の扉 ── Barcode.Python ──

Pythonでバーコードライブラリを作るとき、普通に思いつく選択肢は2つある。pybind11でC++を直接バインドする方法と、Pure Pythonで書く方法だ。Pao@Officeはそのどちらもやった。そしてもう1つ、WASM版を加えた。

なぜか。

pybind11によるNative版は速い。だがユーザーの環境にC++コンパイラやビルド済みバイナリが必要になる。OSやPythonバージョンの組み合わせごとにwheelを用意しなければならない。一方、WASM版は違う。Node.jsかWASMランタイムさえあれば動く。LinuxでもWindowsでもmacOSでも、Pythonのバージョンが何であっても、同じ.wasmがそのまま動く。速度差はベンチマークで騒ぐほどもない。環境構築の手間がゼロになるという利点の前では、わずかなオーバーヘッドなど取るに足らない。

pip install一発。import先を変えるだけ。Native版とWASM版は同一APIで設計されているから、開発時はNativeで速度を稼ぎ、デプロイ先の都合でWASMに切り替える、ということもできる。

さらに注目すべきは、同時リリースされるPure Python版の存在だ。こちらはC++にもWASMにも依存しない、100% Pythonで書かれたバーコードエンジンである。PythonのPDF帳票ライブラリとして広く知られるReportLabのキャンバスにバーコードを直接描画できるほか、画像処理の定番 Pillowとも連携し、PNG・JPEG画像としてのバーコード出力にも対応する。帳票にバーコードを埋め込みたい──Python開発者にとって最も現実的なユースケースに、真正面から応えるエディションだ。

Pure Python版はソースコード付きでの提供となり、開発者は自由にカスタマイズが可能。ReportLabを使って納品書PDFにバーコードを組み込む過程が、そのまま動くサンプルコードとして同梱されている。なお、ライブラリ本体には独自の暗号化(paozip)が施されており、ソースコード付き製品でありながら不正な再配布を防ぐ仕組みが組み込まれている。

サーバー上で即座に試せるデモサイトも公開予定。ダウンロードしてソースコードを読み込むもよし、ブラウザで挙動を確かめるもよし。入口は何通りでも用意してある。

Barcode.Python デモサイト PDF帳票出力例

── Barcode.wasmが開けたもう1つの扉 ── Barcode.Flutter ──

モバイル・デスクトップ・WebをワンコードベースでカバーするFlutter。業務アプリの開発現場で採用が加速しているこのフレームワークに、ついにプロフェッショナル品質のバーコードライブラリが登場した。

Flutter版にも、同じ思想が貫かれている。

C++をdart:ffiでバインドしたPlugin版は、Android・iOS・Windows・macOS・Linuxのネイティブ環境で高速に動作する。だが、ここで1つ現実的な問題がある。dart:ffiはネイティブバイナリに依存する。プラットフォームごとに.soや.dylibや.dllを用意し、ビルド環境を整えなければならない。特にサーバーサイドDartで使おうとすると、その環境構築は率直に言って面倒だ。

ここでもWASMが効く。

WASM版エディションなら、ネイティブバイナリへの依存がない。DartからWASMランタイム経由でBarcode.wasmを呼び出すだけだ。バインディングは各言語用に書き換えてあるが、動いているWASMバイナリの中身はBarcode.wasmそのもの。サーバーでもクライアントでも、同じように動く。

さらにPure Dart版もある。ネイティブ依存を一切持たない100% Dart実装だ。FlutterのCustomPainterを通じてCanvasにバーコードを直接描画できるのはもちろん、DartのPDF生成ライブラリとして定評のあるpdfパッケージと連携し、PDF帳票へのバーコード埋め込みにも対応する。SVG出力も標準サポート。Webを含む全6プラットフォームで動作する。Pure Dart版もソースコード付属で、開発者が自由に手を入れられる設計だ。

こちらもサンプルプログラムとデモサイトの両面で、導入から実装までを手厚くサポートする。

Barcode.Flutter デモサイトでのバーコード表示例

── 1つのエンジン、3つの言語、その先へ ──

ここで全体像を俯瞰してみよう。

Pao@Officeは24年前に.NET向けバーコードライブラリを世に送り出し、その後Java、PHPと各言語で個別に実装を重ねてきた。それぞれの言語が持つグラフィックスキャンバスに直接描画する──そのアプローチが唯一の正解だった時代もある。実際、.NETのGDI+でプリンタのDPIに合わせてドット単位で描画する精度は、今でも他の追随を許さない。

だが、多くの言語・フレームワークでは、描画は結局どこかでスケーリングされる。ならば最初からC++で高品質な画像を生成し、それを各言語に渡す方が合理的ではないか──24年の試行錯誤の末に到達した、その結論がC++コアの開発だった。そしてそのC++コアをWASMにコンパイルしたことで、「各言語で個別に実装する」という呪縛から完全に解放された。

C++コアエンジンから生まれたBarcode.wasmが、そこからJavaScript / TypeScript(ブラウザ、Node.js)へ、Python WASM版(pip install、どこでも動く)へ、Dart WASM版(Flutter Web、サーバーサイドDart)へと展開していく。バインディングを差し替えるだけで、新しい言語への対応が開ける。このアーキテクチャは、今後の言語対応をも見据えた設計だ。

── そして扉は、まだ続く ── Go・Rust・Ruby・Swift ──

「今後の言語対応をも見据えた設計だ」──そう書いた。その「今後」が、もうやって来た。

Barcode.wasmという共通基盤の真価は、まさにここにある。バインディングを書き換えれば、新しい言語の扉が開く。そのアーキテクチャの正しさを証明するかのように、Go・Rust・Ruby・Swiftの4言語版が、同じタイミングでデビューを飾る。

Barcode.Goは、go get一発で導入できるPure Go版と、C++ WASMエンジンをNode.js経由で呼び出すWASM版の2パッケージ構成。net/httpと組み合わせたREST APIサーバーのサンプルが付属し、マイクロサービス全盛の現場に真正面から応える。CGo不要・外部依存なしのPure Go実装は、どの環境でもビルドが通る安心感がある。

Barcode.Rustは、cargo addで導入できるPure Rust版とWASM版の2パッケージ。unsafeコードゼロのPure Rust実装で、axumを使ったREST APIサーバーのサンプルも付属する。Rustを選ぶ開発者が最も気にする「安全性」を、バーコード生成においても妥協なく貫いている。

Barcode.Rubyは、Native版(C++ FFI)・WASM版・Pure Ruby版の3パッケージ。gem installで導入でき、WASM版はNode.jsさえあればmacOS・Linuxでも動く。Pure Ruby版はchunky_pngを使ったソースコード付き提供で、Railsアプリへの組み込みも自在だ。

Barcode.Swiftは、Pure Swift版とWASM版の2パッケージ。Swift Package Managerに1行追加するだけで導入でき、Vaporと組み合わせればサーバーサイドSwiftでのREST API構築も即座に実現する。

4言語すべてに共通するのは、PNG・SVG出力対応、全18種バーコード対応、REST APIサンプル付属というPao@Officeの標準仕様だ。言語は変わっても、品質は変わらない。

── 20種のバーコード、すべてのエディションで ──

Python版・Flutter版とも、対応バーコードは20種。QRコード、DataMatrix、PDF417の2次元バーコードから、JAN・Code128・GS1-128・GS1 DataBar・郵便カスタマバーコード・標準料金代理収納用コンビニバーコードまで、業務で必要とされるバーコードを網羅している。WASM版もNative版もPure言語版も、生成されるバーコードの品質は同一だ。RJSバーコード検査機Model L2000による検査で裏打ちされた精度が、どのエディションにも等しく受け継がれている。

なお、全製品のデモサイトには「2ステップ版」と「All-in-One版」の2種類が用意されている。たった2ステップのコードでバーコードが生成される体験から入門し、全バーコード種類・全機能を試せるAll-in-Oneで全貌を把握する。この2段構えが、すべての製品に共通している。

2ステップ版デモとAll-in-One版デモの画面スクリーンショット

── 既存製品も止まらない ──

加えて、既存製品の Java版(Barcode.jar)もこのタイミングでバージョンアップを実施。新機能の追加と安定性の向上を図っている。

Pao@Officeのバーコード製品群は、ExcelやAccessで利用できるBarcode.Officeをはじめ、.NET・Java・PHP・WebAssembly・Python・Flutterに続き、今回さらにGo・Rust・Ruby・Swiftの4言語を加え、あらゆる開発プラットフォームを完全にカバーする体制が整った。

24年間、1つのバーコードを追いかけ続けたPao@Officeというメーカーが出した答えが、これだ。

リリースした製品は次の通り。

・WebAssemblyバーコード生成ライブラリ「Barcode.wasm」(税込22,000円)
・Pythonバーコード生成ライブラリ「Barcode.Python」(税込11,000円~22,000円)
・Flutter/Dartバーコード生成ライブラリ「Barcode.Flutter」(税込11,000円~22,000円)
・Goバーコード生成ライブラリ「Barcode.Go」(税込11,000円~22,000円)
・Rustバーコード生成ライブラリ「Barcode.Rust」(税込11,000円~22,000円)
・Rubyバーコード生成ライブラリ「Barcode.Ruby」(税込11,000円~22,000円)
・Swiftバーコード生成ライブラリ「Barcode.Swift」(税込11,000円~22,000円)
・Javaバーコード生成ライブラリ「Barcode.jar」バージョンアップ(税込22,000円)

◆製品サイト
Pao@Office 企業サイト          : https://www.pao.ac/
Barcode.wasm (JavaScript/TypeScript)  : https://www.pao.ac/barcode.wasm/
Barcode.Python (Python開発者向け)    : https://www.pao.ac/barcode.python/
Barcode.Flutter (Flutter/Dart開発者向け): https://www.pao.ac/barcode.flutter/
Barcode.Go (Go開発者向け)        : https://www.pao.ac/barcode.go/
Barcode.Rust (Rust開発者向け)      : https://www.pao.ac/barcode.rust/
Barcode.Ruby (Ruby開発者向け)      : https://www.pao.ac/barcode.ruby/
Barcode.Swift (Swift開発者向け)     : https://www.pao.ac/barcode.swift/
Barcode.jar (Java開発者向け)      : https://www.pao.ac/barcode.jar/

各製品サイトから、オンラインデモ・試用版ダウンロード・マニュアル・サンプルコードをご利用いただけます。試用版にはバーコードに「SAMPLE」の透かしが入ります。製品ライセンスを購入すると解除されます。

◆製品価格
Barcode.wasm:1開発ライセンス(税込22,000円)

Barcode.Python:
WASM版(税込11,000円) / Native版(税込11,000円) / Pure Python版(税込22,000円・ソースコード付き)

Barcode.Flutter:
WASM版(税込11,000円) / Plugin版(税込11,000円) / Pure Dart版(税込22,000円・ソースコード付き)

Barcode.Go:
Pure Go版(税込22,000円) / WASM版(税込11,000円)

Barcode.Rust:
Pure Rust版(税込22,000円) / WASM版(税込11,000円)

Barcode.Ruby:
Native版/WASM版(税込11,000円) / Pure Ruby版(税込22,000円・ソースコード付き)

Barcode.Swift:
Pure Swift版(税込22,000円) / WASM版(税込11,000円)

Barcode.jar:1開発ライセンス(税込22,000円)

※全製品ランタイムライセンスフリー。運用環境ではライセンス無償でご利用いただけます。

◆Pao@Officeバーコード製品の特長

  1. ランタイムライセンスフリー(無償)
    開発ライセンスのみ販売。運用時はサーバー・クライアント問わずライセンス無償です。
  1. 出力バーコードの読み取り精度が高い
    RJSレーザーインスペクター Model L2000で検査済み。プリンタによる線のにじみにはドット単位で線幅を微調整可能です。
  1. バーコード生成が容易で使いやすい
    全製品「2ステップ」のコードでバーコード出力が可能。豊富なサンプルコードが付属しています。

◆Pao@Officeのバーコード製品について
Pao@Officeは、2002年10月より.NET用バーコード作成ライブラリ、2006年7月よりJava用バーコード作成ライブラリ、2010年11月よりExcelやWord用のバーコードツール、2011年3月よりPHP用バーコード作成ライブラリを販売しており、開発者向けバーコードツールとして、国内No.1のシェアを持ち続けております。今回のWebAssembly・Python・Flutter・Go・Rust・Ruby・Swift 7製品の同時リリースにより、あらゆる開発プラットフォームを完全にカバーする体制が整いました。

会社概要

社名   : 有限会社パオ・アット・オフィス(Pao@Office)
設立日  : 2001年10月
資本金  : 1,000万円
代表者名 : 代表取締役 村井 誠
企業サイト: https://www.pao.ac/
Facebook : https://www.facebook.com/pao.at.office
社員数  : 10名
事業所  : 本社 (千葉県習志野市谷津3-29-2-401)
       東京事務所(東京都港区新橋1-8-3 住友新橋ビル7F)
事業内容 : 1.ソフトウエアの設計・製造・販売
       2.システム運用サポート
       3.ソフトウエア開発支援ツールの開発、および販売

※「QRコード」は株式会社デンソーウェーブの登録商標です。

ニュースのシェア:
有限会社パオ・アット・オフィス
有限会社パオ・アット・オフィス
NC動画生成サービス
Copyright 2006- SOCIALWIRE CO.,LTD. All rights reserved.