fastlink

FastLink OAuth 2.0 client for various platforms, asynchronous, easy-to-use, extensible

https://github.com/everysoftware/fastlink

Science Score: 44.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
  • Committers with academic emails
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (8.3%) to scientific vocabulary

Keywords

fastapi httpx oauth2
Last synced: 6 months ago · JSON representation ·

Repository

FastLink OAuth 2.0 client for various platforms, asynchronous, easy-to-use, extensible

Basic Info
  • Host: GitHub
  • Owner: everysoftware
  • License: mit
  • Language: Python
  • Default Branch: master
  • Homepage:
  • Size: 699 KB
Statistics
  • Stars: 2
  • Watchers: 1
  • Forks: 2
  • Open Issues: 1
  • Releases: 0
Topics
fastapi httpx oauth2
Created about 1 year ago · Last pushed 9 months ago
Metadata Files
Readme Funding License Code of conduct Citation Codeowners Security

README.md

FastLink

OAuth 2.0 client for various platforms, asynchronous, easy-to-use, extensible


Test CodeQL Advanced


Features

  • All-in-one: Supports popular platforms like Google, Yandex, Telegram, etc.
  • Asynchronous: Built on top of httpx is fully asynchronous.
  • Easy-to-use: Simple and intuitive API for quick integration.
  • Extensible: Easily add support for new platforms or customize existing ones.

Installation

bash pip install fastlink

Get Started

```python from typing import Annotated, Any

from fastapi import Depends, FastAPI from fastapi.responses import RedirectResponse

from examples.config import settings from fastlink import GoogleSSO from fastlink.schemas import OAuth2Callback, OpenID

app = FastAPI()

sso = GoogleSSO( settings.googleclientid, settings.googleclientsecret, "http://localhost:8000/callback", )

@app.get("/login") async def login() -> RedirectResponse: async with sso: url = await sso.login_url() return RedirectResponse(url=url)

@app.get("/callback") async def callback(call: Annotated[OAuth2Callback, Depends()]) -> OpenID: async with sso: return await sso.callback(call) ```

Now you can run the server and visit http://localhost:8000/login to start the OAuth 2.0 flow.

screenshot-1738081195921.png

After logging into Google, you will be redirected to the callback URL. The server will then fetch the user's OpenID information and return it as a response. screenshot-1738081352079.png

Owner

  • Name: Ivan Stasevich
  • Login: everysoftware
  • Kind: user
  • Location: Nizhniy Novgorod, Russia

Python developer from Russia

Citation (CITATION.cff)

# This CITATION.cff file was generated with cffinit.
# Visit https://bit.ly/cffinit to generate yours today!

cff-version: 1.2.0
title: FastLink
message: >-
  If you use this software, please cite it using the
  metadata from this file.
type: software
authors:
  - given-names: Ivan
    family-names: Stasevich
    email: pravitel2015ify@gmail.com
repository-code: 'https://github.com/everysoftware/fastlink'
abstract: >-
  FastLink OAuth 2.0 client for various platforms,
  asynchronous, easy-to-use, extensible
keywords:
  - httpx
  - pydantic
  - oauth2
  - fastapi
license: MIT

GitHub Events

Total
  • Push event: 12
Last Year
  • Push event: 12

Committers

Last synced: 7 months ago

All Time
  • Total Commits: 27
  • Total Committers: 1
  • Avg Commits per committer: 27.0
  • Development Distribution Score (DDS): 0.0
Past Year
  • Commits: 27
  • Committers: 1
  • Avg Commits per committer: 27.0
  • Development Distribution Score (DDS): 0.0
Top Committers
Name Email Commits
everysoftware p****y@g****m 27

Issues and Pull Requests

Last synced: 6 months ago

Packages

  • Total packages: 1
  • Total downloads:
    • pypi 17 last-month
  • Total dependent packages: 0
  • Total dependent repositories: 0
  • Total versions: 7
  • Total maintainers: 1
pypi.org: fastlink

FastLink OAuth 2.0 client for various platforms, asynchronous, easy-to-use, extensible

  • Versions: 7
  • Dependent Packages: 0
  • Dependent Repositories: 0
  • Downloads: 17 Last month
Rankings
Dependent packages count: 9.2%
Average: 30.4%
Dependent repos count: 51.6%
Maintainers (1)
Last synced: 6 months ago

Dependencies

.github/workflows/ci.yml actions
  • actions/checkout v3 composite
  • actions/setup-python v4 composite
poetry.lock pypi
  • annotated-types 0.7.0
  • anyio 4.8.0
  • certifi 2025.1.31
  • cfgv 3.4.0
  • click 8.1.8
  • colorama 0.4.6
  • distlib 0.3.9
  • dnspython 2.7.0
  • email-validator 2.2.0
  • fastapi 0.115.8
  • fastapi-cli 0.0.7
  • filelock 3.17.0
  • h11 0.14.0
  • httpcore 1.0.7
  • httptools 0.6.4
  • httpx 0.28.1
  • identify 2.6.6
  • idna 3.10
  • itsdangerous 2.2.0
  • jinja2 3.1.5
  • markdown-it-py 3.0.0
  • markupsafe 3.0.2
  • mdurl 0.1.2
  • mypy 1.14.1
  • mypy-extensions 1.0.0
  • nodeenv 1.9.1
  • orjson 3.10.15
  • platformdirs 4.3.6
  • pre-commit 4.1.0
  • pydantic 2.10.6
  • pydantic-core 2.27.2
  • pydantic-extra-types 2.10.2
  • pydantic-settings 2.7.1
  • pygments 2.19.1
  • pyjwt 2.10.1
  • python-dotenv 1.0.1
  • python-multipart 0.0.20
  • pyyaml 6.0.2
  • rich 13.9.4
  • rich-toolkit 0.13.2
  • ruff 0.9.4
  • shellingham 1.5.4
  • sniffio 1.3.1
  • starlette 0.45.3
  • typer 0.15.1
  • typing-extensions 4.12.2
  • ujson 5.10.0
  • uvicorn 0.34.0
  • uvloop 0.21.0
  • virtualenv 20.29.1
  • watchfiles 1.0.4
  • websockets 14.2
pyproject.toml pypi
  • fastapi ^0.115.7 develop
  • mypy ^1.14.1 develop
  • pre-commit ^4.1.0 develop
  • ruff ^0.9.3 develop
  • fastapi ^0.115.7
  • httpx ^0.28.1
  • pydantic ^2.10.6
  • pyjwt ^2.10.1
  • python ^3.12