Skip to main content

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

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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

uvicore-0.4.2.tar.gz (257.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

uvicore-0.4.2-py3-none-any.whl (346.0 kB view details)

Uploaded Python 3

File details

Details for the file uvicore-0.4.2.tar.gz.

File metadata

  • Download URL: uvicore-0.4.2.tar.gz
  • Upload date:
  • Size: 257.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.3.2 CPython/3.14.5 Linux/6.12.91-1-MANJARO

File hashes

Hashes for uvicore-0.4.2.tar.gz
Algorithm Hash digest
SHA256 1394fc06dbb1626f920358d6f009f9d2b7a0b04a2010f14a6944def5a5019f54
MD5 98809df5c124d2ce0ea15c17dff7f5a4
BLAKE2b-256 ae427a6575c070f1d2501b7fc4184a08df1e4adc57e4e7151f98795f202390f2

See more details on using hashes here.

File details

Details for the file uvicore-0.4.2-py3-none-any.whl.

File metadata

  • Download URL: uvicore-0.4.2-py3-none-any.whl
  • Upload date:
  • Size: 346.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.3.2 CPython/3.14.5 Linux/6.12.91-1-MANJARO

File hashes

Hashes for uvicore-0.4.2-py3-none-any.whl
Algorithm Hash digest
SHA256 8d398a029604a9ead637c854d6c85dd9760261f7fcaa13141ecb45033d0c5df5
MD5 ee9840a9c2bd644f1951e5623ab15dca
BLAKE2b-256 96c0c4143b81680b187a1d11439100026555c90f78599997aa8005d058f58d5a

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page