一种用于运输的操作系统aio吊舱组件。
os-aio-pod-channel的Python项目详细描述
操作系统aio pod频道
一种用于运输的操作系统aio吊舱组件。
这个库被设计为os-aio-pod框架的一个组件。它主要用于TCP端点之间的数据传输。os-aio-pod内置tcp服务器用作后台驱动引擎。使用中间件/扩展机制,您可以轻松地构建aio程序,如proxy或mitm server。
安装
pip install os-aio-pod-channel
概念
- engine:用于适应os aio pod框架,驱动整个事件循环。它也是组件之间通信的访问点。
- endpoint:每个传入或传出连接都称为endpoint。通常,引擎只是使用它的api来读、写数据或关闭连接。
- channel:当传入和传出端点都已连接时,它们之间会建立一个通道。发动机负责其内部运输状态。
- 中间件:用于与通道通信和处理数据。
- 扩展:用于函数扩展。可以从引擎实例访问。
用法
此库与os-aio-pod一起使用。通常,您应该定义一个配置文件并使用os aio pod命令行工具运行。
一个最小的配置文件(不做任何事,只接受TCP连接,读取并删除):
# 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
中间件
当数据传输或通道关闭时,将按特定顺序调用相应的中间件方法。您应该从os_aio_pod_channel.middleware.Middleware
继承,并在MIDDLEWARES
列表中配置每个中间件的类、id和其他参数。
延伸
您应该继承os_aio_pod_channel.extension.Extension
,并在EXTENSIONS
列表中配置每个扩展的类、名称和其他参数。您可以通过engine.extension_manager.get_extension(extension_name)
单元测试
tox
许可证
麻省理工学院许可