Telo
声明性应用程序的运行时——后端服务和它们上面的数据屏幕。
Telo运行在YAML文件中描述的应用程序,而不是作为程序代码编写的。你将你的web api、数据库、数据屏幕(表格、表单、创建/编辑/删除)和AI工作流声明为小的、连接的YAML文档,Telo检查它们并运行它们。没有拖放屏幕构建器:屏幕像其他东西一样在YAML中声明。
今天,你可以在TypeScript中扩展Telo (Rust支持一些本地模块);运行时被设计成可以添加其他语言。
泰罗现在的位置: 核心运行时、模块系统、标准库和检查器都可以工作,但Telo是1.0之前的版本,还不推荐用于生产环境。看到 状态.
决定Telo是否适合你的团队?开始 与低代码平台相比, 许可 和 例子.
# Reconcile your manifest into a running application
$ telo ./examples/todo-app
{"time":"2026-11-01T10:29:16.386Z","level":"INFO","severity":9,"msg":"Listening","resource":{"kind":"HttpServer.Server","name":"server","id":"HttpServer.Server.server"},"attributes":{"server.address":"0.0.0.0","server.port":8077,"url.scheme":"http"},"event_name":"http.server.started"}
(在终端上,同样的记录打印出人类可读的彩色记录。)
开始
安装CLI -一个单独的可执行文件,它有自己的运行时:
curl -fsSL https://telo.sh/install.sh | sh
在Windows上, irm https://telo.sh/install.ps1 | iex. Node.js已经安装, npm install -g @telorun/cli 给出相同的结果 telo.
然后 开始使用 在 telo.run - install,第一个清单,以及内核对它做了什么 你的第一个HTTP API. 模块及其类型可在 中心.
为什么使用Telo?
- 开放标准: 基于YAML、JSON Schema和CEL(一种小型表达式语言)——没有专有语言。
- 在应用程序运行前发现的错误: 错误的引用、错误的值类型和缺失的输入被报告在编辑器或CI中需要修复的确切位置。
- 一切都是一个模块: Telo本身对HTTP或SQL一无所知。每个功能都是您导入和组合的模块,带有声明的输入和秘密。
- 其他运行时是可能的: 现在的运行时是Node.js,有一个共享的YAML契约,所以其他实现可以运行相同的清单。一个更窄的Rust运行时已经存在,并且正在进行中。
它的作用
Telo读取您的YAML文件,检查它们,计算出哪些依赖于哪些,以正确的顺序启动所有内容,并将每个部分交给实现它的代码。至于力学原理,请看 Telo的工作原理.
示例清单
看到 例子/ 以获取工作应用程序的列表。
状态
Telo故意是1.0之前的版本。核心运行时、模块系统、标准库和检查器都可以工作,但还不建议将Telo用于生产环境。打破改变 小 版本:清单形状和模块定义在不同版本之间可能会改变,所以在升级时锁定导入并期望更新清单(telo migrate 改写旧的拼写为您)。
1.0计划在第二个基于rust的运行时可以运行Node.js所能运行的一切时 -这是在运行时冻结清单格式的里程碑。
泰罗的意义
Telo这个名字来源于希腊语词根Telos,意思是“最终目标”、“目的”或“最终状态”。这正是运行时背后的哲学。在标准的命令式编程中,必须编写数千行代码才能准确地告诉服务器如何启动。使用Telo,您只需声明想要的最终状态。
你定义了最终状态。泰罗让它成为现实。
哲学
现代平台经常在技术机制(连接框架、管理基础设施和协商工具链)上花费不成比例的精力,而原始的业务问题被延迟或稀释。Telo则朝相反的方向推进:它将内核执行视为一个稳定的、可预测的宿主,这样团队就可以专注于内核的运行 业务逻辑和结果 而不是管道。
通过将“系统应该做什么”与“如何托管”分离,运行时减少了域级更改的摩擦。团队可以更快地满足产品需求,更安全地进行实验,并将对话集中在交付的价值而不是实现的琐事上。
Telo的目标也是 联合所有编程语言社区的力量因此,最好的想法、模式和实现可以汇聚到一个共享的内核真理中,而不必迫使每个人都使用一个堆栈。
YAML还使系统更加 AI -友好 与传统编程语言相比:它是显式的、结构化的,并且对于工具来说更容易生成、审查和转换,而不会丢失意图。
模块化
Telo是围绕 模块 拥有特定的资源类型。模块从清单中加载,声明它实现的类型,然后只接收这些类型的资源。这使关注点保持隔离,并允许团队从集中的构建块而不是单块服务组成系统。
在内核执行时,执行总是由 种类。名字。内核将种类解析为其拥有的模块并移交执行。模块可以调用回内核以执行其他资源,从而在没有紧密耦合的情况下实现组合。
体系结构
该架构受到kubernetes风格清单的启发:声明性资源、显式类型和基于这些定义路由工作的运行时。与Kubernetes不同,清单在一个独立的进程中运行,而不是描述一个集群。
更多详情请浏览
许可证
简而言之:Telo是免费使用的,包括商业用途。你可以在上面建立、托管和销售你自己的产品。没有CodeNet Sp. z . o.o的商业许可,你不能将Telo本身作为托管服务提供给他人。([email protected]). 模块、SDK、示例和文档都是MIT的。细节: 许可.
两个许可证,按目录拆分。每个MIT目录都有自己的 LICENSE; 其他的都在根下 许可证,可持续使用许可证。
| 麻省理工学院 | 可持续利用 |
|---|---|
cel/, message-format/, sdk/, templating/, packages/glob/, packages/editor-protocol/ -表达式引擎,消息核心,SDK以及控制器所链接的内容 | analyzer/, kernel/, cli/ -什么加载,检查和运行清单 |
modules/, blueprints/ -标准库 | packages/ide-support/, packages/language-server/, packages/language-host/, ide/ -编辑器工具 |
starters/, examples/, docs/, benchmarks/ | packages/runner-core/, packages/debug-wire/, packages/debug-ui/, apps/docker-runner/, apps/k8s-runner/ -跑步者 |
apps/hub/, apps/hub-web/, apps/plan-approval*/ | apps/studio/, apps/authoring-agent/, pages/ 所有未列出的 |
没有麻省理工学院的软件包依赖于可持续使用的软件包, pnpm run check:licenses 执行。
捐款说明
通过贡献,您同意此存储库中的代码和示例可以用其他编程语言(包括人工智能系统)翻译或重新实现,以支持项目的多语言目标。