Transform any Python function into a portable, trackable pipeline in seconds.
Your existing function (unchanged!):
def analyze_sales():
total_revenue = 50000
best_product = "widgets"
return total_revenue, best_product
Make it runnable everywhere:
from runnable import PythonJob
def main():
PythonJob(function=analyze_sales).execute()
if __name__ == "__main__":
main()
π Success! Your function now runs the same on laptop, containers, and Kubernetes with automatic tracking and reproducibility.
def load_customer_data():
return {"count": 1500, "segments": ["premium", "standard"]}
def analyze_segments(customer_data): # Name matches = automatic connection
return {"premium_pct": 30, "growth_potential": "high"}
# What Runnable needs (same logic, no glue):
from runnable import Pipeline, PythonTask
def main():
Pipeline(steps=[
PythonTask(function=load_customer_data, returns=["customer_data"]),
PythonTask(function=analyze_segments, returns=["analysis"])
]).execute()
if __name__ == "__main__":
main()
Same pipeline runs unchanged on laptop, containers, and Kubernetes.
pip install runnable
For development:
uv sync --all-extras --dev
Run examples:
uv run examples/01-tasks/python_tasks.py
Runnable excels at data pipeline orchestration:
π§ͺ Extensible Architecture & Experimental Features:
Runnable's plugin-based architecture demonstrates its extensibility through experimental features like:
For production agentic frameworks, consider specialized tools like Pydantic AI, LangChain, or CrewAI, which are purpose-built for complex LLM applications.
Simple sequential execution of Python functions, notebooks, or shell scripts.
Execute multiple branches simultaneously for improved performance.
Execute pipelines over iterable parameters for batch processing.
Combine parallel, map, and sequential patterns as needed.
| Runnable | Kedro | Metaflow | Airflow | |
|---|---|---|---|---|
| Zero Code Changes | β Wrap existing functions | β Restructure to nodes | β Convert to FlowSpec | β Rewrite as DAG tasks |
| Environment Portability | Same code: laptopβcontainerβK8sβArgo | Deployment-specific configs | AWS-focused with --with flags | Platform-specific operators |
| Mixed Task Types | Python + Notebooks + Shell | Python nodes only | Python steps only | Requires separate operators |
| Plugin Extensibility | Auto-discovery via entry points | kedro-* packages | Limited extensions | Complex plugin development |
| Parameter Passing | Automatic by name matching | Manual catalog definitions | Flow state management | Manual XCom operations |
Runnable:
pip install runnable
# Wrap your existing function - done!
Others:
Ready to get started? Check out our 30-second demo for immediate results!
Python
99.9%
Transform any Python function into a portable, trackable pipeline in seconds.
Your existing function (unchanged!):
def analyze_sales():
total_revenue = 50000
best_product = "widgets"
return total_revenue, best_product
Make it runnable everywhere:
from runnable import PythonJob
def main():
PythonJob(function=analyze_sales).execute()
if __name__ == "__main__":
main()
π Success! Your function now runs the same on laptop, containers, and Kubernetes with automatic tracking and reproducibility.
def load_customer_data():
return {"count": 1500, "segments": ["premium", "standard"]}
def analyze_segments(customer_data): # Name matches = automatic connection
return {"premium_pct": 30, "growth_potential": "high"}
# What Runnable needs (same logic, no glue):
from runnable import Pipeline, PythonTask
def main():
Pipeline(steps=[
PythonTask(function=load_customer_data, returns=["customer_data"]),
PythonTask(function=analyze_segments, returns=["analysis"])
]).execute()
if __name__ == "__main__":
main()
Same pipeline runs unchanged on laptop, containers, and Kubernetes.
pip install runnable
For development:
uv sync --all-extras --dev
Run examples:
uv run examples/01-tasks/python_tasks.py
Runnable excels at data pipeline orchestration:
π§ͺ Extensible Architecture & Experimental Features:
Runnable's plugin-based architecture demonstrates its extensibility through experimental features like:
For production agentic frameworks, consider specialized tools like Pydantic AI, LangChain, or CrewAI, which are purpose-built for complex LLM applications.
Simple sequential execution of Python functions, notebooks, or shell scripts.
Execute multiple branches simultaneously for improved performance.
Execute pipelines over iterable parameters for batch processing.
Combine parallel, map, and sequential patterns as needed.
| Runnable | Kedro | Metaflow | Airflow | |
|---|---|---|---|---|
| Zero Code Changes | β Wrap existing functions | β Restructure to nodes | β Convert to FlowSpec | β Rewrite as DAG tasks |
| Environment Portability | Same code: laptopβcontainerβK8sβArgo | Deployment-specific configs | AWS-focused with --with flags | Platform-specific operators |
| Mixed Task Types | Python + Notebooks + Shell | Python nodes only | Python steps only | Requires separate operators |
| Plugin Extensibility | Auto-discovery via entry points | kedro-* packages | Limited extensions | Complex plugin development |
| Parameter Passing | Automatic by name matching | Manual catalog definitions | Flow state management | Manual XCom operations |
Runnable:
pip install runnable
# Wrap your existing function - done!
Others:
Ready to get started? Check out our 30-second demo for immediate results!
Python
99.9%