A Rust library implementing multiple OAuth 2.0 flows including Device, Installed, and Service Account authorization.
yup-oauth2 is a Rust library that implements multiple OAuth 2.0 authorization flows, including Device, Installed Application, and Service Account flows. It provides token sources that yield HTTP Bearer tokens for authenticating API requests, originally designed for Google services but adaptable to other OAuth providers.
Rust developers building applications that need to authenticate with OAuth 2.0 providers, particularly those integrating with Google APIs or similar services requiring device, installed app, or service account authorization.
Developers choose yup-oauth2 for its comprehensive support of multiple OAuth flows in a single Rust crate, its flexibility to work with raw HTTP requests or higher-level API clients, and its proven reliability through integration with projects like google-apis-rs.
An oauth2 client implementation providing the Device, Installed, Service Account, and several more flows.
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Implements device, installed application, and service account flows, covering key OAuth 2.0 scenarios for diverse application types, as highlighted in the README's features.
Designed generically to work with any OAuth provider following Google-like patterns, though the README admits it's primarily tested with Google, offering adaptability.
Offers multiple crate versions for different Hyper and Tokio runtimes (e.g., version 5 for Tokio 1.0), easing integration into various Rust projects.
Originally developed for and integrated with google-apis-rs, indicating battle-tested reliability for Google API authentication in real-world use.
Version 4+ introduces async support but is incompatible with google-apis-rs, a major downstream project, forcing difficult migration choices for existing users.
The recommended async-google-apis for new versions is alpha-quality, posing risks for production use in async Google API integrations, as noted in the README.
Admits being primarily tested with Google; other providers might require manual fixes or contributions, increasing setup complexity for non-Google use.
Multiple versions for different runtimes (e.g., versions 1-5) can confuse users about which crate to use, especially with the shift from sync to async.