Metadata-Version: 2.4
Name: tavo
Version: 0.1.31
Summary: Bino full-stack framework CLI - Python backend + Rust/SWC React SSR
Home-page: https://github.com/cyberwizdev/tavo
Author: Bino Framework Team
Author-email: Hallel <admin@cyberwizdev.com.ng>
License: MIT
Requires-Python: >=3.9
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: anyio==4.10.0
Requires-Dist: build==1.3.0
Requires-Dist: certifi==2025.8.3
Requires-Dist: charset-normalizer==3.4.3
Requires-Dist: click==8.2.1
Requires-Dist: colorama==0.4.6
Requires-Dist: docutils==0.22
Requires-Dist: id==1.5.0
Requires-Dist: idna==3.10
Requires-Dist: jaraco.classes==3.4.0
Requires-Dist: jaraco.context==6.0.1
Requires-Dist: jaraco.functools==4.3.0
Requires-Dist: keyring==25.6.0
Requires-Dist: markdown-it-py==4.0.0
Requires-Dist: mdurl==0.1.2
Requires-Dist: more-itertools==10.7.0
Requires-Dist: nh3==0.3.0
Requires-Dist: packaging==25.0
Requires-Dist: Pygments==2.19.2
Requires-Dist: pyproject_hooks==1.2.0
Requires-Dist: python-dotenv==1.1.1
Requires-Dist: pywin32-ctypes==0.2.3; sys_platform == "win32"
Requires-Dist: readme_renderer==44.0
Requires-Dist: requests==2.32.5
Requires-Dist: requests-toolbelt==1.0.0
Requires-Dist: rfc3986==2.0.0
Requires-Dist: rich==14.1.0
Requires-Dist: semantic-version==2.10.0
Requires-Dist: setuptools-rust==1.11.1
Requires-Dist: shellingham==1.5.4
Requires-Dist: sniffio==1.3.1
Requires-Dist: starlette==0.47.3
Requires-Dist: twine==6.1.0
Requires-Dist: typer==0.16.1
Requires-Dist: typing_extensions==4.15.0
Requires-Dist: urllib3==2.5.0
Requires-Dist: watchfiles==1.1.0
Requires-Dist: websockets==15.0.1
Provides-Extra: dev
Requires-Dist: setuptools>=80.9.0; extra == "dev"
Requires-Dist: wheel; extra == "dev"
Requires-Dist: twine; extra == "dev"
Dynamic: license-file

# 🚀 Tavo

**Tavo** is a modern **full-stack framework CLI** that combines:

- ⚡ **Python** backend (FastAPI/Starlette base)  
- 🦀 **Rust + SWC** powered SSR for React (with App Router support)  
- 🔥 **Client hydration & HMR** with no Node.js required  
- 🛠️ CLI scaffolding for apps, routes, components, and APIs  

Think of it as **Laravel Breeze + React + Python** but lighter, faster, and developer-friendly.

---

## ✨ Features

- **SSR with React App Router** (layouts, nested routes, `use client`)  
- **Hydration scripts compiled with SWC** (no Node.js needed)  
- **File-based routing** for both backend and frontend  
- **Hot Module Replacement (HMR)** via inline WebSocket  
- **One CLI (`tavo`) to rule them all** — scaffold projects, run dev server, and build  
- **Python backend** with Starlette/FastAPI style APIs out of the box  
- **Template system** for rapidly creating new apps  

---

## 📦 Installation

```bash
pip install tavo
````

Or from source:

```bash
git clone https://github.com/cyberwizdev/tavo
cd tavo
pip install -e .
```

---

## ⚡ Quick Start

### 1. Create a new project

```bash
tavo new myapp
```

This sets up a project with:

* Python backend (`tavo_core`)
* React frontend with SSR
* HMR + WebSocket inline dev server
* Preconfigured templates

---

### 2. Run dev server

```bash
cd myapp
tavo dev
```

Visit: [http://localhost:3000](http://localhost:3000)
Changes reload instantly ⚡.

---

### 3. Build for production

```bash
tavo build
```

This generates:

* ✅ Compiled backend (Python)
* ✅ Optimized frontend bundle (SWC)
* ✅ Static + SSR-ready HTML

---

## 🗂️ Project Structure

A new `tavo` project looks like this:

```
myapp/
│── app/                  # React components (App Router)
│   ├── layout.tsx
│   ├── page.tsx
│   └── ...
│── backend/              # Python backend (APIs, DB, services)
│   ├── main.py
│   └── routes/
│── public/               # Static assets
│── templates/            # Scaffolding templates
│── package.json          # For frontend deps (optional, only if needed)
│── pyproject.toml        # Python project config
│── tavo.config.json      # Tavo project config
```

---

## 🛠️ CLI Commands

| Command           | Description                             |
| ----------------- | --------------------------------------- |
| `tavo new <name>` | Create a new project                    |
| `tavo dev`        | Run development server with HMR         |
| `tavo build`      | Build backend + frontend for production |
| `tavo add <name>` | Add a component, page, or API route     |
| `tavo doctor`     | Check environment & setup               |

---

## ⚙️ Configuration

Tavo uses a `tavo.config.json` file:

```json
{
  "name": "myapp",
  "backend": "fastapi",
  "frontend": "react",
  "ssr": true,
  "hmr": true
}
```

---

## 🤝 Contributing

1. Fork the repo
2. Create your feature branch (`git checkout -b feature/foo`)
3. Commit changes (`git commit -m 'Add foo'`)
4. Push to branch (`git push origin feature/foo`)
5. Open a PR 🚀

---

## 📜 License

MIT © [CyberwizDev](https://github.com/cyberwizdev)

---

## 🌟 Why the name **Tavo**?

Short, catchy, and inspired by **“Tabula Volans”** — “a flying tablet/page” in Latin.
Just like how Tavo makes **pages fly from Python to React** ⚡.
