Uvicore
- Code github.com/uvicore/framework
- Docs Getting Started
- Package pypi.org/project/uvicore
Full Stack Elegance¶
-
Dual Routers
Blazing fast dual routing engine based on FastAPI and Starlette!
-
Async Everywhere
Await all the things, even your CLI's thanks to AsyncClick!
-
Inversion of Control
Powerful IoC container! Full control to your app! Override everything!
-
Adapters For Everything
Swap drivers for caching, auth, events, database and more and the touch of a config!
-
Extremely Modular
Apps are modules, modules are apps. No more "parent shell" required to run your packages!
-
Expressive ORM!
Custom ORM build on SQLAlecheny Core and Pydantic!
Why Uvicore?¶
Fullstack, Modular and Asynchronous. A Full Solution for Web, API and CLI Development!
Micro frameworks are great! They become the building blocks for larger structures and fullstack frameworks. Starlette and FastAPI for example are fantastic building blocks. But most projects require structure, standards and many libraries and layers that work together.
Full Stack vs Micro Frameworks¶
Uvicore is built on many libraries and modules including FastAPI, Starlette, Pydantic and SQLAlchemy.
Uvicore Streamlines the Developer Experience by providing:
- Structure and folder standardizations for large projects.
- Scaffolding to generate entire projects and individual classes and methods.
- Modularization with no "shell". Every app is a module and every module is an app.
- Config First drive modules with deep nesting and override power.
- IoC container for Inversion of Control to swap any implementation.
- Custom ORM on top of SQLAlchemy Core and Pydantic.
- Automatic Model Router drives deep nested API endpoints instantly from your relational models.
- Authentication middleware for easy token based API authentication with any standards IDP.
Inspiration¶
- Heavily inspired by the amazing PHP Laravel Framework.
- Inspired by Django, Django Rest Framework, Starlette and FastAPI.
- Uvicore utilizes Starlette as the "web" router.
- Uvicore utilizes FastAPI as the "api" router and OpenAPI document generation.
- Uvicore utilizes smurfix/asyncclick for full async CLIs that can await your existing async methods.
- Uvicore utilizes SQLAlchemy "core" and encode/databases, but adds its own custom ORM for elegant queries and models.
- Uvicore glues all the pieces together with the Laravel inspired Service Provider methodology.