matrix-org / matrix-org/matrix-python-sdk

Support async use-cases

Open
#127 3 comments 1 reaction 0 assignees View on GitHub
Api layer Client layer enhancement
Dominant language
Python
Stars
266
Forks
118
PR merge metrics
No merged PRs in 30d

Description

Since we're supporting both python2 and python3, our async options are very limited. I think we have to either use gevent, use threading, or maybe we can use something from the twisted stack?

Personally, I'd really like to just drop support for python2 (it is the way the ecosystem is moving anyway), and use either the 3.4 syntax of `@asyncio.coroutine` and `yield from` or 3.5+ of `async def` and `await`. It would give us much more semantic code. Maybe the right answer *is* just a community-maintained async fork for python 3.4+.

Issue created to separate out discussion from #126.

Contributor guide

Open the contributing guide

Research direction

Start by reading this discussion alongside issue #126 to understand the separated context and the proposed gevent, threading, Twisted, and Python 3 asyncio options. The issue does not identify files, tests, or a settled implementation target; a concrete decision and scoped acceptance criteria are needed before work can begin.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
api, backend-api-design
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.