ITADN
svix/diom
README.md
以下内容由 AI 翻译,如有问题请点此提交 issue 反馈

Diom - Components for Robust Services

网站 | 文档 | 社区 Slack

GitHub tag Build Status Server Security Twitter Follow Join our slack

Diom 是后端组件平台

Diom(发音:dye-omm/daɪəm)是一个用于构建健壮、地道服务的后端组件平台。

它为缓存、限流、幂等性、队列等常用组件提供了高级 API。它零运行时依赖,使用自有存储,可以单节点运行,也可以作为高可用集群运行。

PyPI Crates.io NPM version Maven Central (Java) PkgGoDev

有用的链接:

要获取有关新功能和改进的最新信息,请务必关注我们的仓库!

与 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 之前,提交必须通过 prekjust lintjust test。任何影响客户端库 / CLI 的更改都需要运行 just generate 以重新构建所有客户端库和其他已签入的资源。