Skip to main content

A parameterized SQL web server for DuckDB routes compiled from Markdown

Project description

webbed_duck

webbed_duck turns Markdown + SQL route files into HTTP endpoints powered by DuckDB.

This MVP (v0.3) extends the core compiler and server with annotation-ready viewers and workflow helpers:

  • A Markdown compiler that translates *.sql.md files into Python route manifests and preserves per-route metadata for cards, feeds, charts, overrides, and append targets.
  • A FastAPI-based server that executes DuckDB queries per-request, applies per-cell overrides from the overlay store, and returns JSON payloads derived from Arrow tables, HTML tables (html_t), card grids (html_c), feed views, and Arrow stream slices for virtualized viewers.
  • New endpoints for /routes/{id}/schema, /routes/{id}/overrides, and /routes/{id}/append to expose form metadata, manage overrides, and persist CSV append operations.
  • Popularity analytics, folder indexes, and a pluggable auth adapter resolved via configuration.
  • Command-line tooling for compiling routes, running the development server, and iterating cursor-driven workloads via run-incremental.

See routes_src/hello.sql.md for an example route.

Usage

Compile routes:

python -m webbed_duck.cli compile --source routes_src --build routes_build

Run the development server (requires the compiled routes):

python -m webbed_duck.cli serve --build routes_build --config config.toml

Visit http://127.0.0.1:8000/hello?name=DuckDB to exercise the sample route. Append &format=html_c or &format=feed to see the HTML viewers, or &format=arrow&limit=25 for Arrow RPC slices. Use POST /routes/hello/overrides to annotate rows, POST /routes/hello/append to persist CSV records, and GET /routes/hello/schema to generate auto-form metadata.

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

webbed_duck-0.3.0.tar.gz (19.7 kB view details)

Uploaded Source

Built Distribution

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

webbed_duck-0.3.0-py3-none-any.whl (21.8 kB view details)

Uploaded Python 3

File details

Details for the file webbed_duck-0.3.0.tar.gz.

File metadata

  • Download URL: webbed_duck-0.3.0.tar.gz
  • Upload date:
  • Size: 19.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for webbed_duck-0.3.0.tar.gz
Algorithm Hash digest
SHA256 e17d8e326e81613c1a604dea18e25cf5dedcb77f72087537703f43e09810b1d7
MD5 5cb0304a1ab9be5fe690319298e06b2e
BLAKE2b-256 4d24fa57d8f08446bed0b5130f1045452be720aa33d3aae650da91a0da531664

See more details on using hashes here.

Provenance

The following attestation bundles were made for webbed_duck-0.3.0.tar.gz:

Publisher: python-publish.yml on isaacnfairplay/webbed_duck

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

File details

Details for the file webbed_duck-0.3.0-py3-none-any.whl.

File metadata

  • Download URL: webbed_duck-0.3.0-py3-none-any.whl
  • Upload date:
  • Size: 21.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for webbed_duck-0.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 d5de87c42ac6c786fe62b7296749067208b6fa849f6dd0e0443298690b45c4ee
MD5 6add0f33403c32d1f831f2771f758843
BLAKE2b-256 4ca7568a931503cf3f112a0148ed06d09344ac06438a0b92a0779424dd81e387

See more details on using hashes here.

Provenance

The following attestation bundles were made for webbed_duck-0.3.0-py3-none-any.whl:

Publisher: python-publish.yml on isaacnfairplay/webbed_duck

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