Skip to main content

Open-RPC API hosting and interactive documentation.

Project description

Tabella

Open-RPC development framework with builtin interactive documentation.

Demo

Live Demo

A live demo is available here.

Install

Tabella is on PyPI and can be installed with:

pip install tabella

Or with Poetry

poetry add tabella

Python OpenRPC Docs

The RPC server hosted and documented by Tabella is powered by Python OpenRPC. Refer to the Python OpenRPC docs hosted here for advanced use.

Getting Started

A basic Tabella app:

from tabella import Tabella

app = Tabella()


@app.method()
def echo(a: str, b: float) -> tuple[str, float]:
    """Echo parameters back in result."""
    return a, b


if __name__ == "__main__":
    app.run()

Run this, then open http://127.0.0.1:8000/ in your browser to use the interactive documentation.

The Open-RPC API will be hosted over HTTP on http://127.0.0.1:8000/api and over WebSockets on ws://127.0.0.1:8000/api.

Further Usage

Routers

An app with many modules can be organized into segments using Method Routers.

Security and Depends Arguments

Tabella passes request headers to the RPCServer process request methods. Details on usage can be found in the Python OpenRPC docs on Depends Arguments.

Set Servers

Set RPC servers manually to specify transport and paths to host the RPC server on, e.g.

from openrpc import Server
from tabella import Tabella

app = Tabella(
    servers=[
        Server(name="HTTP API", url="http://localhost:8000/my/api/path"),
        Server(name="WebSocket API", url="ws://localhost:8000/my/api/path"),
    ]
)

This app will host the RPCServer over HTTP and over WebSockets with the path /my/api/path.

Pydantic

Pydantic is used for request/response deserialization/serialization as well as schema generation. Pydantic should be used for any models as seen here in the Python OpenRPC Docs.

Starlette

Tabella HTTP and WebSocket server hosting uses Starlette. Uvicorn can be used to run the starlette app.

uvicorn main:app.starlette --reload

Monitor

If you are running the app with in debug mode, e.g. app = Tabella(debug=True), then at the path /monitor there is a display that will show requests and responses made to the RPC server as they happen.

This requires websockets

pip install websockets

Monitor

Inspired By

Support The Developer

Buy Me A Coffee

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

tabella-2.3.21.tar.gz (212.7 kB view details)

Uploaded Source

Built Distribution

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

tabella-2.3.21-py3-none-any.whl (244.6 kB view details)

Uploaded Python 3

File details

Details for the file tabella-2.3.21.tar.gz.

File metadata

  • Download URL: tabella-2.3.21.tar.gz
  • Upload date:
  • Size: 212.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.8.4 CPython/3.13.2 Linux/6.13.9-200.fc41.x86_64

File hashes

Hashes for tabella-2.3.21.tar.gz
Algorithm Hash digest
SHA256 599e761d9dc3bcab31d84e2462442396af8c41acd5e3dbb0288e92037ce487d6
MD5 81d2f87c5f5d3e883d7b7541f32a9c60
BLAKE2b-256 89a3c77cfc2c8c4871833b57a488592e012ab9b0d489cfa3e520163f1161e874

See more details on using hashes here.

File details

Details for the file tabella-2.3.21-py3-none-any.whl.

File metadata

  • Download URL: tabella-2.3.21-py3-none-any.whl
  • Upload date:
  • Size: 244.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.8.4 CPython/3.13.2 Linux/6.13.9-200.fc41.x86_64

File hashes

Hashes for tabella-2.3.21-py3-none-any.whl
Algorithm Hash digest
SHA256 54a934782f0fd6181f422b0d5a970d61cd59b004196e5fa1b5dbb1783a941a46
MD5 e361d84dba83d0307f293436160048a4
BLAKE2b-256 fbbdad0da2f655ac9f124063a76d35367541a3580669a4188f390d1f9c4b8bdb

See more details on using hashes here.

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