proxy.core.work.fd package#
Submodules#
Module contents#
proxy.py#
⚡⚡⚡ Fast, Lightweight, Pluggable, TLS interception capable proxy server focused on Network monitoring, controls & Application development, testing, debugging.
- copyright
2013-present by Abhinav Singh and contributors.
- license
BSD, see LICENSE for more details.
- class proxy.core.work.fd.LocalFdExecutor(*args: Any, **kwargs: Any)[source]#
Bases:
proxy.core.work.fd.fd.ThreadlessFdExecutor
[proxy.common.backports.NonBlockingQueue
]A threadless executor implementation which uses a queue to receive new work.
- _abc_impl = <_abc._abc_data object>#
- property loop: Optional[asyncio.events.AbstractEventLoop]#
- class proxy.core.work.fd.RemoteFdExecutor(*args: Any, **kwargs: Any)[source]#
Bases:
proxy.core.work.fd.fd.ThreadlessFdExecutor
[multiprocessing.connection.Connection
]A threadless executor implementation which receives work over a connection.
NOTE: RemoteExecutor uses
recv_handle
to accept file descriptors.TODO: Refactor and abstract
recv_handle
part so that a threaded remote executor can also accept work over a connection. Currently, remote executors must be running in a process.- _abc_impl = <_abc._abc_data object>#
- close_work_queue() None [source]#
Only called if
work_queue_fileno
returns an integer. If an fd is select-able for work queue, make sure to close the work queue fd now.
- property loop: Optional[asyncio.events.AbstractEventLoop]#
- class proxy.core.work.fd.ThreadlessFdExecutor(iid: str, work_queue: proxy.core.work.threadless.T, flags: argparse.Namespace, event_queue: Optional[EventQueue] = None)[source]#
Bases:
proxy.core.work.threadless.Threadless
[proxy.core.work.fd.fd.T
]A threadless executor which handles file descriptors and works with read/write events over a socket.
- _abc_impl = <_abc._abc_data object>#
- abstract property loop: Optional[asyncio.events.AbstractEventLoop]#