Feature Request: Async Client
Feature Request: Async Client
Most of what vecs manages involves interacting with a database over a network. Sqlalchemy and psycopg2 both support async operations but vecs does not. Creating an async client would unblock the python interpreter while waiting on those external systems and would enable much better performance in async environments e.g. an async enabled web server like FastAPI. That use case will be particularly important if vecs users deploy the Collection.query or Collection.upsert methods behind an API
Potential Usage:
vx = await vecs.create_async_client(DB_CONNECTION)
...
docs = await vx.create_collection(name="docs", dimension=3)
...
# same for `upsert`, `create_index`, and `query`
We use unasync in the supabase python libraries (except for supabase-py) to expose both a sync and async interface - but unasync generates synchronous code from an asynchronous codebase, while we already have a synchronous codebase here
I'm a maintainer for the supabase python community libraries, I'd be happy to help here 😄
hi @anand2312
thanks! I'll take a look at unasync, thats an interesting approach in the short term I think we'll want to make sure the overall API is stable before introducing the async interface but that could be a good option
@olirice Do you have any plans to add this feature?
it hasn't been scheduled for development yet. we'd be open to outside contributions if you're interested in working towards a PR?