{ "info": { "author": "Ozzy", "author_email": "cfhamlet@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 2 - Pre-Alpha", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Natural Language :: English", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7", "Programming Language :: Python :: 3 :: Only", "Programming Language :: Python :: Implementation :: CPython" ], "description": "# os-aio-pod-channel\n[![Build Status](https://www.travis-ci.org/cfhamlet/os-aio-pod-channel.svg?branch=master)](https://www.travis-ci.org/cfhamlet/os-aio-pod-channel)\n[![codecov](https://codecov.io/gh/cfhamlet/os-aio-pod-channel/branch/master/graph/badge.svg)](https://codecov.io/gh/cfhamlet/os-aio-pod-channel)\n[![PyPI - Python Version](https://img.shields.io/pypi/pyversions/os-aio-pod-channel.svg)](https://pypi.python.org/pypi/os-aio-pod-channel)\n[![PyPI](https://img.shields.io/pypi/v/os-aio-pod-channel.svg)](https://pypi.python.org/pypi/os-aio-pod-channel)\n\nA os-aio-pod component for transporting.\n\nThis lib is designed as a component of [os-aio-pod](https://github.com/cfhamlet/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.\n\n## Install\n\n```\npip install os-aio-pod-channel\n```\n\n\n## Conception\n\n* **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.\n* **Endpoint**: Each incoming or outgoing connection is called endpoint. typically, just engine use it's APIs to read, write data or close connection.\n* **Channel**: When incoming and outgoing endpoints all connected, a channel between them established. The engine is in charge of it's inner transporting status. \n* **Middleware**: Used to communicate with channel and handle data.\n* **Extension**: Used for functional expansion. Can be accessed from engine instance. \n\n\n\n## Usage\n\nThis lib is used with [os-aio-pod](https://github.com/cfhamlet/os-aio-pod). Typically, you should define a configure file and run with os-aio-pod command line tool.\n\nA minimal configure file (do nothing, just accept TCP connection, read and drop):\n\n```\n# config.py\nBEANS = [\n {\n 'core' : 'os_aio_pod.contrib.tcp_server.TCPServerAdapter',\n 'server': 'os_aio_pod_channel.engine.Engine',\n 'MIDDLEWARES': [],\n 'EXTENSIONS': [],\n }\n]\n```\n\n```\nos-aio-pod run -c config.py --debug\n```\n\n\n\n### Middleware\n\nWhen 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.\n\n### Extension\n\nYou 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)``\n\n\n### Unit Tests\n\n```\ntox\n```\n\n### License\n\nMIT licensed.", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/cfhamlet/os-aio-pod-channel", "keywords": "", "license": "MIT License", "maintainer": "", "maintainer_email": "", "name": "os-aio-pod-channel", "package_url": "https://pypi.org/project/os-aio-pod-channel/", "platform": "", "project_url": "https://pypi.org/project/os-aio-pod-channel/", "project_urls": { "Homepage": "https://github.com/cfhamlet/os-aio-pod-channel" }, "release_url": "https://pypi.org/project/os-aio-pod-channel/0.1.11/", "requires_dist": null, "requires_python": ">=3.6", "summary": "A os-aio-pod component for transporting.", "version": "0.1.11" }, "last_serial": 5499391, "releases": { "0.0.1": [ { "comment_text": "", "digests": { "md5": "75159fe67e4332ac7cab1802dcf1f41a", "sha256": "a190930aae00c2cc714e499c287bb07690639f10d4b15d66a10145216461acf1" }, "downloads": -1, "filename": "os-aio-pod-channel-0.0.1.tar.gz", "has_sig": false, "md5_digest": "75159fe67e4332ac7cab1802dcf1f41a", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 9553, "upload_time": "2019-03-26T10:07:21", "url": "https://files.pythonhosted.org/packages/1e/02/fe4cc036a39731c986387afee79e538fb8e6c845e0f5883c0f796e190ad7/os-aio-pod-channel-0.0.1.tar.gz" } ], "0.0.2": [ { "comment_text": "", "digests": { "md5": "eb0c0fe641018949a590cf7f2c087ecc", "sha256": "13969e595485e1131e52689bde647934a5b5cd3223400d3c67b0348e99048e4e" }, "downloads": -1, "filename": "os-aio-pod-channel-0.0.2.tar.gz", "has_sig": false, "md5_digest": "eb0c0fe641018949a590cf7f2c087ecc", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 9676, "upload_time": "2019-03-27T16:58:23", "url": "https://files.pythonhosted.org/packages/b3/01/b858071a1b85fa1d02c731829deee130acb2c2a8f31e98c99831e5677891/os-aio-pod-channel-0.0.2.tar.gz" } ], "0.0.3": [ { "comment_text": "", "digests": { "md5": "3c9755d052e95e931454964960752cd9", "sha256": "35e75c45efd142b51c19651e926553e76985149cdc65601b9201d7d62ba7ce8d" }, "downloads": -1, "filename": "os-aio-pod-channel-0.0.3.tar.gz", "has_sig": false, "md5_digest": "3c9755d052e95e931454964960752cd9", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 9788, "upload_time": "2019-03-28T05:55:20", "url": "https://files.pythonhosted.org/packages/77/d0/e6e2d714244a69db7b5923342d3b27df4da933007ae111fb2cbb1ccc32d1/os-aio-pod-channel-0.0.3.tar.gz" } ], "0.0.4": [ { "comment_text": "", "digests": { "md5": "46c779965318ab5614382178a5ceda96", "sha256": "5758b7d9f187657a7a1850c547c61a773892118b25d436cad43dc36cae9ed48f" }, "downloads": -1, "filename": "os-aio-pod-channel-0.0.4.tar.gz", "has_sig": false, "md5_digest": "46c779965318ab5614382178a5ceda96", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 9831, "upload_time": "2019-03-29T08:55:31", "url": "https://files.pythonhosted.org/packages/59/0d/2c209b678dfad817a5b8cb158db5315b99a88b93592c5a797cf302a9b5c9/os-aio-pod-channel-0.0.4.tar.gz" } ], "0.1.0": [ { "comment_text": "", "digests": { "md5": "9f1deb1ea5d323aa134527cb69273956", "sha256": "10d32b4a1e09553bb30eb3ecb54a8ddcadeecaa77d83ac3b1f97ced75991b8f2" }, "downloads": -1, "filename": "os-aio-pod-channel-0.1.0.tar.gz", "has_sig": false, "md5_digest": "9f1deb1ea5d323aa134527cb69273956", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 10336, "upload_time": "2019-04-01T10:10:08", "url": "https://files.pythonhosted.org/packages/7d/04/6789631266109b23b9a95e80031ac187ca396e4ed43db517738732ad8178/os-aio-pod-channel-0.1.0.tar.gz" } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "5a333cb86b2d57938574ddc9f9b65da4", "sha256": "4a69000091c713f0194348bf3d6234cc168c2011ef5eb5e5c133daa63acda004" }, "downloads": -1, "filename": "os-aio-pod-channel-0.1.1.tar.gz", "has_sig": false, "md5_digest": "5a333cb86b2d57938574ddc9f9b65da4", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 10328, "upload_time": "2019-04-01T10:42:20", "url": "https://files.pythonhosted.org/packages/19/a1/bd6fed6deff8efd6af629f03092c3197cfac8cdab463b5c07ea1e38a5290/os-aio-pod-channel-0.1.1.tar.gz" } ], "0.1.10": [ { "comment_text": "", "digests": { "md5": "585c68b72f4aae1b711b22749ac047c9", "sha256": "096eb029d86bac806d6978367e011ab265c2ba76743a50e3f2b54d8835990c96" }, "downloads": -1, "filename": "os-aio-pod-channel-0.1.10.tar.gz", "has_sig": false, "md5_digest": "585c68b72f4aae1b711b22749ac047c9", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 10093, "upload_time": "2019-07-02T10:32:36", "url": "https://files.pythonhosted.org/packages/8f/b0/e9d818bf425a45ad00763d2878d3c7830b962ae6a3a5ee07bda123edd9fe/os-aio-pod-channel-0.1.10.tar.gz" } ], "0.1.11": [ { "comment_text": "", "digests": { "md5": "402cd8af4f95e60a5447dfff763cf36a", "sha256": "2f6a16d0a02440a551f4b9af793696c6b9c89f5a213510e39cd5e2bd6113aa1d" }, "downloads": -1, "filename": "os-aio-pod-channel-0.1.11.tar.gz", "has_sig": false, "md5_digest": "402cd8af4f95e60a5447dfff763cf36a", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 10102, "upload_time": "2019-07-08T07:46:16", "url": "https://files.pythonhosted.org/packages/f1/87/3a5d04df058bb710556017fbe4b5fec71e3e9bd50a0b62211ece6aab4184/os-aio-pod-channel-0.1.11.tar.gz" } ], "0.1.2": [ { "comment_text": "", "digests": { "md5": "920639853f02140c25a977e76ae6359b", "sha256": "17227342f3e1e4f68d05fb66e07689a982417facaa1f2b973f3c6d329afc7bdd" }, "downloads": -1, "filename": "os-aio-pod-channel-0.1.2.tar.gz", "has_sig": false, "md5_digest": "920639853f02140c25a977e76ae6359b", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 10326, "upload_time": "2019-04-01T15:30:16", "url": "https://files.pythonhosted.org/packages/6b/9a/e18a9193c95615d5042a0fb6203e857d16f0cb140c75892340fd968ff2bf/os-aio-pod-channel-0.1.2.tar.gz" } ], "0.1.4": [ { "comment_text": "", "digests": { "md5": "f9d9ac0881149e97f4d62bd73105e51a", "sha256": "27d17596a8dd540c0252748a3690e8d6b22f7a1a0f11ac4fafe9d81194d99e05" }, "downloads": -1, "filename": "os-aio-pod-channel-0.1.4.tar.gz", "has_sig": false, "md5_digest": "f9d9ac0881149e97f4d62bd73105e51a", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 10361, "upload_time": "2019-04-06T13:59:26", "url": "https://files.pythonhosted.org/packages/1d/4d/62e10a6638131803b8026dae06d3255c08f56de4ff9d5e69470192539a70/os-aio-pod-channel-0.1.4.tar.gz" } ], "0.1.5": [ { "comment_text": "", "digests": { "md5": "4adfcd15a9894fbe51ed6a9c7d8b6382", "sha256": "647684c05d1a72e3c7ff60eda58a62dbab04988dabc94a4730781f0fff86b7ce" }, "downloads": -1, "filename": "os-aio-pod-channel-0.1.5.tar.gz", "has_sig": false, "md5_digest": "4adfcd15a9894fbe51ed6a9c7d8b6382", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 10393, "upload_time": "2019-05-03T09:27:02", "url": "https://files.pythonhosted.org/packages/c4/ca/e6be2356dfd5f0343fef1da89e9edfef1733b0979caddd12695c2e18c809/os-aio-pod-channel-0.1.5.tar.gz" } ], "0.1.6": [ { "comment_text": "", "digests": { "md5": "cadd14902cdd9bcaae0e93f47ef1b8b3", "sha256": "f3fd66fb9bd23ecb8b3d6dfc1706857954b3458595e2ffd83df62952b0dc8c27" }, "downloads": -1, "filename": "os-aio-pod-channel-0.1.6.tar.gz", "has_sig": false, "md5_digest": "cadd14902cdd9bcaae0e93f47ef1b8b3", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 9677, "upload_time": "2019-06-14T09:20:31", "url": "https://files.pythonhosted.org/packages/27/3f/204250862877fafb32128dee1f9dc4397ee08a77bc55458e9ad1128c9dae/os-aio-pod-channel-0.1.6.tar.gz" } ], "0.1.7": [ { "comment_text": "", "digests": { "md5": "a943b60ad4e513ef45e246968e823cd1", "sha256": "648e8e5034d98b0a03149c6b48315e83500c0468c154ce2c055738b8c5ca9550" }, "downloads": -1, "filename": "os-aio-pod-channel-0.1.7.tar.gz", "has_sig": false, "md5_digest": "a943b60ad4e513ef45e246968e823cd1", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 10012, "upload_time": "2019-06-15T08:11:12", "url": "https://files.pythonhosted.org/packages/02/91/4e373aa98cdddc6d220619a1bd33d7ea653e0ce4a78b97a1da770a375481/os-aio-pod-channel-0.1.7.tar.gz" } ], "0.1.7.1": [ { "comment_text": "", "digests": { "md5": "0e89b257677e5e687bda3d36a6162935", "sha256": "74b3689f64e4bc0c639b8a2b7d0bd95d80425dc12c32357004428b7ca53463e3" }, "downloads": -1, "filename": "os-aio-pod-channel-0.1.7.1.tar.gz", "has_sig": false, "md5_digest": "0e89b257677e5e687bda3d36a6162935", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 10023, "upload_time": "2019-06-16T11:34:09", "url": "https://files.pythonhosted.org/packages/f8/14/6a6e0c5e888cede1fd0733813843d90cbca27c94d75eb0dda1d1e6627735/os-aio-pod-channel-0.1.7.1.tar.gz" } ], "0.1.8": [ { "comment_text": "", "digests": { "md5": "610b3237ad52bc80651fa0581c6339e1", "sha256": "75a40faca09f07f0757cfcbda608899c99c67afa30f1d50a7a5ecf40295f56f0" }, "downloads": -1, "filename": "os-aio-pod-channel-0.1.8.tar.gz", "has_sig": false, "md5_digest": "610b3237ad52bc80651fa0581c6339e1", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 10033, "upload_time": "2019-06-16T13:24:31", "url": "https://files.pythonhosted.org/packages/54/b6/f9e0aec518b4ada5628a9d4da09bb83f4763662480cc2ab7a15e9e7e3728/os-aio-pod-channel-0.1.8.tar.gz" } ], "0.1.9": [ { "comment_text": "", "digests": { "md5": "e48a2c8a8b13468db5429ac4db169c57", "sha256": "cbef85906df72305950a2a304ac6a41bd97ef446b9f46c16c4d5cd8cf2705dd8" }, "downloads": -1, "filename": "os-aio-pod-channel-0.1.9.tar.gz", "has_sig": false, "md5_digest": "e48a2c8a8b13468db5429ac4db169c57", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 10048, "upload_time": "2019-06-21T04:45:23", "url": "https://files.pythonhosted.org/packages/de/d9/da77e02b8d628eb7fbd8e7ad98a1dbfd0f9b3e952bb93960f257e427c1f9/os-aio-pod-channel-0.1.9.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "402cd8af4f95e60a5447dfff763cf36a", "sha256": "2f6a16d0a02440a551f4b9af793696c6b9c89f5a213510e39cd5e2bd6113aa1d" }, "downloads": -1, "filename": "os-aio-pod-channel-0.1.11.tar.gz", "has_sig": false, "md5_digest": "402cd8af4f95e60a5447dfff763cf36a", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 10102, "upload_time": "2019-07-08T07:46:16", "url": "https://files.pythonhosted.org/packages/f1/87/3a5d04df058bb710556017fbe4b5fec71e3e9bd50a0b62211ece6aab4184/os-aio-pod-channel-0.1.11.tar.gz" } ] }