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
File details
Details for the file os-aio-pod-channel-0.1.13.tar.gz
.
File metadata
- Download URL: os-aio-pod-channel-0.1.13.tar.gz
- Upload date:
- Size: 11.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.8.8
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | ab95656757100365953087180bb3a55c8c8f5f446eab37006df08441cdb299bc |
|
MD5 | 0af905ff86a9d7b4f7b55be3b4d6109a |
|
BLAKE2b-256 | c0fe9eedb41fbb22e0bccd8d5291050478393c3ded00f2f98d8e2eb23c44e537 |
File details
Details for the file os_aio_pod_channel-0.1.13-py3-none-any.whl
.
File metadata
- Download URL: os_aio_pod_channel-0.1.13-py3-none-any.whl
- Upload date:
- Size: 11.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.8.8
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | f30b170dbfc1150246d8e0acca689ca90edc24e8a8a6c67d0c655f9e920bda4b |
|
MD5 | 57452e08361bf0e6af8a508de7c0b406 |
|
BLAKE2b-256 | 20b724c337b9f6086f71a6e3950f8dd1d3c56cf7cf34712fc603bc009f6b4ed9 |