Je recherche une implémentation de CRC32 en C ou C++ qui soit explicitement licenciée comme étant gratuite ou du domaine public. L'implémentation aquí semble sympa, mais la seule chose qu'il dit à propos de la licence est "code source", ce qui n'est pas suffisant. Je préférerais une licence non LGPL pour ne pas avoir à m'amuser avec une DLL (mon application est fermée). J'ai vu l'implémentation d'adler32 en zlib, mais je vérifie de petits morceaux de données, ce pour quoi adler n'est pas bon.
Pour l'entrée [01,23,45,67,89,AB,CD,EF,01,23]
cette mise en œuvre me donne 0x27809EA7
plutôt que le 0x3BF5092E
que j'obtiens des calculateurs en ligne, de boost::crc et du moteur de script de mIRC. A première vue, je ne sais pas vraiment pourquoi.
0 votes
Pourquoi pensez-vous qu'adler32 n'est pas bon pour les petits morceaux ?
4 votes
zlib.net/zlib_tech.html "Ainsi, si l'Adler-32 est utilisé sur une taille nettement inférieure à un kilo-octet, il sera nettement plus faible qu'un CRC-32 sur le même petit bloc.
1 votes
Vous l'avez déjà accepté, mais si vous voulez, je peux probablement extraire pour vous celui qu'ils utilisent dans le noyau linux assez facilement.
0 votes
Pour les futurs visiteurs, il y a une mise en œuvre ici create.stephan-brumme.com/crc32/#git1 et vous pouvez l'extraire git clone create.stephan-brumme.com/crc32/.git
0 votes
Je pense que vos préoccupations en matière de licence reposent sur des hypothèses erronées. L'utilisation de bibliothèques LGPL pas vous obligent à ouvrir votre code propriétaire, car la LGPL est une licence à gauche d'auteur peu contraignante. La GPL l'exigerait, car elle est une licence à gauche d'auteur forte, auquel cas vous auriez besoin d'une bibliothèque basée sur une DLL pour garder vos sources fermées. Les bibliothèques de base d'Arduino sont toutes sous LGPL, et vous pouvez écrire tout le code propriétaire fermé d'Arduino que vous voulez dans le monde.
0 votes
J'ai d'ailleurs vérifié le lien que vous avez fourni. En haut, il est indiqué qu'il utilise la licence LGPL v3. Cette licence est parfaitement compatible avec votre code propriétaire à source fermée. Vous n'avez qu'à rendre le code source pour les modifications que vous apportez sur cette bibliothèque LGPL elle-même , pas sur votre code propriétaire qui utilise cette bibliothèque.
0 votes
Elle est désormais publiquement listée sous LGPL v3. Je suis l'auteur du code source au lien spécifié. La licence n'était pas claire auparavant, mais le code est ouvert et gratuit pour une utilisation dans vos applications libres ou commerciales sans conditions.