The Fullstack Async Web, API and CLI Python Framework
Project description
Welcome to Uvicore
The Full Stack Asynchronous Python Framework with the performance of FastAPI and the elegance of Laravel!
About Uvicore
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
Getting Started
View the Uvicore documentation to get started https://uvicore.io
Quick Install
https://uvicore.io/getting-started/installation/
The CLI
After starting your preferred virtual environment and installing dependencies...
./uvicore
./uvicore wiki welcome
Web and API
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
Benchmarks?
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
Supported Python
- Uvicore 0.1 - Python 3.9
- Uvicore 0.2 - Python 3.9, 3.10
- Uvicore 0.3 - Python 3.10+
License
The Uvicore framework is open-sourced software licensed under the MIT license.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file uvicore-0.3.17.tar.gz.
File metadata
- Download URL: uvicore-0.3.17.tar.gz
- Upload date:
- Size: 251.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/2.2.1 CPython/3.13.5 Linux/6.12.41-1-MANJARO
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
eaab709ce985e091808eed5f094936a2f1c06701a3e67909f768d403c6ad87cf
|
|
| MD5 |
c4ce1069f2830c50c67779f96e49bfa7
|
|
| BLAKE2b-256 |
e39b04590ae8176f11d3711f4de82a034c6b06ed407f38640b326596378deb87
|
File details
Details for the file uvicore-0.3.17-py3-none-any.whl.
File metadata
- Download URL: uvicore-0.3.17-py3-none-any.whl
- Upload date:
- Size: 342.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/2.2.1 CPython/3.13.5 Linux/6.12.41-1-MANJARO
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3132402e188f27b661bb837ea598bc260f96b2468f0a12560e136ab2b5a343c6
|
|
| MD5 |
e9895b3d9cff2d1953c9cf31237227b7
|
|
| BLAKE2b-256 |
3d6850e150ab1ed60dfe139d17494dae36d6d9c571c1283d7c69b9606ef7fc10
|