{"_id":"murmurhash3js-revisited","_rev":"4-8f91bd8edafe3d2e0600dd15ae87b5db","name":"murmurhash3js-revisited","dist-tags":{"latest":"3.0.0"},"versions":{"3.0.0-alpha":{"name":"murmurhash3js-revisited","version":"3.0.0-alpha","description":"MurmurHash3 in JavaScript, matches the reference implementation (C++), runnable in node and browser.","keywords":["murmurhash3","hash"],"author":{"name":"Karan Lyons","email":"karan@karanlyons.com","url":"http://karanlyons.com"},"contributors":[{"name":"Sascha Droste","email":"pid@posteo.net","url":"https://github.com/pid/"},{"name":"Alex Ciminian","email":"alex.ciminian@gmail.com","url":"https://github.com/cimi/"}],"license":"MIT","bugs":{"url":"https://github.com/cimi/murmurhash3js-revisited/issues"},"repository":{"type":"git","url":"git://github.com/cimi/murmurhash3js-revisited.git"},"main":"index.js","directories":{"example":"example","test":"test"},"scripts":{"test":"./node_modules/mocha/bin/mocha"},"devDependencies":{"grunt":"^0.4.5","grunt-bumpup":"^0.6.2","grunt-contrib-jshint":"^0.11.1","grunt-contrib-uglify":"^0.8.1","grunt-contrib-watch":"^0.6.1","grunt-release":"^0.12.0","grunt-text-replace":"^0.4.0","mocha":"^2.2.1","should":"^5.2.0"},"engines":{"node":">=8.0.0"},"gitHead":"3db1f22062d155bb0781d0c1fe95d200abcb7f35","homepage":"https://github.com/cimi/murmurhash3js-revisited#readme","_id":"murmurhash3js-revisited@3.0.0-alpha","_npmVersion":"6.4.1","_nodeVersion":"8.9.1","_npmUser":{"name":"cimi","email":"alex.ciminian@gmail.com"},"dist":{"integrity":"sha512-r29XZySDEbq5KBhOTIGnMgbPcA5vCjFuU6Rsh72H4bJArujjtyIB/u+HEb53adLdADh33cEsh23dI/YjAsbuIA==","shasum":"5db0557b37cf7fddbb3a97def4cca49e7d793f6a","tarball":"https://registry.npmjs.org/murmurhash3js-revisited/-/murmurhash3js-revisited-3.0.0-alpha.tgz","fileCount":25,"unpackedSize":1186900,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbq76aCRA9TVsSAnZWagAALB0P/0gBhLqChWmF14D3Qn6n\njT5Hq9U84AHRiGMd48lUh3SLo7bMBY/8rqentRoKUqzS258aE4Ng53tFEySp\nmde9TJGynTeZ0+8CUwbVpw4nScER220VbwJfLrO+fdf37OsYFgbvehyfCuBA\nXcQl7OshLSUx/xiaGAY1sM7uu1WoMxjsvl9OUAGsWI4SC10B4cCKnfKzxmgS\nsW3Ino2YyLKliVFh/dblv0/sMygruGok+TzhBuVa0hOB71M2WCRlz4G7dV2A\nfyW0XaORgS+a15EluihQ8esJYGofT2IB8oVeltatlBk5SsvfnH/P/hQFe3Xy\nbc4JFpQiBB4mRYsdeBt46gM+LhOGesw07jjEw85SNjEaYqWerQl9luyuX+OE\nlf/GnROjEg2ivNvdJ/CYndA+3CxRrn77vQz1glNTUBDXD97YQoD//kLJqx+R\nvrUDjT+NcMB+qRWyMabvfUZT1V11JNuewgtGidM9cSF2djU0AFIkFfnLfCNq\n/MalSA6/T3NJsdvakRbLWCTO8cSaK+6sUwx4mA16tQnL1/7X0KIDayMl9iiV\nm7sxoUyCz2co8F6OmhyAs5GUhaEHJDJgiS3CtOUHtzWNZXFWy0ubgsvRkylm\ntvAHq7b4R2NwTNg8l/He5rNFsft6iYrcp9zna32gPh7XCyeveeG64idl3Bwr\n3HLG\r\n=SriR\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCICAZFAPLXY69YJgHTacnk49N/ZXg7z/8c3eFlXn5rzlsAiA9RaQXS0iJwh+ox+qkVZLXclmHWuQplzpuXcj7nYHsFg=="}]},"maintainers":[{"name":"cimi","email":"alex.ciminian@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/murmurhash3js-revisited_3.0.0-alpha_1537982105657_0.8632854891838122"},"_hasShrinkwrap":false},"3.0.0-alpha-rc1":{"name":"murmurhash3js-revisited","version":"3.0.0-alpha-rc1","description":"MurmurHash3 in JavaScript, matches the reference implementation (C++), runnable in node and browser.","keywords":["murmurhash3","hash"],"author":{"name":"Karan Lyons","email":"karan@karanlyons.com","url":"http://karanlyons.com"},"contributors":[{"name":"Sascha Droste","email":"pid@posteo.net","url":"https://github.com/pid/"},{"name":"Alex Ciminian","email":"alex.ciminian@gmail.com","url":"https://github.com/cimi/"}],"license":"MIT","bugs":{"url":"https://github.com/cimi/murmurhash3js-revisited/issues"},"repository":{"type":"git","url":"git://github.com/cimi/murmurhash3js-revisited.git"},"main":"index.js","directories":{"example":"example","test":"test"},"scripts":{"test":"./node_modules/mocha/bin/mocha"},"devDependencies":{"grunt":"^0.4.5","grunt-bumpup":"^0.6.2","grunt-contrib-jshint":"^0.11.1","grunt-contrib-uglify":"^0.8.1","grunt-contrib-watch":"^0.6.1","grunt-release":"^0.12.0","grunt-text-replace":"^0.4.0","mocha":"^2.2.1","should":"^5.2.0"},"engines":{"node":">=8.0.0"},"gitHead":"fb7939832f1a9126705e70c54e351721c2b4e760","homepage":"https://github.com/cimi/murmurhash3js-revisited#readme","_id":"murmurhash3js-revisited@3.0.0-alpha-rc1","_npmVersion":"6.4.1","_nodeVersion":"8.9.1","_npmUser":{"name":"cimi","email":"alex.ciminian@gmail.com"},"dist":{"integrity":"sha512-2kPRBwSbNUWkCQRg0vOWvCYMXbD1HGyJI2K+juhre1CTT5QFGZKnEz2Emuvr4iR1ttnH4chqngy/hpA5C0+5Eg==","shasum":"4d8355589fac8e1eb0e40520a17334d3c7d1fc57","tarball":"https://registry.npmjs.org/murmurhash3js-revisited/-/murmurhash3js-revisited-3.0.0-alpha-rc1.tgz","fileCount":25,"unpackedSize":1186904,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbq78iCRA9TVsSAnZWagAA0x0P+QD/nSyYUs3kSlI+vrOa\nx82A/LqPE6GArAKIuu1QR44uSkqq9/4STrjEloyo6nDUyrLIdpt1890eMYzh\nfZis8icl9EXG9MOI3LyFw4mJWT1HrEZuVgUsciMDqRNNZ8vN1p8fP44ahBS0\n2iiCIhEaZac8l7rIa3E0BXUW7ZmEyfT9YKmCoRkrR3lA7qv1gDQXPJcnLjVZ\nfLeW3LEWe0bBeUVrptqBmjDcRcukmX2FiAFoW/QRg8T7rEMSSfuRn4bUQNBo\nB4bkPXLcFvzswLmlo/64RQq2nduH6/Rnnxco42dr7Vlxs+PPJ1x6H0YkQe6I\nzrZQQbU0oV5ANfcIOs5q4z3ItgRfWCzD4q1XslskLi9BX7PXA3hRtOk9ay4D\nUQCMyB13mHMCTy8TsLIWeodDwEYzQvU4J4PfSEJMnEwnhZsQjhgu84u7URqH\ndPpVX76NhPoxDbKlVL6pA4KplkAr3xsbSYbFkZOG83TMVHPhSbaqtJk4HeDk\nWAOgwVGGoDV3V3s5mNCJJTEn+xG5fR1JsQcq191G4WB20DjrLKGjn5J6Lvzo\nqklYoFYZ5x6OLtVg0/aC8ZIQfzde1193tgIXGuhTycrs2RJlsxF/3vgj6kch\nMh6xhAxivYvlCZrqmGtXXmV8LrZEI/54NMyjQS9IB1P0Sn+t1ofO7+0bEqQo\n6srP\r\n=Yr+F\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICQIXQaRBwf8p3+2nUyBhqXdLz3ST8A6YkgA1NbT35hjAiEA/P433ZnlMIAZ14cW+Q23Tk8yVPnUCbwzZVNxl8x/V5A="}]},"maintainers":[{"name":"cimi","email":"alex.ciminian@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/murmurhash3js-revisited_3.0.0-alpha-rc1_1537982241758_0.549548455942543"},"_hasShrinkwrap":false},"3.0.0-alpha-rc2":{"name":"murmurhash3js-revisited","version":"3.0.0-alpha-rc2","description":"MurmurHash3 in JavaScript, matches the reference implementation (C++), runnable in node and browser.","keywords":["murmurhash3","hash"],"author":{"name":"Karan Lyons","email":"karan@karanlyons.com","url":"http://karanlyons.com"},"contributors":[{"name":"Sascha Droste","email":"pid@posteo.net","url":"https://github.com/pid/"},{"name":"Alex Ciminian","email":"alex.ciminian@gmail.com","url":"https://github.com/cimi/"}],"license":"MIT","bugs":{"url":"https://github.com/cimi/murmurhash3js-revisited/issues"},"repository":{"type":"git","url":"git://github.com/cimi/murmurhash3js-revisited.git"},"main":"index.js","directories":{"example":"example","test":"test"},"scripts":{"test":"./node_modules/mocha/bin/mocha"},"devDependencies":{"grunt":"^0.4.5","grunt-bumpup":"^0.6.2","grunt-contrib-jshint":"^0.11.1","grunt-contrib-uglify":"^0.8.1","grunt-contrib-watch":"^0.6.1","grunt-release":"^0.12.0","grunt-text-replace":"^0.4.0","mocha":"^2.2.1","should":"^5.2.0"},"engines":{"node":">=8.0.0"},"gitHead":"4397d7d25d02272ab762524a787c885b3e37a217","homepage":"https://github.com/cimi/murmurhash3js-revisited#readme","_id":"murmurhash3js-revisited@3.0.0-alpha-rc2","_npmVersion":"6.4.1","_nodeVersion":"8.9.1","_npmUser":{"name":"cimi","email":"alex.ciminian@gmail.com"},"dist":{"integrity":"sha512-AV3t1+5eU5c7dD8ZTQU3PBNLNZVtBr4yw5btGQW1DLU7O9OZQJmSEq0rCYt6hGpF/YeNJj9dmsO38wja5iqf6Q==","shasum":"2c2a45484bf9aa136320667ba394ba8e2ada08b7","tarball":"https://registry.npmjs.org/murmurhash3js-revisited/-/murmurhash3js-revisited-3.0.0-alpha-rc2.tgz","fileCount":15,"unpackedSize":45709,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbq7+LCRA9TVsSAnZWagAAkS8P/j/6uHhe2DwnRwqYUL3T\nO26n/REOyw48DvlJu9/V+FVXJqxgvkZn26DANLyTO39Z/2bWnrnptIx7/34+\njimnbv6hziHw+zu+QpkUVh3qrum3i9u46yUdisJcoECX9SGih7nQaG81dr68\nqIVXL6IRrBVGrf/f7mWndRRyxrSeFXp1DvBc6KW5fpyKF17tvGL2K9umTAmj\nB8zeG55X1n1IKINmlMPHjhPs6aF4qzQ7lQ7m2OPygdhW0k99HJIPmIhVMtIm\nXrIuLNXp5V5HyawADiKSLlWMynaoV3DfE7rSm9g+KGO7BvKTwWb4KYu8QZUJ\nWodyQzG7uboTijvBjvQ2qsCpXioUnhZbDJmS9LIWIv7yp9UnZtkHwfe7JheS\nuUT7f7AmOsi52OJZpOki0vH7dVPQ30efXGe1n4RqpLzV9grkl/34u8M/uwbm\ncLEEeoHg8fcPQMC+f7R0jgpEtjdGi9zBzIDfix58vMmNCdnwN4WpZdoxyL3O\ntIAhqdOtoNgZ6KjYVMqSkGEbDJj5iQdPtN0NEoUs/SzewenrvNsm6NKfZwHz\nOsmkxrdl1EYBHYdAWLT/klanMfZ/CUJ5XnlskysTtOUGBpsbAcAA2KC5wbf4\nV+c0v9o7AzUq7ZcpuW75UXiyXLJVESEccctbX6oHHKDSqWLGzQcMrWIzQT3d\ngysr\r\n=d/o2\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCSCGeRgvOpMPrcaK8w23Ws4Yz6Jeu8hl1iXHfyJP5+WgIhAJeA2tZqIC4A6B30QtP14wy6wbIxWpUGGBsZ2J5ob//O"}]},"maintainers":[{"name":"cimi","email":"alex.ciminian@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/murmurhash3js-revisited_3.0.0-alpha-rc2_1537982346174_0.18495925664377566"},"_hasShrinkwrap":false},"3.0.0":{"name":"murmurhash3js-revisited","version":"3.0.0","description":"MurmurHash3 in JavaScript, matches the reference implementation (C++), runnable in node and browser.","keywords":["murmurhash3","hash"],"author":{"name":"Karan Lyons","email":"karan@karanlyons.com","url":"http://karanlyons.com"},"contributors":[{"name":"Sascha Droste","email":"pid@posteo.net","url":"https://github.com/pid/"},{"name":"Alex Ciminian","email":"alex.ciminian@gmail.com","url":"https://github.com/cimi/"}],"license":"MIT","bugs":{"url":"https://github.com/cimi/murmurhash3js-revisited/issues"},"repository":{"type":"git","url":"git://github.com/cimi/murmurhash3js-revisited.git"},"main":"index.js","directories":{"example":"example","test":"test"},"scripts":{"test":"./node_modules/mocha/bin/mocha"},"devDependencies":{"grunt":"^0.4.5","grunt-bumpup":"^0.6.2","grunt-contrib-jshint":"^0.11.1","grunt-contrib-uglify":"^0.8.1","grunt-contrib-watch":"^0.6.1","grunt-release":"^0.12.0","grunt-text-replace":"^0.4.0","mocha":"^2.2.1","should":"^5.2.0"},"engines":{"node":">=8.0.0"},"gitHead":"b382aeeab1f183b2bde56d4e20ffeaa4f5f78b09","homepage":"https://github.com/cimi/murmurhash3js-revisited#readme","_id":"murmurhash3js-revisited@3.0.0","_npmVersion":"6.4.1","_nodeVersion":"8.9.1","_npmUser":{"name":"cimi","email":"alex.ciminian@gmail.com"},"dist":{"integrity":"sha512-/sF3ee6zvScXMb1XFJ8gDsSnY+X8PbOyjIuBhtgis10W2Jx4ZjIhikUCIF9c4gpJxVnQIsPAFrSwTCuAjicP6g==","shasum":"6bd36e25de8f73394222adc6e41fa3fac08a5869","tarball":"https://registry.npmjs.org/murmurhash3js-revisited/-/murmurhash3js-revisited-3.0.0.tgz","fileCount":15,"unpackedSize":45699,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbq8HxCRA9TVsSAnZWagAAOncQAJTxiEXfQQzYzJ3Vge12\ncWQrRqoqfDgURcQk+XSLeiF/keoXgwnl2fEkUCtWfVRmcf0IXrbVBs1/qbJ1\nbZ/UMN8scFUHfSgH/2f5LKRWCgTNsLuQlXFz1d19qaU0AiWP0XQRM4CAlm5D\n7PzIuTs2H0cYo89dGpFAXKsdKqQJVNBoc2Mt6fA8z+A9zVCAxjw0/FLczLAw\nae9j5zy3t9jERYqbS42iWFWMfyBGwAHlKPvBQQ7cqsm0W6iWOoQ/bPeboWhW\na37/sHBpgWsu1S0KzAMYm+q1YEJSacwdm4pp3lGUIM3VZ+QdlKWT7D6LJBzt\n2qgjjlDTQAcfwKNGOIUUHbYW0fbV5iQJqzUh8rODU1RiGdxqfGJgYIzYO1gH\nqypbEqrqEFc8FldijZXBne/3NhRNneE+SaLWr+NcXD0MW5rDt1T1Z0O4ehgz\nwxU1b0K1frWvhCQgWFhsiz07gUu7LytT4fgigRtShXOw1ZMIshDHUYmb/Z+X\njTvLyLptl1lZahkQq3lS9EOZAsREEaIxm/6iQYrnR1DdXKIcfMEoZ2JzG9B6\nfDX5E7NArFiySEhe/gaXOhtV4OKDcK1h5JUznle8bj56XUMVJBwxniwLWxgT\n3PFb8PzZlT/URjEOoq4PT264CF88dFFbkGMw3LswnhbRkS69sIeaDuwxMBHo\nIu9N\r\n=s8MI\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQD3lCVoqAPpxXLo5QhGUv4QBKwjayboMkJp1H68zQMGWAIgQX5acV3LZcuTb/mD/pQvUe2b/x+W+fQ7F3lfrXBquUE="}]},"maintainers":[{"name":"cimi","email":"alex.ciminian@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/murmurhash3js-revisited_3.0.0_1537982960551_0.1552694191907389"},"_hasShrinkwrap":false}},"time":{"created":"2018-09-26T17:15:05.656Z","3.0.0-alpha":"2018-09-26T17:15:05.812Z","modified":"2022-05-10T01:18:08.167Z","3.0.0-alpha-rc1":"2018-09-26T17:17:21.967Z","3.0.0-alpha-rc2":"2018-09-26T17:19:06.600Z","3.0.0":"2018-09-26T17:29:20.622Z"},"maintainers":[{"name":"cimi","email":"alex.ciminian@gmail.com"}],"description":"MurmurHash3 in JavaScript, matches the reference implementation (C++), runnable in node and browser.","homepage":"https://github.com/cimi/murmurhash3js-revisited#readme","keywords":["murmurhash3","hash"],"repository":{"type":"git","url":"git://github.com/cimi/murmurhash3js-revisited.git"},"contributors":[{"name":"Sascha Droste","email":"pid@posteo.net","url":"https://github.com/pid/"},{"name":"Alex Ciminian","email":"alex.ciminian@gmail.com","url":"https://github.com/cimi/"}],"author":{"name":"Karan Lyons","email":"karan@karanlyons.com","url":"http://karanlyons.com"},"bugs":{"url":"https://github.com/cimi/murmurhash3js-revisited/issues"},"license":"MIT","readme":"JavaScript implementation of the [MurmurHash3](https://github.com/aappleby/smhasher) algorithms.\n\nForked from [pid/murmurhash3js](https://github.com/pid/murmurHash3js), the original implementation only uses the first byte from multi-byte character codes, potentially causing collisions and yielding different results from the reference implementation.\n\nThe signature of all three variants of the hash function have been changed; now\nthey expect bytes instead of strings. This increases the flexibility of the\nlibrary as it can now operate on e.g. strings with arbitrary encodings, numbers etc.\n\nThis requires the caller to convert from string to bytes before hashing. If the conversion from string to bytes was done internally, the library would\nneed to include at least a `TextEncoder` polyfill for utf-8 support and other\npolyfills / hacks in order to have cross-browser support for other encodings.\n\n### Installation\n\n> npm install murmurhash3js\n\n```javascript\n    // browser\n    <script type=\"text/javascript\" src=\"murmurhash3js.min.js\"></script>\n    // server\n    var murmurHash3 = require(\"murmurhash3js\");\n    // ES6 module\n    import murmurHash3 from \"murmurHash3js\";\n```\n\n### Usage\n\nStrings need to be decoded to bytes before being passed to the hash function. Passing strings without first converting to bytes will make the hash function operate directly on characters and yield incorrect results (e.g. `\"a\" << 8 !== 97 << 8`).\n\nYou can encode strings to utf8 bytes using `new TextEncoder().encode(str)` in modern browsers or `Buffer.from(str)` in node. If you need to support older browsers you can include a polyfill for TextEncoder.\n\nThe hash functions take two parameters: the input bytes and an optional seed for the hash function (defaults to 0).\n\n```javascript\n> const bytes = str => Buffer.from(str); // or new TextEncoder().encode(str)\n\n// Return a 32bit hash as a unsigned int:\n> murmurHash3.x86.hash32(bytes(\"I will not buy this record, it is scratched.\"))\n  2832214938\n\n> murmurHash3.x86.hash128(bytes(\"I will not buy this tobacconist's, it is scratched.\"))\n  \"9b5b7ba2ef3f7866889adeaf00f3f98e\"\n> murmurHash3.x64.hash128(bytes(\"I will not buy this tobacconist's, it is scratched.\"))\n  \"d30654abbd8227e367d73523f0079673\"\n\n// Specify a seed (defaults to 0):\n> murmurHash3.x86.hash32(bytes(\"My hovercraft is full of eels.\"), 25)\n  2520298415\n\n// strings containing multi-byte character codes are handled correctly\n> murmurHash3.x86.hash128(bytes(\"utf-8 supported 🌈\"))\n  \"796479ed1bbff85b29e39731d1967a07\"\n```\n\n### Matching against the reference implementation\n\nIn order to maintain compatibility with the original JS library this variant was forked from, the encoding of the output has not been changed. The 32bit version returns an unsigned int, while the x86 and x64 128 bit variants return 32 character hex strings.\n\nHere's how you could print the output from the reference C++ implementation to get the same hex string as the JS library:\n\n```c\nint *ints = (int*) bytes;\nfor (int i = 0; i < 4; i++) {\n  printf(\"%08x\", ints[i]);\n}\nprintf(\"\\n\");\n```\n\nFor x64 this is different:\n\n```c\nuint64_t *ints = (uint64_t*) bytes;\nfor (int i = 0; i < 2; i++) {\n  printf(\"%016llx\", ints[i]);\n}\nprintf(\"\\n\");\n```\n\n### Rebinding\n\n```\n> somethingCompletelyDifferent = murmurHash3.noConflict()\n> murmurHash3\n  undefined\n> somethingCompletelyDifferent.version\n  \"3.0.1\"\n```\n\nAuthors\n-------\n\n-\t[Karan Lyons](https://github.com/karanlyons/)\n-\t[Sascha Droste](https://github.com/pid/)\n- [Alex Ciminian](https://github.com/cimi/)\n\nChanglog\n--------\n\n[CHANGLELOG.md](https://github.com/cimi/murmurHash3js/blob/master/CHANGELOG.md)\n\n\n### Other implementations\n\n\n* https://github.com/karanlyons/murmurHash3.js\n\n* https://github.com/garycourt/murmurhash-js\n* https://github.com/kazuyukitanimura/murmurhash-js\n* https://github.com/jensyt/imurmurhash-js\n* https://github.com/matthewmueller/murmur.js\n* https://github.com/ajoslin/murmurhash-v3\n\n* https://github.com/saintplay/murmurhash\n\n* https://github.com/levitation/murmurhash-js\n\n\n* https://github.com/whitequark/murmurhash3-js\n\n* https://github.com/vnykmshr/murmur-hash\n\n* https://github.com/LinusU/murmur-128\n* https://github.com/LinusU/array-buffer-from-string\n\n```\n var view = new Uint16Array(length)\n\n  for (var i = 0; i < length; i++) {\n    view[i] = input.charCodeAt(i)\n  }\n```\nHashing char codes instead of utf-8 bytes?\n\n* https://github.com/chriskr/murmurhash3_128\n(no `package.json`, Uses textEncoder internally)\n\n* https://github.com/aggregateknowledge/js-murmur3-128\n(no package.json, has pom.xml, guava compat)\n","readmeFilename":"README.md"}