Welcome to Ushka¶
/ᐠ ˵> ⩊ <˵マ
Ushka is a cute and agile Python web framework.
Ushka is a modern, ASGI-based web framework for Python, designed for simplicity, performance, and developer happiness. It provides a robust toolset for building everything from simple APIs to full-featured web applications.
Core Philosophy¶
- Cute & Agile: Writing backend code should be a pleasant and productive experience. Ushka's APIs are designed to be intuitive and clean.
- Convention over Configuration: Sensible defaults and project structure get you started quickly. For example, routes are automatically discovered from your function names in
views.pyfiles. - Batteries Included, but Pluggable: Ushka comes with a rich set of built-in features like an ORM, admin panel, caching, and task queuing. However, the framework is modular, allowing you to use only what you need.
- Modern Python: Ushka leverages modern Python features like type hints and async/await to their full potential.
Key Features¶
- ASGI Native: Built on the modern Asynchronous Server Gateway Interface for high performance.
- Dependency Injection: A powerful, yet simple DI container for managing services and dependencies.
- Integrated ORM: A fully asynchronous ORM built on SQLAlchemy, featuring an Active Record pattern for intuitive database interactions.
- Pydantic-based Configuration: Type-safe and validated configuration loaded from
ushka.tomlfiles. - Auto-discovery: Automatic discovery of routes and services within your application modules.
- Rich CLI Tool: A command-line interface for creating projects, managing database migrations, running dev servers, and more.
- Built-in Admin Panel: An auto-generated admin interface for your database models.
- Extensible: Includes support for caching, background task queuing, PWA features, and more.
Ready to get started? Check out our Getting Started Guide.