gitverse-sdk 1.2.0

Rust SDK for GitVerse API
Documentation

GitVerse Rust SDK

Rust клиент для GitVerse API.

Crates.io Documentation

Установка

Добавьте в Cargo.toml:

[dependencies]
gitverse-sdk = "1"
tokio = { version = "1", features = ["macros", "rt-multi-thread"] }

Быстрый старт

use gitverse_sdk::{Client, ClientConfig};

#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
    let client = Client::new(ClientConfig {
        token: "your-token".to_string(),
        ..Default::default()
    })?;

    // Получить текущего пользователя
    let user = client.get_authenticated().await?;
    println!("Hello, {}!", user.login.as_deref().unwrap_or("(unknown)"));

    // Получить репозиторий
    let repo = client.get("owner", "repo").await?;
    println!("Repo: {} ({} stars)", repo.full_name, repo.stars_count);

    Ok(())
}

Возможности

  • Полное покрытие GitVerse API
  • Async/await HTTP клиент на базе reqwest
  • Автоматическая обработка Rate Limits
  • Версионирование API с предупреждениями об устаревании
  • Строго типизированные структуры с serde
  • Идиоматичная обработка ошибок

Обработка ошибок

use gitverse_sdk::errors::{self, Error};

match client.get_by_username("nonexistent").await {
    Ok(user) => println!("Found: {}", user.login.as_deref().unwrap_or("(unknown)")),
    Err(ref e) if errors::is_not_found(e) => println!("User not found"),
    Err(ref e) if errors::is_rate_limit_error(e) => println!("Rate limited"),
    Err(e) => eprintln!("Error: {e}"),
}

Связанные проекты

Лицензия

MIT