Crate aerox

Crate aerox 

Source
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_server

Re-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§

client
High-level client API
prelude
预导出常用类型
server
High-level server API

Structs§

StreamClient
Low-level stream client

Enums§

Error
AeroX 统一错误枚举

Constants§

NAME
AeroX 包名
VERSION
AeroX 版本号

Type Aliases§

Result
AeroX 统一错误类型