skillfed

rstr

Generate random strings in Python

rstr v3.2.2 3.3M downloads/30d#2,669 on PyPI98
Permissive license AGING released

What it is and what it does

rstr is a lightweight utility for generating random strings in Python, useful for test data, fuzzing, and validation scenarios. It offers both low-level control—specifying custom alphabets and length ranges—and convenience methods for common character sets like digits, letters, URLs, and domain names. It can also generate strings matching regular expression patterns via its xeger() method.

The package has no external dependencies and runs on Python 3.7 through 3.11. However, it uses Python's standard random module by default, which is not cryptographically secure; for password generation or other security-sensitive applications, you must explicitly configure it to use SystemRandom(). Maintenance is aging, with the last release in October 2023 and no recent commits, though the codebase remains stable and production-ready.

Use it for:

  • Generate test fixtures and dummy data for unit tests without external dependencies.
  • Create fuzz-testing payloads with controlled character sets to probe input validation.
  • Build random email addresses, URLs, or domain names matching specific format constraints.
  • Generate random strings matching a regex pattern for testing regex-based parsers or validators.
  • Produce test data for postal addresses or other domain-specific formats with predefined alphabets.

Worth the install?

AI-flagged interpretation of the facts on this page — verify before relying

Generates random strings from custom alphabets, predefined character sets, or regular expressions for testing and dummy data creation.

Yes, if you need lightweight random string generation for testing or dummy data without external dependencies. The aging maintenance status is not a blocker for stable use, but verify compatibility with your Python version. Avoid for cryptographic applications unless you explicitly configure SystemRandom().

Install

rstr on PyPI

pip

pip install rstr

uv

uv add rstr

poetry

poetry add rstr

Installing rstr

Before you install

Low friction: pure Python with no external dependencies, distributed as a wheel. Maintenance is aging—last release was 2023-10-11 and the repository shows no recent activity, though it remains archived=false and supports current Python versions.

License in practice

Permissive BSD license places no restrictions on use, modification, or distribution in commercial or proprietary contexts.

Quickstart

pip install rstr

import rstr
# Generate random string from custom alphabet
rstr.rstr('ABC', 5, 10)
# Generate from predefined set
rstr.digits()
# Generate from regex pattern
rstr.xeger(r'[A-Z]\d[A-Z]')

For cryptographic use (passwords, tokens), you must instantiate with SystemRandom(); default random module is not cryptographically secure.

Verify before relying

  • Whether xeger() supports all modern Python regex features or has known limitations beyond those mentioned.
  • Likelihood of future updates for Python versions beyond 3.11.

Package facts

License not declared (permissive)
Python support supports the current Python release (>=3.7)
Install friction low — pure-Python wheel
Runtime dependencies none
Maintenance aging — 1,038 days since the last release
Last repo commit
First released
Downloads 3,294,521/month — #2,669 on PyPI (30-day window, as of 2026-08-14)
Known vulnerabilities none known (OSV.dev, checked 2026-08-14)

Evidence: rstr-3.2.2-py3-none-any.whl

Keywords: random string, reverse regex, reverse regular expression, testing, fuzz testing

Development Status :: 5 - Production/StableIntended Audience :: DevelopersLicense :: OSI Approved :: BSD LicenseOperating System :: OS IndependentProgramming Language :: Python :: 3.10Programming Language :: Python :: 3.11Programming Language :: Python :: 3.7Programming Language :: Python :: 3.8Programming Language :: Python :: 3.9Topic :: Software Development :: Testing

Tags

random string generatorfuzz testing datadummy data generationregex to random stringtest data fixturesrandom character sequences
test-data-generationfuzz-testing

More Testing packages