Expand description
§AeroX - 高性能游戏服务器后端框架
AeroX 是一个专注于游戏服务器后端和实时消息转发场景的高性能 Rust 框架。 它基于 Reactor 模式实现高并发连接处理,并整合了 ECS 架构。
§特性
- 基于 Tokio 异步运行时的高性能 Reactor 模式
- 支持 TCP 协议(KCP 和 QUIC 规划中)
- Protobuf 消息协议支持
- Bevy ECS 整合
- 灵活的路由和中间件系统
- 插件化架构
§快速开始
§使用 Prelude(推荐)
ⓘ
use aerox::prelude::*; // 导入所有常用类型
#[tokio::main]
async fn main() -> Result<()> {
Server::bind("127.0.0.1:8080")
.route(1001, |ctx| async move {
println!("Received: {:?}", ctx.data());
Ok(())
})
.run()
.await
}§服务器
ⓘ
use aerox::Server;
#[tokio::main]
async fn main() -> aerox::Result<()> {
Server::bind("127.0.0.1:8080")
.route(1001, |ctx| async move {
println!("Received: {:?}", ctx.data());
Ok(())
})
.run()
.await
}§客户端
ⓘ
use aerox::Client;
#[tokio::main]
async fn main() -> aerox::Result<()> {
let mut client = Client::connect("127.0.0.1:8080").await?;
client.send(1001, &message).await?;
Ok(())
}§模块组织
§配置模块 (aerox_config)
- ServerConfig - 服务器基础配置
- ReactorConfig - Reactor 模式配置
§核心模块 (aerox_core)
- App - 应用构建器
- Plugin - 插件 trait
- State - 状态管理
- Connection - 连接抽象
- ConnectionId - 连接唯一标识
§ECS 模块 (aerox_ecs)
- EcsWorld - ECS 世界管理
- NetworkBridge - 网络事件桥接
- EventScheduler - 事件调度器
- GameSystems - 游戏系统集合
- 组件: Player, Position, Velocity, Health 等
- 事件: ConnectionEstablishedEvent, MessageReceivedEvent 等
§网络模块 (aerox_network)
- Transport - 传输层抽象
- TcpReactor - TCP 反应器
- Connection - 连接管理
- ConnectionId - 连接唯一标识
- MessageCodec - 消息编解码器
§Protobuf 模块 (aerox_protobuf)
- MessageRegistry - 消息注册表
- MessageEncoder - 消息编码器
- encode_message/decode_message - 编解码函数
§路由模块 (aerox_router)
- Router - 消息路由器
- Handler - 消息处理器 trait
- Context - 请求上下文
- Middleware - 中间件 trait
- Extensions - 类型安全的扩展数据
§插件模块 (aerox_plugins)
- HeartbeatPlugin - 心跳检测插件
- RateLimitPlugin - 限流插件
§示例
ecs_basics- ECS 基础和位置更新系统router_middleware- 路由和中间件系统complete_game_server- 完整的游戏服务器示例
运行示例:
cargo run --example ecs_basics
cargo run --example router_middleware
cargo run --example complete_game_serverRe-exports§
pub use crate::client::Client;pub use crate::server::Server;pub use crate::server::ServerBuilder;pub use aerox_config;pub use aerox_core;pub use aerox_network;pub use aerox_protobuf;pub use aerox_ecs;pub use aerox_router;pub use aerox_plugins;pub use aerox_client;
Modules§
Structs§
- Stream
Client - Low-level stream client
Enums§
- Error
- AeroX 统一错误枚举
Constants§
Type Aliases§
- Result
- AeroX 统一错误类型