Skip to main content

igdb_atlas/
lib.rs

1//! # igdb-atlas
2//!
3//! An asynchronous Rust wrapper for the [IGDB v4 API](https://api-docs.igdb.com),
4//! the video game database by Twitch.
5//!
6//! ## Features
7//!
8//! - Full async/await support via [`tokio`]
9//! - Twitch OAuth 2.0 client credentials authentication with automatic token refresh
10//! - Proactive rate limiting with exponential backoff (4 req/s limit)
11//! - Type-safe query builder supporting IGDB's Apicalypse syntax
12//! - Custom error types with detailed context
13//!
14//! ## Module Structure
15//!
16//! - [`auth`] - Twitch OAuth 2.0 authentication and token management
17//! - [`client`] - Core HTTP client, configuration, and rate limiting
18//! - [`error`] - Custom error types
19//! - [`query`] - Apicalypse query builder
20
21pub mod auth;
22pub mod client;
23pub mod endpoints;
24pub mod error;
25pub mod models;
26pub mod query;
27
28// Infrastructure
29pub use client::IGDBClient;
30pub use client::config::ClientConfig;
31pub use error::IGDBError;
32pub use query::QueryBuilder;
33
34// Primary domain-model
35pub use models::age_ratings::AgeRating;
36pub use models::characters::Character;
37pub use models::collections::Collection;
38pub use models::companies::Company;
39pub use models::date_formats::DateFormat;
40pub use models::events::Event;
41pub use models::franchises::Franchise;
42pub use models::games::Game;
43pub use models::languages::Language;
44pub use models::networks::NetworkType;
45pub use models::platforms::Platform;
46pub use models::searches::Search;
47pub use models::themes::Theme;
48pub use models::websites::Website;