crate / crate/crate-python

Add async/asyncio support

Aperta
#820 1 commento 0 reazioni 0 assegnatari Vedi su GitHub
Lingua principale
Python
Stelle
85
Fork
34
Merge medio
3g 16h
PR unite (30g)
3

Descrizione

## Summary
`crate-python` is entirely synchronous. Every call to `Connection`, `Cursor.execute()`, `fetchall()`, and the `BLOB API` blocks the calling thread. This makes the driver unusable in modern async Python stacks like FastAPI route handlers, Django async views, Starlette/Litestar, asyncio-based ETL pipelines, and LangChain/LlamaIndex tool integrations that all expect await-able database calls.

This issue tracks the design and implementation of a first-class async interface for `crate-python`.

## Motivation
New support would increase use in:
- AI/ML backends: FastAPI services that call both a vector store and CrateDB in the same request handler
- Real-time dashboards: async WebSocket handlers that need concurrent DB queries
- High-throughput ingest: asyncio pipelines where thread-per-connection doesn't scale

Guida per i contributori

Apri la guida per i contributori

Direzione di ricerca

Inizia mappando i punti di ingresso esistenti delle API Connection, Cursor.execute(), fetchall() e BLOB per comprendere la superficie sincrona. Esamina come vengono utilizzate queste chiamate nel driver corrente e definisci cosa deve coprire l’interfaccia asincrona di prima classe. Il lavoro è completato quando i chiamanti Python asincroni possono usare equivalenti awaitable senza bloccare il thread chiamante.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Valutazione

Stack tecnologico
python
Ambito
database
Tipo di issue
Funzionalità
Difficoltà
5/5
Tempo stimato
Più di una settimana
Stato di attività
Tranquilla
Chiarezza
Da chiarire
Idoneità per principianti
25/100

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.