Rantly
What it is
Rantly is a free, self-hosted Ruby library for generating random test data and running property-based checks. It describes its implementation as a recursive-descent interpreter whose methods return random values such as strings, integers, and floats. Generators include integers, ranges, floats, booleans, choices, weighted frequencies, arrays, strings, and hashes. Documented integrations cover Test::Unit, Minitest, and RSpec. Property checks run 100 times by default; a check argument or the RANTLY_COUNT environment variable can change that count. Optional shrinking can reduce failing values, but the documented search stops at 1,024 operations, does not traverse the complete failure tree, and does not shrink ordinary arrays or hashes. Install Rantly with gem install rantly or add it to a Gemfile. The README requires Ruby 3.2 or newer, while the RubyGems listing for version 3.0.0 specifies Ruby 3.3.0 or newer. The project code uses the MIT License and welcomes contributors.
For and against
For
- Free MIT-licensed Ruby library
- Many built-in random data generators
- Supports Test::Unit, Minitest, and RSpec
- Configurable property-check count
- Optional failing-case shrinking
Against
- Ordinary arrays and hashes are not shrunk
- Shrinking search stops at 1,024 operations
- Ruby version requirements differ by source
- Self-hosted setup required
The verdict
Rantly provides broad random data generation and integrations for Ruby property testing. Its shrinking behavior has documented limits, and users should check the applicable Ruby requirement before installation.
Who it suits
Rantly suits Ruby developers writing property-based tests with Test::Unit, Minitest, or RSpec. It is useful when random generators and optional failing-case shrinking are needed in a self-hosted library.
Plans and prices
Rantly
Ruby library · MIT license
Read 9 Oct 2026 · github.com
On the record
- Data generators
- Its generators include integers, ranges, floats, booleans, choices, weighted frequencies, arrays, strings, and hashes.github.com · read 9 Oct 2026
- Implementation
- Rantly describes itself as a recursive-descent interpreter whose methods return random values such as strings, integers, and floats.github.com · read 9 Oct 2026
- Install
- The README says to install it with `gem install rantly` or add it to a Gemfile.github.com · read 9 Oct 2026
- License
- The project code is published under the MIT License.github.com · read 9 Oct 2026
- Maintainers
- The project README welcomes new contributors.github.com · read 9 Oct 2026
- Package release
- RubyGems lists version 3.0.0 dated October 21, 2024.rubygems.org · read 9 Oct 2026
- Platform requirement
- RubyGems lists the required Ruby version for version 3.0.0 as >= 3.3.0.rubygems.org · read 9 Oct 2026
- Property test count
- Property checks run 100 times by default, with the count configurable by an argument to `check` or the `RANTLY_COUNT` environment variable.github.com · read 9 Oct 2026
- Purpose
- Rantly generates random test data and provides a Test::Unit extension for property-based testing.github.com · read 9 Oct 2026
- Ruby requirement
- The repository README says Rantly requires Ruby 3.2 or higher.github.com · read 9 Oct 2026
- Shrinking
- Optional shrinking can reduce failing values; the documented search is limited to at most 1024 shrinking operations and does not fully traverse the failure tree.github.com · read 9 Oct 2026
- Shrinking limitation
- The README says ordinary arrays and hashes are not shrunk.github.com · read 9 Oct 2026
- Testing integrations
- The README documents extensions for Test::Unit, Minitest, and RSpec.github.com · read 9 Oct 2026