A os-aio-pod component for transporting.
Project description
os-aio-pod-channel
A os-aio-pod component for transporting.
This lib is designed as a component of os-aio-pod framework. It is mainly used for transporting data between TCP endpoints. The os-aio-pod built-in TCP server is used as background drive engine. With the middleware/extension mechanism, you can easily build aio programs like Proxy or MITM server.
Install
pip install os-aio-pod-channel
Conception
- Engine: Used to adapt with os-aio-pod framework, drive the whole event loop. It is also an access point for the components communicate with each other.
- Endpoint: Each incoming or outgoing connection is called endpoint. typically, just engine use it's APIs to read, write data or close connection.
- Channel: When incoming and outgoing endpoints all connected, a channel between them established. The engine is in charge of it's inner transporting status.
- Middleware: Used to communicate with channel and handle data.
- Extension: Used for functional expansion. Can be accessed from engine instance.
Usage
This lib is used with os-aio-pod. Typically, you should define a configure file and run with os-aio-pod command line tool.
A minimal configure file (do nothing, just accept TCP connection, read and drop):
# config.py
BEANS = [
{
'core' : 'os_aio_pod.contrib.tcp_server.TCPServerAdapter',
'server': 'os_aio_pod_channel.engine.Engine',
'MIDDLEWARES': [],
'EXTENSIONS': [],
}
]
os-aio-pod run -c config.py --debug
Middleware
When data transporting or channel closed the corresponding method of middlewares will be invoked in specific order. You should inherit from os_aio_pod_channel.middleware.Middleware
and configure class, id and other parameters of each middleware in MIDDLEWARES
list.
Extension
You shold inherit from os_aio_pod_channel.extension.Extension
and config class, name and other parameters of each extension in EXTENSIONS
list. You can get extension by engine.extension_manager.get_extension(extension_name)
Unit Tests
tox
License
MIT licensed.
Project details
Release history Release notifications | RSS feed
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
Hashes for os-aio-pod-channel-0.1.13.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | ab95656757100365953087180bb3a55c8c8f5f446eab37006df08441cdb299bc |
|
MD5 | 0af905ff86a9d7b4f7b55be3b4d6109a |
|
BLAKE2b-256 | c0fe9eedb41fbb22e0bccd8d5291050478393c3ded00f2f98d8e2eb23c44e537 |
Hashes for os_aio_pod_channel-0.1.13-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f30b170dbfc1150246d8e0acca689ca90edc24e8a8a6c67d0c655f9e920bda4b |
|
MD5 | 57452e08361bf0e6af8a508de7c0b406 |
|
BLAKE2b-256 | 20b724c337b9f6086f71a6e3950f8dd1d3c56cf7cf34712fc603bc009f6b4ed9 |