> ## Documentation Index
> Fetch the complete documentation index at: https://developers.authlete.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Reference Implementations

> Develop your own authorization servers efficiently with Authlete's publicly available and open-sourced reference implementations downloadable from GitHub. These are also useful for direct interaction with Authlete APIs.

<img src="https://mintcdn.com/authlete/EJDZNZMvOu_9CJHJ/configuration-reference/endpoints/reference-implementations_en.png?fit=max&auto=format&n=EJDZNZMvOu_9CJHJ&q=85&s=ee890a4c784d9651d118e03914538236" alt="reference-implementations_en" width="3309" height="1860" data-path="configuration-reference/endpoints/reference-implementations_en.png" />

*Reference implementations in Authlete 's architecture*

Almost all of Authlete's features are [exposed as APIs](https://docs.authlete.com/) .  "Reference implementations" utilizing the APIs are also publicly available and open-sourced. You may be able to efficiently develop your own authorization servers with them. These implementations are downloadable from GitHub.

[Authlete, Inc. · GitHub](https://github.com/authlete)

The reference implementations are useful even if you would like to directly interact with Authlete APIs. Codes and documents in the implementations would tell you what you should do pre and post processing for the APIs. For example, there are JavaDoc documents of classes representing responses of Authlete APIs ("\*Response" e.g. [AuthorizationResponse](http://authlete.github.io/authlete-java-common/com/authlete/common/dto/AuthorizationResponse.html) under [com.authlete.common.dto](https://github.com/authlete/authlete-java-common/tree/master/src/main/java/com/authlete/common/dto) package in [authlete-java-common](https://github.com/authlete/authlete-java-common) library).  They explain details on expected post processing in authorization server on receiving a response from Authlete APIs.

Popular reference implementations are as follows.

* Java
  * [authlete-java-common](https://github.com/authlete/authlete-java-common): Authlete Common Library for Java
  * [authlete-java-jaxrs](https://github.com/authlete/authlete-java-jaxrs): Authlete Library for JAX-RS (Java)
  * [java-oauth-server](https://github.com/authlete/java-oauth-server): Authorization Server Implementation in Java
* C#
  * [authlete-csharp](https://github.com/authlete/authlete-csharp): C# library for Authlete Web APIs
  * [OAuth 2.0 and OpenID Connect implementation in C# (Authlete)](https://medium.com/@darutk/oauth-2-0-and-openid-connect-implementation-in-c-authlete-8a8f9efc9361)
* PHP
  * [authlete-php](https://github.com/authlete/authlete-php): PHP library for Authlete Web APIs
  * [authlete-php-laravel](https://github.com/authlete/authlete-php-laravel): A Laravel library for OAuth 2.0 and OpenID Connect
  * [OAuth 2.0 and OpenID Connect Implementation in Laravel (Authlete)](https://medium.com/@darutk/oauth-2-0-and-openid-connect-implementation-in-laravel-authlete-4d32802ab335)
* Python
  * [authlete-python](https://github.com/authlete/authlete-python): Authlete Library for Python
