Cordis: A Meta-Framework for Spatiotemporal Composability
Cordis is a meta-framework introducing spatiotemporal composability, a programming paradigm that enables systems to be composed uniformly across spatial (distributed) and temporal (event/state evolution) dimensions. Built on TypeScript with a plugin architecture, it supports modular expansion. The project is in active development with an unstable API, and the team provides a paper and a primer to clarify the philosophy. Useful for engineers interested in functional programming, modular architecture, and novel programming paradigms.
Cordis describes itself as a 'meta-framework for spatiotemporal composability'. It is a Node.js-level toolkit aimed at framework and application authors who need to compose complex systems. It is not a finished product yet: the README explicitly says the API is unstable and may change without notice. The project is associated with the Effect ecosystem (topic: effect) and evolves around plugin-based composition, making it relevant for TypeScript developers interested in structured concurrency and effectful programming.
Cordis 自我定位为「面向时空可组合性的元框架」。它是一个面向 Node.js 的工具包,服务于需要构建复杂系统的框架作者和应用开发者。项目尚未成熟:README 明确说明 API 不稳定,可能随时变化。从仓库主题看,它属于 Effect 生态(topic: effect),围绕基于插件(plugin)的组合方式展开,对关注结构化并发与 effectful 编程的 TypeScript 开发者有直接吸引力。
Modern applications need composition in two dimensions. Spatial composition says whether modules can be assembled into a coherent whole. Temporal composition says whether processes, lifecycles and events can be sequenced, interrupted and nested safely. Most frameworks handle one dimension well; Cordis wants to unify both. The attached paper — 'A Programming Paradigm for Spatiotemporal Composability' — suggests that this dual composition is the central design principle, not an afterthought.
现代应用需要在两个维度上进行组合。空间组合(spatial composition)关心模块能否拼装成一个一致的整体;时间组合(temporal composition)关心进程、生命周期与事件能否被安全地排序、中断和嵌套。大多数框架只擅长其中一个维度,Cordis 则希望统一两者。团队成员发表的论文《A Programming Paradigm for Spatiotemporal Composability》表明,这种双重组合是核心设计原则,而不是事后补充。
As a meta-framework, Cordis does not directly provide business logic. It provides a grammar for building frameworks from reusable pieces. Space is handled through its plugin model — modules declare their dependencies, capabilities and extensions. Time is handled through effectful primitives that allow for cancellation, interruption and structured lifecycle management. By combining both, Cordis tries to make the way parts fit together and the way they run over time obey the same compositional rules.
作为一个元框架,Cordis 并不直接提供业务逻辑,而是提供一种语法,让使用者用可复用组件去构建框架。空间维度通过插件模型来处理:各模块声明自己的依赖、能力与扩展点;时间维度则通过带 effect 语义的原语处理,支持取消(cancellation)、中断(interruption)以及结构化的生命周期管理。两者的结合,让「部件如何拼装」与「部件如何随时间运行」遵循同一种组合规则。
The repository is a standard monorepo. Core logic lives in packages/; .github/workflows/ contains CI/CD pipelines. TypeScript is used throughout, with tsconfig.base.json sharing compiler options and tsconfig.test.json for test builds. Tests are run with Vitest (vitest.config.ts), coverage is configured via .nycrc.json, and yakumo.yml configures the Yakumo task runner. A yarn-based setup (.yarnrc.yml, package.json) keeps the workspace manageable. The actual package breakdown is not visible from the card, but the layout is conventional for a multi-package Effect-family project.
仓库是一个典型的 monorepo。核心逻辑放在 packages/ 下,.github/workflows/ 存放 CI/CD 流水线。全项目使用 TypeScript:tsconfig.base.json 共享编译选项,tsconfig.test.json 用于测试构建。测试通过 Vitest 运行(vitest.config.ts),覆盖率配置在 .nycrc.json,yakumo.yml 配置了 Yakumo 任务运行器。基于 yarn 的工作区配置(.yarnrc.yml、package.json)让依赖管理更简单。资料卡没有列出 packages 内部的具体拆分,但整体布局符合 Effect 家族多包项目的常见风格。
The README links to a documentation site called cordis-primer, hosted under deepseek-harness.github.io. That primer should be the first stop for anyone trying the framework. Because the project is in active development, installation commands and detailed examples in the README are minimal; the paper and the primer are the authoritative sources for design intent. Expect to read the source code in packages/ if you need exact API behavior.
README 中给出了文档站点 cordis-primer,地址在 deepseek-harness.github.io 下。想尝试该框架的人应当先从这份 primer 入手。由于项目仍在活跃开发中,README 里几乎没有安装命令与详细示例;论文与 primer 才是理解设计意图的权威来源。如果需要精确的 API 行为,还需要直接阅读 packages/ 下的源码。
Cordis is explicitly under active development. The API is not stable, so production adoption should be done carefully. Documentation is thinner than average; there is no quick-start code in the card. The project is also positioned as a meta-framework, meaning it carries a certain level of abstraction — pay the cost only if your system really needs both plugin composition and temporal control. Finally, because it follows the Effect ecosystem, developers who are unfamiliar with effectful programming may face a learning curve.
Cordis 明确处于活跃开发中,API 尚未稳定,生产环境采用需格外谨慎。文档相对单薄,资料卡中没有快速上手代码。它又是个元框架,抽象层级不低——只有在系统确实同时需要插件化组合与时间维控制时,才值得付出这些抽象成本。最后,由于它依附于 Effect 生态,不熟悉 effectful 编程的开发者可能需要一定的学习成本。