BarBridge: a Rust core for GS1 Sunrise 2027 barcode pairs, callable from 7 languages over a C ABI
Description and use
BarBridge is a Rust core that generates GS1 1D+2D barcode pairs for the GS1 Sunrise 2027 transition. It offers a minimal C ABI and ready‑to‑run samples for 7 languages across 6 platforms, simplifying integration into POS, ERP, and printing systems.
Problem
Retailers and manufacturers must print both 1D and 2D GS1 barcodes together during the GS1 Sunrise 2027 transition, requiring correct sizing, layout, and compliance.
Outcome
BarBridge delivers ready‑to‑run samples in 7 languages across 6 platform targets, enabling any POS, ERP, or label‑printing tool to generate GS1‑compliant 1D+2D barcode pairs without vendor‑specific math.
Workflow
- Build the Rust core implementing GS1 pairing logic
- Expose a minimal C ABI with functions barbridge_render_png, barbridge_bytes_free, barbridge_last_error
- Create a shared request.json with sample GS1 data
- Generate prebuilt binaries for Windows, macOS, Linux (x64/ARM64)
- Write language‑specific samples (Python ctypes, C/C++ header, C# P/Invoke, VB.NET P/Invoke, Java JNA, PHP FFI, Node.js koffi) that read the request, call barbridge_render_png, write PNG, and free buffer
- Publish the library and samples on GitHub with dual MIT/Apache‑2.0 license
Evidence
In 2027, GS1 is moving retail POS barcode practice away from 1D-only symbols toward pairing them with 2D symbols (GS1 QR Code / GS1 DataMatrix).
BarBridge didn’t start as its own project. The first version of this GS1 pairing logic was built as an optional feature inside ACR, our receipt/label rendering engine...
The exposed surface is intentionally small: barbridge_render_png(request_json, &out_data, &out_len) renders a GS1 1D+2D pair to PNG bytes in memory
- Record date: 2026-11-02T02:29:07.330Z