🚀 Help me to become a full-time open-source developer by sponsoring me on Github
rust-pinyin Node.js 版本,不支持 web.
- 超高性能
- 无
postinstall
与node-gyp
,纯净安装无烦恼 - 跨
Node.js
版本支持,升级 Node 版本无需rebuild/reinstall
-
linux alpine
支持 - 分词再转拼音
- 原生异步支持,可运行在
libuv
线程池中,不阻塞主线程
yarn add @napi-rs/pinyin
node12 | node14 | node16 | node17 | |
---|---|---|---|---|
Windows x64 | ✓ | ✓ | ✓ | ✓ |
Windows x32 | ✓ | ✓ | ✓ | ✓ |
Windows arm64 | ✓ | ✓ | ✓ | ✓ |
macOS x64 | ✓ | ✓ | ✓ | ✓ |
macOS arm64 | ✓ | ✓ | ✓ | ✓ |
Linux x64 gnu | ✓ | ✓ | ✓ | ✓ |
Linux x64 musl | ✓ | ✓ | ✓ | ✓ |
Linux arm gnu | ✓ | ✓ | ✓ | ✓ |
Linux arm64 gnu | ✓ | ✓ | ✓ | ✓ |
Linux arm64 musl | ✓ | ✓ | ✓ | ✓ |
Android arm64 | ✓ | ✓ | ✓ | ✓ |
Android armv7 | ✓ | ✓ | ✓ | ✓ |
FreeBSD x64 | ✓ | ✓ | ✓ | ✓ |
与 pinyin 性能对比
Benchmark over pinyin
and pinyin-pro
package:
Note
pinyin-pro
doesn't support segment feature.
System info
OS: macOS 12.3.1 21E258 arm64
Host: MacBookPro18,2
Kernel: 21.4.0
Shell: zsh 5.8
CPU: Apple M1 Max
GPU: Apple M1 Max
Memory: 9539MiB / 65536MiB
Running "Short input without segment" suite...
Progress: 100%
@napi-rs/pinyin:
2 183 922 ops/s, ±0.32% | fastest
pinyin-pro:
1 603 486 ops/s, ±0.10% | slowest, 26.58% slower
node-pinyin:
2 150 629 ops/s, ±0.21% | 1.52% slower
Finished 3 cases!
Fastest: @napi-rs/pinyin
Slowest: pinyin-pro
Running "Long input without segment" suite...
Progress: 100%
@napi-rs/pinyin:
551 ops/s, ±0.55% | fastest
pinyin-pro:
182 ops/s, ±11.67% | slowest, 66.97% slower
node-pinyin:
226 ops/s, ±14.00% | 58.98% slower
Finished 3 cases!
Fastest: @napi-rs/pinyin
Slowest: pinyin-pro
Running "Short input with segment" suite...
Progress: 100%
@napi-rs/pinyin:
863 839 ops/s, ±0.61% | fastest
node-pinyin:
710 893 ops/s, ±0.58% | slowest, 17.71% slower
Finished 2 cases!
Fastest: @napi-rs/pinyin
Slowest: node-pinyin
Running "Long input with segment" suite...
Progress: 100%
@napi-rs/pinyin:
304 ops/s, ±1.99% | fastest
node-pinyin:
8 ops/s, ±2.85% | slowest, 97.37% slower
Finished 2 cases!
Fastest: @napi-rs/pinyin
Slowest: node-pinyin
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>
是否开启分词。输入有多音字时,开启分词可以获得更准确结果。
-