Rust Algorithm Kernel + Toolbox

NewTool开发者工具箱

内核优先的开发者工具箱:底层是一个 Rust 写的算法内核(CLI newtool),上层是 Tauri 2 桌面 App 的 React 外壳。同一个内核同时服务三个消费者——AI(skill 技能包 / MCP)、人类(桌面 App)、浏览器(wasm)。

newtool
01$ newtool list --json
02{ "count": 3, "algorithms": ["base64", "jwt.decode", "uuid.v7"] }
03
04$ newtool run jwt.decode --params '{"token":"eyJhbGci..."}'
05{ "ok": true, "data": { "header": { "alg": "HS256" } } }
$

算法只写一次,人和 AI 用的是同一份实现。

Design

设计要点

这个工具为什么这么做,以及这样做换来了什么。

内核优先

算法全部 Rust 实现,UI 只是壳。任何工具逻辑都不在 UI 层重写,全部走 Rust 内核或 React 呈现层,避免多端行为漂移。

AI 原生

以 skills 技能包分发给 WorkBuddy / Codex / Claude Code,AI 直接 list / describe / run,无需人类打开界面。

形态声明

tool.toml 声明 app / cli / web-wasm / web-server 四种生效形态,清单是可见性的唯一来源。

零依赖接入

远程经 MCP 直连 newtool-server,不装本地二进制也能调用全部算法能力。

Highlights

能力一览

  • Rust 算法内核是单一事实源:清单即契约,build.rs 拦截清单与代码漂移
  • 三个消费者共用内核:AI skill 包、Tauri 桌面 App、浏览器 wasm 绑定
  • 远程场景经 MCP(streamable HTTP)零本地二进制接入
  • CLI 契约:stdin → stdout、统一 envelope、可 discover / describe
  • 工具声明式定义:tool.toml 描述参数与形态,构建脚本生成页面与注册表
  • 自研引擎库独立成 crate:cipher / css / json / diff / yaml / id / text
Metrics

设计指标

每一条都对应实现里的一个具体决定。

算法实现来源
1 处

全部在 newtool-core,UI 层不重写任何算法逻辑

消费者
3 类

AI(技能包 / MCP)、人(桌面 App)、浏览器(wasm)

生效形态
4 种

tool.toml 声明 app / cli / web-wasm / web-server

自研引擎
7 个

cipher / css / json / diff / yaml / id / text 独立 crate

漂移拦截
构建期

清单与代码不一致时构建直接失败,不进入运行时

本地依赖
0

远程场景经 MCP 直连,不装本地二进制也能用

Platforms

平台支持

内核与界面分离之后,每个平台的支持程度可以单独推进。

macOS / Windows / Linux
完整

Tauri 2 桌面 App,React 外壳共用一份内核

CLI
完整

newtool 命令,stdin → stdout 统一 envelope

浏览器 (WASM)
完整

内核编译为 wasm,离线可用,无需安装

MCP
完整

streamable HTTP,远程零本地二进制接入

AI 技能包
完整

skills/newtool-toolbox 分发给 WorkBuddy / Codex / Claude Code

Comparison

与常见做法的差别

差别通常不在功能表上,而在「边界画在哪里」。

算法实现
Rust 内核单一事实源,清单即契约,构建期拦截漂移
每个端各写一遍,行为随时间逐渐不一致
AI 接入
技能包 + MCP,list / describe / run 三步,结构化输出
AI 只能靠截图或让用户手动操作界面
可见性来源
tool.toml 声明式定义,清单是唯一事实来源
靠代码注释和文档说明,容易过期
安装成本
远程走 MCP,零本地二进制;本地也有 CLI 与桌面 App
必须先装客户端才能用
离线能力
内核可编译为 wasm,浏览器内断网可用
纯云端服务,无网即不可用
Commands

命令速览

完整手册见 CLI 手册页。全部命令默认输出结构化结果。

完整命令表
newtool list

列出全部算法与生效形态

--json--status rust|todo
newtool describe <algo>

查看算法参数定义、形态与示例

--json
newtool run <algo>

执行算法,参数经 stdin 或 --params 传入

--params--stdin--json
newtool mcp serve

以 MCP streamable HTTP 方式暴露全部算法

--port--host
In Practice

实际输出

newtool
01$ newtool list --json
02{ "count": 3, "algorithms": ["base64", "jwt.decode", "uuid.v7"] }
03
04$ newtool run jwt.decode --params '{"token":"eyJhbGci..."}'
05{ "ok": true, "data": { "header": { "alg": "HS256" } } }
Source

代码模块

4 组、14 个模块,全部来自仓库真实目录结构。

Rust · Tauri 2 · React · TypeScript · WASM · MCP · TOML
内核

算法只写一次的地方。

crates/newtool-core

纯函数算法内核,无 IO,可被 CLI / 桌面 / wasm 同时调用

crates/newtool-core
crates/newtool-cli

CLI 契约:stdin → stdout、统一 envelope、可 discover / describe

crates/newtool-cli
引擎库

各自独立成 crate,可单独复用。

newtool-cipher

加解密与编码类算法

libs/newtool-cipher
newtool-css

CSS 处理与格式化

libs/newtool-css
newtool-json / newtool-yaml

JSON 与 YAML 解析、转换与校验

libs/newtool-{json,yaml}
newtool-diff

文本差异比对

libs/newtool-diff
newtool-id

ID 生成(UUID v7 等)

libs/newtool-id
newtool-text

文本处理与转换

libs/newtool-text
清单与形态

可见性的唯一来源是清单,不是代码注释。

manifests/algorithms.toml

算法单一事实源,status = rust 强制与 registry 同步

manifests/algorithms.toml
build.rs 守卫

构建期拦截清单与代码漂移,漂移即失败

crates/*/build.rs
tool.toml

声明式定义工具参数与四种生效形态:app / cli / web-wasm / web-server

tools/*/tool.toml
消费者

同一个内核,三个消费者。

Tauri 2 桌面壳

React 外壳 + kernel-client 三 adapter(tauri / http / wasm)

apps/desktop
skills/newtool-toolbox

技能包分发给 WorkBuddy / Codex / Claude Code,AI 直接调用

skills/newtool-toolbox
MCP server

streamable HTTP,远程零本地二进制接入

newtool-server
其他工具
Get in touch

把身份、Agent 与私域的复杂度,交给一套可治理的内核

无论你是要替换现有的 IAM、搭建 Agent 中台,还是想把企微私域真正运营起来——先从一次 30 分钟的架构沟通开始。我们会先判断问题是不是我们擅长解的那类,不合适会直接说。