# Libraries The shared `rethink-public` library suite. Before hand-rolling common functionality — retry/backoff, logging setup, HTTP sessions, proxies, webhooks, IMAP/mail, datastore/KV, crypto, `discord.py` helpers, timing/paths/masking utilities — check here first and prefer an existing lib. This list is pulled live from Gitea, so a new library in the org shows up on the next page load — nothing here is rebuilt or version-pinned. Each entry links to the repo, where the README and tags live. ## Install Pin a tag in your dependencies — never an unpinned branch: ``` @ git+https://git.rethinkstudios.io/rethink-public/.git@ ``` ??? example "Using a library — install, import, go" Add it to your project's deps (e.g. `pyproject.toml`): ```toml [project] dependencies = [ "aioweb @ git+https://git.rethinkstudios.io/rethink-public/aioweb.git@v0.3.1", ] ``` Then use it — the README in each repo has the real surface; this is the shape: ```python import asyncio from aioweb import Session async def main() -> None: """fetch a page through the shared async http session""" async with Session() as web: resp = await web.get("https://example.test") print(resp.status, len(resp.content)) asyncio.run(main()) ``` Need to bump a lib? Change the `@` and reinstall — versions live with the lib, not in these docs.

Loading libraries from Gitea…

!!! info "If the live list is empty or stale" The fetch runs in your browser against the Gitea API and needs the org repos to be readable unauthenticated (they are — it's a public org) and CORS to allow the docs domain. If the list won't load, browse the org directly at [git.rethinkstudios.io/rethink-public](https://git.rethinkstudios.io/rethink-public). The fallback for a disabled live fetch is a webhook rebuild — a push to any `rethink-public` repo triggers a site rebuild.