How I built DotPlus – a cross-platform QR & barcode generator in Rust (with GUI, CLI, Docker, and PNG export)



This content originally appeared on DEV Community and was authored by nigdanil

Hello everyone 👋

I’m Danil, and I’d love to share the story behind DotPlus — a fully offline QR and barcode generator written in Rust. It combines both GUI and CLI, supports PDF export, Docker, CSV batch generation, and works seamlessly across Windows and Linux.

🧩 What is DotPlus?

DotPlus is a free tool for generating QR codes and barcodes (EAN-13, Code 39, etc.).

It supports:

  • ✅ GUI (built with egui)
  • 🛠 CLI for automation / scripts
  • 📄 PDF & PNG export (with A4 layout)
  • 🐧 Linux + Windows binaries
  • 📦 Docker support for headless environments
  • 🖼 Logo overlays, Cyrillic input, and CSV batch processing
  • 🔒 Fully offline — no internet, telemetry or accounts

🔧 Why Rust?

Rust was a natural fit for:

  • Cross-platform compilation
  • Performance with image generation
  • A rich ecosystem (qrcode, barcoders, imageproc, etc.)
  • Safety — especially when handling files and assets

The GUI is built using egui, and CLI uses native std::env::args.

📁 How it works

The core logic (CSV → image generation → export) is shared between CLI and GUI. This helps keep things DRY and consistent.

  • GUI is built with eframe, includes live preview and layout editor
  • CLI supports flexible flags like:
  dotplus --mode qr --csv data.csv --logo logo.png --output out/ --qr-size 200


`

📦 Releasing on Windows, Linux, and Docker

DotPlus uses GitHub Actions for CI and automatic packaging:

  • .exe, .deb, .rpm binaries
  • Docker images (for headless batch jobs)
  • Flatpak/Snap coming soon

Releases:
👉 https://github.com/nigdanil/dotplus/releases

🌍 Use cases

DotPlus is actively used for:

  • ID cards and staff badges
  • Library and archive cataloging
  • Logistics, inventory, asset tracking
  • Document labeling in healthcare and schools
  • Government signage and event navigation

It’s free for both personal and public sector use (under a custom license).

📷 Demo and screenshots

Visit the live site for videos, screenshots and how-tos:
👉 https://nigdanil.github.io/dotplus

screenshot

🙌 What’s next?

  • Translation & localization (multi-country support)
  • Flatpak / Snap packaging
  • Community templates (label layouts, QR formats)

💬 Feedback welcome

If you’re into:

  • CLI tools
  • Offline utilities
  • Rust GUI
  • Batch automation

I’d love to hear your thoughts, suggestions or ideas! PRs are welcome too 🙂

🔗 GitHub: https://github.com/nigdanil/dotplus
🌍 Live: https://nigdanil.github.io/dotplus

Thanks for reading and happy hacking!

— Danil (@nigdanil)


This content originally appeared on DEV Community and was authored by nigdanil