Web-frameworks-comparison
This table compare web frameworks available into the Python community. We think that some frameworks can be ignored like Django, Sanic, Tornado which are a bit out of context for our use case (serving routes), but we listed them to have a good overview of our ecosystem.
You can put your pro and cons into the related etherpad https://etherpad.opendev.org/p/eventlet-removal-web-frameworks-comparison.
For SGI servers comparison, it's happening here https://wiki.openstack.org/wiki/SGI-servers-comparison
The HTTP libs (client lib) comparison is happening here https://wiki.openstack.org/wiki/Http-libraries-comparison
| Framework | Performance | Simplicity of Use | Features | Asynchronicity | Extensibility | Community and Ecosystem | Security | Scalability | SQLAlchemy Support | Maintenance Activity | Comment |
|---|---|---|---|---|---|---|---|---|---|---|---|
| FastAPI | High | Moderate | Moderate | Yes | High | Growing | Moderate | High | Yes | Very Active | FastAPI is a great choice for modern async APIs. Highly performant and great for scalability. |
| Flask | Moderate | High | Low | No | High | Large | Moderate | Moderate | Yes | Very Active | Flask's simplicity and large ecosystem make it ideal for small to medium apps. |
| Pyramid | Moderate | Moderate | Moderate | Optional | High | Medium | High | High | Yes | Active | Pyramid provides flexibility to start small and scale as needed, great for modular applications. |
| Bottle | Low | High | Very Low | No | Low | Small | Low | Low | Yes | Moderately Active | Best for very small applications or microservices, limited out-of-the-box features. |
| CherryPy | Moderate | Moderate | Low | No | Low | Small | Moderate | Moderate | Yes | Low | CherryPy is minimalistic and lightweight, but lacks modern features like async support. |
| Routes | Moderate | High | Low | No | Low | Small | Low | Low | Yes | Low | Routes is focused on routing for web applications, providing URL dispatching, but lacks many other features found in more comprehensive frameworks. |
| Django | Moderate | Moderate | Very High | No | Moderate | Very Large | Very High | High | No | Very Active | Full-featured framework, but lacks native async support. SQLAlchemy can be used, but Django ORM is the default. |
| Sanic | Very High | Moderate | Low | Yes | High | Growing | Low | High | Yes | Active | Great for high-performance apps with async needs, but smaller ecosystem compared to others. |
| Tornado | High | Moderate | Moderate | Yes | Moderate | Small | Moderate | High | Yes | Moderate | Tornado is designed for real-time web apps and supports long-lived network connections. |