@cto.af/unicode-trie-runtime (英语)
快速Unicode 字符元数据搜索的数据结构,从 ICU 移植 此版本是从 https://github.com/foliojs/unicode-trie 互联网档案馆的存檔,存档日期2013-12-22 财务报告和审定财务报表 稍有现代化.
背景情况
当执行许多Unicode算法,如文本分割时, 正常化、badi处理等,快速访问字符元数据 这对于良好的业绩至关重要。 超过一百万个代码点 Unicode 标准,其中许多在向上看时产生相同的结果, 因此一个数组或散列表是不合适的 - 这些数据结构是 很快,但需要很多记忆。 数据一般为: 按区域分组, 这样您可以进行二进制搜索, 但这不是 足够快的应用.
这个 Unicode 国际组件 (ICU)项目 提出一个基于 尝试 提供快速访问 改为 Unicode 元数据。 范围数据被预编译为序列 并平整了三进制,然后在运行时用于寻找必要的 数据。 根据我自己的测试,这至少要快50% 而非二进制搜索,不需要太多的额外内存.
安装
npm install @cto.af/unicode-trie-runtime
打造三重奏
使用 @cto.af/unicode-trie 用于构建三重模块的软件包.
使用预编译的 Trie
一旦你建造了一个预编组的三进制,你可以把它装入
UnicodeTrie 类,是只读的
翠丝 从那里,你可以查找值.
import {UnicodeTrie} from '@cto.af/unicode-trie-runtime';
import fs from 'node:fs'
// load serialized trie from binary file
const data = fs.readFileSync('data.trie');
const trie = new UnicodeTrie(data);
// lookup a value
trie.get(0x4567); // => 99 or 'FOO' (if a string was stored)
许可证
麻省理工学院