Skip to content
open-lakehousePublic

About

An opinionated toolset to scaffold APIs and clients from protobuf definitions.

Resources

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

Trestle

Trestle

Build typed, proto-driven data-platform services in Rust — from .proto to a running, scaffolded project.

CI codecov crates.io License: Apache-2.0

Trestle turns annotated protobuf into production-ready Rust REST APIs, typed clients, Python (PyO3) and Node.js (NAPI) bindings, and a graph-based resource store — all derived from proto annotations. Its trestle new command scaffolds full project trees pre-wired for codegen, local lakehouse emulation, and Databricks Apps deployment.

The pipeline, the crate map, and the design decisions behind it are documented in docs/architecture.md.

Crates

Crate Description
olai-trestle Unified CLI (trestle binary): trestle new for scaffolding + trestle generate / enrich-openapi for codegen
olai-codegen Proto-driven code generation for REST handlers, clients, resource registries, and language bindings
olai-store Generic, TAO-inspired object and association store with field-role enforcement
olai-http Cloud credential abstraction + HTTP client (AWS, Azure, GCP, Databricks)
olai-http-wasm Browser/WASM HTTP transport for generated clients

Quick start

Install the CLI, then scaffold a project:

brew install open-lakehouse/tap/trestle   # macOS / Linux, prebuilt binary
# or: cargo binstall olai-trestle          # prebuilt binary via cargo-binstall
# or: cargo install olai-trestle           # build from source

# A full Databricks-Apps-ready Rust service + React frontend, with a local
# Postgres/MLflow/Envoy stack that emulates Databricks URLs.
trestle new my-app --template databricks-app-rust --profile dbx-emulator

All three install a binary called trestle (the crate is published as olai-trestle; the command is trestle).

trestle list-templates shows the embedded templates; trestle new --help documents every flag. See crates/trestle/README.md for the full scaffolding guide and crates/olai-codegen/README.md for the proto annotations and codegen config.

To use the libraries directly without scaffolding:

[dependencies]
olai-store = "0.0"
olai-http = "0.0"

[build-dependencies]
olai-codegen = "0.0"

Prerequisites

  • Rust 1.88+ (Edition 2024)
  • buf — to compile .proto into a descriptor (codegen only)
  • Docker + Docker Compose (optional) — for the local platform stack that scaffolded labs/apps bring up

Build & test

Standard Cargo workspace:

cargo build               # build all crates
cargo test --lib --tests  # unit + integration tests (skips doctests)

For the full development workflow, linting, and how releases work, see CONTRIBUTING.md.

License

Apache-2.0. See LICENSE.

About

An opinionated toolset to scaffold APIs and clients from protobuf definitions.

Resources

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages