Rust + TypeScript

TypeScript Rust
双向 FFI

极简注解,双向互调。用两个宏打通 TypeScript 与 Rust 的边界,自动生成类型,零配置构建。

#[tsffi::callback]
fn on_progress(pct: f64) -> bool {
    println!("进度: {}%", pct);
    pct < 100.0
}

#[tsffi::export]
fn process_file(path: String) -> Result<String> {
    let data = fs::read_to_string(&path)?;
    Ok(transform(&data))
}

核心特性

双向 FFI

TypeScript 调用 Rust,Rust 也能回调 TypeScript。真正的双向互调。

极简注解

#[tsffi::callback] + #[tsffi::export],零样板代码。

自动类型生成

Rust 类型自动映射为 TypeScript 类型定义,无需手写 .d.ts。

零配置构建

开箱即用的构建流程,无需手动配置 napi 或 wasm。

全平台预编译

预编译 Windows / macOS / Linux 原生二进制,安装即用。

异常隔离

Rust panic 被 PanicHook 捕获,不会崩溃 Node.js 进程。

对比:TSFFI.B vs node-rs

特性TSFFI.Bnode-rs
调用方向TS <-> Rust 双向TS -> Rust 单向
回调支持#[tsffi::callback] 原生支持需手动绑定
类型生成自动生成 .d.ts需手动维护
构建配置零配置需配置 napi
异常隔离PanicHook 捕获进程崩溃
预编译二进制全平台部分平台

性能

基于双向回调的基准测试

0
ops/sec
57.34
平均延迟 (µs)

开始构建

一行命令安装 CLI,五分钟启动项目

npm install -g @tsffib/cli