๐ Feature: Async Client for Python
Closed this issue ยท 2 comments
๐ Feature description
An async client for the python-sdk.
๐ค Pitch
I'm planning to move over a couple of applications I maintain to Appwrite, and while in the process of moving I noticed the python-sdk client is non-asynchronous. Mainly due to requests
being used as the http client.
A little bit of background: The applications I maintain are mostly FastAPI-based and they recommend any I/O based libraries to be asynchronous for better performance..
I've already got a p.o.c fork and opened a PR #453 which passes all tests. This is a very initial version and I definitely make some time to optimize it further, but I think it's a good starting point.
There are a number of changes.
-
Breaking: Moving from
requests
tohttpx
. Httpx is mostly requests-compatible as well contains both a sync and async client.- I removed requests to keep the dependency count low, but I can understand if certain people are unable to install.. Maybe we can publish a spealized version of the sdk with async support? e.g:
pip install appwrite[async]
?
- I removed requests to keep the dependency count low, but I can understand if certain people are unable to install.. Maybe we can publish a spealized version of the sdk with async support? e.g:
-
Async Client and functions is available under
appwrite.aio
and any I/O related functions must be called withawait
.
There is a lot of room to further optimize, such as maybe using AnyIO
for users who use Trio instead of asyncio.
๐ Have you spent some time to check if this issue has been raised before?
- I checked and didn't find similar issue
๐ข Have you read the Code of Conduct?
- I have read the Code of Conduct
@ms7m, can your description be added to appwrite/sdk-for-python#26 and then we close out this issue as a duplicate since there's a longer history/conversation in that issue?
Closing due to inactivity and duplicate