Skip to content

Repository files navigation

 ███████╗██████╗ ██████╗ █████╗ ██╗ ██╗
██╔════╝██╔══██╗██╔═══██╗██╔══██╗██║ ██╔╝
███████╗██████╔╝██║ ██║███████║█████╔╝ ╚════██║██╔═══╝ ██║ ██║██╔══██║██╔═██╗ ███████║██║ ╚██████╔╝██║ ██║██║ ██╗
╚══════╝╚═╝ ╚═════╝ ╚═╝ ╚═╝╚═╝ ╚═╝

Spoak Backend (v0.2.5)

Yüksek performanslı, Lock-Free ve Zero-Copy Minecraft Araçları API'ı.
Rust ve Axum ile geliştirildi. Devasa trafik yüklerine dayanıklı TTL tabanlı Moka önbelleği kullanır.

GitHubRust


🚀 API Uç Noktaları (Endpoints)

Tüm endpoint'ler saniyelik rate-limit'e tabi olup, sıkça kullanılan yanıtlar anında RAM'den (Moka) dönmektedir.

Endpointİşlev
GET /api/mcpingHedef Minecraft sunucusunun canlı verilerini, gecikme sürelerini ve MOTD formatlarını getirir. (Ping Flood Korumalı)
GET /api/player/:usernameOyuncu UUID'sini, Skin model tipini ve cape (pelerin) detaylarını Mojang'dan çekip önbellekler.
GET /api/seedmap/tileCubiomes C kütüphanesini kullanarak Minecraft dünyalarının anlık biyom chunk'larını üretir ve Zero-Copy (BytesMut) ile direkt bytestream döner.
GET /api/seedmap/structuresBelirli bir koordinatın etrafındaki Tapınak, Köy veya Gemi Enkazı gibi yapıları listeler.
GET /api/serverjars/*Mojang, Paper ve Leaf build versiyonlarının güncel dağıtımlarını listeler.

🛠️ Kurulum ve Çalıştırma

Gereksinimler: Rust Stable (1.75+) ve Cubiomes (C-FFI) derlemek için GCC/Clang.

# 1. Depoyu indirin
git clone https://github.com/spoakk/backend
cd spoak-backend
# 2. Çevresel değişkenleri yapılandırın (PORT vs.)
cp .env.example .env
# 3. Yüksek performans modunda (release) çalıştırın
cargo run --release

⚡ Optimizasyonlar

  • Zero-Copy & Moka Cache: Ağır CPU kullanan C FFI (Cubiomes) sonuçları Moka üzerinde asenkron olarak önbelleklenir. Chunk başına $<1ms$ dönüş sağlanır.
  • Lock-Free Rate Limiter: Arka planda sunucuyu bloke eden eski DashMap yapıları kaldırılarak TTL tabanlı Moka Rate-Limiter sistemine geçilmiştir.
  • Graceful Shutdown:ctrl_c dinlenerek, aktif bağlantıların güvenle kapatılması sağlanır.

🔗 İlgili Bağlantılar

Releases

Packages

Contributors

Languages