RadarTopicsBuildersWeeklyReads
Open Source Radar
apache/

hamilton

GitHubWebsite

Apache Hamilton provides a portable Python DAG framework for data transformations with UI integration; it supports visualization, lineage, and modular DAG definitions across environments.

2.6kstars
204forks
149issues
Apache-2.0license
2023since
Star historydaily snapshots by VibeCrowd

Collecting history — the radar snapshots this repo daily. The trend line appears after 3 days of data (1 so far).

Alternatives & relatedmatched by topic overlap
Reviewgenerated from repository data · Aug 5, 2026

What it is

Apache Hamilton is a lightweight Python library for directed acyclic graphs (DAGs) of data transformations. Your DAG is portable; it runs anywhere Python runs, whether it's a script, notebook, Airflow pipeline, FastAPI server, etc. Your DAG is expressive; Apache Hamilton has features to define and modify the execution of a DAG (e.g., data validation, experiment tracking, remote execution).

To create a DAG, write regular Python functions that specify their dependencies with their parameters. It results in readable code that can always be visualized. Apache Hamilton loads that definition and automatically builds the DAG for you!

The project includes an Apache Hamilton UI to visualize, catalog, and monitor execution, and a note that the UI can be run locally or self-hosted via Docker.

How it works

  • DAGs are defined with regular Python functions and dependencies are expressed via parameters.
  • The library can assemble multiple Python modules into a pipeline and automatically build the DAG.
  • Function modifiers and built-in data validation enable structured, self-documenting transformations.
  • The UI can track executions, provide a data catalog with lineage, and monitor results.

Getting started

  • Installation commands from the README:
pip install "apache-hamilton[visualization]"
pip install "apache-hamilton[ui,sdk]"
  • To use the UI, start the server with:
hamilton ui
  • Example snippet for tracking a DAG in the UI:
from hamilton import driver
from hamilton_sdk.adapters import HamiltonTracker
import my_dag

tracker = HamiltonTracker(
   username="my_username",
   project_id=1,
   dag_name="hello_world",
)

dr = (
   driver.Builder()
   .with_modules(my_dag)
   .with_adapters(tracker)
   .build()
)

dr.execute(["C"])
  • The README also advertises resources:
https://hamilton.apache.org/

Recent releases

Latest releases (by date):

  • apache-hamilton-v1.90.0-incubating-RC0 (2026-04-25) – What’s Changed include fixes to docs badging and parallel-task docs.
  • v1.89.0-incubating (2025-10-11) – Fix local (Windows) tests; Wires through REACT_APP_HAMILTON_SUB_PATH for docker.
  • v1.89.0-incubating-RC1 (2025-10-04) – same items as RC1.
  • sf-hamilton-1.88.0 (2025-03-29) – Run UI on domain subpath; pin ddtrace.
  • sf-hamilton-1.87.0 (2025-02-12) – Fixes resolve decorator docs; update/add task execution hooks.

Traction

  • Stars: 2557
  • Forks: 204
  • Open issues: 149

License

  • Apache-2.0

Getting started (quick facts)

  • Supported Python: 3.8+
  • Visualization dependency: optional (requires Graphviz installed separately)
  • UI and SDK extras can be installed via the provided pip commands.
SharePost on XLinkedIn
All trending reposRevenue-verified startups →