Metadata-Version: 2.5
Name: duckpad
Version: 0.14.0
Summary: A local SQL canvas with reproducible execution and cell lineage
Project-URL: Homepage, https://github.com/hugues31/duckpad
Project-URL: Repository, https://github.com/hugues31/duckpad
Project-URL: Issues, https://github.com/hugues31/duckpad/issues
Project-URL: Changelog, https://github.com/hugues31/duckpad/releases
License-Expression: MIT
License-File: LICENSE
Keywords: data-lineage,data-pipeline,duckdb,etl,sql
Classifier: Development Status :: 3 - Alpha
Classifier: Environment :: Web Environment
Classifier: Framework :: FastAPI
Classifier: Intended Audience :: Developers
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Topic :: Database
Requires-Python: >=3.11
Requires-Dist: alembic<2,>=1.20
Requires-Dist: authlib<2,>=1.9.1
Requires-Dist: cryptography>=44
Requires-Dist: duckdb>=2.0
Requires-Dist: fastapi>=0.115
Requires-Dist: filelock>=3.18
Requires-Dist: httpx2<3,>=2.4
Requires-Dist: joserfc<2,>=1.7.7
Requires-Dist: psutil>=7.2
Requires-Dist: pydantic-ai-slim[anthropic,google,mistral,openai]<3,>=2.64
Requires-Dist: pydantic>=2.10
Requires-Dist: python-multipart>=0.0.20
Requires-Dist: pytz>=2024.1
Requires-Dist: sqlalchemy<3,>=2.0
Requires-Dist: sqlglot>=30.27
Requires-Dist: sqlmodel<0.1,>=0.0.48
Requires-Dist: uv>=0.8
Requires-Dist: uvicorn>=0.34
Description-Content-Type: text/markdown

# Duckpad

[![Tests](https://github.com/hugues31/duckpad/actions/workflows/ci.yml/badge.svg?branch=main)](https://github.com/hugues31/duckpad/actions/workflows/ci.yml)
[![PyPI version](https://img.shields.io/pypi/v/duckpad.svg)](https://pypi.org/project/duckpad/)
[![Python versions](https://img.shields.io/pypi/pyversions/duckpad.svg)](https://pypi.org/project/duckpad/)
[![License: MIT](https://img.shields.io/github/license/hugues31/duckpad.svg)](LICENSE)

### See the flow. Trust the result.

An open-source SQL workspace powered by **DuckDB 2.0**. Turn scattered data into
visual pipelines, explore the results and trace a number all the way back to its
source.

[![Visit the website](https://img.shields.io/badge/Visit_the_website-1858de?style=for-the-badge)](https://hugues31.github.io/duckpad/)

[![Watch Duckpad in one minute: build visual pipelines and version your work](docs/images/duckpad-overview.jpg)](https://hugues31.github.io/duckpad/#demo)

- **Compose visually.** Connect sources, joins and reusable components. Use guided
  forms to prepare columns and values, or write your own SQL nodes.
- **Explore and check your data.** Sample and filter results, save views, compute
  column statistics, and keep data tests and execution messages next to your SQL.
- **Explain a number.** Follow a result cell back to its contributing source
  values, with [explicit lineage coverage](docs/LINEAGE.md).
- **Review changes.** Saves create Git commits. Work on separate branches, compare
  changes visually and review a merge before applying it.
- **Run repeatable work.** Share typed variables across nodes and environments,
  then launch Jobs against reviewed versions from the interface, CLI or a scheduler.
- **Ask for help in context.** Use the AI assistant to explain a flow, inspect
  its edits and confirm executions with your existing project permissions.
- **Keep control.** Run on your infrastructure, configure connections per
  environment, manage team access and import extensions for offline use.

## Try it

With Python 3.11+ and Git installed:

```sh
pip install duckpad
duckpad start
```

Open the printed local address and sign in with the initial admin
password from the terminal. Follow **[Duckpad in 15 minutes](docs/QUICKSTART.md)**
to build your first pipeline from scratch, write SQL and explain a result.

Prefer a ready-made project? Choose **New project → Start from an example**,
enter a name, then **Create → Run all** to explore Northstar.
See [installation](docs/INSTALLATION.md) for platform requirements and setup options.

## Go further

| Build | Understand | Share and run |
| --- | --- | --- |
| [SQL syntax](docs/SQL.md) | [Results and samples](docs/RESULTS.md) | [Version control](docs/GIT.md) |
| [Data preparation](docs/DATA_PREPARATION.md) | [Data tests](docs/TESTS.md) | [Jobs](docs/JOBS.md) |
| [Reusable components](docs/COMPONENTS.md) | [Messages and logs](docs/MESSAGES.md) | [CLI and automation](docs/AUTOMATION.md) |
| [Variables](docs/VARIABLES.md) | [Lineage](docs/LINEAGE.md) | [Connections](docs/CONNECTORS.md) |
| [Project files](docs/AUTHORING.md) | [AI assistant](docs/ASSISTANT.md) | [Environments](docs/ENVIRONMENTS.md) |

[Installation & accounts](docs/INSTALLATION.md) · [Single sign-on](docs/SSO.md) ·
[Python nodes](docs/PYTHON.md) ·
[Offline extensions](docs/OFFLINE_EXTENSIONS.md) · [Project documentation](docs/DOCUMENTATION.md) ·
[Dataiku & Alteryx vocabulary](docs/COMPARISON.md) ·
[Architecture](docs/ARCHITECTURE.md) · [Validation](docs/VALIDATION.md) ·
[Releases](docs/RELEASING.md) · [Security](SECURITY.md)

Want to contribute? Start with [CONTRIBUTING.md](CONTRIBUTING.md).
