跳到正文

Crate 与功能开关

Workspace 被拆分为职责明确的 Crate。多数应用只需依赖 elura 门面并启用对应 功能。

Workspace Crate

Crate用途是否作为应用依赖发布?
elura统一门面与功能选择是,推荐
elura-core协议、会话、路由、票据和实时通信原语低层集成时使用
elura-runtimeGateway、World、传输、Launcher 和可观测性通常通过 elura
elura-adaptersRedis、SQL、DNS、Kubernetes、Outbox 适配器通常通过 elura
elura-providers身份、OTP、短信和支付 Provider通常通过 elura
elura-cli项目脚手架命令作为工具安装
elura-load连接与请求压测工具仅开发使用
elura-perf可复现性能场景Workspace 内部使用

门面功能

elura 默认启用 runtime,而 runtime 包含 core

Feature启用内容
coreelura-core
runtimecoreelura-runtime
adaptersruntime、基础 elura-adapters
redisadapters、Redis 适配器实现
sqladapters、SQL 适配器实现
kubernetesadapters、Kubernetes 适配器实现
adminadapters、适配器支持的管理能力
providerscore、基础 elura-providers
identity身份 Provider 集合
notification-alisms阿里云短信通知 Provider
otpOTP 服务与存储集成
payment-alipay支付宝
payment-appleApple 购买验证
payment-douyin抖音支付
payment-quicksdkQuickSDK 支付
payment-wechat-mini微信小程序支付
payment-wechat-pay微信支付
full上述全部适配器和 Provider

门面导入

门面刻意保持较小的 Crate 根级:elura::Errorelura::Result 位于根级, 其余 API 按职责组织。

常用应用契约和运行时类型可从 Prelude 导入:

rust
use elura::prelude::{
    GatewayLaunchConfig, GatewayLauncher, Identity, WorldBuilder, WorldContext,
};

需要在调用处明确职责时,使用领域模块:

rust
use elura::world::{WorldBuilder, WorldModule};
use elura::world::middleware::LoggingMiddleware;
use elura::world::testing::WorldHarness;
use elura::gateway::GatewayInfrastructure;

具体基础设施和 Provider 实现不会加入 Prelude,应从对应的 Feature Gate 命名空间导入:

rust
use elura::adapters::discovery::DnsWorldDiscoveryConfig;
use elura::adapters::redis::RedisReplayStore; // `redis`
use elura::providers::identity::GuestProvider; // `identity`
use elura::providers::payment::WechatPayPayment; // `payment-wechat-pay`

这样可以在 Code Review 中直接看出 Redis、Kubernetes、SQL 或第三方 API 依赖。条目是否可用仍由 Feature 决定。Provider 操作使用 elura::providers::ProviderResult;启用对应 Feature 后,常用 Provider Trait 也可从 Prelude 导入。

示例

toml
# Gateway + World runtime only (default)
elura = "0.1.1"

# Generated split project with DNS discovery types
elura = { version = "0.1.1", features = ["adapters"] }

# Redis-backed distributed application
elura = { version = "0.1.1", features = ["redis"] }

# Kubernetes discovery and SQL account versions
elura = { version = "0.1.1", features = ["kubernetes", "sql"] }

0.x 阶段应锁定精确兼容版本,并在升级前查看 Release Notes。

Rustdoc

条目级签名查 docs.rs,架构和运维指南查本站:

  • https://docs.rs/elura
  • https://docs.rs/elura-core
  • https://docs.rs/elura-runtime
  • https://docs.rs/elura-adapters
  • https://docs.rs/elura-providers

基于 MIT 许可证发布。