{"id":29403428,"url":"https://github.com/riptano/stepflow","last_synced_at":"2025-07-10T18:08:07.665Z","repository":{"id":302771031,"uuid":"978936351","full_name":"riptano/stepflow","owner":"riptano","description":null,"archived":false,"fork":false,"pushed_at":"2025-07-04T05:46:15.000Z","size":6998,"stargazers_count":1,"open_issues_count":1,"forks_count":0,"subscribers_count":4,"default_branch":"main","last_synced_at":"2025-07-04T06:30:57.148Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://fuzzy-journey-4j3y1we.pages.github.io/","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/riptano.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-05-06T18:27:22.000Z","updated_at":"2025-07-04T05:46:18.000Z","dependencies_parsed_at":"2025-07-04T06:43:40.901Z","dependency_job_id":null,"html_url":"https://github.com/riptano/stepflow","commit_stats":null,"previous_names":["riptano/stepflow"],"tags_count":4,"template":false,"template_full_name":null,"purl":"pkg:github/riptano/stepflow","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/riptano%2Fstepflow","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/riptano%2Fstepflow/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/riptano%2Fstepflow/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/riptano%2Fstepflow/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/riptano","download_url":"https://codeload.github.com/riptano/stepflow/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/riptano%2Fstepflow/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":264628563,"owners_count":23640496,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-07-10T18:08:06.807Z","updated_at":"2025-07-10T18:08:07.655Z","avatar_url":"https://github.com/riptano.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003ca id=\"readme-top\"\u003e\u003c/a\u003e\n\n\u003c!-- PROJECT SHIELDS --\u003e\n[![Contributors][contributors-shield]][contributors-url]\n[![Forks][forks-shield]][forks-url]\n[![Stargazers][stars-shield]][stars-url]\n[![Issues][issues-shield]][issues-url]\n[![Apache License][license-shield]][license-url]\n\n\u003c!-- PROJECT LOGO --\u003e\n\u003cbr /\u003e\n\u003cdiv align=\"center\"\u003e\n  \u003ca href=\"https://github.com/riptano/stepflow\"\u003e\n    \u003cimg src=\"images/logo.png\" alt=\"Logo\" width=\"80\" height=\"80\"\u003e\n  \u003c/a\u003e\n\n  \u003ch3 align=\"center\"\u003eStepFlow\u003c/h3\u003e\n\n  \u003cp align=\"center\"\u003e\n    Open protocol and runtime for building GenAI workflows\n    \u003cbr /\u003e\n    \u003ca href=\"https://fuzzy-journey-4j3y1we.pages.github.io/\"\u003e\u003cstrong\u003eExplore the docs »\u003c/strong\u003e\u003c/a\u003e\n    \u003cbr /\u003e\n    \u003cbr /\u003e\n    \u003ca href=\"https://github.com/riptano/stepflow\"\u003eView Demo\u003c/a\u003e\n    \u0026middot;\n    \u003ca href=\"https://github.com/riptano/stepflow/issues/new?labels=bug\u0026template=bug-report---.md\"\u003eReport Bug\u003c/a\u003e\n    \u0026middot;\n    \u003ca href=\"https://github.com/riptano/stepflow/issues/new?labels=enhancement\u0026template=feature-request---.md\"\u003eRequest Feature\u003c/a\u003e\n  \u003c/p\u003e\n\u003c/div\u003e\n\n\u003c!-- TABLE OF CONTENTS --\u003e\n\u003cdetails\u003e\n  \u003csummary\u003eTable of Contents\u003c/summary\u003e\n  \u003col\u003e\n    \u003cli\u003e\n      \u003ca href=\"#about-the-project\"\u003eAbout The Project\u003c/a\u003e\n    \u003c/li\u003e\n    \u003cli\u003e\n      \u003ca href=\"#getting-started\"\u003eGetting Started\u003c/a\u003e\n      \u003cul\u003e\n        \u003cli\u003e\u003ca href=\"#prerequisites\"\u003ePrerequisites\u003c/a\u003e\u003c/li\u003e\n        \u003cli\u003e\u003ca href=\"#installation\"\u003eInstallation\u003c/a\u003e\u003c/li\u003e\n      \u003c/ul\u003e\n    \u003c/li\u003e\n    \u003cli\u003e\u003ca href=\"#usage\"\u003eUsage\u003c/a\u003e\u003c/li\u003e\n    \u003cli\u003e\u003ca href=\"#roadmap\"\u003eRoadmap\u003c/a\u003e\u003c/li\u003e\n    \u003cli\u003e\u003ca href=\"#contributing\"\u003eContributing\u003c/a\u003e\u003c/li\u003e\n    \u003cli\u003e\u003ca href=\"#license\"\u003eLicense\u003c/a\u003e\u003c/li\u003e\n    \u003cli\u003e\u003ca href=\"#contact\"\u003eContact\u003c/a\u003e\u003c/li\u003e\n  \u003c/ol\u003e\n\u003c/details\u003e\n\n\u003c!-- ABOUT THE PROJECT --\u003e\n## About The Project\n\nStepFlow is an open protocol and runtime for building, executing, and scaling GenAI workflows across local and cloud environments. Its modular architecture ensures secure, isolated execution of components—whether running locally or deployed to production. With durability, fault-tolerance, and an open specification, StepFlow empowers anyone to create, share, and run AI workflows across platforms and tools.\n\n### Key Features\n\n- **⚙️ Reliable, Scalable Workflow Execution**\n   Run workflows locally with confidence they'll scale. StepFlow provides built-in durability and fault tolerance—ready for seamless transition to production-scale deployments.\n- **🔐 Secure, Isolated Components**\n   Each workflow step runs in a sandboxed process or container with strict resource and environment controls. StepFlow's design prioritizes security, reproducibility, and platform independence.\n- **🌐 Open, Portable Workflow Standard**\n   Build once, run anywhere. The StepFlow protocol is open and extensible, enabling workflow portability across different environments and platforms.\n\n### What StepFlow Enables\n\n- Define AI workflows using YAML or JSON\n- Execute workflows with built-in support for parallel execution\n- Extend functionality through step services\n- Handle errors at both flow and step levels\n- Use as both a library and a service\n\n### Repository Structure\n\nThis repository contains multiple components:\n\n- **`stepflow-rs/`** - Main Rust-based execution engine and runtime\n- **`stepflow-ui/`** - Web-based frontend for workflow management\n- **`sdks/python/`** (`stepflow-py`) - Python SDK for building components\n- **`sdks/typescript/`** (`stepflow-ts`) - TypeScript SDK for building components\n\n\u003cp align=\"right\"\u003e(\u003ca href=\"#readme-top\"\u003eback to top\u003c/a\u003e)\u003c/p\u003e\n\n\u003c!-- GETTING STARTED --\u003e\n## Getting Started\nTo get a local copy up and running quickly follow these simple steps.\n### Prerequisites\n\n- Rust 1.70+ (for building from source)\n- Python 3.8+ (for Python SDK examples)\n\n### Installation\n\n1. Clone the repository\n   ```sh\n   git clone https://github.com/riptano/stepflow.git\n   cd stepflow\n   ```\n\n2. Build the stepflow-rs project\n   ```sh\n   cd stepflow-rs\n   cargo build --release\n   ```\n\n3. Run a sample workflow\n   ```sh\n   cargo run -- run --flow=examples/python/basic.yaml --input=examples/python/input1.json\n   ```\n\n\u003cp align=\"right\"\u003e(\u003ca href=\"#readme-top\"\u003eback to top\u003c/a\u003e)\u003c/p\u003e\n\n\u003c!-- USAGE EXAMPLES --\u003e\n## Usage\n\n### Quick Start Example\n\nHere's a simple workflow that demonstrates basic StepFlow usage:\n\n**workflow.yaml:**\n```yaml\ninput_schema:\n  type: object\n  properties:\n    m:\n      type: integer\n    n:\n      type: integer\n\nsteps:\n  - id: add_numbers\n    component: python://add\n    args:\n      a: { $from: $input, path: m }\n      b: { $from: $input, path: n }\n\noutputs:\n  result: { $from: add_numbers, path: result }\n```\n\n**input.json:**\n```json\n{\n  \"m\": 8,\n  \"n\": 5\n}\n```\n\n**Run the workflow:**\nThis assumes `workflow.yaml` and `input.json` are in the current directory.\n```sh\ncd stepflow-rs\ncargo run -- run --flow=workflow.yaml --input=input.json\n```\n\n### Configuration\n\nCreate a `stepflow-config.yaml` file to define available plugins:\n\n```yaml\nplugins:\n  - name: builtin\n    type: builtin\n  - name: python\n    type: stdio\n    command: uv\n    args: [\"--project\", \"../sdks/python\", \"run\", \"stepflow_sdk\"]\n```\n\n_For more examples, please refer to the [Documentation](https://fuzzy-journey-4j3y1we.pages.github.io/)_\n\n\u003cp align=\"right\"\u003e(\u003ca href=\"#readme-top\"\u003eback to top\u003c/a\u003e)\u003c/p\u003e\n\n\u003c!-- ROADMAP --\u003e\n## Roadmap\n\n- [x] Workflow execution and debugging\n- [x] JSON-RPC over stdio protocol for component servers\n- [x] Initial Stepflow UI\n- [x] SQL state store for durable execution\n- [ ] MCP tools as components\n- [ ] Container-based component servers\n- [ ] JSON-RPC over http protocol for remote execution\n- [ ] Improve Python SDK\n- [ ] Enrich component libraries\n- [ ] Distributed state stores for scalable execution\n- [ ] Kubernetes and container based deployments\n\nSee the [open issues](https://github.com/riptano/stepflow/issues) for a full list of proposed features (and known issues).\n\n\u003cp align=\"right\"\u003e(\u003ca href=\"#readme-top\"\u003eback to top\u003c/a\u003e)\u003c/p\u003e\n\n\u003c!-- CONTRIBUTING --\u003e\n## Contributing\n\nContributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are **greatly appreciated**.\n\nIf you have a suggestion that would make this better, please fork the repo and create a pull request. You can also simply open an issue with the tag \"enhancement\".\nDon't forget to give the project a star! Thanks again!\n\n1. Fork the Project\n2. Create your Feature Branch (`git checkout -b feature/AmazingFeature`)\n3. Commit your Changes (`git commit -m 'feat: Add some AmazingFeature'`)\n4. Push to the Branch (`git push origin feature/AmazingFeature`)\n5. Open a Pull Request\n\nFor detailed development instructions, see [CONTRIBUTING.md](CONTRIBUTING.md).\n\n### Top contributors:\n\n\u003ca href=\"https://github.com/riptano/stepflow/graphs/contributors\"\u003e\n  \u003cimg src=\"https://contrib.rocks/image?repo=riptano/stepflow\" alt=\"contrib.rocks image\" /\u003e\n\u003c/a\u003e\n\n\u003cp align=\"right\"\u003e(\u003ca href=\"#readme-top\"\u003eback to top\u003c/a\u003e)\u003c/p\u003e\n\n\u003c!-- LICENSE --\u003e\n## License\n\nDistributed under the Apache License. See `LICENSE.txt` for more information.\n\n\u003cp align=\"right\"\u003e(\u003ca href=\"#readme-top\"\u003eback to top\u003c/a\u003e)\u003c/p\u003e\n\n\u003c!-- CONTACT --\u003e\n## Contact\n\nProject Link: [https://github.com/riptano/stepflow](https://github.com/riptano/stepflow)\n\n\u003cp align=\"right\"\u003e(\u003ca href=\"#readme-top\"\u003eback to top\u003c/a\u003e)\u003c/p\u003e\n\n\u003c!-- MARKDOWN LINKS \u0026 IMAGES --\u003e\n\u003c!-- https://www.markdownguide.org/basic-syntax/#reference-style-links --\u003e\n[contributors-shield]: https://img.shields.io/github/contributors/riptano/stepflow.svg?style=for-the-badge\n[contributors-url]: https://github.com/riptano/stepflow/graphs/contributors\n[forks-shield]: https://img.shields.io/github/forks/riptano/stepflow.svg?style=for-the-badge\n[forks-url]: https://github.com/riptano/stepflow/network/members\n[stars-shield]: https://img.shields.io/github/stars/riptano/stepflow.svg?style=for-the-badge\n[stars-url]: https://github.com/riptano/stepflow/stargazers\n[issues-shield]: https://img.shields.io/github/issues/riptano/stepflow.svg?style=for-the-badge\n[issues-url]: https://github.com/riptano/stepflow/issues\n[license-shield]: https://img.shields.io/github/license/riptano/stepflow.svg?style=for-the-badge\n[license-url]: https://github.com/riptano/stepflow/blob/master/LICENSE.txt\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Friptano%2Fstepflow","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Friptano%2Fstepflow","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Friptano%2Fstepflow/lists"}