A Ruby library for generating QR codes with multiple rendering formats including SVG, PNG, and ANSI.
RQRCode is a Ruby library that encodes and renders QR codes in multiple formats including SVG, PNG, and ANSI. It provides a simple interface with comprehensive options for size, error correction, and encoding modes. The library solves the problem of programmatically generating scannable QR codes within Ruby applications.
Ruby developers who need to generate QR codes programmatically for web applications, documentation systems, or command-line tools. It's particularly useful for those requiring formatted output in SVG, PNG, or terminal-friendly ANSI formats.
Developers choose RQRCode for its clean Ruby API, multiple rendering formats, and flexible configuration options. Unlike basic QR generators, it offers segmented data encoding, performance benchmarking, and separation of core encoding from rendering logic.
A Ruby library that encodes QR Codes
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Supports SVG, PNG, and ANSI outputs with extensive customization options like colors, borders, and module sizes, as detailed in the render types section.
Allows encoding multiple data segments with different modes (e.g., byte_8bit and alphanumeric) in a single QR code, optimizing data density and compatibility.
Separates core encoding logic into rqrcode_core, enabling developers to build custom renderers without modifying the main library, as emphasized in the philosophy.
Includes comprehensive benchmarks to track and compare the performance of different export formats over time, providing data-driven insights.
The author explicitly states not accepting new renderers, limiting built-in format options and forcing developers to implement custom renderers themselves.
Relies on the ChunkyPNG gem for PNG rendering, adding an extra dependency and potential performance overhead compared to native solutions.
Offers two confusing sizing algorithms for PNGs, where misusing the border_modules option can break the quiet zone, making QR codes unscannable.