Skip to content

Release v2.0.0

Choose a tag to compare

@github-actions github-actions released this 01 Aug 16:21
12e83c3

Initial Release - Remnawave Rust SDK

We're excited to announce the first stable release of the Remnawave Rust SDK - a high-performance, type-safe client library for interacting with the Remnawave API.

✨ Key Features

  • 🦀 Type-Safe Rust API - Leveraging Rust's type system for compile-time guarantees and memory safety
  • ⚡ Async/Await Support - Built on tokio and reqwest for high-performance async operations
  • 🏗️ Controller-Based Architecture - Organized API endpoints into logical controllers for better code organization
  • 🔧 Comprehensive Management - Full support for users, subscriptions, nodes, hosts, billing, and system operations
  • 🛡️ Advanced Error Handling - Detailed error types with context and debugging information
  • 📦 Rich Type Definitions - Complete request/response DTOs with serde support

🎯 API Controllers

This release includes complete implementations for all major Remnawave API endpoints:

  • 👥 Users - User management, bulk operations, authentication
  • 📋 Subscriptions - Subscription lifecycle management and monitoring
  • 🖥️ Nodes & Hosts - Infrastructure monitoring and management
  • 🔐 Authentication - Token-based authentication with optional Caddy support
  • 💰 Billing - Billing and payment management
  • ⚙️ System - System statistics and health monitoring
  • 🔑 Tokens - API token management
  • 📊 Config Profiles - Configuration profile management
  • 👨‍💼 Internal Squads - Team and squad management
  • 🔒 HWID & Keygen - Hardware ID and key generation services

🚀 Getting Started

[dependencies]
remnawave = "2.0.0"
tokio = { version = "1.0", features = ["full"] }
use remnawave::RemnawaveApiClient;

#[tokio::main]
async fn main() -> anyhow::Result<()> {
    let client = RemnawaveApiClient::new(
        "https://your-panel.com".to_string(),
        Some("your-bearer-token".to_string())
    )?;
    
    let users = client.users.get_all_users(Some(10), Some(0)).await?;
    println!("Total users: {}", users.total);
    
    Ok(())
}

🔧 Technical Highlights

  • Dependencies: Built on modern Rust ecosystem with reqwest, serde, tokio, chrono, and uuid
  • Performance: Optimized for high-throughput async operations
  • Reliability: Comprehensive error handling with detailed context
  • Developer Experience: Rich type definitions and documentation

📚 Documentation

Crates.io: https://crates.io/crates/remnawave
Documentation: https://docs.rs/remnawave
Repository: https://github.com/remnawave/rust-sdk