DEV Community

nigdanil
nigdanil

Posted on

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

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
Enter fullscreen mode Exit fullscreen mode


`


πŸ“¦ 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)

Top comments (0)