Diom - Components for Robust Services
网站 | 文档 | 社区 Slack
Diom 是后端组件平台
Diom(发音:dye-omm/daɪəm)是一个用于构建健壮、地道服务的后端组件平台。
它为缓存、限流、幂等性、队列等常用组件提供了高级 API。它零运行时依赖,使用自有存储,可以单节点运行,也可以作为高可用集群运行。
有用的链接:
要获取有关新功能和改进的最新信息,请务必关注我们的仓库!
与 Diom 交互
Diom 附带了多种语言的客户端库,以及一个名为 diom 的 CLI。
| ⚡️ 功能细分 ⚡️ | |||||
|---|---|---|---|---|---|
| 语言 | 官方支持 | 其他备注 | |||
| Go | ✅ | ||||
| Python | ✅ | 同步和异步。 | |||
| TypeScript/JavaScript | ✅ | ||||
| Java | ✅ | 计划支持异步。 | |||
| Kotlin | 🔜 | ||||
| Ruby | 🔜 | ||||
| C# (dotnet) | 🔜 | ||||
| Rust | ✅ | ||||
| PHP | 🔜 | ||||
| CLI | ✅ | ||||
试用 CLI
Diom CLI 已发布在 npm 上,包名为 @diomhq/diom-cli。你可以直接使用 npx 运行它,无需安装任何内容:
npx @diomhq/diom-cli --help
或全局安装:
npm install -g @diomhq/diom-cli
diom --help
运行服务器
Diom 旨在运行于具有稳定网络标识的机器集群上(例如 Kubernetes StatefulSet)。建议以三节点集群方式运行以实现高可用性和易于运维,但也可以作为单节点运行。
diom-server 二进制文件通过 TOML 文件进行配置,该文件可通过 --config-path 命令行选项传入。也可以通过设置环境变量来覆盖配置;更多信息,请参阅 ENVIRONMENT_VARIABLES.md
服务器配置
配置 diom-server 主要有两种方式:环境变量和配置文件。
服务器配置在文档的配置部分中有说明。
使用 OpenTelemetry 进行可观测性
可观测性配置在文档的可观测性部分中有说明。
开发
本应用程序使用 Rust 编写,并针对 Rust 的最新稳定版本。您应使用 rustup 或您喜欢的包管理器安装 Rust。本应用程序使用 Cargo workspaces 拆分为多个 crate。
包含了一个 prek 配置,并且所有提交都预期通过 pre-commit 检查(以及通过 Github Actions 运行的更密集的 CI 检查)。您应安装 prek,然后使用 prek install 配置其在向此仓库提交时自动运行。
justfile 中提供了许多有用的命令,可以使用 Just 调用,因此您也应确保已安装它。
构建
cargo build 在根目录下应默认构建服务器。如果你需要本地 CLI,还需要 cargo build --package diom-cli
进行更改
更改应在以你的用户名作为前缀的分支中进行(例如,johnsmith/my-cool-feature),并且提交信息应描述该更改。在发送任何 PR 之前,提交必须通过 prek、just lint 和 just test。任何影响客户端库 / CLI 的更改都需要运行 just generate 以重新构建所有客户端库和其他已签入的资源。