pysoltcp


Namepysoltcp JSON
Version 3.13.3 PyPI version JSON
download
home_pagehttps://github.com/champax/pysoltcp
Summarypysoltcp
upload_time2025-09-10 09:36:44
maintainerNone
docs_urlNone
authorLaurent Champagnac
requires_python>=3.11
licenseNone
keywords python gevent
VCS
bugtrack_url
requirements greenlet gevent pysolbase pysolmeters PySocks
Travis-CI No Travis.
coveralls test coverage No coveralls.
            pysoltcp
============

Welcome to pysol

Copyright (C) 2013/2025 Laurent Labatut / Laurent Champagnac

pysoltcp is a set of python asynchronous TCP server and client.

It is gevent (co-routines) based.

Both are able to sustain 60 000 asynchronous bi-directional sockets within a single python process.

The TCP server is able to work in forking mode to scale across several CPUs.

It supports:
- Asynchronous TCP sockets (with underlying async read/write loops, send queues and receive callback, per socket)
- SSL sockets
- SOCKS5 proxy (tested via dante)
- TCP Keepalive
- Absolute and relative socket idle timeouts for reads and writes, per socket, via gevent co-routine schedules (no global control thread)
- SSL handshake timeout
- Server forking
- Server context factory for server side protocol handling
- Client derivation with _on_receive override for client side protocol handling
- Instrumented via Meters (pysolmeters)

Please note that, by design, synchronous TCP sockets are not supported.

Due to full asynchronous mode, pay attention that you may receive protocol input (via the receive callback) byte per byte (in a worst case scenario).
Your protocol parser must be ready to handle this in a correct manner.


            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/champax/pysoltcp",
    "name": "pysoltcp",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.11",
    "maintainer_email": "Laurent Labatut <laurent@labatut.net>, Laurent Champagnac <champagnac.laurent@gmail.com>",
    "keywords": "python, gevent",
    "author": "Laurent Champagnac",
    "author_email": "Laurent Labatut <laurent@labatut.net>, Laurent Champagnac <champagnac.laurent@gmail.com>",
    "download_url": "https://files.pythonhosted.org/packages/17/92/e31bd522c615c75038cf4d950a8cdfb13c800cad184983402bceb372f297/pysoltcp-3.13.3.tar.gz",
    "platform": null,
    "description": "pysoltcp\n============\n\nWelcome to pysol\n\nCopyright (C) 2013/2025 Laurent Labatut / Laurent Champagnac\n\npysoltcp is a set of python asynchronous TCP server and client.\n\nIt is gevent (co-routines) based.\n\nBoth are able to sustain 60 000 asynchronous bi-directional sockets within a single python process.\n\nThe TCP server is able to work in forking mode to scale across several CPUs.\n\nIt supports:\n- Asynchronous TCP sockets (with underlying async read/write loops, send queues and receive callback, per socket)\n- SSL sockets\n- SOCKS5 proxy (tested via dante)\n- TCP Keepalive\n- Absolute and relative socket idle timeouts for reads and writes, per socket, via gevent co-routine schedules (no global control thread)\n- SSL handshake timeout\n- Server forking\n- Server context factory for server side protocol handling\n- Client derivation with _on_receive override for client side protocol handling\n- Instrumented via Meters (pysolmeters)\n\nPlease note that, by design, synchronous TCP sockets are not supported.\n\nDue to full asynchronous mode, pay attention that you may receive protocol input (via the receive callback) byte per byte (in a worst case scenario).\nYour protocol parser must be ready to handle this in a correct manner.\n\n",
    "bugtrack_url": null,
    "license": null,
    "summary": "pysoltcp",
    "version": "3.13.3",
    "project_urls": {
        "Homepage": "https://github.com/champax/pysoltcp",
        "Repository": "https://github.com/champax/pysoltcp"
    },
    "split_keywords": [
        "python",
        " gevent"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "1792e31bd522c615c75038cf4d950a8cdfb13c800cad184983402bceb372f297",
                "md5": "6bba8d42f73986df2ae02d5fc7e1807e",
                "sha256": "59df48c2b80c2ff4b02e7009446b2d10b78bceaed7ab867a49a17b5917df61d7"
            },
            "downloads": -1,
            "filename": "pysoltcp-3.13.3.tar.gz",
            "has_sig": false,
            "md5_digest": "6bba8d42f73986df2ae02d5fc7e1807e",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.11",
            "size": 38702,
            "upload_time": "2025-09-10T09:36:44",
            "upload_time_iso_8601": "2025-09-10T09:36:44.660025Z",
            "url": "https://files.pythonhosted.org/packages/17/92/e31bd522c615c75038cf4d950a8cdfb13c800cad184983402bceb372f297/pysoltcp-3.13.3.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-09-10 09:36:44",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "champax",
    "github_project": "pysoltcp",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": false,
    "requirements": [
        {
            "name": "greenlet",
            "specs": []
        },
        {
            "name": "gevent",
            "specs": []
        },
        {
            "name": "pysolbase",
            "specs": [
                [
                    ">=",
                    "3.13.0"
                ]
            ]
        },
        {
            "name": "pysolmeters",
            "specs": [
                [
                    ">=",
                    "3.13.0"
                ]
            ]
        },
        {
            "name": "PySocks",
            "specs": []
        }
    ],
    "tox": true,
    "lcname": "pysoltcp"
}
        
Elapsed time: 1.24348s