{"_id":"butils","_rev":"113552","name":"butils","description":"helper functions to make buffers faster","dist-tags":{"latest":"0.1.0"},"maintainers":[{"name":"nlf","email":""}],"time":{"modified":"2021-06-03T10:46:10.000Z","created":"2012-11-01T21:37:35.903Z","0.1.0":"2014-04-11T16:02:02.081Z","0.0.7":"2014-01-02T21:26:28.485Z","0.0.6":"2014-01-02T20:52:16.204Z","0.0.5":"2013-08-08T17:53:07.440Z","0.0.4":"2013-03-12T16:45:35.581Z","0.0.3":"2012-11-03T16:04:44.869Z","0.0.2":"2012-11-01T23:30:50.136Z","0.0.1":"2012-11-01T21:37:35.903Z"},"users":{},"author":{"name":"Nathan LaFreniere","email":"quitlahok@gmail.com"},"repository":{"type":"git","url":"git://github.com/nlf/node-butils.git"},"versions":{"0.1.0":{"name":"butils","version":"0.1.0","description":"helper functions to make buffers faster","main":"index.js","scripts":{"test":"make test-cov"},"repository":{"type":"git","url":"git://github.com/nlf/node-butils.git"},"keywords":["buffer","ctype"],"author":{"name":"Nathan LaFreniere","email":"quitlahok@gmail.com"},"license":"MIT","devDependencies":{"audit":"0.0.6","precommit-hook":"","lab":"^3.0.0"},"bugs":{"url":"https://github.com/nlf/node-butils/issues"},"homepage":"https://github.com/nlf/node-butils","_id":"butils@0.1.0","dist":{"shasum":"41e296f55d78faa96cc3fdb8cc7cfa7a66a6a4b8","size":4424,"noattachment":false,"key":"/butils/-/butils-0.1.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/butils/download/butils-0.1.0.tgz"},"_from":".","_npmVersion":"1.4.3","_npmUser":{"name":"nlf","email":"quitlahok@gmail.com"},"maintainers":[{"name":"nlf","email":""}],"directories":{},"publish_time":1397232122081,"_cnpm_publish_time":1397232122081,"_hasShrinkwrap":false},"0.0.7":{"name":"butils","version":"0.0.7","description":"helper functions to make buffers faster","main":"index.js","repository":{"type":"git","url":"git://github.com/nlf/node-butils.git"},"keywords":["buffer","ctype"],"author":{"name":"Nathan LaFreniere","email":"quitlahok@gmail.com"},"license":"MIT","devDependencies":{"audit":"0.0.6","precommit-hook":""},"readmeFilename":"README.md","bugs":{"url":"https://github.com/nlf/node-butils/issues"},"_id":"butils@0.0.7","dist":{"shasum":"c8e8dc185b8e4573e8b1aa0070c71bc74d9b280f","size":2089,"noattachment":false,"key":"/butils/-/butils-0.0.7.tgz","tarball":"http://registry.cnpm.dingdandao.com/butils/download/butils-0.0.7.tgz"},"_from":".","_npmVersion":"1.3.11","_npmUser":{"name":"nlf","email":"quitlahok@gmail.com"},"maintainers":[{"name":"nlf","email":""}],"directories":{},"publish_time":1388697988485,"_cnpm_publish_time":1388697988485,"_hasShrinkwrap":false},"0.0.6":{"name":"butils","version":"0.0.6","description":"helper functions to make buffers faster","main":"index.js","repository":{"type":"git","url":"git://github.com/nlf/node-butils.git"},"keywords":["buffer","ctype"],"author":{"name":"Nathan LaFreniere","email":"quitlahok@gmail.com"},"license":"MIT","devDependencies":{"audit":"0.0.6","precommit-hook":""},"readmeFilename":"README.md","bugs":{"url":"https://github.com/nlf/node-butils/issues"},"_id":"butils@0.0.6","dist":{"shasum":"6eeebea193b51ef38d8edbfb0bef0b8b3d8b6ee3","size":2081,"noattachment":false,"key":"/butils/-/butils-0.0.6.tgz","tarball":"http://registry.cnpm.dingdandao.com/butils/download/butils-0.0.6.tgz"},"_from":".","_npmVersion":"1.3.11","_npmUser":{"name":"nlf","email":"quitlahok@gmail.com"},"maintainers":[{"name":"nlf","email":""}],"directories":{},"publish_time":1388695936204,"_cnpm_publish_time":1388695936204,"_hasShrinkwrap":false},"0.0.5":{"name":"butils","version":"0.0.5","description":"helper functions to make buffers faster","main":"index.js","repository":{"type":"git","url":"git://github.com/nlf/node-butils.git"},"keywords":["buffer","ctype"],"author":{"name":"Nathan LaFreniere","email":"quitlahok@gmail.com"},"license":"MIT","devDependencies":{"audit":"0.0.6","precommit-hook":""},"readmeFilename":"README.md","bugs":{"url":"https://github.com/nlf/node-butils/issues"},"_id":"butils@0.0.5","dist":{"shasum":"c16eec9f0664b8b771d7763f581a3c49e89a45fa","size":2070,"noattachment":false,"key":"/butils/-/butils-0.0.5.tgz","tarball":"http://registry.cnpm.dingdandao.com/butils/download/butils-0.0.5.tgz"},"_from":".","_npmVersion":"1.3.2","_npmUser":{"name":"nlf","email":"quitlahok@gmail.com"},"maintainers":[{"name":"nlf","email":""}],"directories":{},"publish_time":1375984387440,"_cnpm_publish_time":1375984387440,"_hasShrinkwrap":false},"0.0.4":{"name":"butils","version":"0.0.4","description":"helper functions to make buffers faster","main":"index.js","repository":{"type":"git","url":"git://github.com/nlf/node-butils.git"},"keywords":["buffer","ctype"],"author":{"name":"Nathan LaFreniere","email":"quitlahok@gmail.com"},"license":"MIT","devDependencies":{"audit":"0.0.6","precommit-hook":""},"readmeFilename":"README.md","_id":"butils@0.0.4","dist":{"shasum":"38cdb512111f77fdeed7978eb2a61092a92b9902","size":2023,"noattachment":false,"key":"/butils/-/butils-0.0.4.tgz","tarball":"http://registry.cnpm.dingdandao.com/butils/download/butils-0.0.4.tgz"},"_from":".","_npmVersion":"1.2.14","_npmUser":{"name":"nathan-lafreniere","email":"quitlahok@gmail.com"},"maintainers":[{"name":"nlf","email":""}],"directories":{},"publish_time":1363106735581,"_cnpm_publish_time":1363106735581,"_hasShrinkwrap":false},"0.0.3":{"name":"butils","version":"0.0.3","description":"helper functions to make buffers faster","main":"index.js","repository":{"type":"git","url":"git://github.com/nathan-lafreniere/node-butils.git"},"keywords":["buffer","ctype"],"author":{"name":"Nathan LaFreniere","email":"quitlahok@gmail.com"},"license":"MIT","devDependencies":{"audit":"0.0.6"},"_id":"butils@0.0.3","dist":{"shasum":"dab875ffd66d0a91a8fb65313344d873ef909042","size":1988,"noattachment":false,"key":"/butils/-/butils-0.0.3.tgz","tarball":"http://registry.cnpm.dingdandao.com/butils/download/butils-0.0.3.tgz"},"maintainers":[{"name":"nlf","email":""}],"directories":{},"publish_time":1351958684869,"_cnpm_publish_time":1351958684869,"_hasShrinkwrap":false},"0.0.2":{"name":"butils","version":"0.0.2","description":"helper functions to make buffers faster","main":"index.js","repository":{"type":"git","url":"git://github.com/nathan-lafreniere/node-butils.git"},"keywords":["buffer","ctype"],"author":{"name":"Nathan LaFreniere","email":"quitlahok@gmail.com"},"license":"MIT","_id":"butils@0.0.2","dist":{"shasum":"7d033fc0f737f78a43c15909c8ebcda1a0c94cf3","size":1623,"noattachment":false,"key":"/butils/-/butils-0.0.2.tgz","tarball":"http://registry.cnpm.dingdandao.com/butils/download/butils-0.0.2.tgz"},"maintainers":[{"name":"nlf","email":""}],"directories":{},"publish_time":1351812650136,"_cnpm_publish_time":1351812650136,"_hasShrinkwrap":false},"0.0.1":{"name":"butils","version":"0.0.1","description":"helper functions to make buffers faster","main":"index.js","repository":{"type":"git","url":"git://github.com/nathan-lafreniere/node-butils.git"},"keywords":["buffer","ctype"],"author":{"name":"Nathan LaFreniere","email":"quitlahok@gmail.com"},"license":"MIT","readmeFilename":"README.md","_id":"butils@0.0.1","dist":{"shasum":"030c92e3eb9ce9179135a0ffca505761b4a760af","size":1604,"noattachment":false,"key":"/butils/-/butils-0.0.1.tgz","tarball":"http://registry.cnpm.dingdandao.com/butils/download/butils-0.0.1.tgz"},"_npmVersion":"1.1.65","_npmUser":{"name":"nathan-lafreniere","email":"quitlahok@gmail.com"},"maintainers":[{"name":"nlf","email":""}],"directories":{},"publish_time":1351805855903,"_cnpm_publish_time":1351805855903,"_hasShrinkwrap":false}},"readme":"butils\n------\n###Bufferwise binary operations\n - getBit(buffer, offset) returns true or false\n - setBit(buffer, offset, boolean) returns the changed byte\n - XOR(buffer, buffer2) returns the modifed first buffer\n - OR(buffer, buffer2) returns the modifed first buffer\n - AND(buffer, buffer2) return the modifed first buffer\n - NOT(buffer) return the modifed buffer\n - EQUAL(buffer, buffer2) returns a boolean\n - leftShift(buffer, offset) returns a NEW buffer\n - rightShift(buffer, offset) returns a NEW buffer\n - signedRightShift(buffer, offset) returns a NEW buffer\n\n\nThese are some helper functions that appear to be significantly faster than core Buffer manipulation functions.\n\nFunctions included\n\n* readInt(buffer, offset) -- (buffer.readInt8(offset))\n* writeInt(buffer, int, offset) -- (buffer.writeInt8(int, offset))\n* readInt32(buffer, offset) -- (buffer.readUInt32BE(offset))\n* writeInt32(buffer, int, offset) -- (buffer.writeUInt32BE(int, offset))\n* readString(buffer, start, end) -- (buffer.toString(start, end))\n* writeString(buffer, str, offset) -- (Buffer.write(str, 'utf8', offset))\n* readVarint(buffer, offset) -- (no equivalent)\n* writeVarint(buffer, int, offset) -- (no equivalent)\n\nNote that the Int32 functions are currently unsigned and big endian only, though I'd happily accept pull requests to add more functionality.\n\nBenchmark\n=========\n\n100,000,000 iterations of each function. (see bench.js)\n\n* Buffer#writeInt8: 1225ms\n* butils#writeInt: 166ms\n* \n* Buffer#readInt8: 761ms\n* butils#readInt: 164ms\n* \n* Buffer#writeUInt32BE: 1544ms\n* butils#writeInt32: 257ms\n* \n* Buffer#readUInt32BE: 1525ms\n* butils#readInt32: 323ms\n* \n* Buffer#write: 45101ms\n* butils#writeString: 2509ms\n* \n* Buffer#toString: 17505ms\n* butils#readString: 7340ms\n* \n* butils#writeVarint: 1264ms\n* \n* butils#readVarint: 4777ms\n","_attachments":{},"homepage":"https://github.com/nlf/node-butils","bugs":{"url":"https://github.com/nlf/node-butils/issues"},"license":"MIT"}