文章目录
- 1. 项目概述
- 1.1 什么是 Cordis
- 1.2 项目状态
- 1.3 适用场景
- 1.4 设计哲学
- 1.5 Deepseek Harness与Cordis的关系
- 2. 快速开始
- 2.1 环境要求
- 2.2 安装
- 2.3 最简示例
- 2.4 使用脚手架创建项目
- 2.5 项目结构
- 2.6 使用 CLI 启动
- 3. 核心概念:Context(上下文)
- 3.1 什么是 Context
- 3.2 创建 Context
- 3.3 Context 的 Proxy 机制
- 3.4 Context 扩展(extend)
- 3.5 Context 隔离(isolate)
- 共享标签(Shared Label)
- 3.6 Context 拦截(intercept)
- 3.7 Context 的内置属性
- 4. 核心概念:Service(服务)
- 4.1 什么是 Service
- 4.2 Service 基类
- 4.3 创建一个 Service
- 4.4 Service 的初始化与清理
- 4.5 声明依赖(inject)
- 带配置的依赖注入
- 使用 @Inject 装饰器
- 4.6 提供服务(provide)与设置服务(set)
- 4.7 函数式服务(Callable Service)
- 4.8 Service 的 filter 机制
- 5. 核心概念:Plugin(插件)
- 5.1 什么是 Plugin
- 5.2 函数式插件
- 5.3 对象式插件
- 5.4 类式插件(Service 插件)
- 5.5 插件的配置验证
- 5.6 插件的加载与卸载
- 5.7 嵌套插件
- 5.8 命令式注入(ctx.inject)
- 6. 核心概念:Fiber(纤程)
- 6.1 什么是 Fiber
- 6.2 Fiber 状态机
- 6.3 状态转换
- PENDING → LOADING → ACTIVE
- ACTIVE → UNLOADING → PENDING
- FAILED 状态
- DISPOSED 状态
- 6.4 惯性锁(Inertia Lock)
- 6.5 Fiber 的核心属性
- 6.6 Fiber 的核心方法
- await()
- restart()
- update(config, noSave?)
- getEffects()
- 6.7 根 Fiber
- 7. 核心概念:Events(事件系统)
- 7.1 事件系统概述
- 7.2 监听事件
- 监听选项
- 7.3 五种派发模式
- 1. emit(同步发射)
- 2. parallel(异步并行)
- 3. serial(异步串行)
- 4. bail(同步拦截)
- 5. waterfall(瀑布流)
- 7.4 事件与上下文过滤
- 7.5 内置事件
- 8. 核心概念:Effect(副作用管理)
- 8.1 什么是 Effect
- 8.2 基本用法
- 8.3 四种 Effect 形式
- 1. 同步函数返回清理函数
- 2. Generator(生成器)
- 3. 异步函数返回清理函数
- 4. 异步生成器(Async Generator)
- 8.4 Effect 的执行机制
- 8.5 自动逆序清理
- 8.6 Effect 元数据与调试
- 8.7 非活动上下文保护
- 9. 项目架构全景
- 9.1 Monorepo 结构
- 9.2 各包职责
- 9.3 核心架构图
- 9.4 核心设计模式
- 10. 技术栈与构建工具
- 10.1 编程语言与运行时
- 10.2 构建工具链
- 10.3 测试框架
1. 项目概述
1.1 什么是 Cordis
Cordis 是一个**“时空可组合性元框架”(Meta-Framework of Spatiotemporal Composability)**。它不是一个传统意义上的 Web 框架或应用框架,而是一个提供了插件系统、依赖注入、生命周期管理、事件系统等基础能力的底层框架,用于构建高度可组合、可扩展的应用系统。
项目官方定义:“A Meta-Framework of Spatiotemporal Composability”
Cordis 的核心理念来自其同名学术论文《A Programming Paradigm for Spatiotemporal Composability》,该论文提出了一种新的编程范式,关注时间维度(生命周期管理)和空间维度(上下文隔离)的可组合性。
1.2 项目状态
当前版本:v4.0.0-rc.8
1.3 适用场景
Cordis 适合构建以下类型的应用:
- 插件化架构的应用:需要支持第三方插件扩展的系统
- 模块化应用:模块之间有复杂依赖关系,需要动态加载/卸载