Expand description
Pixiv API Rust Client
This is a Rust client library for interacting with Pixiv API, providing authentication, network requests and other features.
§Features
- OAuth2 password credential authentication
- Automatic token refresh
- Support for multiple runtimes (tokio/async-std/smol)
- Comprehensive error handling
- Detailed logging
- SNI bypass support (for bypassing network restrictions)
§Quick Start
use pixiv_rs::auth::AuthClient;
#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
// Initialize logging
tracing_subscriber::fmt::init();
// Create authentication client
let mut auth_client = AuthClient::new()?;
// Login with username and password
let auth_response = auth_client.login("your_username", "your_password").await?;
println!("Login successful! User ID: {}", auth_response.user.id);
Ok(())
}Re-exports§
pub use auth::AuthClient;pub use auth::AuthResponse;pub use auth::User as AuthUser;pub use client::app::AppClient;pub use client::public::PublicClient;pub use client::bypass_sni::BypassSniAppClient;pub use error::ApiErrorCode;pub use error::ApiErrorDetails;pub use error::PixivError;pub use error::Result;pub use models::app::Comment;pub use models::app::CommentAccessControl;pub use models::app::CommentsResponse;pub use models::app::ContentType;pub use models::app::Duration;pub use models::app::Filter;pub use models::app::FollowRestrict;pub use models::app::Illust;pub use models::app::IllustBookmarkResponse;pub use models::app::IllustDetail;pub use models::app::IllustFollowResponse;pub use models::app::ImageUrls;pub use models::app::MetaPage;pub use models::app::MetaSinglePage;pub use models::app::ProfileImageUrls;pub use models::app::RankingLabel;pub use models::app::RankingMode;pub use models::app::RankingResponse;pub use models::app::RecommendedResponse;pub use models::app::RestrictionAttributes;pub use models::app::SearchIllustResponse;pub use models::app::SearchTarget;pub use models::app::Series;pub use models::app::Sort;pub use models::app::Tag;pub use models::app::TrendingTag;pub use models::app::TrendingTagsResponse;pub use models::app::UgoiraFrame;pub use models::app::UgoiraMetadata;pub use models::app::UgoiraMetadataResponse;pub use models::app::User as AppUser;pub use models::app::UserFollowerResponse;pub use models::app::UserFollowingResponse;pub use models::app::UserMypixivResponse;pub use models::app::UserPreview;pub use models::app::ZipUrls;pub use models::public::PublicIllust;pub use models::public::PublicUser;pub use models::public::PublicSearchResponse;pub use models::public::PublicUserDetail;pub use models::public::PublicUserIllusts;pub use models::public::PublicUserBookmarks;pub use models::public::PublicSearchResponse as PublicSearchIllustResponse;pub use models::public::SearchTarget as PublicSearchTarget;pub use models::public::Sort as PublicSort;pub use models::public::Restrict as PublicRestrict;pub use models::public::ContentType as PublicContentType;pub use models::public::Duration as PublicDuration;pub use models::public::Filter as PublicFilter;pub use network::HttpClient;pub use utils::download;pub use utils::extract_extension;pub use utils::format_file_size;pub use utils::parse_qs;pub use utils::safe_filename;pub use utils::set_accept_language;
Modules§
Constants§
Functions§
- init_
logging - Initialize logger