diff --git a/Cargo.toml b/Cargo.toml index 2d0ca43..103249c 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,5 +1,5 @@ [workspace] -members = ["crates/aster-core", "crates/aster-storage", "crates/aster-cli", "crates/aster-server"] +members = ["crates/core", "crates/storage", "crates/cli", "crates/server"] resolver = "2" [workspace.package] @@ -9,8 +9,8 @@ rust-version = "1.91" license = "MIT" [workspace.dependencies] -aster-core = { path = "crates/aster-core" } -aster-storage = { path = "crates/aster-storage" } +aster-core = { path = "crates/core" } +aster-storage = { path = "crates/storage" } axum = { version = "0.8", default-features = false, features = ["http1", "json", "tokio"] } serde = { version = "1", features = ["derive"] } serde_json = "1" diff --git a/README.md b/README.md index bee7186..9c12bf2 100644 --- a/README.md +++ b/README.md @@ -8,12 +8,12 @@ Rust 编写的可嵌入运行时。当前实现 Endor 的 VM 基础设施:`End ## 结构 -| crate | 职责 | -| --- | --- | -| `aster-core` | 零外部依赖的 EndorObject、操作接口、引用计数、循环回收与 VM | -| `aster-storage` | SQLx PostgreSQL/SQLite 适配、元数据表初始化、读写接口;不依赖内核 | -| `aster-cli` | `aster bootstrap` 演示,以及宿主元数据读写 | -| `aster-server` | 最小常驻宿主,提供健康检查与运行时信息,供 Docker 等方式运行 | +| 目录 | Cargo 包名 | 职责 | +| --- | --- | --- | +| `crates/core` | `aster-core` | 零外部依赖的 EndorObject、操作接口、引用计数、循环回收与 VM | +| `crates/storage` | `aster-storage` | SQLx PostgreSQL/SQLite 适配、元数据表初始化、读写接口;不依赖内核 | +| `crates/cli` | `aster-cli` | `aster bootstrap` 演示,以及宿主元数据读写 | +| `crates/server` | `aster-server` | 最小常驻宿主,提供健康检查与运行时信息,供 Docker 等方式运行 | 依赖方向:CLI/Server → Core 和 Storage;Core 与 Storage 互不依赖。未来浏览器宿主的网络、DOM、渲染等能力应留在宿主一侧。 diff --git a/crates/aster-cli/Cargo.toml b/crates/cli/Cargo.toml similarity index 100% rename from crates/aster-cli/Cargo.toml rename to crates/cli/Cargo.toml diff --git a/crates/aster-cli/src/main.rs b/crates/cli/src/main.rs similarity index 100% rename from crates/aster-cli/src/main.rs rename to crates/cli/src/main.rs diff --git a/crates/aster-core/Cargo.toml b/crates/core/Cargo.toml similarity index 100% rename from crates/aster-core/Cargo.toml rename to crates/core/Cargo.toml diff --git a/crates/aster-core/src/builtins.rs b/crates/core/src/builtins.rs similarity index 100% rename from crates/aster-core/src/builtins.rs rename to crates/core/src/builtins.rs diff --git a/crates/aster-core/src/heap.rs b/crates/core/src/heap.rs similarity index 100% rename from crates/aster-core/src/heap.rs rename to crates/core/src/heap.rs diff --git a/crates/aster-core/src/lib.rs b/crates/core/src/lib.rs similarity index 100% rename from crates/aster-core/src/lib.rs rename to crates/core/src/lib.rs diff --git a/crates/aster-core/src/number.rs b/crates/core/src/number.rs similarity index 100% rename from crates/aster-core/src/number.rs rename to crates/core/src/number.rs diff --git a/crates/aster-core/src/object.rs b/crates/core/src/object.rs similarity index 100% rename from crates/aster-core/src/object.rs rename to crates/core/src/object.rs diff --git a/crates/aster-core/src/vm.rs b/crates/core/src/vm.rs similarity index 100% rename from crates/aster-core/src/vm.rs rename to crates/core/src/vm.rs diff --git a/crates/aster-core/src/vm_builtins.rs b/crates/core/src/vm_builtins.rs similarity index 100% rename from crates/aster-core/src/vm_builtins.rs rename to crates/core/src/vm_builtins.rs diff --git a/crates/aster-core/tests/builtins.rs b/crates/core/tests/builtins.rs similarity index 100% rename from crates/aster-core/tests/builtins.rs rename to crates/core/tests/builtins.rs diff --git a/crates/aster-core/tests/runtime.rs b/crates/core/tests/runtime.rs similarity index 100% rename from crates/aster-core/tests/runtime.rs rename to crates/core/tests/runtime.rs diff --git a/crates/aster-server/Cargo.toml b/crates/server/Cargo.toml similarity index 100% rename from crates/aster-server/Cargo.toml rename to crates/server/Cargo.toml diff --git a/crates/aster-server/src/main.rs b/crates/server/src/main.rs similarity index 100% rename from crates/aster-server/src/main.rs rename to crates/server/src/main.rs diff --git a/crates/aster-storage/Cargo.toml b/crates/storage/Cargo.toml similarity index 100% rename from crates/aster-storage/Cargo.toml rename to crates/storage/Cargo.toml diff --git a/crates/aster-storage/src/lib.rs b/crates/storage/src/lib.rs similarity index 100% rename from crates/aster-storage/src/lib.rs rename to crates/storage/src/lib.rs diff --git a/crates/aster-storage/src/schema.sql b/crates/storage/src/schema.sql similarity index 100% rename from crates/aster-storage/src/schema.sql rename to crates/storage/src/schema.sql diff --git a/crates/aster-storage/tests/postgres.rs b/crates/storage/tests/postgres.rs similarity index 100% rename from crates/aster-storage/tests/postgres.rs rename to crates/storage/tests/postgres.rs diff --git a/crates/aster-storage/tests/storage.rs b/crates/storage/tests/storage.rs similarity index 100% rename from crates/aster-storage/tests/storage.rs rename to crates/storage/tests/storage.rs diff --git a/docs/development.md b/docs/development.md index eb3729a..2423667 100644 --- a/docs/development.md +++ b/docs/development.md @@ -4,7 +4,7 @@ 先阅读根目录 AGENTS.md。工作区四个 crate 的边界必须保持,内核无数据库/HTTP 依赖。用户明确禁止本地测试,不在本机运行检查/冒烟脚本,也不为此下载依赖。指定的远端验证环境是 ces-control;CI 在 Docker 中运行 `sh scripts/check.sh`、`python3 scripts/smoke.py` 和真实 PostgreSQL 集成测试。正式持久部署选择 PostgreSQL。检查记录见 validation.md。 -核心 API 示例在 `aster-core/src/lib.rs`,由 rustdoc 实际编译执行。公开语义测试在 `aster-core/tests/runtime.rs`;伪造句柄仅在私有堆单元测试中构造,禁止为测试添加公开非法构造器。 +核心 API 示例在 `crates/core/src/lib.rs`,由 rustdoc 实际编译执行。公开语义测试在 `crates/core/tests/runtime.rs`;伪造句柄仅在私有堆单元测试中构造,禁止为测试添加公开非法构造器。 用户已澄清:当前实现 Endor 的 VM 运行时,不实现 Python type 系统,也不定义语言根类。旧的 Class/Type、create_class、create_instance、root_class 和 type_of API 已移除。公共结构和操作接口在 object.rs,分配、引用计数和循环回收在 heap.rs,对外检查入口在 vm.rs。详见 endor-object.md。 diff --git a/docs/endor-builtins.md b/docs/endor-builtins.md index 10b7f1b..5fdeb39 100644 --- a/docs/endor-builtins.md +++ b/docs/endor-builtins.md @@ -124,6 +124,6 @@ Endor 当前用 `EndorBaseExceptionObject` 保存公共数据,名称只是错 ## 验证状态 -新增 `crates/aster-core/tests/builtins.rs`,检查数字无损表示、非法输入、字符串内容语义、字典顺序和引用所有权、更新失败的原子性、Cell 共享、循环回收、函数环境及异常链。已有 runtime 测试和 rustdoc 示例迁移到统一 Number。 +新增 `crates/core/tests/builtins.rs`,检查数字无损表示、非法输入、字符串内容语义、字典顺序和引用所有权、更新失败的原子性、Cell 共享、循环回收、函数环境及异常链。已有 runtime 测试和 rustdoc 示例迁移到统一 Number。 遵守本机禁测约定:未在本地运行测试、构建或冒烟脚本;未下载依赖。远端结果必须以本次代码对应的 ces-control CI 为准,未推送前不标记通过。HTML 研究表仅为工作区外阅读材料,不提交 Git。 diff --git a/docs/endor-object.md b/docs/endor-object.md index 0fe42a5..aa9ee72 100644 --- a/docs/endor-object.md +++ b/docs/endor-object.md @@ -8,10 +8,10 @@ | 文件 | 职责 | | --- | --- | -| `crates/aster-core/src/object.rs` | EndorObject、对象头、Value、操作接口和内置原生载荷 | -| `crates/aster-core/src/heap.rs` | 稳定分配、句柄验证、引用计数、槽位复用、循环回收 | -| `crates/aster-core/src/vm.rs` | 对外 API、错误处理和操作分发 | -| `crates/aster-core/tests/runtime.rs` | 宿主可观察的对象行为和生命周期检查 | +| `crates/core/src/object.rs` | EndorObject、对象头、Value、操作接口和内置原生载荷 | +| `crates/core/src/heap.rs` | 稳定分配、句柄验证、引用计数、槽位复用、循环回收 | +| `crates/core/src/vm.rs` | 对外 API、错误处理和操作分发 | +| `crates/core/tests/runtime.rs` | 宿主可观察的对象行为和生命周期检查 | ## EndorObject 保存什么