Skip to main content

Socket.io for FastAPI with AsyncAPI documentation

Project description

fastapi-sio

FastAPI library Socket.io Uses AsyncAPI Current state

Socket.io FastAPI integration library with first-class documentation using AsyncAPI

The usage of the library is very familiar to the experience you‘re used to in FastAPI. Automatic documentation, type hints everywhere and heavy use of Pydantic.

Features

What‘s Missing?

  • Serve AsyncAPI studio at /sio/docs
    • Unfortunately, AsyncAPI studio doesn‘t work the same way as Swagger UI, there is currently no way to use CDN hosted built package and supply only single html file and URL with spec JSON
  • Support for more obscure fields of AsyncAPI, such as traits, ...

Usage Example

fastapi_app = FastAPI()
sio_app = FastAPISIO(app=fastapi_app)

purr_channel = sio_app.create_emitter(
    "purrs",
    model=PurrModel,
    summary="Channel for purrs",
    description="Receive any purrs here!",
)

@sio_app.on(
    "rubs",
    model=BellyRubModel,
    summary="Channel for belly rubs",
    description="Send your belly rubs through here!",
)
async def handle_rub(sid, data):
    await purr_channel.emit(
        PurrModel(loudness=2, detail="Purr for all listeners")
    )
    return "Ack to the one who rubbed"

👉 Check out the example AsyncAPI documentation output!

By default (you can change these values):

  • the Socket.io endpoint path is /sio/socket.io (the socket.io part is set automatically by some clients)
  • The AsyncAPI spec file is at /sio/docs/asyncapi.json

Find more in the examples.

Documentation & Reference

Refer to the /docs directory to learn how to use this library in your project.

TODO: This documentation will be hosted on Github Pages in the near future, hopefully.

Contribution

...

Used by

Feel free to open a PR to add your project or company to this list.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

fastapi_sio-0.5.0.tar.gz (11.0 kB view details)

Uploaded Source

Built Distribution

fastapi_sio-0.5.0-py3-none-any.whl (11.6 kB view details)

Uploaded Python 3

File details

Details for the file fastapi_sio-0.5.0.tar.gz.

File metadata

  • Download URL: fastapi_sio-0.5.0.tar.gz
  • Upload date:
  • Size: 11.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.8.2 CPython/3.12.2 Darwin/23.5.0

File hashes

Hashes for fastapi_sio-0.5.0.tar.gz
Algorithm Hash digest
SHA256 c80eba6694260d75a319aace87a0a7c900b2f4884fabe7b8ef2f6113bccb357b
MD5 cc3038b24f67847aaab93a23ce08fa74
BLAKE2b-256 6d82835900c58fbbb677218edfaf26e102caa62c036841d8d90e08de6144a5b9

See more details on using hashes here.

File details

Details for the file fastapi_sio-0.5.0-py3-none-any.whl.

File metadata

  • Download URL: fastapi_sio-0.5.0-py3-none-any.whl
  • Upload date:
  • Size: 11.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.8.2 CPython/3.12.2 Darwin/23.5.0

File hashes

Hashes for fastapi_sio-0.5.0-py3-none-any.whl
Algorithm Hash digest
SHA256 523eb6208eb156e8783d7a05d6ada965ae3764729ac8698bbdb7bb85af77188b
MD5 8f8ba034cce35c0480cbf62c8aa4b559
BLAKE2b-256 16e6bb2acab6b5b6e0dcfb475b0c228fd755bc3460e112377d22c80e8afea095

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page