reedsolo
Pure-Python Reed Solomon encoder/decoder
What it is and what it does
Reedsolo is a Reed-Solomon error-correction codec that protects data from corruption by adding redundancy symbols. It works with bytes and burst-type errors (common in storage media like hard drives) rather than bit-level noise. The library offers both a pure-Python implementation and an optional Cython-accelerated version for performance-critical use.
You initialize a codec with a number of error-correction symbols, then encode data by appending those symbols, and decode by passing potentially corrupted data back to recover the original. The codec can correct up to half as many errors as you have correction symbols, or twice as many erasures if you know which positions are corrupted. It's designed for data-at-rest scenarios (backup, archival, storage) rather than streaming or network transmission.
Use it for:
- Protect archived files from bitrot by encoding with Reed-Solomon and storing the result on unreliable media
- Add redundancy to backup data so that a few corrupted sectors can be automatically repaired
- Implement erasure coding for distributed storage where some replicas may be lost or damaged
- Verify data integrity without decoding by using the check() method on received or stored messages
- Correct errors in QR codes or other burst-error-prone encoded data formats
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
Encodes and decodes data using Reed-Solomon error correction to detect and repair burst errors, supporting both pure Python and optional Cython-optimized implementations.
Yes. Reedsolo is mature, actively maintained, has no dependencies, and is permissively licensed. Install it if you need to protect stored or transmitted data from burst errors and want a straightforward, well-tested implementation. The pure-Python version is fast enough for most use cases; the optional Cython build is available if you need more speed.
Install
reedsolo on PyPI
pip
pip install reedsolouv
uv add reedsolopoetry
poetry add reedsoloInstalling reedsolo
Before you install
Low friction: pure-Python wheel with no runtime dependencies. Maintenance is active with recent commits; the library is mature (Development Status 6) and has been stable since its 2012 release.
License in practice
Public Domain license with permissive treatment; you may use, modify, and distribute freely without attribution requirements.
Quickstart
pip install reedsolo
from reedsolo import RSCodec
rsc = RSCodec(10) # 10 error correction symbols
encoded = rsc.encode(b'hello world')
decoded_msg, _, _ = rsc.decode(encoded)
print(decoded_msg)
Verify before relying
- Whether the optional Cython build significantly improves performance for typical workloads
- Maximum practical message length before performance degrades
- Real-world bitrot detection rates compared to checksums or hashing
Package facts
| License | Public Domain (permissive) |
| Python support | not specified |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | none |
| Maintenance | actively maintained — 1,305 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 2,814,392/month — #2,879 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: reedsolo-1.7.0-py3-none-any.whl
Tags
More Mathematics packages
NetworkX provides data structures and…
permissive · top 1,000 on PyPI
kiwisolverkiwisolver is a Python binding to a fast C++…
permissive · top 1,000 on PyPI
sympySymPy is a Python library for symbolic…
permissive · top 1,000 on PyPI
contourpyContourPy calculates contours of 2D…
permissive · top 1,000 on PyPI
torchPyTorch provides GPU-accelerated tensor…
permissive · top 1,000 on PyPI
onnxruntimeonnxruntime loads and executes Open Neural…
permissive · top 1,000 on PyPI
mbstrdecoderDecodes multi-byte character strings by…
permissive · top 5,000 on PyPI
rlpEncodes and decodes data using Recursive Length…
permissive · top 5,000 on PyPI
galoisGalois extends NumPy arrays to perform…
permissive · top 15,000 on PyPI
x690Encodes and decodes data using the X.690 BER…
permissive · top 15,000 on PyPI
cobsEncodes and decodes data using Consistent…
permissive · top 15,000 on PyPI
bech32mEncodes and decodes Bech32 and Bech32m strings,…
permissive · top 15,000 on PyPI
eth-rlpProvides RLP (Recursive Length Prefix) encoding…
permissive · top 5,000 on PyPI
scalecodecEncodes and decodes data using the SCALE codec,…
permissive · top 15,000 on PyPI
pyaesPure-Python implementation of AES encryption…
permissive · top 5,000 on PyPI