TSFFI.B 的完整接口参考
将 Rust 函数声明为 TypeScript 可调用的回调。TS 端注册回调后,Rust 可主动调用。
#[tsffi::callback]
fn on_progress(pct: f64) -> bool {
pct < 100.0
}declare function onProgress(
callback: (pct: number) => boolean
): void;将 Rust 函数导出为 TypeScript 可调用的函数。自动处理类型转换和错误映射。
#[tsffi::export]
fn process_file(path: String) -> Result<String> {
let data = fs::read_to_string(&path)?;
Ok(transform(&data))
}declare function processFile(
path: string
): string;将 Rust 结构体导出为 TypeScript 接口。所有字段自动映射类型。
#[tsffi::struct]
pub struct TaskResult {
pub id: u32,
pub name: String,
pub status: TaskStatus,
}interface TaskResult {
id: number;
name: string;
status: TaskStatus;
}将 Rust 枚举导出为 TypeScript 联合类型。支持简单枚举和带数据枚举。
#[tsffi::enum]
pub enum TaskStatus {
Pending,
Running,
Completed,
Failed(String),
}type TaskStatus =
| "Pending"
| "Running"
| "Completed"
| { Failed: string };| Rust | TypeScript |
|---|---|
| i32 | number |
| i64 | bigint |
| f64 | number |
| bool | boolean |
| String | string |
| Vec<u8> | Buffer |
| Vec<T> | T[] |
| Option<T> | T | null |
| Result<T, E> | T | Error |
| HashMap<K, V> | Record<K, V> |
tsffib init <name> --template=<t>使用指定模板初始化新项目tsffib dev启动开发模式,文件变更自动重新构建tsffib build构建生产版本原生模块tsffib template列出所有可用项目模板回调句柄,管理 TypeScript 函数在 Rust 侧的引用生命周期。自动释放,防止内存泄漏。
回调调度器,控制回调执行队列与并发策略。支持优先级排序和背压控制。
Rust panic 捕获钩子。将 panic 转换为 JavaScript Error,阻止 Node.js 进程崩溃。
生命周期管理器,追踪原生资源的创建与销毁,确保跨语言资源正确释放。