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
Summary
crate-pythonis entirely synchronous. Every call toConnection,Cursor.execute(),fetchall(), and theBLOB APIblocks 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: