Skip to content

ReedSolomon pure python library v1.4.0

Latest
Compare
Choose a tag to compare
@lrq3000 lrq3000 released this 06 Jun 13:55

This library was optimized and simplified to be very easy to use for anybody.

To get the full list of changes since last release (v0.3), see tomerfiliba-org#6, tomerfiliba-org#8 and tomerfiliba-org#11.

Summarized changelog:

  • full support of errors-and-erasures decoding (it already worked before using Forney syndrome, but now it's not even necessary, and I worked the edge cases so that it always decodes correctly, and I also added the management of erasures in the API).
  • support universal parametrization (we can now specify the parameters of the GF field and the FCR so that this lib is now compatible with almost any other RS codec)
  • fast encoding/decoding (with PyPy 2.5 or Cython, the latter being about 2x faster than PyPy on pure-python). You can expect an encoding speed of > 3 MB/s.
  • Added very strict unit tests, one being called "CrossValidation" which tests lots of different combinations of GF fields, RS parameters and errors/erasures to check that they all decode correctly (this is a good sanity check that the RS codec works correctly and is universal, and it's not slow to compute).
  • Added lots of comments!
  • updated the packaging script so that it works easily with Twine.
  • compatibility with Python 3
  • Automated support for galois fields different of 2^8 (256).
  • Automated support of strings longer than galois field size (by using chunking transparently in RSCodec.encode() and RSCodec.decode()).
  • RSCodec has been refactored and a check() method was added.
  • RSCodec supports multiple instances with different parameters and fields.
  • More unit tests (coverage ~96% !).
  • Faster Travis builds by using caching.
  • Since version version 1.3.0: updated setup.py from Beta to Stable.