Dever
Dever 是用于开发应用的编译型语言,自带 API、数据库操作、权限、租户和后台任务。源码可以写成 .dever,也可以把代码和说明放在 .dever.md 中。
安装与开始
目前支持 Linux x86_64 开发机,要求 glibc 2.39+。首次安装需要 Bash、curl、Python 3.9+、支持 Ed25519 的 OpenSSL 和管理员权限。详细条件见 安装指引。
curl -fsSL https://git.dever.cc/shemic/dever/raw/branch/main/install | bash
dever new my_app
dever run my_app -- hello.greeting.greet '{"name":"Dever"}'
dever build my_app --output my_app/program
./my_app/program hello.greeting.greet '{"name":"Dever"}'
这会创建一个问候程序,再把它编译成独立可执行文件。开发应用无需克隆编译器源码或安装 Rust、LLVM、Node、Go。安装包也可从 Releases 下载。
用 dever new my_app --markdown 创建 Markdown 项目。新项目目录、构建输出文件都不能已存在,父目录必须存在。部署时把 config/setting.json 放在程序同级;目标机器无需安装 Dever。
让 AI 开发
新项目已生成 AGENTS.md。已有项目在根目录执行:
dever skill install
命令自动使用项目对应版本的 skill,把开发规则写入 AGENTS.md;保留其他内容,重复执行只更新 Dever 规则块。不需要指定 AI 技能目录或复制文档。
规则要求 AI 先读开发指引,禁止擅自加旧版本兼容、重复实现、空包装和业务硬编码。AGENTS 负责指导 AI,编译器检查能判定的违规;不能保证 AI 永远不会写错代码。
检查与更新
dever fmt my_app --check
dever check my_app
dever test my_app --filter hello.greeting
fmt 查格式,check 查源码与配置,test 执行所选测试。测试默认每例最多 60 秒,可加 --timeout-ms 5000 调整。check 不启动程序,普通测试不连接部署数据库;验证范围见 开发指引。
sudo dever update
dever version
update 一起更新 Dever 与配套 skill。项目可在 config/setting.json 的 dever.version 锁定版本;dever skill path my_app 查看它使用的指引。普通 check/test/run/build 不检查更新、不隐式联网。
应用开发
代码放在 module/<组件>/<领域>/。API 声明入口,App 编排业务,Domain 写业务规则,Model 定义数据,Port/Adapter 接入外部能力,Job 声明后台任务。只创建需要的文件,跨领域调用 App。
不需要 package、import 或 main。HTTP 默认有权限检查,匿名接口显式写 public。配置放 config/setting.json,测试放 test/<组件>/<领域>/。
- 语言开发指南:语法、标准包、并发、Model、权限、租户、Job 和外部调用。
- 应用开发规范:目录、函数职责、复用、配置、测试和交付。
- dever-language skill:面向 AI 的应用开发指引。
- Markdown 源码规范:说明与代码的一致性要求。
- CMS 示例:同步维护的普通源码和 Markdown 实现。
- External Worker SDK:Python、JavaScript 和 Go Adapter 开发。
- VS Code 插件:安装语法高亮插件。
依赖与应用目标
Dever 组件叫 Package,Python、JavaScript、Go 依赖叫 Lib。用 dever package 或 dever lib 准备依赖,后续运行和构建使用 dever.lock。具体用法见 依赖指引。
Linux x86_64 开发机可以生成 Linux ARM64 应用:
dever target add linux-aarch64
dever lib update my_app --target linux-aarch64
dever build my_app --target linux-aarch64 --output my_app/program-arm64
没有外部依赖时省略 lib update;已有目标锁时改用 lib install。依赖必须支持 ARM64。当前不提供 ARM64、macOS 或 Windows 开发机安装包;平台和沙箱条件见 安装指引。
编译器源码开发
源码仓库 使用 Rust;crates/dever-core 负责语言检查与编译,crates/dever-runtime 提供运行时,crates/dever-cli 提供命令,library/ 保存标准 Dever 源码。架构及语义实现见 实现原理。
构建编译器需要 Rust 1.95+、锁定的 Cargo 依赖和准备好的 LLVM 18/LLD SDK;仅构建 CLI 不足以运行应用,还需要匹配的应用编译资源。生产应用编译使用 LLVM/LLD,不调用系统 Rust/Cargo/cc。
永久测试位于根目录 test/,按修改选择最小定向检查,例如:
cargo test --offline -p dever-tests --test core_semantics
语言接口直接迭代,源码调用方须同步更新。旧语法回归材料位于 examples/old/,不要用作新项目模板。