DBDelve
Dive deep into your data. A fast, native, multi-engine database client written in Rust. Free and open source, no telemetry.
翻译准备中
Write an app once. It runs natively on the web, macOS, iOS, and Linux, and an AI agent can build it, run it, see it, and test it on every one of them.
翻译准备中
开发工具GitHub @expo自行安装运营者未确认
试用过了吗? 点一下就好,无需登录。
社交平台热议 · 当前第 13 · 2 个来源
11月13日 22:46 检查 · 分数为各平台在最后检查时显示的数值。我们不复制帖子正文和评论,原帖删除后此处也会移除。
尚未收集仓库信息。
尚未检测到更新。GitHub 发布版本后会显示在这里。
制作者的介绍仅有上面的一句话。 更多详情请阅读仓库 README。 仓库 README ↗
正在加载完整 README。
查看完整 README ↗Write an app once. It runs natively on the web, macOS, iOS, and Linux, and an AI agent can build it, run it, see it, and test it on every one of them.
Building an app? With the tools installed (Quick start, step 1),
run bun scripts/exact.mjs setup once, make the app with bun scripts/exact.mjs new <path>,
and read docs/start-here.md (for a website,
docs/start-here-site.md): that guide is the only required
reading. The rest of this page describes Exact for people deciding whether to use it
or working on it.
[!TIP] Try it with a coding agent. On a Mac with Xcode, Rust, Bun, and Chrome installed, give Claude Code this prompt:
Clone https://github.com/expo/exact and follow its README to make a new Exact app with `exact new`. Run `bun scripts/exact.mjs setup` once first. Make a todo list where I can add items, check them off, delete them, and see how many are left. Put the view in Contract and keep the list in `app.ts`. Write an `app.test.contract`, pass it on web, macOS, and the iOS Simulator with `scripts/agent.mjs`, then open the app for me on all three.A fresh agent given the earlier version of this prompt on a clean clone (2026-10-04, Hermes already in the machine cache, Cargo's cache warm) finished in about 57 minutes, and its tests passed on all three platforms. About 25 of those minutes were the first macOS and iOS builds, roughly 13 minutes each; later builds take a minute or two. On a machine that has lacked Hermes, its source build came first and added time. Current setup downloads and verifies the pinned host/iOS bundles once instead; ordinary builds stay offline.
One app.contract, the same screen on three hosts, captured by the agent driver. Softwear is a demonstration store you can generate from exact-templates: it shows Alternative Apparel's catalog, is not affiliated with that brand, and takes no real orders or payments.
Exact is a cross-platform application runtime. You describe your interface in Contract, a small declarative language, and you write your data logic in TypeScript or Rust. The Contract compiler turns the interface into a compact plan. On the web, that plan becomes one ES module over a ~20 KB runtime that drives the real DOM. On macOS, iOS, and Linux, a Rust runner executes the same plan, a Rust layout kernel computes every box with CSS rules, and each platform draws with its own tools: AppKit, UIKit, or a GPU painter. There is no webview and no JavaScript bridge in the UI, and no app JavaScript runs before the first pixel.
[!NOTE] Exact is pre-1.0 and changes daily. There is no API stability, no backwards compatibility, and no migration guide, by design (
rules/DEFERRED.md). This repository,exact2, is a rebuild of an earlier one ("exact1"), whose design documents are research, never authority.
The design record is a separate, private repository of numbered documents (LLPs),
expo/exact-llp, which those with access clone into llp/ (git ignores it). This
README and the guides cite it by number (LLP 1115 D7). The guides under docs/
are the public documentation.
Upgrade note (2026-10-16): Snapback mutation replies with ok: false now throw
refused(why) and expose failure(slot); see the
before/after and inherited-app commands.
Exact assumes much of the code will be written by AI agents. An agent can make an app, run it, look at it, operate it, and prove it works without a person in the loop.
tree · screenshot · tap · type · state · layout · logs · clock · prefer · perf drive the web, macOS, iOS (Simulator or a real
iPhone), and Linux through one script, scripts/agent.mjs. There are ten on purpose:
the predecessor's agent API grew to eighty wire names, one reasonable addition at a
time.clock +60000 or
clock settle and reads the result. No timing flakes, no waits.app.test.contract file runs unchanged
on any host, with no second evaluator.contract build --json gives diagnostics with
stable ids and source ranges. contract symbols gives navigation. A development
source map leads from any node on screen back to the line that declared it.
The driver refuses to drive a build older than its sources and names the rebuild.bun scripts/agent.mjs web tree "tap change-station" "type station-search Palo" \
"clock +60000" state "screenshot out.png"
Speed of the app and speed of the loop. Each budget in rules/RULES.md is tracked on
every commit, and a regression is a P0 with a name on it.
| Budget | Target |
|---|---|
| Cold start to interactive first frame | 100 ms p50 |
| Dev restart, edit to present | 100 ms p50 |
| App JavaScript executed before first pixel | none |
| Touch one line, rebuild that crate | 30 s |
| The whole blocking check suite | 65 s |
How the design keeps those numbers:
以上为 README 的开头部分。其余内容请阅读原文。 查看完整 README ↗