Metadata-Version: 2.4
Name: fapix
Version: 0.1.4
Summary: A Django-inspired, batteries-included toolkit for FastAPI with DRF-style ViewSets, Built In Modular Authentication,  WebSocket ViewSets, CLI scaffolding, and Aerich migrations.
Author: Hashim
Author-email: Hashim Ali <devhashim111@gmail.com>
License: MIT License
        
        Copyright (c) 2026 Hashim
        
        Permission is hereby granted, free of charge, to any person obtaining a copy
        of this software and associated documentation files (the "Software"), to deal
        in the Software without restriction, including without limitation the rights
        to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
        copies of the Software, and to permit persons to whom the Software is
        furnished to do so, subject to license bows, subject to the following conditions:
        
        The above copyright notice and this permission notice shall be included in all
        copies or substantial portions of the Software.
        
        THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
        IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
        FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
        AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
        LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
        OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
        SOFTWARE.
Project-URL: Homepage, https://github.com/devHashim111/fapix
Project-URL: Documentation, https://devHashim111.github.io/fapix/
Project-URL: Repository, https://github.com/devHashim111/fapix
Project-URL: Issues, https://github.com/devHashim111/fapix/issues
Keywords: fastapi,django,drf,viewsets,tortoise-orm,websockets,aerich,asyncio,jwt,authentication,CBVs,websockets,fast,scaffolding,productivity,toolkit,Framework,batteries
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: Topic :: Software Development :: Build Tools
Classifier: Topic :: Internet :: WWW/HTTP :: HTTP Servers
Classifier: Framework :: FastAPI
Classifier: Framework :: AsyncIO
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Requires-Python: >=3.7
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: click>=8.1.3
Requires-Dist: jinja2>=3.1.2
Requires-Dist: tortoise-orm>=0.19.2
Requires-Dist: aerich
Requires-Dist: python-jose[cryptography]
Requires-Dist: fastapi
Requires-Dist: uvicorn
Requires-Dist: typer
Requires-Dist: passlib
Requires-Dist: pydantic[email]
Requires-Dist: bcrypt==4.0.1
Dynamic: author
Dynamic: license-file
Dynamic: requires-python

# Fapix

**Fapix** is a high-productivity, **Django-inspired** web framework built on top of **FastAPI**, **Tortoise-ORM**, and **Typer**.

It brings the modular structure, built-in CLI automation, and seamless migration workflows of Django into the modern, asynchronous Python ecosystem.

---

## 🚀 Key Features

* **Django-Style App Architecture:** Modular project layout using `apps/` with automatic model discovery and router registration.
* **DRF-Style ViewSets & Routers:** Declarative `ModelViewSet` classes, dynamic `DefaultRouter`, fine-grained permissions, and custom `@action` decorators.
* **Declarative WebSockets:** Non-DB custom action views (`WebSocketApiView`) and ORM-backed real-time viewsets (`WebSocketModelViewSet`).
* **Built-in Authentication:** Out-of-the-box user models, routes, and CLI user management.
* **Smart Database Migrations:** Powered by `aerich`, featuring automated model detection and self-healing migration fallbacks.
* **Built-in Interactive API Tester:** Integrated lightweight API and WebSocket tester hosted directly at `/tester`.

---

## 📦 Installation

Install Fapix directly from PyPI:

```bash
pip install fapix

```

Or install locally in editable mode for core development:

```bash
git clone https://github.com/devHashim111/fapix
cd fapix
pip install -e .

```

---

## 📖 Quick Start

```bash
# 1. Start a new project & navigate into it
fapix startproject myproject
cd myproject

# 2. Initialize built-in auth app & run migrations
fapix startapp auth
fapix makemigrations
fapix migrate

# 3. Start local development server
fapix runserver

```

Access the interactive API & WebSocket tester at `http://localhost:8000/tester`.

---

## 📚 Documentation Index

Explore detailed documentation sections inside the [`docs/`] folder:

* 🛠️ **[CLI & Database Migrations]:** Project creation, user management commands, and migration workflows.
* 🌐 **[HTTP ViewSets & Routing]:** DRF-parity `ModelViewSet`, `DefaultRouter`, function views, and permission setup.
* ⚡ **[WebSocket ViewSets]:** `WebSocketApiView`, `WebSocketModelViewSet`, frame routing, custom handlers, and method overrides.
* 🔐 **[Authentication & Permissions]:** Built-in user models, CLI user creation, JWT authentication, and permission classes.

---

## 📄 License

Distributed under the **MIT License**.
