# bd-wubi **Repository Path**: wosperry/bd-wubi ## Basic Information - **Project Name**: bd-wubi - **Description**: No description available - **Primary Language**: Unknown - **License**: Apache-2.0 - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-12-11 - **Last Updated**: 2025-12-18 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # bd-wubi bd-wubi 是围绕共享数据集构建的多语言 SDK 计划,该数据集来源于上游 rime-wubi 词表。 ## 许可证 bd-wubi 项目以 Apache License 2.0 发布。源自 rime-wubi 的词典数据保留其原有的 LGPL 授权;请查阅 `licenses/` 目录获取署名信息。 ## 使用 .NET SDK 首个参考实现位于 `src/dotnet/BD.Wubi`,会读取内嵌 JSON 数据集并通过线程安全的 LRU 缓存暴露 `WubiDictionary`,同时支持正向(文本 → 编码)与反向(编码 → 文本)查询。日常使用只需在项目中安装 NuGet 包(示例:`dotnet add package BD.Wubi`),即可直接调用: ```csharp using BD.Wubi; BdWubi.Initialize(); // 可选;若未调用,首次查询会自动初始化 var forward = BdWubi.GetByText("工"); // → [{ Text = "工", Code = "a", ... }] var reverse = BdWubi.GetByCode("a"); ``` 需要加载自定义数据集时,可调用 `WubiDictionary.Initialize(string path)` 或通过环境变量指向 JSON。基准测试(`src/dotnet/BD.Wubi.Benchmark`)与 xUnit 测试(`src/dotnet/BD.Wubi.UnitTest`)用于演示与验证 API 行为。 ## 使用 Python SDK Python 版本位于 `src/python`,内置 JSON 数据集并暴露线程安全的查询与猜码 API。 ```bash pip install bd-wubi ``` ```python import bd_wubi bd_wubi.initialize() # 可选;首次查询会自动初始化 forward = bd_wubi.get_by_text("工") reverse = bd_wubi.get_by_code("a") guess = bd_wubi.guess_code("发展趋势") ``` `initialize` 接受 `WubiDictionaryOptions`(缓存大小、猜码缓存开关、dataset_path),也可通过 `BD_WUBI_JSON`、`BD_WUBI_ROOT` / `BDWUBI_ROOT` 传入自定义数据集。项目附带 pytest 与基准脚本(`pip install -e '.[test]' && pytest` / `python benchmarks/benchmark_wubi.py`)。 ## 使用 Node.js SDK `src/node` 目录中提供两份可独立发布的实现,均默认内置 JSON 数据集并在首次查询时自动初始化: | 包名 | 目录 | 特性 | | --- | --- | --- | | `@bd-wubi/sdk` | `src/node/js` | 纯 JavaScript(CommonJS)版本。 | | `@bd-wubi/sdk-ts` | `src/node/ts` | TypeScript 版本,附带类型声明。 | ```bash npm install @bd-wubi/sdk # 或 npm install @bd-wubi/sdk-ts ``` ```js const bdWubi = require('@bd-wubi/sdk'); // TypeScript 版本可使用 import bdWubi.initialize(); // 可选;若未调用,首次查询会自动初始化 const forward = bdWubi.getByText('工'); const reverse = bdWubi.getByCode('a'); const guess = bdWubi.guessCode('发展趋势'); ``` `initialize` 支持 `{ cacheCapacity, enableGuessCache, datasetPath }`,也可通过 `BD_WUBI_JSON`、`BD_WUBI_ROOT` / `BDWUBI_ROOT` 指向自定义 JSON。