# jieba-wasm

> WASM binding to jieba-rs

Latest version **2.4.0** (published 2025-09-16) · MIT license · 0 weekly downloads

## Install

```sh
npm install jieba-wasm
pnpm add jieba-wasm
yarn add jieba-wasm
bun add jieba-wasm
```

## Health

**Score 55/100 (C)** — status: stable.

Positive: has types; esm support; no vulnerabilities; has provenance; high quality score.

Warnings: low downloads; large bundle.

Negative: stale.

## Facts

| | |
|---|---|
| Version | 2.4.0 |
| Published | 2025-09-16 |
| First published | 2021-04-08 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | bundled |
| Module format | ESM + CommonJS |
| Dependencies | 0 |
| Unpacked size | 15.4 MB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| Provenance | attested (GitHub Actions) |
| GitHub stars | 102 |
| Author | fengkx |
| Maintainers | fengkx |
| Keywords | wasm, jieba, chinese, segment, 中文分词 |

## Links

- npm: https://www.npmjs.com/package/jieba-wasm
- Repository: https://github.com/fengkx/jieba-wasm
- Homepage: https://github.com/fengkx/jieba-wasm#readme
- Issues: https://github.com/fengkx/jieba-wasm/issues
- npm.io page: https://npm.io/package/jieba-wasm

## Recent versions

- 2.4.0 (latest) — 2025-09-16
- 2.1.0-beta.1 (beta) — 2024-07-03
- 2.3.0 — 2025-07-10
- 2.2.0 — 2024-10-10
- 2.1.1 — 2024-07-30
- 2.1.0 — 2024-07-03
- 2.0.1 — 2024-07-02
- 2.0.0 — 2024-06-07
- 1.0.0 — 2024-05-21
- 0.0.3-0 — 2023-03-04
- 0.0.2 — 2021-04-09
- 0.0.1 — 2021-04-08

## README

# jieba-wasm

> [jieba-rs](https://github.com/messense/jieba-rs) 的 wasm binding

_编译成 WASM 摆脱编译 Node Addon 的烦恼_

# Usage
## Node.js
```js
const {
  cut,
  cut_all,
  cut_for_search,
  tokenize,
  add_word,
} = require("jieba-wasm");
cut("中华人民共和国武汉市长江大桥", true);
// [ '中华人民共和国', '武汉市', '长江大桥' ]
cut_all("中华人民共和国武汉市长江大桥", true);
/*
[
  '中',         '中华',
  '中华人民',   '中华人民共和国',
  '华',         '华人',
  '人',         '人民',
  '人民共和国', '民',
  '共',         '共和',
  '共和国',     '和',
  '国',         '武',
  '武汉',       '武汉市',
  '汉',         '市',
  '市长',       '长',
  '长江',       '长江大桥',
  '江',         '大',
  '大桥',       '桥'
]
*/
cut_for_search("中华人民共和国武汉市长江大桥", true);
/*
[
  '中华',     '华人',
  '人民',     '共和',
  '共和国',   '中华人民共和国',
  '武汉',     '武汉市',
  '长江',     '大桥',
  '长江大桥'
]
*/
tokenize("中华人民共和国武汉市长江大桥", "default", true);
/*
[
  { word: '中华人民共和国', start: 0, end: 7 },
  { word: '武汉市', start: 7, end: 10 },
  { word: '长江大桥', start: 10, end: 14 }
]
*/
tokenize("中华人民共和国武汉市长江大桥", "search", true);
/*
[
  { word: '中华', start: 0, end: 2 },
  { word: '华人', start: 1, end: 3 },
  { word: '人民', start: 2, end: 4 },
  { word: '共和', start: 4, end: 6 },
  { word: '共和国', start: 4, end: 7 },
  { word: '中华人民共和国', start: 0, end: 7 },
  { word: '武汉', start: 7, end: 9 },
  { word: '武汉市', start: 7, end: 10 },
  { word: '长江', start: 10, end: 12 },
  { word: '大桥', start: 12, end: 14 },
  { word: '长江大桥', start: 10, end: 14 }
]
*/

cut("桥大江长市汉武的省北湖国和共民人华中");
/*
[
  '桥', '大江', '长',
  '市', '汉',   '武',
  '的', '省',   '北湖',
  '国', '和',   '共',
  '民', '人',   '华中'
]
*/
["桥大江长", "市汉武", "省北湖", "国和共民人华中"].map((word) => {
  add_word(word);
});
cut("桥大江长市汉武的省北湖国和共民人华中");
// ["桥大江长", "市汉武", "的", "省北湖", "国和共民人华中"];

with_dict("自动借书机 1 n"); // 导入自定义字典，词条格式：词语 词频 词性（可选），以换行符分隔
cut("你好我是一个自动借书机");
// ["你好", "我", "是", "一个", "自动借书机"];
```

## Browser
```ts
import init, { cut } from 'jieba-wasm';

// 重要：使用前必须初始化
await init();

cut("中华人民共和国武汉市长江大桥", true);
// [ '中华人民共和国', '武汉市', '长江大桥' ]
```

# 示例 Demo

## 安装依赖

安装 wasm-bindgen 和 wasm-opt

```bash
cargo install wasm-bindgen-cli --locked
cargo install wasm-opt --locked
```

## 前期准备

首先保证存在 rust 环境，然后运行以下命令
```bash
npm run build:cargo
npm run build
```

## 运行浏览器端示例
```bash
cd demo/web
npm install
npm run dev
```

# Piror Art

https://github.com/messense/jieba-rs

---
_Source: https://npm.io/package/jieba-wasm · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
