{"id":18556369,"url":"https://github.com/rsocket/rsocket-py","last_synced_at":"2025-05-16T14:04:43.920Z","repository":{"id":15180684,"uuid":"76883100","full_name":"rsocket/rsocket-py","owner":"rsocket","description":"RSocket implementation in Python","archived":false,"fork":false,"pushed_at":"2025-05-12T02:21:03.000Z","size":1721,"stargazers_count":77,"open_issues_count":8,"forks_count":23,"subscribers_count":11,"default_branch":"master","last_synced_at":"2025-05-14T07:17:11.618Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/rsocket.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.rst","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2016-12-19T17:34:59.000Z","updated_at":"2025-04-13T12:05:57.000Z","dependencies_parsed_at":"2023-02-10T03:00:26.292Z","dependency_job_id":"7d15e975-cd79-4807-85fb-e1fb501c2cb4","html_url":"https://github.com/rsocket/rsocket-py","commit_stats":{"total_commits":912,"total_committers":12,"mean_commits":76.0,"dds":0.5087719298245614,"last_synced_commit":"f97483e34f522cde574a6cc6b0c2bc86d371a146"},"previous_names":["reactivesocket/reactivesocket-py"],"tags_count":26,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rsocket%2Frsocket-py","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rsocket%2Frsocket-py/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rsocket%2Frsocket-py/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rsocket%2Frsocket-py/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rsocket","download_url":"https://codeload.github.com/rsocket/rsocket-py/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254544146,"owners_count":22088807,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-06T21:30:06.783Z","updated_at":"2025-05-16T14:04:43.913Z","avatar_url":"https://github.com/rsocket.png","language":"Python","readme":"# RSocket-py\n\nPython implementation of [RSocket](http://rsocket.io)\n\n# Installation\n\nThe latest version from [pypi](https://pypi.org/project/rsocket/) can be installed using:\n\n```shell\npip install rsocket\n```\n\nYou may also install using some **extras**:\n\n| Extra           | Functionality                                                                              | Documentation                                                       |\n|-----------------|--------------------------------------------------------------------------------------------|---------------------------------------------------------------------|\n| rx              | ReactiveX ([v3](https://pypi.org/project/Rx/)) integration                                 | [Tutorial](https://rsocket.io/guides/rsocket-py/tutorial/reactivex) |\n| reactivex       | [ReactiveX](https://reactivex.io/) ([v4](https://pypi.org/project/reactivex/)) integration | [Tutorial](https://rsocket.io/guides/rsocket-py/tutorial/reactivex) |\n| aiohttp         | [aiohttp](https://docs.aiohttp.org/en/stable/) Websocket transport (server/client)         | [Tutorial](https://rsocket.io/guides/rsocket-py/tutorial/websocket) |\n| fastapi         | [fastapi](https://github.com/fastapi/fastapi) Websocket transport (server/client)          |                                                                     |\n| channels        | Websocket transport (server only) using channels (django)                                  |                                                                     |\n| quart           | [Quart](https://pgjones.gitlab.io/quart/) Websocket transport (server only)                |                                                                     |\n| quic            | [QUIC](https://github.com/aiortc/aioquic) transport                                        |                                                                     |\n| websockets      | [Websockets](https://github.com/python-websockets/websockets) transport (server only)      |                                                                     |\n| asyncwebsockets | [Websockets](https://github.com/Fuyukai/asyncwebsockets) transport (client only)           |                                                                     |\n| cli             | Command line                                                                               | [Tutorial](https://rsocket.io/guides/rsocket-py/cli)                |\n| optimized       | Frame parse/serialize optimizations                                                        |                                                                     |\n| cloudevents     | [CloudEvents](https://cloudevents.io/) integration                                         |                                                                     |\n| graphql         | [GraphQL](https://graphql.org/) integration                                                | [Tutorial](https://rsocket.io/guides/rsocket-py/graphql)            |\n\nFor example:\n\n```shell\npip install rsocket[reactivex]\n```\n\nAlternatively, download the source code, build a package:\n\n```shell\npython3 setup.py bdist_wheel\n```\n\nUse the resulting package from the **./dist** folder, or install locally:\n\n```shell\npython3 setup.py install\n```\n\n# Documentation\n\n[Documentation](https://rsocket.io/guides/rsocket-py) is available on the official rsocket.io site.\n[API](https://rsocket.readthedocs.io/en/latest/index.html) documentation is at readthedocs.io.\n\n# Examples\n\nExamples can be found in the **/examples** folder. It contains various server and client usages. The following is a\ntable\ndenoting which client example is constructed to be run against which server example. Some examples\nare in java to show compatibility with a different implementation. To run the java examples first build using \u003ccode\u003emvn\npackage\u003c/code\u003e.\n\nThe **examples/test_examples.py** can be used to execute the relevant example server/client pairs.\n\nclient_springboot.py is set up to work against\nthe [Spring RSocket demo](https://github.com/benwilcock/spring-rsocket-demo).\n\n| server (python)             | server (java)           | client (python)                    | client(java)    |\n|-----------------------------|-------------------------|------------------------------------|-----------------|\n| server.py                   |                         | client.py                          |                 |\n| server_quic.py              |                         | client_quic.py                     |                 |\n| server_with_lease.py        |                         |                                    | ClientWithLease |\n| server_with_routing.py      |                         | client_with_routing.py             | Client          |\n| server_with_routing.py      |                         | client_rx.py                       |                 |\n| server_with_routing.py      |                         | client_reconnect.py                |                 |\n|                             | Server                  | run_against_example_java_server.py |                 |\n|                             | ServerWithFragmentation | client_with_routing.py             |                 |\n| server_quart_websocket.py   |                         | client_websocket.py                |                 |\n| server_aiohttp_websocket.py |                         | client_websocket.py                |                 |\n| server_fastapi_websocket.py |                         | client_websocket.py                |                 |\n| server_graphql.py           | ServerWithGraphQL       | client_graphql.py                  |                 |\n\n# Build Status\n\n![build master](https://github.com/rsocket/rsocket-py/actions/workflows/python-package.yml/badge.svg?branch=master)\n[![Coverage Status](https://coveralls.io/repos/github/rsocket/rsocket-py/badge.svg?branch=master)](https://coveralls.io/github/rsocket/rsocket-py?branch=master)\n[![CodeQL](https://github.com/rsocket/rsocket-py/actions/workflows/codeql-analysis.yml/badge.svg)](https://github.com/rsocket/rsocket-py/actions/workflows/codeql-analysis.yml)\n\n# Progress\n\n- [X] Requests\n    - [X] Fire and forget\n    - [X] Response\n    - [X] Stream\n    - [X] Channel\n    - [X] Metadata push\n- [ ] Features\n    - [X] Keepalive / Max server life\n    - [X] Lease\n    - [ ] Resume\n    - [X] Fragmentation\n- [X] Extensions\n    - [X] Composite metadata\n    - [X] Per Stream Mimetype\n    - [X] Routing\n    - [X] Authentication\n- [ ] Transports\n    - [X] TCP\n    - [X] Websocket (WS, WSS) - Quart and aiohttp integration\n    - [X] QUIC\n    - [X] HTTP/3\n    - [ ] HTTP/2\n    - [ ] Aeron\n- [X] RxPy Integration\n    - [X] Stream Response\n    - [X] Channel Response\n    - [X] Channel Requester stream\n    - [X] Response\n- [X] Other\n    - [X] Reconnect\n    - [X] Load balancing\n    - [X] Server routing definition helper (Flask like syntax)\n    - [X] Reactivex integration (v3, v4) server/client side\n    - [X] Command line interface\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frsocket%2Frsocket-py","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frsocket%2Frsocket-py","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frsocket%2Frsocket-py/lists"}