# Dever Dever 是用于开发应用的编译型语言,自带 API、数据库操作、权限、租户和后台任务。源码可以写成 `.dever`,也可以把代码和说明放在 `.dever.md` 中。 ## 安装与开始 目前支持 Linux x86_64 开发机,要求 glibc 2.39+。首次安装需要 Bash、curl、Python 3.9+、支持 Ed25519 的 OpenSSL 和管理员权限。详细条件见 [安装指引](skills/references/install.md)。 ```sh 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](https://git.dever.cc/shemic/dever/releases) 下载。 用 `dever new my_app --markdown` 创建 Markdown 项目。新项目目录、构建输出文件都不能已存在,父目录必须存在。部署时把 `config/setting.json` 放在程序同级;目标机器无需安装 Dever。 ## 让 AI 开发 新项目已生成 `AGENTS.md`。已有项目在根目录执行: ```sh dever skill install ``` 命令自动使用项目对应版本的 skill,把开发规则写入 `AGENTS.md`;保留其他内容,重复执行只更新 Dever 规则块。不需要指定 AI 技能目录或复制文档。 规则要求 AI 先读开发指引,禁止擅自加旧版本兼容、重复实现、空包装和业务硬编码。AGENTS 负责指导 AI,编译器检查能判定的违规;不能保证 AI 永远不会写错代码。 ## 检查与更新 ```sh dever fmt my_app --check dever check my_app dever test my_app --filter hello.greeting ``` `fmt` 查格式,`check` 查源码与配置,`test` 执行所选测试。测试默认每例最多 60 秒,可加 `--timeout-ms 5000` 调整。`check` 不启动程序,普通测试不连接部署数据库;验证范围见 [开发指引](skills/references/development.md#验证范围)。 ```sh 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/<组件>/<领域>/`。 - [语言开发指南](LANGUAGE.md):语法、标准包、并发、Model、权限、租户、Job 和外部调用。 - [应用开发规范](skills/references/development.md):目录、函数职责、复用、配置、测试和交付。 - [dever-language skill](skills/SKILL.md):面向 AI 的应用开发指引。 - [Markdown 源码规范](MARKDOWN-SYNTAX.md):说明与代码的一致性要求。 - [CMS 示例](examples/README.md):同步维护的普通源码和 Markdown 实现。 - [External Worker SDK](sdk/README.md):Python、JavaScript 和 Go Adapter 开发。 - [VS Code 插件](editor/vscode/README.md):安装语法高亮插件。 ## 依赖与应用目标 Dever 组件叫 Package,Python、JavaScript、Go 依赖叫 Lib。用 `dever package` 或 `dever lib` 准备依赖,后续运行和构建使用 `dever.lock`。具体用法见 [依赖指引](skills/references/libraries.md)。 Linux x86_64 开发机可以生成 Linux ARM64 应用: ```sh 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 开发机安装包;平台和沙箱条件见 [安装指引](skills/references/install.md)。 ## 编译器源码开发 [源码仓库](https://git.dever.cc/shemic/dever) 使用 Rust;`crates/dever-core` 负责语言检查与编译,`crates/dever-runtime` 提供运行时,`crates/dever-cli` 提供命令,`library/` 保存标准 Dever 源码。架构及语义实现见 [实现原理](IMPLEMENTATION.md)。 构建编译器需要 Rust 1.95+、锁定的 Cargo 依赖和准备好的 LLVM 18/LLD SDK;仅构建 CLI 不足以运行应用,还需要匹配的应用编译资源。生产应用编译使用 LLVM/LLD,不调用系统 Rust/Cargo/cc。 永久测试位于根目录 `test/`,按修改选择最小定向检查,例如: ```sh cargo test --offline -p dever-tests --test core_semantics ``` 语言接口直接迭代,源码调用方须同步更新。旧语法回归材料位于 `examples/old/`,不要用作新项目模板。