Asyncio TCP Multiplexer
Project description
async_multiplexer
async_multiplexer is a TCP Multiplexer based on Mplex protocol, but simplified. It is intended for creating mutiple streams in parallel on top of a same TCP connection.
Installation
pip install async-multiplexer
Usage
Client
import asyncio
from async_multiplexer import open_multiplexer_context
async def echo_client():
async with open_multiplexer_context("127.0.0.1", 7777) as multiplexer:
stream_echo_1 = await multiplexer.multiplex("echo.1")
stream_echo_2 = await multiplexer.multiplex("echo.2")
await stream_echo_1.write(b"echo.1")
await stream_echo_2.write(b"echo.2")
if __name__ == "__main__":
asyncio.run(echo_client())
Server
import asyncio
from async_multiplexer import bind_multiplex_listener_context
async def handler(stream):
data = await stream.read()
print(data)
async def echo_server():
async with bind_multiplex_listener_context("127.0.0.1", 7777) as listener:
listener.set_handler("echo.1", handler)
listener.set_handler("echo.2", handler)
await asyncio.sleep(10)
if __name__ == "__main__":
asyncio.run(echo_server())
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Close
Hashes for async_multiplexer-0.0.2-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d225ab90e442e0b54adb8f7273d4a67fc4a2e39bbf8875e3058f5a323185ddce |
|
MD5 | 8b68e7695ec0c04318f734fb9f1dfe07 |
|
BLAKE2b-256 | 161d07c3ac82fcf2e8b0c5a68e59497ae5f4a43804e03e9d31b7872e4da65587 |