123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159 |
- Metadata-Version: 2.1
- Name: crcmod
- Version: 1.7
- Summary: CRC Generator
- Home-page: http://crcmod.sourceforge.net/
- Author: Ray Buvel
- Author-email: rlbuvel@gmail.com
- License: MIT
- Download-URL: http://sourceforge.net/projects/crcmod
- Platform: UNKNOWN
- Classifier: Development Status :: 5 - Production/Stable
- Classifier: Intended Audience :: Developers
- Classifier: Intended Audience :: Education
- Classifier: Intended Audience :: End Users/Desktop
- Classifier: Intended Audience :: Information Technology
- Classifier: Intended Audience :: Science/Research
- Classifier: License :: OSI Approved :: MIT License
- Classifier: Operating System :: OS Independent
- Classifier: Programming Language :: C
- Classifier: Programming Language :: C++
- Classifier: Programming Language :: Python
- Classifier: Programming Language :: Python :: 2
- Classifier: Programming Language :: Python :: 2.4
- Classifier: Programming Language :: Python :: 2.5
- Classifier: Programming Language :: Python :: 2.6
- Classifier: Programming Language :: Python :: 2.7
- Classifier: Programming Language :: Python :: 3
- Classifier: Programming Language :: Python :: 3.1
- Classifier: Topic :: Communications
- Classifier: Topic :: Scientific/Engineering :: Interface Engine/Protocol Translator
- Classifier: Topic :: Scientific/Engineering :: Mathematics
- Classifier: Topic :: Utilities
- ===========================
- crcmod for Calculating CRCs
- ===========================
- The software in this package is a Python module for generating objects that
- compute the Cyclic Redundancy Check (CRC). There is no attempt in this package
- to explain how the CRC works. There are a number of resources on the web that
- give a good explanation of the algorithms. Just do a Google search for "crc
- calculation" and browse till you find what you need. Another resource can be
- found in chapter 20 of the book "Numerical Recipes in C" by Press et. al.
- This package allows the use of any 8, 16, 24, 32, or 64 bit CRC. You can
- generate a Python function for the selected polynomial or an instance of the
- Crc class which provides the same interface as the ``md5`` and ``sha`` modules
- from the Python standard library. A ``Crc`` class instance can also generate
- C/C++ source code that can be used in another application.
- ----------
- Guidelines
- ----------
- Documentation is available from the doc strings. It is up to you to decide
- what polynomials to use in your application. If someone has not specified the
- polynomials to use, you will need to do some research to find one suitable for
- your application. Examples are available in the unit test script ``test.py``.
- You may also use the ``predefined`` module to select one of the standard
- polynomials.
- If you need to generate code for another language, I suggest you subclass the
- ``Crc`` class and replace the method ``generateCode``. Use ``generateCode`` as
- a model for the new version.
- ------------
- Dependencies
- ------------
- Python Version
- ^^^^^^^^^^^^^^
- The package has separate code to support the 2.x and 3.x Python series.
- For the 2.x versions of Python, these versions have been tested:
- * 2.4
- * 2.5
- * 2.6
- * 2.7
- It may still work on earlier versions of Python 2.x, but these have not been
- recently tested.
- For the 3.x versions of Python, these versions have been tested:
- * 3.1
- Building C extension
- ^^^^^^^^^^^^^^^^^^^^
- To build the C extension, the appropriate compiler tools for your platform must
- be installed. Refer to the Python documentation for building C extensions for
- details.
- ------------
- Installation
- ------------
- The crcmod package is installed using ``distutils``.
- Run the following command::
- python setup.py install
- If the extension module builds, it will be installed. Otherwise, the
- installation will include the pure Python version. This will run significantly
- slower than the extension module but will allow the package to be used.
- For Windows users who want to use the mingw32 compiler, run this command::
- python setup.py build --compiler=mingw32 install
- For Python 3.x, the install process is the same but you need to use the 3.x
- interpreter.
- ------------
- Unit Testing
- ------------
- The ``crcmod`` package has a module ``crcmod.test``, which contains unit
- tests for both ``crcmod`` and ``crcmod.predefined``.
- When you first install ``crcmod``, you should run the unit tests to make sure
- everything is installed properly. The test script performs a number of tests
- including a comparison to the direct method which uses a class implementing
- polynomials over the integers mod 2.
- To run the unit tests on Python >=2.5::
- python -m crcmod.test
- Alternatively, in the ``test`` directory run::
- python test_crcmod.py
- ---------------
- Code Generation
- ---------------
- The crcmod package is capable of generating C functions that can be compiled
- with a C or C++ compiler. In the test directory, there is an examples.py
- script that demonstrates how to use the code generator. The result of this is
- written out to the file ``examples.c``. The generated code was checked to make
- sure it compiles with the GCC compiler.
- -------
- License
- -------
- The ``crcmod`` package is released under the MIT license. See the ``LICENSE``
- file for details.
- ------------
- Contributors
- ------------
- Craig McQueen
|