All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
3.2.0 - 2026-01-08
- Comprehensive benchmarking suite in
benchmark/directory for measuring performance and memory usage across all export formats (SVG, PNG, HTML, ANSI) benchmark_helper.rbproviding shared utilities for IPS, memory, and stack profiling- Rake tasks for running benchmarks individually or all at once
benchmark/README.mdexplaining usage, metrics, and interpretation of resultsAGENTS.mdas a development guide for AI agents
- SVG rendering: Improved by +130% (from 184 i/s to 424 i/s) with 71% memory reduction
- HTML rendering: Now the fastest export format at 1,876 i/s (rendering-only benchmark)
- Memory efficiency: HTML now uses 6x less memory than SVG (previously 22x)
- Updated minimum Ruby version requirement to >= 3.2.0
- Updated GitHub workflow Ruby matrix to test only supported versions (3.2, 3.3, 3.4, 4.0)
- Updated
README.mdwith benchmark documentation and contribution guidelines
3.1.1 - 2025-11-25
- Update required_ruby_version to support >= rather than ~> ready for Ruby 4
3.1.0 - 2025-04-28
- Added support for
offset_xandoffset_yoptions in theas_svgmethod for independent x and y padding around QR codes [#153]
3.0.0 - 2025-04-24
- Drop support for Ruby <3.0 in order to keep up with dev dependencies.
- Breaking Change: The
rqrcode_coregem has been updated to version 2.0.0, which includes breaking changes. Please refer to the rqrcode_core changelog
2.2.0 - 2023-06-17
- Allow all ChunkyPNG::Color options to be passed into
fillandcoloronas_png[#135] - Add 3.2 to CI @petergoldstein [#133]
- Development dependency upgrades. Minimum Ruby change [#130]
- README updates
2.1.2 - 2022-07-26
- Remove setup script as it just calls bundle install [#128]
- Change inline styles to the fill property to allow for strict CSP style-src directive [#127]
2.1.1 - 2022-02-11
- Added in a handler for when color arguments are passed in as symbols e.g
color: :yellow. This also allows for the use of the:currentColorkeyword. [#122]
2.1.0 - 2021-08-26
- Sync Gemfile.lock with
rqrcode_core.1.2.0Adds Multimode Support
- Add badge for Standard linting
- Corrected method name referred to in CHANGELOG.
2.0.0 - 2021-05-06
- A new
use_path:option on.as_svg. This uses a<path>node to greatly reduce the final SVG size. [#108] - A new
viewbox:option on.as_svg. Replaces thesvg.widthandsvg.heightattribute withsvg.viewBoxto allow CSS scaling. [#112] - A new
svg_attributes:option on.as_svg. Allows you to pass in custom SVG attributes to be used in the<svg>tag. [#113]
- README updated
- Rakefile cleaned up. You can now just run
rakewhich will run specs and fix linting usingstandardrb - Small documentation clarification @smnscp
- Bump
rqrcode_coreto~> 1.0
- The dependency
rqrcode_core-1.0.0has a tiny breaking change to theto_spublic method. https://github.com/whomwah/rqrcode_core/blob/main/CHANGELOG.md#breaking-changes
1.2.0 - 2020-12-26
- README updated
- bump dependencies
- fix
required_ruby_versionfor Ruby 3 support