Package Exports
- @napi-rs/pinyin
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (@napi-rs/pinyin) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
@napi-rs/pinyin
rust-pinyin NodeJS 版本,不支持 web.
功能
- 超高性能
- 无
postinstall
与node-gyp
,纯净安装无烦恼 - 跨
NodeJS
版本支持,升级 Node 版本无需rebuild/reinstall
linux alpine
支持- 分词再转拼音
- 原生异步支持,可运行在
libuv
线程池中,不阻塞主线程
安装
yarn add @napi-rs/pinyin
系统/NodeJS 版本
系统
Linux (x64/aarch64) | macOS (x64/aarch64) | Windows x64 |
---|---|---|
✓ | ✓ | ✓ |
NodeJS
Node10 | Node 12 | Node14 | Node15 |
---|---|---|---|
✓ | ✓ | ✓ | ✓ |
与 pinyin 性能对比
Benchmark over pinyin
package:
Running "Short input without segment" suite...
Progress: 100%
@napi-rs/pinyin:
962 035 ops/s, ±0.68% | fastest
node-pinyin:
434 241 ops/s, ±0.66% | slowest, 54.86% slower
Finished 2 cases!
Fastest: @napi-rs/pinyin
Slowest: node-pinyin
Running "Long input without segment" suite...
Progress: 100%
@napi-rs/pinyin:
59 ops/s, ±0.83% | fastest
node-pinyin:
2 ops/s, ±3.30% | slowest, 96.61% slower
Finished 2 cases!
Fastest: @napi-rs/pinyin
Slowest: node-pinyin
Running "Short input with segment" suite...
Progress: 100%
@napi-rs/pinyin:
530 228 ops/s, ±1.94% | fastest
node-pinyin:
307 788 ops/s, ±0.83% | slowest, 41.95% slower
Finished 2 cases!
Fastest: @napi-rs/pinyin
Slowest: node-pinyin
Running "Long input with segment" suite...
Progress: 100%
@napi-rs/pinyin:
152 ops/s, ±1.09% | fastest
node-pinyin:
3 ops/s, ±3.08% | slowest, 98.03% slower
Finished 2 cases!
Fastest: @napi-rs/pinyin
Slowest: node-pinyin
✨ Done in 53.36s.
用法
同步
import { pinyin } from '@napi-rs/pinyin'
console.log(pinyin('中心')) // [ [ 'zhōng' ], [ 'xīn' ] ]
异步
import { asyncPinyin } from '@napi-rs/pinyin'
asyncPinyin('中心').then(console.log.bind(console)) // [ [ 'zhōng' ], [ 'xīn' ] ]
参数
input
<string>
需要转拼音的中文字符串
options?
<Options>
转拼音参数
Options.heteronym?
<boolean>
是否处理多音字, 默认
false
。如果为true
,返回类型为string[][]/Promise<string[][]>
, 如果为false
返回类型为string[]/Promise<string[]>
Options.style?
<PINYIN_STYLE>
拼音风格,默认为
PINYIN_STYLE.WithTone
可选值为:Plain
普通风格,不带声调WithTone
带声调的风格WithToneNum
声调在各个拼音之后,使用数字 1-4 表示的风格WithToneNumEnd
声调在拼音最后,使用数字 1-4 表示的风格FirstLetter
首字母风格
Options.segment?
<boolean>
是否开启分词。输入有多音字时,开启分词可以获得更准确结果。