An open API service indexing awesome lists of open source software.

https://github.com/tigrbl/tigrbl

Schema-first Python and Rust workspace for REST and JSON-RPC APIs with typed validation, SQLAlchemy models, and engine-backed execution.
https://github.com/tigrbl/tigrbl

api-framework asgi developer-tools json-rpc python rest-api rust schema-first sqlalchemy typed-validation

Last synced: 2 days ago
JSON representation

Schema-first Python and Rust workspace for REST and JSON-RPC APIs with typed validation, SQLAlchemy models, and engine-backed execution.

Awesome Lists containing this project

README

          


Tigrbl Workspace


Tigrbl logo

Schema-first Python and Rust workspace for REST APIs, JSON-RPC APIs, typed contracts, runtime pipelines, engine plugins, and native execution layers.


Repository for tigrbl
Branch coverage workflow
Publish workflow
Repository hits for tigrbl
SSOT governed workspace
Discord community for tigrbl

![Tigrbl package graph](docs/assets/tigrbl-package-graph.png)

## What This Repository Owns

Tigrbl is a mixed Python and Rust workspace for schema-first service authoring and execution. The Python side owns the public facade, split framework layers, and installable engine plugins. The Rust side owns spec IR, ports, atoms, kernel compilation, runtime execution, and native engine crates. Active workspace manifests currently define `40` PyPI packages, `0` npm packages, and `11` Rust crates.

## Install and Work on the Workspace

```bash
uv sync --all-extras --dev
cargo test --workspace
```

Most users start with [`tigrbl`](https://pypi.org/project/tigrbl/) for the public Python facade. Package-level README entry points under `pkgs/` and `crates/` now document the boundary, install target, and dependency surface for each distributable.

## Package Families

### Core Python packages

- [`tigrbl`](https://pypi.org/project/tigrbl/)
- [`tigrbl-atoms`](https://pypi.org/project/tigrbl-atoms/)
- [`tigrbl-base`](https://pypi.org/project/tigrbl-base/)
- [`tigrbl-canon`](https://pypi.org/project/tigrbl-canon/)
- [`tigrbl_client`](https://pypi.org/project/tigrbl_client/)
- [`tigrbl-concrete`](https://pypi.org/project/tigrbl-concrete/)
- [`tigrbl-core`](https://pypi.org/project/tigrbl-core/)
- [`tigrbl-kernel`](https://pypi.org/project/tigrbl-kernel/)
- [`tigrbl-ops-olap`](https://pypi.org/project/tigrbl-ops-olap/)
- [`tigrbl-ops-oltp`](https://pypi.org/project/tigrbl-ops-oltp/)
- [`tigrbl-ops-realtime`](https://pypi.org/project/tigrbl-ops-realtime/)
- [`tigrbl-orm`](https://pypi.org/project/tigrbl-orm/)
- [`tigrbl-runtime`](https://pypi.org/project/tigrbl-runtime/)
- [`tigrbl_spec`](https://pypi.org/project/tigrbl_spec/)
- [`tigrbl_tests`](https://pypi.org/project/tigrbl_tests/)
- [`tigrbl-typing`](https://pypi.org/project/tigrbl-typing/)

### Engine packages

- [`tigrbl_engine_bigquery`](https://pypi.org/project/tigrbl_engine_bigquery/)
- [`tigrbl_engine_clickhouse`](https://pypi.org/project/tigrbl_engine_clickhouse/)
- [`tigrbl_engine_csv`](https://pypi.org/project/tigrbl_engine_csv/)
- [`tigrbl_engine_dataframe`](https://pypi.org/project/tigrbl_engine_dataframe/)
- [`tigrbl_engine_duckdb`](https://pypi.org/project/tigrbl_engine_duckdb/)
- [`tigrbl_engine_inmemcache`](https://pypi.org/project/tigrbl_engine_inmemcache/)
- [`tigrbl_engine_inmemory`](https://pypi.org/project/tigrbl_engine_inmemory/)
- [`tigrbl_engine_membloom`](https://pypi.org/project/tigrbl_engine_membloom/)
- [`tigrbl_engine_memdedupe`](https://pypi.org/project/tigrbl_engine_memdedupe/)
- [`tigrbl_engine_memkv`](https://pypi.org/project/tigrbl_engine_memkv/)
- [`tigrbl_engine_memlru`](https://pypi.org/project/tigrbl_engine_memlru/)
- [`tigrbl_engine_mempubsub`](https://pypi.org/project/tigrbl_engine_mempubsub/)
- [`tigrbl_engine_memqueue`](https://pypi.org/project/tigrbl_engine_memqueue/)
- [`tigrbl_engine_memrate`](https://pypi.org/project/tigrbl_engine_memrate/)
- [`tigrbl_engine_numpy`](https://pypi.org/project/tigrbl_engine_numpy/)
- [`tigrbl_engine_pandas`](https://pypi.org/project/tigrbl_engine_pandas/)
- [`tigrbl_engine_pgsqli_wal`](https://pypi.org/project/tigrbl_engine_pgsqli_wal/)
- [`tigrbl_engine_postgres`](https://pypi.org/project/tigrbl_engine_postgres/)
- [`tigrbl_engine_pyspark`](https://pypi.org/project/tigrbl_engine_pyspark/)
- [`tigrbl_engine_redis`](https://pypi.org/project/tigrbl_engine_redis/)
- [`tigrbl_engine_rediscachethrough`](https://pypi.org/project/tigrbl_engine_rediscachethrough/)
- [`tigrbl_engine_snowflake`](https://pypi.org/project/tigrbl_engine_snowflake/)
- [`tigrbl_engine_sqlite`](https://pypi.org/project/tigrbl_engine_sqlite/)
- [`tigrbl_engine_xlsx`](https://pypi.org/project/tigrbl_engine_xlsx/)

### Rust workspace

The Rust crates and optional Python extension bindings now live in the private
[`tigrbl_rs`](https://github.com/tigrbl/tigrbl_rs) repository.

## How to Choose a Package

- Install [`tigrbl`](https://pypi.org/project/tigrbl/) when you want the public Python authoring surface in one dependency.
- Install split core packages when you want a narrower subsystem boundary such as runtime, ORM, kernel, typing, client, tests, or operation families.
- Install engine packages when you want a backend-specific dependency surface for SQLite, Postgres, Redis, warehouse, tabular, or in-memory workflows.
- Use the independent `tigrbl_acme_ca` and `tigrbl_spiffe` repositories when you want ready-made Tigrbl application boundaries for ACME CA or SPIFFE/SPIRE identity flows.
- Use the private `tigrbl_rs` repository when you are embedding or extending native Tigrbl compilation, runtime, or engine layers.
- There are no active npm package manifests in this workspace at the moment.

## Current Package Line

The active Python package line is `0.4.1`. The Rust workspace package line is `0.4.1`. Repository-governed target status and release evidence are not declared from this README; use the canonical docs below for that authority.

## Canonical Repository Docs

- `docs/README.md`
- `docs/conformance/CURRENT_TARGET.md`
- `docs/conformance/CURRENT_STATE.md`
- `docs/conformance/NEXT_STEPS.md`
- `docs/conformance/NEXT_TARGETS.md`
- `docs/governance/DOC_POINTERS.md`
- `CONTRIBUTING.md`
- `CODE_OF_CONDUCT.md`
- `SECURITY.md`

## Governance Notes

The `.ssot/` tree remains the governed source of truth for entities, package boundaries, and release evidence. Package-local `README.md` files under `pkgs/` and `crates/` are distribution entry points, not authoritative conformance records.

Release evidence is organized under `docs/conformance/releases/`. Active development-line evidence is organized under `docs/conformance/dev/`.

## License

Licensed under the Apache License, Version 2.0. See `LICENSE` and the official [Apache 2.0 license text](https://www.apache.org/licenses/LICENSE-2.0).