A simple implementation of Server-Sent Events for Flask that
doesn't require Redis pub/sub.
flask-queue-sse is my first ever Python library. It implements the Server-Sent Events protocol using the built-in Python Queue
class. Please read why this package before using it in production.
Tweet to me @vsnthdev, I'd love to know your
experience of this project 😀
💡 Why this package
Most implementations of Server-Sent Events available in PyPi for Flask require having a Redis database. This is to support horizontal scaling.
This library targets projects that don't want to deploy Redis seperately to get SSE working, and aren't aiming to horizontally scale (have multiple instances of your app running behind a load balancer).
💿 Installation
pip install flask-queue-sse
Python 3.10 and above is required.
🚀 Quick start
After installing flask-queue-sse
, you can start using it in the following way:
from flask import Flask
from flask_queue_sse import ServerSentEvents
app = Flask(__name__)
sse: ServerSentEvents = None
@app.route("/subscribe")
def subscribe():
global sse
sse = ServerSentEvents()
return sse.response()
Look into the examples or send me a message for any queries, questions or issues. I'm always happy to help 😊
💻 Building the project
- 📁 Clone the repository.
- 🏝️ Enter into the clonned directory & run
python -m venv .
to create a virtual environment.
- 🔨 Install dependencies by running
pip install -r ./requirements.txt
.
- 👨💻 Run the examples or edit the codebase.
🏷️ Referrences
This library has been inspired by, and developed after consuming following resources:
📰 License
The flask-queue-sse project is released under the Zlib license.
Developed & maintained By Vasanth Srivatsa. Copyright 2023 © Vasanth Developer.
vsnth.dev ·
YouTube @VasanthDeveloper ·
Twitter @vsnthdev ·
LinkedIn Vasanth Srivatsa