Skip to main content

Crate Horizon_Network_Common

Crate Horizon_Network_Common 

Source
Expand description

§Horizon Network Common

Shared types and protocols for the Horizon ecosystem:

  • Horizon - Game server instances (regions)
  • Horizon-Atlas - Server meshing proxy and load balancer
  • Horizon-Maestro - Container orchestration and deployment

This crate provides the common data structures and communication protocols that enable these three systems to work together for infinite world scaling.

§Architecture

┌─────────────────────────────────────────────────────────────────┐
│                         Maestro                                  │
│              (Container Orchestration)                           │
└─────────────────────────┬───────────────────────────────────────┘
                          │ SpawnServerRequest / SpawnServerResponse
                          ▼
┌─────────────────────────────────────────────────────────────────┐
│                          Atlas                                   │
│        (Server Meshing Proxy + Player Routing)                   │
└────────┬────────────────┬───────────────────┬───────────────────┘
         │                │                   │
         │ Registration   │ Heartbeat         │ Transfer
         ▼                ▼                   ▼
┌────────────────┐ ┌────────────────┐ ┌────────────────┐
│   Horizon      │ │   Horizon      │ │   Horizon      │
│  Region(0,0,0) │ │  Region(1,0,0) │ │  Region(0,1,0) │
└────────────────┘ └────────────────┘ └────────────────┘

Re-exports§

pub use spatial::WorldCoordinate;
pub use spatial::RegionCoordinate;
pub use spatial::RegionBounds;
pub use server::ServerId;
pub use server::ServerInfo;
pub use server::ServerStatus;
pub use server::ServerRegistration;
pub use server::ServerHeartbeat;
pub use server::RegistrationResponse;
pub use server::SpawnServerRequest;
pub use server::SpawnServerResponse;
pub use server::ApiServerRegistration;
pub use server::ApiRegistrationResponse;
pub use server::AdjacentServerInfo;
pub use server::ApiServerHeartbeat;
pub use server::ApiHeartbeatResponse;
pub use server::ServerCommand;
pub use player::PlayerId;
pub use player::PlayerInfo;
pub use player::PlayerState;
pub use player::AuthenticationStatus;
pub use player::ConnectionState;
pub use player::MovementData;
pub use player::DisconnectReason;
pub use transfer::TransferToken;
pub use transfer::TransferRequest;
pub use transfer::TransferResult;
pub use transfer::TransferReason;
pub use transfer::TransferError;
pub use transfer::TransferNotification;
pub use health::HealthStatus;
pub use health::HealthCheck;
pub use health::HealthCheckRequest;
pub use health::ComponentHealth;
pub use health::ClusterHealth;
pub use messages::HorizonMessage;
pub use messages::AtlasMessage;
pub use messages::AtlasToMaestroMessage;
pub use messages::MaestroMessage;
pub use messages::Envelope;
pub use messages::Ack;

Modules§

health
Health check types for monitoring Horizon instances.
messages
Message types for inter-service communication.
player
Player-related types shared across the Horizon ecosystem.
server
Server registration and status types.
spatial
Spatial types for 3D world coordinates and region boundaries.
transfer
Player transfer types for seamless server-to-server migration.