The clean, modular Python web floorplan
Project description
The clean, modular Python web floorplan.
Tatami is a minimal, convention-powered web framework that builds your application from the ground up — guided by your directory structure, not boilerplate or ceremony.
Like traditional tatami mats that structure a Japanese room, Tatami lets you define the shape and flow of your web app naturally, simply by laying things out.
✨ Features
- 🔁 Automatic routing from file and folder structure
- 📦 Service injection via convention
- 🧩 Auto-loaded middleware, templates, and static assets
- 📖 Live OpenAPI docs (ReDoc, Swagger, RapiDoc)
- 🧠 Auto-generated endpoint documentation from docstrings and README
- ⚡ Zero-config startup — just run your app directory
🚀 Quick Start
pip install tatami
🧠 Philosophy
Tatami is designed for:
- Structure-first design: Routes and services emerge from file layout.
- Simplicity: Eliminate configuration and glue code.
- Alignment: Your docs, code, and architecture reflect each other.
It’s like FastAPI and Flask had a minimalist, Spring Boot-inspired child.
📚 Documentation
- 📖 Getting Started
- 🔧 Project Structure
- 🧪 Testing
- 💡 Extending Tatami
Docs are served by default at /docs/swagger (Swagger) or /docs/redoc (ReDoc) or /docs/rapidoc (RapiDoc).
🔌 Example
from tatami import get, post, router
from pydantic import BaseModel
class User(BaseModel):
name: str
age: int
class Users(router('/users')):
@get('/')
def list_users(self):
"""Returns all users in the system."""
...
@post('/')
def create_user(self, user: User):
"""Creates a new user."""
...
This defines two routes:
- GET /users/
- POST /users/
...and auto-documents them with full OpenAPI schemas. For a fully featured example, check the Tatami Pet Store
🌱 Still Early
Tatami is experimental. Expect breaking changes, rapid iteration, and exciting ideas.
Contributions, feedback, and issue reports are more than welcome.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file tatami-0.0.1rc0.tar.gz.
File metadata
- Download URL: tatami-0.0.1rc0.tar.gz
- Upload date:
- Size: 21.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
acf06661d69e2b40e31f316d006822c53a1acd979801348f58e707fe21c87c96
|
|
| MD5 |
c4baaea37879df92387f9da64701835e
|
|
| BLAKE2b-256 |
92d877189ce00b24335647a448af264e24896cd77c5ab97e5b60a722c14a165c
|
Provenance
The following attestation bundles were made for tatami-0.0.1rc0.tar.gz:
Publisher:
pypi-publish.yml on ibonn/tatami
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
tatami-0.0.1rc0.tar.gz -
Subject digest:
acf06661d69e2b40e31f316d006822c53a1acd979801348f58e707fe21c87c96 - Sigstore transparency entry: 299663164
- Sigstore integration time:
-
Permalink:
ibonn/tatami@3d99e76d85c68ef995ec59d66ee07d6f14aedde7 -
Branch / Tag:
refs/tags/v0.0.1-pre.0 - Owner: https://github.com/ibonn
-
Access:
private
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
pypi-publish.yml@3d99e76d85c68ef995ec59d66ee07d6f14aedde7 -
Trigger Event:
push
-
Statement type:
File details
Details for the file tatami-0.0.1rc0-py3-none-any.whl.
File metadata
- Download URL: tatami-0.0.1rc0-py3-none-any.whl
- Upload date:
- Size: 9.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e4c5a4aa0e743c91337d0a321d8684534199d234e95963060f69909b7e6648c5
|
|
| MD5 |
4f2017452e4bbe70832febe88f897502
|
|
| BLAKE2b-256 |
f65c17d470d1adbb6519fb1a78e9c710a87cf2e4ac7e305565bf728ea0673415
|
Provenance
The following attestation bundles were made for tatami-0.0.1rc0-py3-none-any.whl:
Publisher:
pypi-publish.yml on ibonn/tatami
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
tatami-0.0.1rc0-py3-none-any.whl -
Subject digest:
e4c5a4aa0e743c91337d0a321d8684534199d234e95963060f69909b7e6648c5 - Sigstore transparency entry: 299663187
- Sigstore integration time:
-
Permalink:
ibonn/tatami@3d99e76d85c68ef995ec59d66ee07d6f14aedde7 -
Branch / Tag:
refs/tags/v0.0.1-pre.0 - Owner: https://github.com/ibonn
-
Access:
private
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
pypi-publish.yml@3d99e76d85c68ef995ec59d66ee07d6f14aedde7 -
Trigger Event:
push
-
Statement type: