node-crc, node.js 和浏览器的Blazingly快速CRC实现

分享于 

4分钟阅读

GitHub

  繁體 雙語
Verious CRC for node.js and browser
  • 源代码名称:node-crc
  • 源代码网址:http://www.github.com/alexgorbatchev/node-crc
  • node-crc源代码文档
  • node-crc源代码下载
  • Git URL:
    git://www.github.com/alexgorbatchev/node-crc.git
    Git Clone代码到本地:
    git clone http://www.github.com/alexgorbatchev/node-crc
    Subversion代码到本地:
    $ svn co --depth empty http://www.github.com/alexgorbatchev/node-crc
    Checked out revision 1.
    $ cd repo
    $ svn up trunk
    
    crc

    GitTipDependency statusdevDependency StatusBuild Status

    NPM

    node.js 和浏览器循环冗余校验( CRC )的计算模块。

    重要:node> = 6.3.0 <6.9.2

    在 node #9342 中有一个 Bug,如果使用了 Buffer.split(),则会影响CRC计算( ( 有关详细信息,请参阅问题讨论) )。 这影响了所有从 6.3.0 开始的版本,但不包括 6.9.2。 补丁 #93416.9.2 中发布。 如果你正在升级和查看奇怪的CRC计算不匹配,这可能是原因。

    特性

    • 参考 pycrc 实现比较值的完整测试套件。
    • 纯JavaScript实现,无依赖关系。
    • 为优化计算提供CRC表。
    • 提供对以下CRC算法的支持:
      • CRC1 crc.crc1(...)
      • CRC8 crc.crc8(...)
      • CRC8 1-Wire crc.crc81wire(...)
      • CRC16 crc.crc16(...)
      • CRC16 CCITT crc.crc16ccitt(...)
      • CRC16 crc.crc16modbus(...)
      • CRC16 Kermit crc.crc16kermit(...)
      • 3 位 XModem crc.crc16xmodem(...)
      • CRC24 crc.crc24(...)
      • CRC32 crc.crc32(...)
      • CRCJAM crc.crcjam(...)

    安装

     
    npm install crc
    
    
    
     

    用法

    计算 CRC32:

    constcrc=require('crc');crc.crc32('hello').toString(16);//"3610a686"

    计算 file:的CRC32

    crc.crc32(fs.readFileSync('README.md', 'utf8')).toString(16);//"127ad531"

    或者使用 Buffer:

    crc.crc32(fs.readFileSync('README.md')).toString(16);//"127ad531"

    增量计算 CRC32:

    value =crc.crc32('one');
    value =crc.crc32('two', value);
    value =crc.crc32('three', value);value.toString(16);//"9e1c092"

    对于网络分发,最好需要特定的模块,以避免捆绑不必要的代码。

    constcrc32=require('crc/lib/crc32');crc32('hello').toString(16);//"3610a686"

    运行测试

     
    npm test
    
    
    
     

    谢谢 !

    pycrc 库是所有CRC表的源。

    许可证

    麻省理工学院许可证( MIT )

    版权( c ) 2014 Alex Gorbatchev

    若要在取得该软件副本时免费授予任何人,如有下列条件的软件,请免费授予该软件的副本,并与相关的文档文件("软件") 进行许可,包括不受限制的权利,包括以下条件:

    上述版权声明和本许可声明须包括在所有的副本或实质性部分的软件。

    软件是"是",没有任何保证,表示或者隐含,包括但不限于销售,适合特定用途和 NONINFRINGEMENT。 作者或者版权持有人在合同。侵权或者它的他与软件或者它的他用户交易的行为。


    相关文章