The Full Stack Asynchronous Python Framework with the performance of FastAPI and the elegance of Laravel!
Uvicore is a fullstack async API, Web and CLI python framework. Uvicore is built on great technologies such as:
- Blazing fast dual routing engine based on FastAPI and Starlette!
- Await all the things, even your CLI's thanks to AsyncClick!
- Powerful IoC container! Full control to your app! Override everything!
- Adapter pattens for multiple backends to caching, auth, events, databases and more.
- Robust modular and deep-merged config system across uvicore modules.
- Custom and expressive ORM built on top of SQLAlchemy Core.
Uvicore is the missing fullstack asynchronous framework for elegant and rapid python development
View the Uvicore documentation to get started https://uvicore.io
https://uvicore.io/getting-started/installation/
After starting your preferred virtual environment and installing dependencies...
./uvicore
./uvicore wiki welcome
Assuming you chose the web
extras
# Still in your virtual environment
./uvicore http routes
./uvicore http serve
- Visit http://127.0.0.1:5000
- Visit http://127.0.0.1:5000/api/docs
- Try
curl http://127.0.0.1:5000/api/welcome
Lets see how fast uvicore is!
Install https://github.com/wg/wrk on your os
# Still in your virtual environment
./serve-gunicorn
In another terminal
curl http://127.0.0.1:5000/api/welcome
wrk -c50 -t8 -d10 http://127.0.0.1:5000/api/welcome
40,000 requests a second, pretty good for a hello world! Thanks FastAPI!
Running 10s test @ http://127.0.0.1:5000/api/welcome
8 threads and 50 connections
Thread Stats Avg Stdev Max +/- Stdev
Latency 1.23ms 354.23us 10.40ms 69.95%
Req/Sec 4.92k 432.18 6.15k 65.30%
394740 requests in 10.10s, 57.97MB read
Requests/sec: 39083.14
Transfer/sec: 5.74MB
What about Starlette with our Welcome Jinja templates?
curl http://127.0.0.1:5000/api/welcome
wrk -c50 -t8 -d10 http://127.0.0.1:5000/api/welcome
Wow 44,000 requests a second! Starlette is blazing fast!
Running 10s test @ http://127.0.0.1:5000
8 threads and 50 connections
Thread Stats Avg Stdev Max +/- Stdev
Latency 1.11ms 348.15us 12.08ms 72.46%
Req/Sec 5.44k 664.22 7.26k 66.91%
436883 requests in 10.10s, 0.85GB read
Requests/sec: 43255.92
Transfer/sec: 86.30MB
- Uvicore 0.1 - Python 3.9
- Uvicore 0.2 - Python 3.9, 3.10
- Uvicore 0.3 - Python 3.10+
The Uvicore framework is open-sourced software licensed under the MIT license.