Skip to main content

RSocket-py

Python implementation of RSocket

Installation

The latest version from pypi can be installed using:

pip install rsocket

You may also install using some extras:

Extra Functionality Documentation
rx ReactiveX (v3) integration Tutorial
reactivex ReactiveX (v4) integration Tutorial
aiohttp aiohttp Websocket transport (server/client) Tutorial
fastapi fastapi Websocket transport (server/client)
channels Websocket transport (server only) using channels (django)
quart Quart Websocket transport (server only)
quic QUIC transport
websockets Websockets transport (server only)
asyncwebsockets Websockets transport (client only)
cli Command line Tutorial
optimized Frame parse/serialize optimizations
cloudevents CloudEvents integration
graphql GraphQL integration Tutorial

For example:

pip install rsocket[reactivex]

Alternatively, download the source code, build a package:

python3 setup.py bdist_wheel

Use the resulting package from the ./dist folder, or install locally:

python3 setup.py install

Documentation

Documentation is available on the official rsocket.io site. API documentation is at readthedocs.io.

Examples

Examples can be found in the /examples folder. It contains various server and client usages. The following is a table denoting which client example is constructed to be run against which server example. Some examples are in java to show compatibility with a different implementation. To run the java examples first build using mvn package.

The examples/test_examples.py can be used to execute the relevant example server/client pairs.

client_springboot.py is set up to work against the Spring RSocket demo.

server (python) server (java) client (python) client(java)
server.py client.py
server_quic.py client_quic.py
server_with_lease.py ClientWithLease
server_with_routing.py client_with_routing.py Client
server_with_routing.py client_rx.py
server_with_routing.py client_reconnect.py
Server run_against_example_java_server.py
ServerWithFragmentation client_with_routing.py
server_quart_websocket.py client_websocket.py
server_aiohttp_websocket.py client_websocket.py
server_fastapi_websocket.py client_websocket.py
server_graphql.py ServerWithGraphQL client_graphql.py

Build Status

build master Coverage Status CodeQL

Progress

  • Requests
    • Fire and forget
    • Response
    • Stream
    • Channel
    • Metadata push
  • Features
    • Keepalive / Max server life
    • Lease
    • Resume
    • Fragmentation
  • Extensions
    • Composite metadata
    • Per Stream Mimetype
    • Routing
    • Authentication
  • Transports
    • TCP
    • Websocket (WS, WSS) - Quart and aiohttp integration
    • QUIC
    • HTTP/3
    • HTTP/2
    • Aeron
  • RxPy Integration
    • Stream Response
    • Channel Response
    • Channel Requester stream
    • Response
  • Other
    • Reconnect
    • Load balancing
    • Server routing definition helper (Flask like syntax)
    • Reactivex integration (v3, v4) server/client side
    • Command line interface

Metadata

Release files for rsocket 0.4.20

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for rsocket 0.4.20
File Size Uploaded
rsocket-0.4.20.tar.gz 58.1 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for rsocket 0.4.20
File Interpreter ABI Platform
rsocket-0.4.20-py3-none-any.whl Python 3 none any Details

Total release size: 149.8 kB

Release files / rsocket-0.4.20.tar.gz

Download URL rsocket-0.4.20.tar.gz
Size 58.1 kB
Tags Source
SHA-256 checksum
How to use checksums
466203e1fc2d7064fd456b5948d594ffa364c642fb532eca71289d27206502c3
BLAKE2b-256 checksum
How to use checksums
2febe11ff68dfc5228c9d687a85c3b52e3592dfd5972bd62e531d917b8c9157a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.9.23

Release files / rsocket-0.4.20-py3-none-any.whl

Download URL rsocket-0.4.20-py3-none-any.whl
Size 91.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
1daceab8259551f74f393b4f5985a5337a4801f7e34b47cf76735f55fd8eaa31
BLAKE2b-256 checksum
How to use checksums
f68fdae6a7f2fd6a049f91a0cc10e138a7bb463e690a534d876c399dde8bc960
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.9.23
Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page