{"id":16552589,"url":"https://github.com/postmodern/digest-crc","last_synced_at":"2025-04-09T07:05:23.097Z","repository":{"id":924879,"uuid":"690914","full_name":"postmodern/digest-crc","owner":"postmodern","description":"A Cyclic Redundancy Check (CRC) library for Ruby.","archived":false,"fork":false,"pushed_at":"2024-08-02T04:11:54.000Z","size":211,"stargazers_count":92,"open_issues_count":8,"forks_count":27,"subscribers_count":8,"default_branch":"main","last_synced_at":"2024-10-29T16:59:20.675Z","etag":null,"topics":["crc","crc16","crc32","crc64","crc8","digest","ruby"],"latest_commit_sha":null,"homepage":"","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/postmodern.png","metadata":{"files":{"readme":"README.md","changelog":"ChangeLog.md","contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2010-05-28T11:33:17.000Z","updated_at":"2024-08-02T04:11:57.000Z","dependencies_parsed_at":"2023-12-28T05:30:40.280Z","dependency_job_id":"7efa5a03-f757-4de4-b9c0-24e6d864f9e9","html_url":"https://github.com/postmodern/digest-crc","commit_stats":{"total_commits":237,"total_committers":10,"mean_commits":23.7,"dds":0.08016877637130804,"last_synced_commit":"9e50ddfe1cba161e2185d80faabd0d0a803d7065"},"previous_names":[],"tags_count":15,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/postmodern%2Fdigest-crc","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/postmodern%2Fdigest-crc/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/postmodern%2Fdigest-crc/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/postmodern%2Fdigest-crc/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/postmodern","download_url":"https://codeload.github.com/postmodern/digest-crc/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":239740230,"owners_count":19689061,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["crc","crc16","crc32","crc64","crc8","digest","ruby"],"created_at":"2024-10-11T19:45:25.696Z","updated_at":"2025-03-01T09:11:47.142Z","avatar_url":"https://github.com/postmodern.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Digest CRC\n\n[![CI](https://github.com/postmodern/digest-crc/actions/workflows/ruby.yml/badge.svg)](https://github.com/postmodern/digest-crc/actions/workflows/ruby.yml)\n\n* [Source](https://github.com/postmodern/digest-crc)\n* [Issues](https://github.com/postmodern/digest-crc/issues)\n* [Documentation](http://rubydoc.info/gems/digest-crc/frames)\n\n## Description\n\nAdds support for calculating Cyclic Redundancy Check (CRC) to the Digest\nmodule.\n\n## Features\n\n* Provides support for the following CRC algorithms:\n  * [CRC1](https://rubydoc.info/gems/digest-crc/Digest/CRC1)\n  * [CRC5](https://rubydoc.info/gems/digest-crc/Digest/CRC5)\n  * [CRC8](https://rubydoc.info/gems/digest-crc/Digest/CRC8)\n  * [CRC8 1-Wire](https://rubydoc.info/gems/digest-crc/Digest/CRC8_1Wire)\n  * [CRC15](https://rubydoc.info/gems/digest-crc/Digest/CRC15)\n  * [CRC16](https://rubydoc.info/gems/digest-crc/Digest/CRC16)\n  * [CRC16 CCITT](https://rubydoc.info/gems/digest-crc/Digest/CRC16CCITT)\n  * [CRC16 DNP](https://rubydoc.info/gems/digest-crc/Digest/CRC16DNP)\n  * [CRC16 Genibus](https://rubydoc.info/gems/digest-crc/Digest/CRC16Genibus)\n  * [CRC16 Kermit](https://rubydoc.info/gems/digest-crc/Digest/CRC16Kermit)\n  * [CRC16 Modbus](https://rubydoc.info/gems/digest-crc/Digest/CRC16Modbus)\n  * [CRC16 USB](https://rubydoc.info/gems/digest-crc/Digest/CRC16USB)\n  * [CRC16 X25](https://rubydoc.info/gems/digest-crc/Digest/CRC16X25)\n  * [CRC16 XModem](https://rubydoc.info/gems/digest-crc/Digest/CRC16XModem)\n  * [CRC16 ZModem](https://rubydoc.info/gems/digest-crc/Digest/CRC16ZModem)\n  * [CRC16 QT](https://rubydoc.info/gems/digest-crc/Digest/CRC16QT)\n  * [CRC24](https://rubydoc.info/gems/digest-crc/Digest/CRC24)\n  * [CRC32](https://rubydoc.info/gems/digest-crc/Digest/CRC32)\n  * [CRC32 BZip2](https://rubydoc.info/gems/digest-crc/Digest/CRC32BZip2)\n  * [CRC32c](https://rubydoc.info/gems/digest-crc/Digest/CRC32c)\n  * [CRC32 Jam](https://rubydoc.info/gems/digest-crc/Digest/CRC32Jam)\n  * [CRC32 MPEG](https://rubydoc.info/gems/digest-crc/Digest/CRC32MPEG)\n  * [CRC32 POSIX](https://rubydoc.info/gems/digest-crc/Digest/CRC32POSIX)\n  * [CRC32 XFER](https://rubydoc.info/gems/digest-crc/Digest/CRC32XFER)\n  * [CRC64](https://rubydoc.info/gems/digest-crc/Digest/CRC64)\n  * [CRC64 Jones](https://rubydoc.info/gems/digest-crc/Digest/CRC64Jones)\n  * [CRC64 NVMe](https://rubydoc.info/gems/digest-crc/Digest/CRC64Nvme)\n  * [CRC64 XZ](https://rubydoc.info/gems/digest-crc/Digest/CRC64XZ)\n* Pure Ruby implementation.\n* Provides CRC Tables for optimized calculations.\n* Supports _optional_ C extensions which increases performance by ~40x.\n  * If the C extensions cannot be compiled for whatever reason, digest-crc\n    will automatically fallback to the pure-Ruby implementation.\n\n## Install\n\n```\ngem install digest-crc\n```\n\n**Note:** to enable the C extensions ensure that you are using CRuby and have\na C compiler (`gcc` or `clang`) and `make` installed, _before_ installing\ndigest-crc.\n\n* Debian / Ubuntu:\n\n      $ sudo apt install gcc make\n\n* RedHat / Fedora:\n\n      $ sudo dnf install gcc make\n\n* Alpine Linux:\n\n      $ apk add build-base\n\n* macOS: install XCode\n\n## Examples\n\nCalculate a CRC32:\n\n```ruby\nrequire 'digest/crc32'\n\nDigest::CRC32.hexdigest('hello')\n# =\u003e \"3610a686\"\n```\n\nCalculate a CRC32 of a file:\n\n```ruby\nDigest::CRC32.file('README.md')\n# =\u003e #\u003cDigest::CRC32: 127ad531\u003e\n```\n\nIncrementally calculate a CRC32:\n\n```ruby\ncrc = Digest::CRC32.new\ncrc \u003c\u003c 'one'\ncrc \u003c\u003c 'two'\ncrc \u003c\u003c 'three'\ncrc.hexdigest\n# =\u003e \"09e1c092\"\n```\n\nDirectly access the checksum:\n\n```ruby\ncrc.checksum\n# =\u003e 165789842\n```\n\nDefining your own CRC class:\n\n```ruby\nrequire 'digest/crc32'\n\nmodule Digest\n  class CRC3000 \u003c CRC32\n\n    WIDTH = 32\n\n    REFLECT_INPUT = true\n\n    INIT_CRC = 0xffffffff\n\n    XOR_MASK = 0xffffffff\n\n    TABLE = [\n      # ....\n    ].freeze\n  end\nend\n```\n\n## Benchmarks\n\n### Ruby 2.7.4 (pure Ruby)\n\n    $ bundle exec rake clean\n    $ bundle exec ./benchmarks.rb\n    Loading Digest::CRC classes ...\n    Generating 1000 8Kb lengthed strings ...\n    Benchmarking Digest::CRC classes ...\n                                      user     system      total        real\n    Digest::CRC1#update           0.423741   0.000000   0.423741 (  0.425887)\n    Digest::CRC5#update           1.486578   0.000011   1.486589 (  1.493215)\n    Digest::CRC8#update           1.261386   0.000000   1.261386 (  1.266399)\n    Digest::CRC8_1Wire#update     1.250344   0.000000   1.250344 (  1.255009)\n    Digest::CRC15#update          1.482515   0.000000   1.482515 (  1.488131)\n    Digest::CRC16#update          1.216744   0.000811   1.217555 (  1.222228)\n    Digest::CRC16CCITT#update     1.480490   0.000000   1.480490 (  1.486745)\n    Digest::CRC16DNP#update       1.200067   0.000000   1.200067 (  1.204835)\n    Digest::CRC16Genibus#update   1.492910   0.000000   1.492910 (  1.498923)\n    Digest::CRC16Modbus#update    1.217449   0.000003   1.217452 (  1.222348)\n    Digest::CRC16QT#update        1.223311   0.000000   1.223311 (  1.229211)\n    Digest::CRC16USB#update       1.233744   0.000000   1.233744 (  1.238615)\n    Digest::CRC16X25#update       1.223077   0.000000   1.223077 (  1.227607)\n    Digest::CRC16XModem#update    1.487674   0.000000   1.487674 (  1.493316)\n    Digest::CRC16ZModem#update    1.484288   0.000000   1.484288 (  1.490096)\n    Digest::CRC24#update          1.490272   0.000000   1.490272 (  1.496027)\n    Digest::CRC32#update          1.225311   0.000000   1.225311 (  1.230572)\n    Digest::CRC32BZip2#update     1.503096   0.000000   1.503096 (  1.509202)\n    Digest::CRC32c#update         1.220390   0.000000   1.220390 (  1.225487)\n    Digest::CRC32Jam#update       1.216066   0.000000   1.216066 (  1.220591)\n    Digest::CRC32MPEG#update      1.486808   0.000000   1.486808 (  1.492611)\n    Digest::CRC32POSIX#update     1.494508   0.000957   1.495465 (  1.503262)\n    Digest::CRC32XFER#update      1.504802   0.005830   1.510632 (  1.522066)\n    Digest::CRC64#update          3.260784   0.015674   3.276458 (  3.310506)\n    Digest::CRC64Jones#update     3.195204   0.000000   3.195204 (  3.213054)\n    Digest::CRC64XZ#update        3.173597   0.000000   3.173597 (  3.190438)\n\n### Ruby 2.7.4 (C extensions)\n\n    $ bundle exec rake build:c_exts\n    ...\n    $ bundle exec ./benchmarks.rb\n    Loading Digest::CRC classes ...\n    Generating 1000 8Kb lengthed strings ...\n    Benchmarking Digest::CRC classes ...\n                                      user     system      total        real\n    Digest::CRC1#update           0.443619   0.000007   0.443626 (  0.446545)\n    Digest::CRC5#update           0.025134   0.000806   0.025940 (  0.026129)\n    Digest::CRC8#update           0.022564   0.000000   0.022564 (  0.022775)\n    Digest::CRC8_1Wire#update     0.021427   0.000008   0.021435 (  0.021551)\n    Digest::CRC15#update          0.030377   0.000833   0.031210 (  0.031406)\n    Digest::CRC16#update          0.024004   0.000002   0.024006 (  0.024418)\n    Digest::CRC16CCITT#update     0.026930   0.000001   0.026931 (  0.027238)\n    Digest::CRC16DNP#update       0.024279   0.000000   0.024279 (  0.024446)\n    Digest::CRC16Genibus#update   0.026477   0.000004   0.026481 (  0.026656)\n    Digest::CRC16Modbus#update    0.023568   0.000000   0.023568 (  0.023704)\n    Digest::CRC16QT#update        0.024161   0.000000   0.024161 (  0.024316)\n    Digest::CRC16USB#update       0.023891   0.000000   0.023891 (  0.024038)\n    Digest::CRC16X25#update       0.023849   0.000000   0.023849 (  0.023991)\n    Digest::CRC16XModem#update    0.026254   0.000000   0.026254 (  0.026523)\n    Digest::CRC16ZModem#update    0.026391   0.000000   0.026391 (  0.026529)\n    Digest::CRC24#update          0.028805   0.000854   0.029659 (  0.029830)\n    Digest::CRC32#update          0.024030   0.000000   0.024030 (  0.024200)\n    Digest::CRC32BZip2#update     0.026942   0.000000   0.026942 (  0.027244)\n    Digest::CRC32c#update         0.023989   0.000000   0.023989 (  0.024159)\n    Digest::CRC32Jam#update       0.023940   0.000000   0.023940 (  0.024066)\n    Digest::CRC32MPEG#update      0.027063   0.000000   0.027063 (  0.027213)\n    Digest::CRC32POSIX#update     0.027137   0.000000   0.027137 (  0.028160)\n    Digest::CRC32XFER#update      0.026956   0.000002   0.026958 (  0.027103)\n    Digest::CRC64#update          0.024222   0.000005   0.024227 (  0.024796)\n    Digest::CRC64Jones#update     0.025331   0.000000   0.025331 (  0.025789)\n    Digest::CRC64XZ#update        0.024131   0.000001   0.024132 (  0.024348)\n\n### Ruby 3.0.2 (pure Ruby)\n\n    $ bundle exec rake clean\n    $ bundle exec ./benchmarks.rb\n    Loading Digest::CRC classes ...\n    Generating 1000 8Kb lengthed strings ...\n    Benchmarking Digest::CRC classes ...\n                                      user     system      total        real\n    Digest::CRC1#update           0.331405   0.000002   0.331407 (  0.333588)\n    Digest::CRC5#update           1.206847   0.000020   1.206867 (  1.224072)\n    Digest::CRC8#update           1.018571   0.000000   1.018571 (  1.023002)\n    Digest::CRC8_1Wire#update     1.018802   0.000000   1.018802 (  1.023292)\n    Digest::CRC15#update          1.207586   0.000000   1.207586 (  1.212691)\n    Digest::CRC16#update          1.032505   0.000965   1.033470 (  1.040862)\n    Digest::CRC16CCITT#update     1.198079   0.000000   1.198079 (  1.203134)\n    Digest::CRC16DNP#update       0.994582   0.000000   0.994582 (  1.006520)\n    Digest::CRC16Genibus#update   1.190596   0.000000   1.190596 (  1.196087)\n    Digest::CRC16Modbus#update    1.007826   0.000000   1.007826 (  1.012934)\n    Digest::CRC16QT#update        0.996298   0.000001   0.996299 (  1.000255)\n    Digest::CRC16USB#update       0.995806   0.000000   0.995806 (  0.999822)\n    Digest::CRC16X25#update       1.019589   0.000000   1.019589 (  1.031010)\n    Digest::CRC16XModem#update    1.146947   0.000000   1.146947 (  1.150817)\n    Digest::CRC16ZModem#update    1.145145   0.000000   1.145145 (  1.149483)\n    Digest::CRC24#update          1.149009   0.000000   1.149009 (  1.152854)\n    Digest::CRC32#update          0.970976   0.000000   0.970976 (  0.974227)\n    Digest::CRC32BZip2#update     1.148596   0.000000   1.148596 (  1.152381)\n    Digest::CRC32c#update         0.972566   0.000000   0.972566 (  0.975790)\n    Digest::CRC32Jam#update       0.975854   0.000000   0.975854 (  0.979217)\n    Digest::CRC32MPEG#update      1.148578   0.000000   1.148578 (  1.153088)\n    Digest::CRC32POSIX#update     1.146218   0.000986   1.147204 (  1.152460)\n    Digest::CRC32XFER#update      1.149823   0.000000   1.149823 (  1.153692)\n    Digest::CRC64#update          2.869948   0.000016   2.869964 (  2.884261)\n    Digest::CRC64Jones#update     2.867662   0.000000   2.867662 (  2.886559)\n    Digest::CRC64XZ#update        2.858847   0.000000   2.858847 (  2.874058)\n\n### Ruby 3.0.2 (C extensions)\n\n    $ bundle exec rake build:c_exts\n    ...\n    $ bundle exec ./benchmarks.rb\n    Loading Digest::CRC classes ...\n    Generating 1000 8Kb lengthed strings ...\n    Benchmarking Digest::CRC classes ...\n                                      user     system      total        real\n    Digest::CRC1#update           0.349055   0.000000   0.349055 (  0.350454)\n    Digest::CRC5#update           0.023144   0.000000   0.023144 (  0.023248)\n    Digest::CRC8#update           0.021378   0.000000   0.021378 (  0.021522)\n    Digest::CRC8_1Wire#update     0.021019   0.000000   0.021019 (  0.021145)\n    Digest::CRC15#update          0.030063   0.000003   0.030066 (  0.030245)\n    Digest::CRC16#update          0.024395   0.000000   0.024395 (  0.024572)\n    Digest::CRC16CCITT#update     0.026979   0.000000   0.026979 (  0.027138)\n    Digest::CRC16DNP#update       0.024665   0.000000   0.024665 (  0.024844)\n    Digest::CRC16Genibus#update   0.027054   0.000000   0.027054 (  0.027217)\n    Digest::CRC16Modbus#update    0.023963   0.000000   0.023963 (  0.024257)\n    Digest::CRC16QT#update        0.024218   0.000000   0.024218 (  0.024360)\n    Digest::CRC16USB#update       0.024393   0.000000   0.024393 (  0.024561)\n    Digest::CRC16X25#update       0.025127   0.000000   0.025127 (  0.025292)\n    Digest::CRC16XModem#update    0.028123   0.000000   0.028123 (  0.028377)\n    Digest::CRC16ZModem#update    0.028205   0.000000   0.028205 (  0.028571)\n    Digest::CRC24#update          0.031386   0.000000   0.031386 (  0.031740)\n    Digest::CRC32#update          0.023832   0.000000   0.023832 (  0.023948)\n    Digest::CRC32BZip2#update     0.027159   0.000000   0.027159 (  0.027315)\n    Digest::CRC32c#update         0.024172   0.000000   0.024172 (  0.024310)\n    Digest::CRC32Jam#update       0.024376   0.000000   0.024376 (  0.024494)\n    Digest::CRC32MPEG#update      0.026035   0.000784   0.026819 (  0.026940)\n    Digest::CRC32POSIX#update     0.026784   0.000000   0.026784 (  0.026907)\n    Digest::CRC32XFER#update      0.026770   0.000000   0.026770 (  0.026893)\n    Digest::CRC64#update          0.024400   0.000009   0.024409 (  0.024531)\n    Digest::CRC64Jones#update     0.023477   0.000781   0.024258 (  0.024390)\n    Digest::CRC64XZ#update        0.024611   0.000000   0.024611 (  0.024779)\n\n### JRuby 9.2.18.0 (pure Ruby)\n\n    $ bundle exec ./benchmarks.rb\n    Loading Digest::CRC classes ...\n    Generating 1000 8Kb lengthed strings ...\n    Benchmarking Digest::CRC classes ...\n                                      user     system      total        real\n    Digest::CRC1#update           1.080000   0.050000   1.130000 (  0.676022)\n    Digest::CRC5#update           2.030000   0.040000   2.070000 (  1.089240)\n    Digest::CRC8#update           1.590000   0.000000   1.590000 (  0.999138)\n    Digest::CRC8_1Wire#update     0.920000   0.010000   0.930000 (  0.873813)\n    Digest::CRC15#update          1.470000   0.030000   1.500000 (  1.118886)\n    Digest::CRC16#update          1.780000   0.010000   1.790000 (  1.067874)\n    Digest::CRC16CCITT#update     1.500000   0.070000   1.570000 (  1.185564)\n    Digest::CRC16DNP#update       1.250000   0.000000   1.250000 (  0.972322)\n    Digest::CRC16Genibus#update   1.700000   0.010000   1.710000 (  1.092047)\n    Digest::CRC16Modbus#update    1.000000   0.010000   1.010000 (  0.915328)\n    Digest::CRC16QT#update        1.250000   0.000000   1.250000 (  0.968528)\n    Digest::CRC16USB#update       1.150000   0.010000   1.160000 (  0.990387)\n    Digest::CRC16X25#update       0.940000   0.000000   0.940000 (  0.926926)\n    Digest::CRC16XModem#update    1.390000   0.010000   1.400000 (  1.100584)\n    Digest::CRC16ZModem#update    1.760000   0.020000   1.780000 (  1.094003)\n    Digest::CRC24#update          1.690000   0.010000   1.700000 (  1.106875)\n    Digest::CRC32#update          1.410000   0.020000   1.430000 (  1.082506)\n    Digest::CRC32BZip2#update     1.510000   0.010000   1.520000 (  1.104225)\n    Digest::CRC32c#update         1.270000   0.010000   1.280000 (  1.023881)\n    Digest::CRC32Jam#update       1.190000   0.010000   1.200000 (  0.998146)\n    Digest::CRC32MPEG#update      1.580000   0.010000   1.590000 (  1.099086)\n    Digest::CRC32POSIX#update     1.550000   0.010000   1.560000 (  1.142051)\n    Digest::CRC32XFER#update      1.360000   0.000000   1.360000 (  1.071381)\n    Digest::CRC64#update          3.730000   0.020000   3.750000 (  2.780390)\n    Digest::CRC64Jones#update     2.710000   0.020000   2.730000 (  2.608007)\n    Digest::CRC64XZ#update        2.910000   0.020000   2.930000 (  2.629401)\n\n### TruffleRuby 21.2.0 (pure Ruby)\n\n    $ bundle exec rake clean\n    $ bundle exec ./benchmarks.rb\n    Loading Digest::CRC classes ...\n    Generating 1000 8Kb lengthed strings ...\n    Benchmarking Digest::CRC classes ...\n                                      user     system      total        real\n    Digest::CRC1#update           0.455340   0.000000   0.455340 (  0.457710)\n    Digest::CRC5#update           1.406700   0.000000   1.406700 (  1.412535)\n    Digest::CRC8#update           1.248323   0.000000   1.248323 (  1.255452)\n    Digest::CRC8_1Wire#update     1.269434   0.000000   1.269434 (  1.275315)\n    Digest::CRC15#update          1.428752   0.000000   1.428752 (  1.434836)\n    Digest::CRC16#update          1.220394   0.000967   1.221361 (  1.229684)\n    Digest::CRC16CCITT#update     1.434932   0.001000   1.435932 (  1.452391)\n    Digest::CRC16DNP#update       1.191351   0.000000   1.191351 (  1.202262)\n    Digest::CRC16Genibus#update   1.434067   0.000000   1.434067 (  1.440300)\n    Digest::CRC16Modbus#update    1.200827   0.000000   1.200827 (  1.205658)\n    Digest::CRC16QT#update        1.195077   0.000000   1.195077 (  1.200328)\n    Digest::CRC16USB#update       1.196266   0.000000   1.196266 (  1.201262)\n    Digest::CRC16X25#update       1.206690   0.000000   1.206690 (  1.211781)\n    Digest::CRC16XModem#update    1.430468   0.000000   1.430468 (  1.436801)\n    Digest::CRC16ZModem#update    1.442524   0.000000   1.442524 (  1.448624)\n    Digest::CRC24#update          1.447611   0.000018   1.447629 (  1.454534)\n    Digest::CRC32#update          1.214314   0.000000   1.214314 (  1.219838)\n    Digest::CRC32BZip2#update     1.427408   0.000000   1.427408 (  1.433626)\n    Digest::CRC32c#update         1.204985   0.000000   1.204985 (  1.210273)\n    Digest::CRC32Jam#update       1.235039   0.000000   1.235039 (  1.240686)\n    Digest::CRC32MPEG#update      1.429731   0.000000   1.429731 (  1.435404)\n    Digest::CRC32POSIX#update     1.458886   0.000000   1.458886 (  1.465914)\n    Digest::CRC32XFER#update      1.422109   0.000000   1.422109 (  1.427635)\n    Digest::CRC64#update          3.283506   0.000000   3.283506 (  3.303129)\n    Digest::CRC64Jones#update     3.297402   0.000000   3.297402 (  3.317357)\n    Digest::CRC64XZ#update        3.278551   0.001875   3.280426 (  3.315165)\n\n\n### TruffleRuby 21.2.0 (C extensions)\n\n    $ bundle exec rake build:c_exts\n    ...\n    $ bundle exec ./benchmarks.rb\n    Loading Digest::CRC classes ...\n    Generating 1000 8Kb lengthed strings ...\n    Benchmarking Digest::CRC classes ...\n                                      user     system      total        real\n    Digest::CRC1#update           0.480586   0.000014   0.480600 (  0.482817)\n    Digest::CRC5#update           0.023795   0.000000   0.023795 (  0.023941)\n    Digest::CRC8#update           0.020619   0.000000   0.020619 (  0.020747)\n    Digest::CRC8_1Wire#update     0.020571   0.000000   0.020571 (  0.020700)\n    Digest::CRC15#update          0.031224   0.000000   0.031224 (  0.031412)\n    Digest::CRC16#update          0.024013   0.000000   0.024013 (  0.024174)\n    Digest::CRC16CCITT#update     0.026790   0.000000   0.026790 (  0.027079)\n    Digest::CRC16DNP#update       0.024253   0.000000   0.024253 (  0.024427)\n    Digest::CRC16Genibus#update   0.027237   0.000000   0.027237 (  0.027390)\n    Digest::CRC16Modbus#update    0.024376   0.000000   0.024376 (  0.024548)\n    Digest::CRC16QT#update        0.024361   0.000000   0.024361 (  0.024518)\n    Digest::CRC16USB#update       0.024142   0.000000   0.024142 (  0.024311)\n    Digest::CRC16X25#update       0.024098   0.000000   0.024098 (  0.024222)\n    Digest::CRC16XModem#update    0.026306   0.000000   0.026306 (  0.026502)\n    Digest::CRC16ZModem#update    0.026536   0.000000   0.026536 (  0.026688)\n    Digest::CRC24#update          0.029732   0.000000   0.029732 (  0.029902)\n    Digest::CRC32#update          0.024219   0.000000   0.024219 (  0.024391)\n    Digest::CRC32BZip2#update     0.026817   0.000000   0.026817 (  0.027044)\n    Digest::CRC32c#update         0.023681   0.000000   0.023681 (  0.023798)\n    Digest::CRC32Jam#update       0.024243   0.000000   0.024243 (  0.024419)\n    Digest::CRC32MPEG#update      0.026865   0.000000   0.026865 (  0.027020)\n    Digest::CRC32POSIX#update     0.026583   0.000000   0.026583 (  0.026748)\n    Digest::CRC32XFER#update      0.027423   0.000000   0.027423 (  0.027615)\n    Digest::CRC64#update          0.024150   0.000000   0.024150 (  0.024310)\n    Digest::CRC64Jones#update     0.024218   0.000000   0.024218 (  0.024363)\n    Digest::CRC64XZ#update        0.024124   0.000000   0.024124 (  0.024255)\n\n## Crystal\n\n[crystal-crc] is a [Crystal][crystal-lang] port of this library.\n\n[crystal-crc]: https://github.com/postmodern/crystal-crc\n[crystal-lang]: https://www.crystal-lang.org/\n\n## Thanks\n\nSpecial thanks go out to the [pycrc](http://www.tty1.net/pycrc/) library\nwhich is able to generate C source-code for all of the CRC algorithms,\nincluding their CRC Tables.\n\n## License\n\nCopyright (c) 2010-2025 Hal Brodigan\n\nSee {file:LICENSE.txt} for license information.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpostmodern%2Fdigest-crc","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpostmodern%2Fdigest-crc","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpostmodern%2Fdigest-crc/lists"}