# Coming from another tool

> Concept maps from Pydantic AI, LangGraph, Celery, Temporal and FastAPI to Pyrula, with a runnable example for each.

Source: https://docs.pyrula.io/getting-started/coming-from/

Each page has a scaffold (the `pyrula init` flag that writes a runnable `app.py` in that tool's
shape), a concept map with a change label per row, and an example that runs offline.

| Page | Scaffold |
|---|---|
| [Coming from Pydantic AI](https://docs.pyrula.io/getting-started/coming-from/pydantic-ai.md) | `pyrula init --pydantic-ai` |
| [Coming from LangGraph](https://docs.pyrula.io/getting-started/coming-from/langgraph.md) | `pyrula init --langgraph` |
| [Coming from Celery](https://docs.pyrula.io/getting-started/coming-from/celery.md) | `pyrula init --celery` |
| [Coming from Temporal](https://docs.pyrula.io/getting-started/coming-from/temporal.md) | none |
| [Coming from FastAPI](https://docs.pyrula.io/getting-started/coming-from/fastapi.md) | `pyrula init --fastapi` |

The change labels in the concept maps:

| Label | Meaning |
|---|---|
| Direct swap | Same concept, a different name or import. |
| Small rewrite | Same idea, a few lines change shape. |
| Conceptual redesign | The idea maps to a different Pyrula mechanism. |
| Operational change | The code stays; how you run, deploy or watch it changes. |
| Not supported | Pyrula has no equivalent today. |
