commons-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Emmanuel Bourg (JIRA)" <>
Subject [jira] [Commented] (CODEC-171) Add support for CRC32-C
Date Thu, 30 May 2013 15:52:20 GMT


Emmanuel Bourg commented on CODEC-171:

According to Wikipedia:

{quote}Numerous varieties of cyclic redundancy checks have been incorporated into technical
standards. By no means does one algorithm, or one of each degree, suit every purpose; Koopman
and Chakravarty recommend selecting a polynomial according to the application requirements
and the expected distribution of message lengths.[7] The number of distinct CRCs in use has
confused developers, a situation which authors have sought to address.[5] There are three
polynomials reported for CRC-12,[7] sixteen conflicting definitions of CRC-16, and six of

The polynomials commonly applied are not the most efficient ones possible. Between 1993 and
2004, Koopman, Castagnoli and others surveyed the space of polynomials up to 16 bits,[7] and
of 24 and 32 bits,[9][10] finding examples that have much better performance (in terms of
Hamming distance for a given message size) than the polynomials of earlier protocols, and
publishing the best of these with the aim of improving the error detection capacity of future
standards.[10] In particular, iSCSI and SCTP have adopted one of the findings of this research,
the CRC-32C (Castagnoli) polynomial.{quote}

I didn't know there were several flavors of CRC32. CRC32C is simply a variation producing
different results.

> Add support for CRC32-C
> -----------------------
>                 Key: CODEC-171
>                 URL:
>             Project: Commons Codec
>          Issue Type: Improvement
>            Reporter: Brett Okken
> Add a java CRC32-C implementation.
> There is a PureJavaCrc32C implementation that is part of apache-hadoop-common. It would
be great to have that more easily consummable with far fewer transitive dependencies.

This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see:

View raw message