Explain: llm_async elegantly solves the pain of building truly async LLM clients in Python: unified multi-provider interface (OpenAI, Claude, Google Gemini, and OpenRouter), real end-to-end streaming over asyncio, tool-calling with consistent round-trips, and structured outputs with JSON schema (where supported), all focused on low latency via aiosonic.
How It Differs
If similar entries exist, what makes this one unique?
Async-first + real performance: built on aiosonic (low-overhead async HTTP) and designed for streaming and fast round-trips.
Single API for multiple providers: same messages/tools/streaming pattern for OpenAI, Claude, Gemini, and OpenRouter.
Integrated tool-calling round-trips: helpers to execute tool calls and forward results in the next turn consistently.
Structured Outputs with schema validation: supported by OpenAI, Gemini, and OpenRouter (not Claude).
Production-ready extras: HTTP/2 support in the underlying client and request() for calling direct endpoints (GET/POST/etc) on any provider.
OpenAI Responses API + prompt caching: support for previous_response_id + prompt_cache_key for multi-turn conversations without resending full history.
🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.
## 📋 Pull Request Information
**Original PR:** https://github.com/vinta/awesome-python/pull/2926
**Author:** [@sonic182](https://github.com/sonic182)
**Created:** 2/20/2026
**Status:** ❌ Closed
**Base:** `master` ← **Head:** `feature/add_llm_async`
---
### 📝 Commits (1)
- [`5aceece`](https://github.com/vinta/awesome-python/commit/5aceecedf2405bbce261c4f3dabf2a9ab94b2c06) Add llm-async to Machine Learning section
### 📊 Changes
**1 file changed** (+1 additions, -0 deletions)
<details>
<summary>View changed files</summary>
📝 `README.md` (+1 -0)
</details>
### 📄 Description
## Project
[llm_async](https://github.com/sonic182/llm-async)
## Checklist
- [x] One project per PR
- [x] PR title format: `Add llm-async`
- [x] Entry format: `* [llm_async](https://github.com/sonic182/llm-async) - ... .`
- [x] Description is concise and short
## Why This Project Is Awesome
Which criterion does it meet? (pick one)
- [ ] **Industry Standard** — The go-to tool for a specific use case
- [ ] **Rising Star** — 5000+ stars in < 2 years, significant adoption
- [x] **Hidden Gem** — Exceptional quality, solves niche problems elegantly
Explain:
`llm_async` elegantly solves the pain of building truly async LLM clients in Python: unified multi-provider interface (OpenAI, Claude, Google Gemini, and OpenRouter), real end-to-end streaming over asyncio, tool-calling with consistent round-trips, and structured outputs with JSON schema (where supported), all focused on low latency via `aiosonic`.
## How It Differs
If similar entries exist, what makes this one unique?
- **Async-first + real performance**: built on `aiosonic` (low-overhead async HTTP) and designed for streaming and fast round-trips.
- **Single API for multiple providers**: same `messages/tools/streaming` pattern for OpenAI, Claude, Gemini, and OpenRouter.
- **Integrated tool-calling round-trips**: helpers to execute tool calls and forward results in the next turn consistently.
- **Structured Outputs with schema validation**: supported by OpenAI, Gemini, and OpenRouter (not Claude).
- **Production-ready extras**: HTTP/2 support in the underlying client and `request()` for calling direct endpoints (GET/POST/etc) on any provider.
- **OpenAI Responses API + prompt caching**: support for `previous_response_id` + `prompt_cache_key` for multi-turn conversations without resending full history.
---
<sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
📋 Pull Request Information
Original PR: https://github.com/vinta/awesome-python/pull/2926
Author: @sonic182
Created: 2/20/2026
Status: ❌ Closed
Base:
master← Head:feature/add_llm_async📝 Commits (1)
5aceeceAdd llm-async to Machine Learning section📊 Changes
1 file changed (+1 additions, -0 deletions)
View changed files
📝
README.md(+1 -0)📄 Description
Project
llm_async
Checklist
Add llm-async* [llm_async](https://github.com/sonic182/llm-async) - ... .Why This Project Is Awesome
Which criterion does it meet? (pick one)
Explain:
llm_asyncelegantly solves the pain of building truly async LLM clients in Python: unified multi-provider interface (OpenAI, Claude, Google Gemini, and OpenRouter), real end-to-end streaming over asyncio, tool-calling with consistent round-trips, and structured outputs with JSON schema (where supported), all focused on low latency viaaiosonic.How It Differs
If similar entries exist, what makes this one unique?
aiosonic(low-overhead async HTTP) and designed for streaming and fast round-trips.messages/tools/streamingpattern for OpenAI, Claude, Gemini, and OpenRouter.request()for calling direct endpoints (GET/POST/etc) on any provider.previous_response_id+prompt_cache_keyfor multi-turn conversations without resending full history.🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.