starlette
quart
Our great sponsors
starlette | quart | |
---|---|---|
55 | 8 | |
9,491 | 12 | |
2.8% | - | |
9.2 | 0.0 | |
8 days ago | over 1 year ago | |
Python | Python | |
BSD 3-clause "New" or "Revised" License | MIT License |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
starlette
- Ask HN: What is your go-to stack for the web?
-
Building Fast APIs with FastAPI: A Comprehensive Guide
Fast Execution: FastAPI is built on top of Starlette and Pydantic, making it one of the fastest Python frameworks for building APIs.
-
Embracing Modern Python for Web Development
The framework's efficiency comes from its use of Starlette for building asynchronous web services and Pydantic for robust data validation and serialization, powered by Python's type hints. Pydantic has recently announced the official release of Pydantic V2 (June 2023), which is a ground-up rewrite that offers many new features and performance improvements, so make sure to be using that instead of V1.
-
FastHttp for Python (64k requests/s)
Uvicorn + Starlette 8k requests/s
- Microdot "The impossibly small web framework for Python and MicroPython"
-
An Introduction to âš¡FastAPI
Starlette documentation
-
Writing a chat application in Django 4.2 using async StreamingHttpResponse
Same here, but without these weird utils it doesn't get any better.
I have 7 YoE with Django. Its great at so many things. You see some code, like middlewares, and immediately understand what's going on.
Now, we also have Starlette. The base of all new, fancy asgi libraries. Here's the base middleware class.
https://github.com/encode/starlette/blob/8d7a1cacfb3e1a30cbb...
In the last couple of years I heard 'we're running fastapi on production. Wanna join us?' so many times... but the reality is that it's still not suitable for prod. Who wants to work with a code like that if you have a readable, stable Django? I'm clueless.
-
Deploying an ML model to Paperspace and creating an API
Set up Starlette, a tool we'll use to make async requests
-
FastAPI middleware doesn't run while making request to websocket endpoint
I never used websockets in FastAPI so I wouldn't know how to guide you more, but Middleware in Websockets are 100% supported by Starlette : https://github.com/encode/starlette/issues/641
-
Chat implementation
Websockets are the way but I would not recommend django as it's still not fully async. I would go for other tools.
quart
- Python Flask has no remaining open issues or pull requests
-
Question about Synchronous web frameworks
Sorry. It's not Quartz, it's just Quart https://pgjones.gitlab.io/quart/
-
The problem with Flask async views and async globals
If you're looking for an experience that's very similar to Flask you can use Quart which is inspired by Flask. Quart even has a guide about how to migrate from a Flask application to using Quart! Flask's own documentation for async views actually recommends using Quart in some cases due to the performance hit from using a new event loop per request.
-
New Versions Released! Flask 2.0 with async
Flask getting async support is a huge step for the asyncio web ecosystem in Python. I wonder how Flask's ASGI support will evolve in parallel with Quart[1] which bills itself as the ASGI version of Flask and is maintained by a member of the Pallets team. One of the maintainers of Werkzeug even recommended using Quart[2]
[1] https://pgjones.gitlab.io/quart/
[2] https://github.com/pallets/werkzeug/issues/1322#issuecomment...
-
New major versions of Flask, Jinja, Click, and Werkzeug released!
What we get with the async part of this release - If you would like to run an async library or your own async code from a flask route you can do that now. This is super useful, where let's say we have some async code that fetches data from many sources concurrently, or call multiple a few ML prediction endpoints at the same time (as long as they don't time out) using httpx and respond with some sort of outcome, or finally try that cool new async-only database library. A current (v2) limitation is that the you can't make concurrent requests using just the current asyncio implementation (an alternative with Flask API and ASGI: Quart). Typically in production gunicorn or uwsgi + threads/processes/gevent-eventlet is used and this makes Flask behave asynchronously. More here and here if interested.
-
Create Asynchronous API in Python and Flask
For people looking to do async stuff with Flask, there is also Quart! It’s essentially an async port of Flask, with all your favorite, familiar methods!
-
asyncio: We Did It Wrong
I agree with the transition issues, Quart has this awkward code to try and get around this.
-
Python developer survey reaction - 6 insights to make you a better dev
Appreciate the feedback! I forgot to pimp my favorite web framework, Quart, but I can attest to Flask and even Django being great. I always looked down on Django as too big but then I used it for my current company and I realized I was totally wrong. Easy to pick up, lots of functionality if you want it, but it doesn't force it on you.
What are some alternatives?
Flask - The Python micro framework for building web applications.
fastapi - FastAPI framework, high performance, easy to learn, fast to code, ready for production
uvicorn - An ASGI web server, for Python. 🦄
flask-pydantic - flask extension for integration with the awesome pydantic package
AIOHTTP - Asynchronous HTTP client/server framework for asyncio and Python
starlite - Light, Flexible and Extensible ASGI API framework | Effortlessly Build Performant APIs [Moved to: https://github.com/litestar-org/litestar]
asyncpg - A fast PostgreSQL Database Client Library for Python/asyncio.
quart - An async Python micro framework for building web applications.
Werkzeug - The comprehensive WSGI web application library.