搜索你想找的开源项目

输入名称、用途或关键词,也可粘贴 GitHub 仓库链接

分享到微信

当前解读页的微信分享二维码

用微信扫一扫打开,点击右上角「···」分享给朋友或朋友圈。

手机上可截屏后,在微信扫一扫中从相册识别二维码。

expo/exact

开发工具

用 Contract 描述一次界面,配合 TypeScript 或 Rust 逻辑,在 Web、macOS、iOS 与 Linux 上原生运行。

762
18
Rust
MIT
创建于 10 天前

项目介绍

Exact 是面向「主要由 AI agent 编写」场景的跨平台应用运行时。界面用一套小巧的声明式语言 Contract 描述,数据逻辑用 TypeScript 或 Rust 编写。编译器把界面编译成紧凑的 plan:在 Web 上,plan 变成一个基于约 20 KB 运行时的 ES module,直接操作真实 DOM;在 macOS、iOS 和 Linux 上,Rust runner 执行同一份 plan,Rust 布局内核按 CSS 规则计算每个盒子,各平台分别用 AppKit、UIKit 或 GPU painter 绘制。UI 层没有 webview,也没有 JavaScript bridge(三项原则、工作原理)。

项目处于 pre-1.0 阶段,不保证 API 稳定,也不提供迁移指南。它假设 app 由 coding agent 创建、运行、查看和测试,scripts/agent.mjs 提供十个跨宿主一致的操作。

快速使用

macOS 上的前置条件:通过 rustup 安装 Rust、使用锁定版本的 Bun 1.4.2、Google Chrome 和 Xcode。Hermes 只在原生宿主上运行 TypeScript 时需要,按文档中的 installer 为每个 target 安装一次(快速开始)。

git clone https://github.com/expo/exact.git
cd exact
bun scripts/exact.mjs setup
bun host/web/dev.mjs

打开 http://127.0.0.1:8765/ 查看 Caltrain 应用。首次运行会编译工具链,需要几分钟。修改 apps/caltrain/app.contract 并保存,页面会在约十分之一秒内重新构建并刷新。加上 --lan 可以从局域网内的手机打开。

在 macOS 上原生运行:

bun host/apple/build.mjs --run

首次 native 构建需要十到十五分钟。像 agent 一样驱动应用:

bun host/web/build.mjs caltrain-web
bun scripts/agent.mjs web tree "tap change-station" state "screenshot out.png"
bun scripts/agent.mjs web --test apps/caltrain/app.test.contract

新建应用可以运行 bun scripts/exact.mjs new ../hello,然后在新目录里运行 bun exact.mjs web。exact new 会生成 app.contract、app.ts、app.json 和小型宿主 crate,并附上指向 start-here.md 的 agent 说明。

使用约束

  • 平台: Web、macOS、iOS(模拟器和真机)和 Linux 目前可用。Windows 只有部分支持;Android 处于早期阶段,没有上架打包;Android 的分发和商店打包也还没有。
  • TypeScript 导入: app.ts 可以导入本地文件,但从 npm 包中只能导入类型,构建时会检查,但不会执行。
  • 没有 JSX 或 React 层: 数据 seam 之上不运行任何 JavaScript。
  • 数据与 I/O: Contract 本身不做 I/O;数据通过单一的类型化 source seam 流动,网络、文件、SQLite 和 secrets 受声明的 grants 控制。
  • 编辑与文本: Linux 宿主只读不写;Linux 也没有分词器,泰文、老挝文、高棉文和缅甸文只能在空格处断行。
  • 工具链: 没有打包好的 CLI;需要从源码 checkout 工作,exact new 生成的应用按路径引用它。
  • 许可证: workspace 采用 MIT 许可证。

HotRepo 点评

Exact 是 Expo 在 agent-native 应用开发方向上较早的尝试,README 对构建循环、性能预算和当前缺口的说明相当具体。HotRepo 只在 2026-11-09 记录到一条新项目榜快照:264 stars,报告窗口内新增 130。历史太短,无法判断趋势,也没有每日总榜名次记录,因此更适合把它看作一个仍在快速变动的 pre-1.0 实验:目标具体,但平台覆盖和兼容性保证都明确尚未完成。

本文由 AI 根据项目 README 生成,更新于 ,以项目官方文档为准。

Hacker News 讨论

Exact – a new cross platform UI framework
▲ 134 · 107 条评论 · 2026年11月9日

相关推荐

  1. longbridge/nsh用 TSX 或 Rust 写一套界面,靠各平台自己的原生控件渲染 iOS、Android、桌面和网页。Rust614
  2. anomalyco/rune一个自带渲染器、文本、布局与弹簧动画的原生 GPU 渲染 Rust UI 框架,覆盖 macOS、Windows、Linux 与 Web,并支持无头渲染。Rust6,702
  3. c22dev/muguet把 GTA V 的网页版构建当作原生应用跑在 Apple Silicon 的 Mac 和 iOS 上,并附带小型 UDP 联机。Rust740
  4. argotorg/solidity面向以太坊虚拟机的智能合约编程语言与编译器,用于把合约逻辑编译成链上字节码。C++25,761