Skip to content
This repository has been archived by the owner on Nov 15, 2019. It is now read-only.

Sans I/O? #2

Open
florimondmanca opened this issue Jul 20, 2019 · 0 comments
Open

Sans I/O? #2

florimondmanca opened this issue Jul 20, 2019 · 0 comments
Labels
enhancement New feature or request help wanted Extra attention is needed

Comments

@florimondmanca
Copy link
Owner

Please describe your problem
The main API is currently the asynchronous call to the protocol object, e.g. await proto({"type": "start"}), which means it cannot be used in environments that rely on regular functions instead of async ones (such as gevent).

Describe the solution you'd like
Sans I/O encourages implementing network protocols without making any I/O nor assumptions on the underlying concurrency model (e.g.sync vs async).

This library is arguably higher-level than the ones listed on the Sans I/O project landing page (libraries for WebSocket, HTTP/2, etc), so I'm not sure whether Sans I/O principles can apply here in theory, but… My gut feeling is that there should be a way to bake it into this library.

Additional context
A very interesting discussion about this kind of endeavour happened here: aiortc/aioquic#4
Interesting ideas included thinking in terms of events and having providing an iterator interface for polling and dealing with these events.

@florimondmanca florimondmanca added enhancement New feature or request help wanted Extra attention is needed labels Jul 20, 2019
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
enhancement New feature or request help wanted Extra attention is needed
Projects
None yet
Development

No branches or pull requests

1 participant