{"maintainers":[{"name":"anonymous","email":"devongovett@gmail.com"}],"dist-tags":{"latest":"2.0.0"},"author":{"name":"Devon Govett","email":"devongovett@gmail.com"},"description":"Unicode Trie data structure for fast character metadata lookup, ported from ICU","readme":"# unicode-trie\nA data structure for fast Unicode character metadata lookup, ported from ICU\n\n## Background\n\nWhen implementing many Unicode algorithms such as text segmentation,\nnormalization, bidi processing, etc., fast access to character metadata\nis crucial to good performance.  There over a million code points in the\nUnicode standard, many of which produce the same result when looked up,\nso an array or hash table is not appropriate - those data structures are\nfast but would require a lot of memory.  The data is generally\ngrouped in ranges, so you could do a binary search, but that is not\nfast enough for some applications.\n\nThe [International Components for Unicode](http://site.icu-project.org) (ICU) project\ncame up with a data structure based on a [Trie](http://en.wikipedia.org/wiki/Trie) that provides fast access\nto Unicode metadata.  The range data is precompiled to a serialized\nand flattened trie, which is then used at runtime to lookup the necessary\ndata.  According to my own tests, this is generally at least 50% faster\nthan binary search, with not too much additional memory required.\n\n## Installation\n\n    npm install unicode-trie\n\n## Building a Trie\n\nUnicode Tries are generally precompiled from data in the Unicode database\nfor faster runtime performance.  To build a Unicode Trie, use the\n`UnicodeTrieBuilder` class.\n\n```js\nconst UnicodeTrieBuilder = require('unicode-trie/builder');\nconst fs = require('fs');\n\n// create a trie\nlet t = new UnicodeTrieBuilder();\n\n// optional parameters for default value, and error value\n// if not provided, both are set to 0\nt = new UnicodeTrieBuilder(10, 999);\n\n// set individual values and ranges\nt.set(0x4567, 99);\nt.setRange(0x40, 0xe7, 0x1234);\n\n// you can lookup a value if you like\nt.get(0x4567); // => 99\n\n// get a compiled trie (returns a UnicodeTrie object)\nconst trie = t.freeze();\n\n// write compressed trie to a binary file\nfs.writeFileSync('data.trie', t.toBuffer());\n```\n\n## Using a precompiled Trie\n\nOnce you've built a precompiled trie, you can load it into the\n`UnicodeTrie` class, which is a readonly representation of the\ntrie.  From there, you can lookup values.\n\n```js\nconst UnicodeTrie = require('unicode-trie');\nconst fs = require('fs');\n\n// load serialized trie from binary file\nconst data = fs.readFileSync('data.trie');\nconst trie = new UnicodeTrie(data);\n\n// lookup a value\ntrie.get(0x4567); // => 99\n```\n\n## License\n\nMIT\n","repository":{"type":"git","url":"git://github.com/devongovett/unicode-trie.git"},"users":{"getify":true},"bugs":{"url":"https://github.com/devongovett/unicode-trie/issues"},"license":"MIT","versions":{"0.1.0":{"name":"unicode-trie","version":"0.1.0","description":"Unicode Trie data structure for fast character metadata lookup, ported from ICU","devDependencies":{"mocha":"^1.20.1","coffee-script":"^1.7.1","coffee-coverage":"^0.4.2"},"scripts":{"prepublish":"make build","postpublish":"make clean","test":"mocha"},"repository":{"type":"git","url":"git://github.com/devongovett/unicode-trie.git"},"author":{"name":"Devon Govett","email":"devongovett@gmail.com"},"license":"MIT","bugs":{"url":"https://github.com/devongovett/unicode-trie/issues"},"homepage":"https://github.com/devongovett/unicode-trie","gitHead":"3a7f1f35099d8e289a7e81855facb4dd4d503cdf","_id":"unicode-trie@0.1.0","_shasum":"c78d5536c43f6ff023680fdd136bd1ce150b28f0","_from":".","_npmVersion":"1.4.15","_npmUser":{"name":"anonymous","email":"devongovett@gmail.com"},"maintainers":[{"name":"anonymous","email":"devongovett@gmail.com"}],"dist":{"shasum":"c78d5536c43f6ff023680fdd136bd1ce150b28f0","tarball":"http://repository.ncinga.com/nexus/content/groups/npm-all/unicode-trie/-/unicode-trie-0.1.0.tgz","integrity":"sha512-lmrhk8KdaqK8riZTzX0A3maAQ0Sx1bhJWuBIhKZE7bsCe2MAHlzz6nzTq+tPD5MblubkNL5svIi7ETmdTYNbZw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDp58XBETjaKR9EQZDS+A3AFExHrJeKO/g2ANB1zYZuJgIgThOLz6u1HPO5xhzhjtkNpImKGMp2yburCuL5nxlcV6w="}]},"directories":{}},"0.1.1":{"name":"unicode-trie","version":"0.1.1","description":"Unicode Trie data structure for fast character metadata lookup, ported from ICU","devDependencies":{"mocha":"^1.20.1","coffee-script":"^1.7.1","coffee-coverage":"^0.4.2"},"scripts":{"prepublish":"make build","postpublish":"make clean","test":"mocha"},"repository":{"type":"git","url":"git://github.com/devongovett/unicode-trie.git"},"author":{"name":"Devon Govett","email":"devongovett@gmail.com"},"license":"MIT","bugs":{"url":"https://github.com/devongovett/unicode-trie/issues"},"homepage":"https://github.com/devongovett/unicode-trie","gitHead":"bf8ee37fbcdf1bcc4829f442f54fc17353af5498","_id":"unicode-trie@0.1.1","_shasum":"d3178d37b794aa83a09b82d562269e92d0bab929","_from":".","_npmVersion":"1.4.15","_npmUser":{"name":"anonymous","email":"devongovett@gmail.com"},"maintainers":[{"name":"anonymous","email":"devongovett@gmail.com"}],"dist":{"shasum":"d3178d37b794aa83a09b82d562269e92d0bab929","tarball":"http://repository.ncinga.com/nexus/content/groups/npm-all/unicode-trie/-/unicode-trie-0.1.1.tgz","integrity":"sha512-FCqRV383GSl2//TfYc9r8irXG2M4N/dLkSEsqVCpAfRg2/m9QAnSuIWQ+DMzSfVw1pg6vw8qfybi8X/ZY8TcDA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHmG7lAHaIGSzPHYm++Dygc+bfQlMIHpcY6v35uaaDMSAiEAzD8kvFTEdKPLFjyFEKzScm/G+4q7s7RmWZZWDUd1Hps="}]},"directories":{}},"0.1.2":{"name":"unicode-trie","version":"0.1.2","description":"Unicode Trie data structure for fast character metadata lookup, ported from ICU","devDependencies":{"mocha":"^1.20.1","coffee-script":"^1.7.1","coffee-coverage":"^0.4.2"},"scripts":{"prepublish":"make build","postpublish":"make clean","test":"mocha"},"repository":{"type":"git","url":"git://github.com/devongovett/unicode-trie.git"},"author":{"name":"Devon Govett","email":"devongovett@gmail.com"},"license":"MIT","bugs":{"url":"https://github.com/devongovett/unicode-trie/issues"},"homepage":"https://github.com/devongovett/unicode-trie","gitHead":"19ef7d1d266ebd8201f1a58b1512927b2298b2bd","_id":"unicode-trie@0.1.2","_shasum":"bd3c528bc3360cafdf71f0863cbec29fc0e84ec8","_from":".","_npmVersion":"1.4.15","_npmUser":{"name":"anonymous","email":"devongovett@gmail.com"},"maintainers":[{"name":"anonymous","email":"devongovett@gmail.com"}],"dist":{"shasum":"bd3c528bc3360cafdf71f0863cbec29fc0e84ec8","tarball":"http://repository.ncinga.com/nexus/content/groups/npm-all/unicode-trie/-/unicode-trie-0.1.2.tgz","integrity":"sha512-mMF9CUstAEjwLZPsoCb79eXlglYsQkV+fPbssOiFxBdU3yFSnnv3r56HpV41BcAZ4SLsiGGrhWh/KneldWw/yg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCICkIlwkn+UcYX0oaptYureUAXtHzfi8b/e0mckb04NOjAiA7QGOMs1TGFnVguD5R2p249FkzpvDBiPgawnsYi7bspw=="}]},"directories":{}},"0.2.0":{"name":"unicode-trie","version":"0.2.0","description":"Unicode Trie data structure for fast character metadata lookup, ported from ICU","devDependencies":{"mocha":"^1.20.1","coffee-script":"^1.7.1","coffee-coverage":"^0.4.2"},"scripts":{"prepublish":"make build","postpublish":"make clean","test":"mocha"},"repository":{"type":"git","url":"git://github.com/devongovett/unicode-trie.git"},"author":{"name":"Devon Govett","email":"devongovett@gmail.com"},"license":"MIT","bugs":{"url":"https://github.com/devongovett/unicode-trie/issues"},"homepage":"https://github.com/devongovett/unicode-trie","dependencies":{"pako":"^0.2.5"},"gitHead":"f92933d4dfd79e595ed44acd290d907f271bb296","_id":"unicode-trie@0.2.0","_shasum":"201499baff6bb7a3774005e3cef0680b254db127","_from":".","_npmVersion":"1.4.28","_npmUser":{"name":"anonymous","email":"devongovett@gmail.com"},"maintainers":[{"name":"anonymous","email":"devongovett@gmail.com"}],"dist":{"shasum":"201499baff6bb7a3774005e3cef0680b254db127","tarball":"http://repository.ncinga.com/nexus/content/groups/npm-all/unicode-trie/-/unicode-trie-0.2.0.tgz","integrity":"sha512-1mWHyPnqQtopoLAGr0msYRuV+/RSmnXn/ABV7Jhj3qviZeqP2ffRgpCxsHIdaLkYX3QAGasIo5O1RhcYMlGBSQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIDw106YarJrvbkozXA96kfzq3nhudVBMKm4MWVZ6YdhAAiBsd2hfsIMwgZie4ys/5BB2aIrv5orCoGKGgHpXi111HQ=="}]},"directories":{}},"0.3.0":{"name":"unicode-trie","version":"0.3.0","description":"Unicode Trie data structure for fast character metadata lookup, ported from ICU","devDependencies":{"mocha":"^1.20.1","coffee-script":"^1.7.1","coffee-coverage":"^0.4.2"},"scripts":{"prepublish":"make build","postpublish":"make clean","test":"mocha"},"repository":{"type":"git","url":"git://github.com/devongovett/unicode-trie.git"},"author":{"name":"Devon Govett","email":"devongovett@gmail.com"},"license":"MIT","bugs":{"url":"https://github.com/devongovett/unicode-trie/issues"},"homepage":"https://github.com/devongovett/unicode-trie","dependencies":{"pako":"^0.2.5","tiny-inflate":"^1.0.0"},"gitHead":"3bd0aa2f8df5da6a08622f64f010c80924acb085","_id":"unicode-trie@0.3.0","_shasum":"d3dc02852c9c63990094fcbcd0e9126a79088414","_from":".","_npmVersion":"1.4.28","_npmUser":{"name":"anonymous","email":"devongovett@gmail.com"},"maintainers":[{"name":"anonymous","email":"devongovett@gmail.com"}],"dist":{"shasum":"d3dc02852c9c63990094fcbcd0e9126a79088414","tarball":"http://repository.ncinga.com/nexus/content/groups/npm-all/unicode-trie/-/unicode-trie-0.3.0.tgz","integrity":"sha512-zYLjFMP6uRJppbH3rMd9CvFIH5zUCJuCQtpQ2VbyLE4ZcjEFHwtiN8hahzqTt7QsSwn2YlUe5Djl1ur+4qMxfw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCUkeV2tLPAjAp0YsNdMXIVnVqhuEKfJ6E3lXS8gDBWsQIhAMbPqIim8Vlp3uZpOkSOYMzi0GltVpjrgdnsn86VFUbQ"}]},"directories":{}},"0.3.1":{"name":"unicode-trie","version":"0.3.1","description":"Unicode Trie data structure for fast character metadata lookup, ported from ICU","devDependencies":{"mocha":"^1.20.1","coffee-script":"^1.7.1","coffee-coverage":"^0.4.2"},"scripts":{"prepublish":"make build","postpublish":"make clean","test":"mocha"},"repository":{"type":"git","url":"git://github.com/devongovett/unicode-trie.git"},"author":{"name":"Devon Govett","email":"devongovett@gmail.com"},"license":"MIT","bugs":{"url":"https://github.com/devongovett/unicode-trie/issues"},"homepage":"https://github.com/devongovett/unicode-trie","dependencies":{"pako":"^0.2.5","tiny-inflate":"^1.0.0"},"gitHead":"0e19655c9c291c133e577bcacd2c25b7c82455f7","_id":"unicode-trie@0.3.1","_shasum":"d671dddd89101a08bac37b6a5161010602052085","_from":".","_npmVersion":"2.14.7","_nodeVersion":"4.2.1","_npmUser":{"name":"anonymous","email":"devongovett@gmail.com"},"dist":{"shasum":"d671dddd89101a08bac37b6a5161010602052085","tarball":"http://repository.ncinga.com/nexus/content/groups/npm-all/unicode-trie/-/unicode-trie-0.3.1.tgz","integrity":"sha512-WgVuO0M2jDl7hVfbPgXv2LUrD81HM0bQj/bvLGiw6fJ4Zo8nNFnDrA0/hU2Te/wz6pjxCm5cxJwtLjo2eyV51Q==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCymSEpDp2W8fh4UoNzYD/RcL0eIN2Cmn4I4IH6BkKLaAIhAL36g4JrCJ1erxYsLOgBGrud2EXlDZNnHKeDTIZOguKq"}]},"maintainers":[{"name":"anonymous","email":"devongovett@gmail.com"}],"directories":{}},"1.0.0":{"name":"unicode-trie","version":"1.0.0","description":"Unicode Trie data structure for fast character metadata lookup, ported from ICU","devDependencies":{"mocha":"^6.1.4","nyc":"^14.1.1"},"scripts":{"test":"mocha","coverage":"nyc mocha"},"repository":{"type":"git","url":"git://github.com/devongovett/unicode-trie.git"},"author":{"name":"Devon Govett","email":"devongovett@gmail.com"},"license":"MIT","bugs":{"url":"https://github.com/devongovett/unicode-trie/issues"},"homepage":"https://github.com/devongovett/unicode-trie","dependencies":{"pako":"^0.2.5","tiny-inflate":"^1.0.0"},"gitHead":"cc87aecf5f5222fbc2f9cfa60904c29c91156826","_id":"unicode-trie@1.0.0","_nodeVersion":"12.0.0","_npmVersion":"6.9.0","dist":{"integrity":"sha512-v5raLKsobbFbWLMoX9+bChts/VhPPj3XpkNr/HbqkirXR1DPk8eo9IYKyvk0MQZFkaoRsFj2Rmaqgi2rfAZYtA==","shasum":"f649afdca127135edb55ca0ad7c8c60656d92ad1","tarball":"http://repository.ncinga.com/nexus/content/groups/npm-all/unicode-trie/-/unicode-trie-1.0.0.tgz","fileCount":7,"unpackedSize":47565,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdBvB8CRA9TVsSAnZWagAAb+EP/0VjAn/NUh0iJQUmakV9\n5Xb/Hj/gxp7C4kT9Vl9M/ippwN8idOLuM3bzWo2uHjSWWGg+IV2spgfTg7VB\nHzYiOnZOL9nhJP0Ey27m8/bu2A/hKkbk8pwhdKTTEP0LhK7AeZCL60CQADuv\n5jaWeDO6rudrreoF5rqUdp3GCP+02WdaLe41gQCeL3eQbF6bQ/CMI1bXPFKP\nUUPMWLs7LKzAa2M01QkkoNXcI3144tSYyiyd/c/AZzIG+c78Oqgd2mI2wLKG\n6nPS4Wq+xK0KoywxTt6AJBJxjTSr5v7e9yDLsaFC9iTaroS3vnaKUWPw5HWM\nCymeVKJ43wvaTg7KACCZGy+KIKr2NOfFeCnGC+FZVJPe+1GPbQxTOqXn9bBc\nBxXpf5d4N1qcYqDOyw+0wiY2u0ZRmI8lInXLyNGcRGBmqozl2FuIW+2nCt9M\nBZqVkij56/nIO06kg402eFtJX97YBmKueOhg8sq09oUN34Dgz8eOqQhGZUGY\nGbsTPe+0ja5mc2pnbmJZwCgHYP2UN9rPdje9I20srOmScEAeSOUXn/QL3qMo\noI44Y5Zx31piF1tW07oezKnuAWtueDqmQGO20O/R2x/aGwaNxY0BbpS+9Wyh\nCwgyvWKji6Iw7bI6L1/0AmmBxN8Qei3OdDdXTTLcxhl0FmPQzkicOLdaIbr1\nxN+d\r\n=CGvb\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDvtYmUJOp1xyMEK+1Yf1tqJW/KLjn+znQLQTzqonYNDwIgP9dmwGHqvrFh/Er0O70QwYNag8wM7g2SeL4rsEbuOzA="}]},"maintainers":[{"name":"anonymous","email":"devongovett@gmail.com"}],"_npmUser":{"name":"anonymous","email":"devongovett@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/unicode-trie_1.0.0_1560735867452_0.19049912551356862"},"_hasShrinkwrap":false},"2.0.0":{"name":"unicode-trie","version":"2.0.0","description":"Unicode Trie data structure for fast character metadata lookup, ported from ICU","devDependencies":{"mocha":"^6.1.4","nyc":"^14.1.1"},"scripts":{"test":"mocha","coverage":"nyc mocha"},"repository":{"type":"git","url":"git://github.com/devongovett/unicode-trie.git"},"author":{"name":"Devon Govett","email":"devongovett@gmail.com"},"license":"MIT","bugs":{"url":"https://github.com/devongovett/unicode-trie/issues"},"homepage":"https://github.com/devongovett/unicode-trie","dependencies":{"pako":"^0.2.5","tiny-inflate":"^1.0.0"},"gitHead":"916656f45abab135face2b53ee5e32488cc9b47f","_id":"unicode-trie@2.0.0","_nodeVersion":"12.10.0","_npmVersion":"6.10.3","dist":{"integrity":"sha512-x7bc76x0bm4prf1VLg79uhAzKw8DVboClSN5VxJuQ+LKDOVEW9CdH+VY7SP+vX7xCYQqzzgQpFqz15zeLvAtZQ==","shasum":"8fd8845696e2e14a8b67d78fa9e0dd2cad62fec8","tarball":"http://repository.ncinga.com/nexus/content/groups/npm-all/unicode-trie/-/unicode-trie-2.0.0.tgz","fileCount":8,"unpackedSize":48887,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJd0dQ9CRA9TVsSAnZWagAA7I0P/i+ba+NSzZCXU3gR4bO+\n8r/nKHFVtdNu0O2Dvadw4/aZpFbOqk96PBNY7ZPKCE5zxLwQV2pC/uabfWjC\nZ5Ye9wJ0JOyPNylkDClZ5PyskS2n23QPcvDG+DG90kTzchlxMVs4UtviiYNd\n9589G7B1A4Bcc8sujB5X5vey00fZ5f8gOYP8iG9OKhCrf0C9jHBnqWG1pKU0\nabYVUSFSj3BU8MMOnfwRXlMTtuZoS+hCU3qnzABSVyPNo+6c+LIsA8lfbyLu\n1joXtzZHaCSmi8wnas/vbuKSUCUwdKculLI6vyB2PP84PGUIeR8Zbk+mWnYC\n1SyDKQy1aCSaiojaE2Fb4AY7pwQrUzJpZt7oUCZi9piRlTSRIF0RB0/DyM4F\nsf/wiZPJGWdO7JdAO76QxMKy/YjWLF0ql1ApWfUcpM7fSUQccvMMCakUEYqp\nv8u0azlkW6Kfe4DWBlUDG0MJpiAnbYd9iE9/Tw1GhZ35aGYQDT+rv49fBWKR\nj0hqB0RTAwoVCmnUgIZedyY1caVcgOMf3qDXYQn4/QuWmiPfNiiefzwKOwNw\nv/J7dyRD3dBPfrVxdFe0q2abZ4JyInVRK42R3MUmIcHDxhe4nPEHNovBWdE8\nonhcxSKGXd6mcPHDAuUtNji2nmkmFI257c1gkKY/uM4UyNJSaDVX3UCBlyPW\ni5ZZ\r\n=5RNF\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCCpMsu+nlHL6hNEVRQhE1BZL8l73spmzyeWUwCeiPmZQIgZUgcZNiE6trQlEwWCRIjaw6L07/DPczMuTk9nHrHSzM="}]},"maintainers":[{"name":"anonymous","email":"devongovett@gmail.com"}],"_npmUser":{"name":"anonymous","email":"devongovett@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/unicode-trie_2.0.0_1574032445335_0.19689724171467815"},"_hasShrinkwrap":false}},"name":"unicode-trie","time":{"modified":"2022-06-28T04:27:55.208Z","created":"2014-07-14T02:28:53.394Z","0.1.0":"2014-07-14T02:28:53.394Z","0.1.1":"2014-07-14T03:11:05.640Z","0.1.2":"2014-07-14T04:07:10.876Z","0.2.0":"2014-12-16T21:21:15.043Z","0.3.0":"2015-02-15T02:21:38.162Z","0.3.1":"2015-11-11T04:33:33.381Z","1.0.0":"2019-06-17T01:44:27.616Z","1.0.1":"2019-11-17T20:06:34.293Z","2.0.0":"2019-11-17T23:14:05.523Z"},"readmeFilename":"README.md","homepage":"https://github.com/devongovett/unicode-trie"}