Pure-Python Reed Solomon encoder/decoder
Project description
A pure-python Reed Solomon encoder/decoder, based on the wonderful tutorial at wikiversity, written by “Bobmath”.
I only consolidated the code a little and added exceptions and a simple API. To my understanding, the algorithm can correct up to nsym/2 of the errors in the message, where nsym is the number of bytes in the error correction code. The code should work on pretty much any reasonable version of python (2.4-3.2), but I’m only testing on 2.6-3.2.
>>> rs = RSCodec(10) >>> rs.encode([1,2,3,4]) '\x01\x02\x03\x04,\x9d\x1c+=\xf8h\xfa\x98M' >>> rs.encode("hello world") 'hello world\xed%T\xc4\xfd\xfd\x89\xf3\xa8\xaa' >>> rs.decode(b'hello world\xed%T\xc4\xfd\xfd\x89\xf3\xa8\xaa') 'hello world' >>> rs.decode(b'hello worXd\xed%T\xc4\xfd\xfd\x89\xf3\xa8\xaa') # 1 error 'hello world' >>> rs.decode(b'heXlo worXd\xed%T\xc4\xfdX\x89\xf3\xa8\xaa') # 3 errors 'hello world' >>> rs.decode(b'hXXlo worXd\xed%T\xc4\xfdX\x89\xf3\xa8\xaa') # 4 errors 'hello world' >>> rs.decode(b'hXXXo worXd\xed%T\xc4\xfdX\x89\xf3\xa8\xaa') # 5 errors 'hello world' >>> rs.decode(b'hXXXo worXd\xed%T\xc4\xfdXX\xf3\xa8\xaa') # 6 errors - fail Traceback (most recent call last): ... ReedSolomonError: Could not locate error >>> rs = RSCodec(12) >>> rs.encode("hello world") 'hello world?Ay\xb2\xbc\xdc\x01q\xb9\xe3\xe2=' >>> rs.decode(b'hello worXXXXy\xb2XX\x01q\xb9\xe3\xe2=') # 6 errors - ok 'hello world'
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
reedsolo-0.1.zip
(8.1 kB
view details)
reedsolo-0.1.tar.gz
(4.0 kB
view details)
File details
Details for the file reedsolo-0.1.zip
.
File metadata
- Download URL: reedsolo-0.1.zip
- Upload date:
- Size: 8.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | e7b21bf5ae156cb1941f99786d947632731e482a27c15400be9340736c10e1c4 |
|
MD5 | fb1a12b49fe476877c27a85ccd40dbe2 |
|
BLAKE2b-256 | 1266c3680807e02ac92722d91e3c34e27b0411d183014e207a770a2f637e5967 |
File details
Details for the file reedsolo-0.1.tar.gz
.
File metadata
- Download URL: reedsolo-0.1.tar.gz
- Upload date:
- Size: 4.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | c32e9570d996e975cd8b02f4a1044517aba120b8ff7f74dcbf8d106e3a6ddeb2 |
|
MD5 | 12a842aed5a11d1c9712a179cd2e464b |
|
BLAKE2b-256 | c8199572e3e2604111c80b2ae79b4e9ff3967395d9d60fe9d5b5e55a649532f3 |