Skip to main content

The clean, modular Python web floorplan

Project description

Tatami Logo

GitHub Actions Workflow Status PyPI - Downloads PyPI - Version


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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

tatami-0.0.1rc0.tar.gz (21.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

tatami-0.0.1rc0-py3-none-any.whl (9.4 kB view details)

Uploaded Python 3

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

Hashes for tatami-0.0.1rc0.tar.gz
Algorithm Hash digest
SHA256 acf06661d69e2b40e31f316d006822c53a1acd979801348f58e707fe21c87c96
MD5 c4baaea37879df92387f9da64701835e
BLAKE2b-256 92d877189ce00b24335647a448af264e24896cd77c5ab97e5b60a722c14a165c

See more details on using hashes here.

Provenance

The following attestation bundles were made for tatami-0.0.1rc0.tar.gz:

Publisher: pypi-publish.yml on ibonn/tatami

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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

Hashes for tatami-0.0.1rc0-py3-none-any.whl
Algorithm Hash digest
SHA256 e4c5a4aa0e743c91337d0a321d8684534199d234e95963060f69909b7e6648c5
MD5 4f2017452e4bbe70832febe88f897502
BLAKE2b-256 f65c17d470d1adbb6519fb1a78e9c710a87cf2e4ac7e305565bf728ea0673415

See more details on using hashes here.

Provenance

The following attestation bundles were made for tatami-0.0.1rc0-py3-none-any.whl:

Publisher: pypi-publish.yml on ibonn/tatami

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page