# 概述
共有 3 个二进制宿主:
- `deft` — 脚本二进制与 REPL。运行 `.dft` 文件,暴露完整标准库,并作为测试、格式化与包管理器的入口点。
- `retro` — 面板化开发环境(编辑器、git、文件管理器、终端、AI 聊天、系统监视器)。灵感来自 Emacs 与 Blender。使用原生渲染后端。
- `retra` — 功能与 `retro` 完全相同,但为纯 ANSI,因此在裸 SSH 上也能工作。
所有 TUI 应用都用 Deft 本身编写,每个宿主中可用的脚本 API 相同。平台层标准库函数(`pub/*`、`config/*`、`runtime/*`、`sqlite/*`、`dialog/*`)在三者中行为一致。
## 应用平台
每个 Deft 应用都从自己的目录加载,运行在自己的 OS 线程中,并拥有独立的运行时(含自己的虚拟机与堆)。应用通过以下方式通信:
- `pub/*` — 向任意运行时的任意订阅者广播基于主题的事件。
- `@rpc` + `rpc` — 按运行时名称寻址,对另一运行时暴露的函数进行类型安全的直接调用。每个宿主都可用。
- `config/*` — 共享、持久、响应式的键/值存储。
- `runtime/*` — 派生并交互子运行时。
应用启动器本身就是一个 Deft 应用,因此你可以替换或扩展它来加载自己的工具。
## 平台
当前支持:
- Linux(x86_64、aarch64)
- Raspberry Pi
Zig 代码库意味着 macOS 与 Windows 移植应该不需要太大功夫;它们在路线图上,但尚未发布。
## 接下来读什么
| 如果你想要…… | 阅读 |
|---|---|
| 感受语言风格 | 语法与风格 |
| 运行第一个脚本 | Shell 脚本 |
| 理解类型系统 | 类型与协议 |
| 查看完整标准库函数目录 | 标准库 |
| 构建 TUI 应用 | TUI 概述 |
| 让应用互相通信 | 发布/订阅、RPC |
| 嵌入 SQLite | SQLite |
| 调用 C 库 | FFI |
| 将 Deft 嵌入宿主应用 | 嵌入 |
| 理解虚拟机的内存模型 | 内存管理 |
| 理解持久化集合与 `<<` | 持久化数据结构 |
| 理解文本/字体如何在 TUI 中渲染 | 字体渲染 |
| 理解字符串索引、宽度与字节 | 字符串表示 |