Tauri 式架构 · 纯 TypeScript · ~2MB 运行时

为 TypeScript 而生的
桌面应用框架

Ztron 用极小的 txiki.js 运行时搭配系统 WebView:原生窗口、托盘、菜单、对话框与 25 个官方插件——都藏在你早已熟悉的 Tauri 兼容 API 背后。

ztron — dev
$ ztron init my-app
✓ 已生成 src/main.ts + frontend/
$ cd my-app && ztron dev
✓ vite dev server + host + backend
✓ 窗口已打开 — hello from Ztron

桌面应用所需,一应俱全

为 Web 开发者而生——从原生 host 绑定到前端 API,整条技术栈都是 TypeScript。

轻量运行时

txiki.js(约 2MB)取代 Node 与 Electron 捆绑:应用体积小、启动快。

全栈 TypeScript

核心、插件层、CLI 与前端 API 全部是 TypeScript,`ztron codegen` 生成类型化命令。

25 个官方插件

store、http、sql、shell、updater、notification、clipboard……与 Tauri 对齐的 API。

最小权限 ACL

Capabilities 为每次 IPC 把关;PathScope、HttpScope 与 CSP 默认强制。

原生系统集成

托盘、菜单栏、对话框、通知、全局快捷键、文件拖放与多窗口——经由原生 host。

三层测试

surface + unit + integration 与 MockRuntime:86 项确定性检查保持全绿。

在 Showcase 里全部点一遍

一个可直接运行的桌面应用,34 张可交互卡片:每个按钮都真实调用 API——原生对话框、剪贴板、多窗口、主题切换、无边框窗口。每张卡附最小代码片段与文档页直达按钮。

  • 8 大分类:核心 IPC 与事件、窗口、文件、网络、对话框、菜单与托盘、数据、系统集成
  • 每张卡 = 真实演示 + 就地结果 + 最小片段 + 文档直达
  • ACL 拒绝与错误原样显示——读懂报错也是课程的一部分
  • CI 友好冒烟门禁:ztron check --expect SHOWCASE_OK
核心 x4窗口 x5文件 x3网络 x3对话框 x4菜单与托盘 x3数据 x3系统集成 x9
在仓库根目录运行
git clone https://github.com/ZturnLibs/ztron.git
cd ztron && pnpm install
pnpm --filter @zturnlibs/ztron-example-showcase dev

两个进程,一套 TypeScript 技术栈

极小的原生 host 负责 GUI,其余一切运行在异步 txiki.js 后端。

ztron-host

原生 C · 系统 WebView · 窗口 / 托盘 / 菜单 / 对话框

TCP · JSON

tjs backend

txiki.js · @zturnlibs/ztron-core · IPC · 插件 · ACL · 更新器

Vite 前端 → @zturnlibs/ztron-api(invoke · listen · Channel)
tjs compile → ztron build → 签名 .app / .dmg

25 个插件,开箱即用

每个插件 = core 命令 + 类型化 API + ACL 权限。

数据与文件

storesqlfsupload

系统

osshelllogautostartclipboard

网络

httpwebsocketnetworklocal-ipdeep-link

桌面

traymenudialognotificationglobal-shortcutsingle-instancepositionerwindow-state

生命周期

updaterpersisted-scopeapp

25 = 25 ✓

当前支持的平台

macOS 已完整验证;Windows 与 Linux host 已就位骨架,是下一步。

macOS dev 管线 · .app + .dmg · ad-hoc 签名 · 更新器
Windows host 骨架(WebView2)——编译与打包待完成
Linux host 骨架(GTK + WebKitGTK)——编译与打包待完成

每次运行通过 86 项端到端确定性检查——`ztron check` 是 CI 的门禁。

ROADMAP.md ↗

快速上手

装好 CLI,脚手架一跑,原生窗口即现。

npm i -g @zturnlibs/ztron-cli
ztron init my-app && cd my-app
pnpm install
ztron dev                # 原生窗口出现即成功

一个工作区,五个包

已发布到 npm:@zturnlibs/ztron-*。全局装一个 CLI 即可开发。

@zturnlibs/ztron-api

由 @tauri-apps/api 翻译而来的前端 API——invoke/events/Channel + 插件封装

@zturnlibs/ztron-core

主进程核心:IPC、事件、命令、ACL、PathScope、25 插件、MockRuntime

@zturnlibs/ztron-runtime-ffi

HostRuntime socket 适配器(Plan A)+ FFI 参考绑定

@zturnlibs/ztron-inject

注入页面 HTML 的 window.__TAURI_INTERNALS__ 引导

@zturnlibs/ztron-cli

ztron dev / build / codegen / init——Vite 构建 + host + 后端