Remora.OAuth2 is a C# library for interfacing with OAuth2 services. It is built to fulfill a need for robust, feature-complete, highly available and concurrent applications.
Want to chat with users and developers? Come join us!
- Extensive API coverage - does anything and everything you need
- Modern and active - uses contemporary technologies and usage patterns
- Fully asynchronous - do many things at once at scale
- Modular - swap parts of the library with your own implementations at will
This table lists the various RFCs related to OAuth2 that the library supports.
RFC | Name | Supported |
---|---|---|
6749 | OAuth 2.0 Authorization Framework | API model only |
7009 | Token Revocation | API model only |
8628 | Device Authorization Grant | API model only |
Remora.OAuth2 defines the following three goals that guides its development. These are shorter summaries - to read the full goal definitions and see examples, please refer to the Contributing Guidelines.
Correctness, in the context of Remora.OAuth2, means that the API available to the end user should as faithfully and accurately represent the actual reality of data presented to or from an API; that is, no data or structure of data should meaningfully change between the library receiving it and the user accessing it.
Robustness refers to a focus on never allowing problems originating from user data or real-life runtime conditions to bring down or otherwise corrupt the end user's application. The end user should be confident that, should an error arise, they will be aware of the fault potential before even compiling the application.
Remora.OAuth2 aims to be truly asynchronous from the ground up, respecting and utilizing established best practices for C# and the TPL. Furthermore, it aims to be concurrent, allowing end users to react to and perform actions upon many tasks at once.
Remora.OAuth2's primary distribution format is via nuget - get it there!
If you wish to use or develop the library further, you will need to compile it from source.
git clone git@github.com:Nihlus/Remora.OAuth2.git
cd Remora.OAuth2
dotnet build
dotnet pack -c Release
Up-to-date documentation for the API, as well as a quickstart guide, is available online at the repository pages.
Each package has its own README with more detailed information regarding its purpose and use. If you want to know more about each one of these, please refer to the list below. It's roughly organized in order of importance to end users, but feel free to explore.
A note on versioning - Remora.OAuth2 uses SEMVER 2.0.0, which, in short, means
Given a version number MAJOR.MINOR.PATCH, increment the:
- MAJOR version when you make incompatible API changes,
- MINOR version when you add functionality in a backwards compatible manner, and
- PATCH version when you make backwards compatible bug fixes.
Remora.OAuth2 does not follow a set release cycle, and releases new versions on a rolling basis as new features of the OAuth2 API are implemented or documented.
As a developer, you should check in every now and then to see what's changed - changelogs are released along with tags here on Github, as well as in the individual package descriptions.
Whenever a new set of packages are released, the commit the releases were built
from is tagged with the year and an incremental release number - for example,
2021.1
.
Whenever a new push to main
is made, a new set of packages based on the
latest commit will be published to GitHub Packages.
The URL of the NuGet source is https://nuget.pkg.github.com/Nihlus/index.json
.
As the NuGet source requires authentication, follow GitHub's instructions: here
See Contributing.
Icon by Twemoji, licensed under CC-BY 4.0.