Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

DavidAlphaFox/gust

Repository files navigation

Gust

Gust Logo

A task orchestration system designed to be efficient, fast and developer-friendly.

Test Coverage Status

Gust Web

Gust


Motivation

As a CTO and founder, I was tired of spending buckets of money to set up and manage Airflow, dealing with multiple databases, countless processes, Docker complexity, and of course its outdated and buggy UI. So we decided to build something that kept what we liked about Airflow and ditched what we didn’t. The result is Gust: a platform that’s ×ばつ more efficient, faster, and far easier to set up.

Gust is the perfect fit for our needs, and I encourage you to try it and push it even further. There’s still plenty of room for improvements and new features. If you spot something or want to contribute an idea, don’t be shy! Drop an Issue or submit a PR.


Overview

DAG Code Example

defmodule HelloWorld do
 alias Gust.Flows
 use Gust.DSL
 require Logger
 task :first_task, downstream: [:second_task], store_result: true do
 greetings = "Hi from first_task"
 Logger.info(greetings)
 %{result: greetings}
 end
 task :second_task, ctx: %{run_id: run_id} do
 task = Flows.get_task_by_name_run("first_task", run_id)
 Logger.info(task.result)
 end
end

Web Interface

ss-1

Getting started

Prerequisites

  • macOS/Ubuntu
  • Elixir must be at least this version
  • Postgres

Creating a new Gust app

  1. Replace my_app for your app name and run:
GUST_APP=my_app bash -c "$(curl -fsSL https://raw.githubusercontent.com/marciok/gust/main/setup_gust_app.sh)"
  1. Configure Postgres credentials on my_app/config/dev.exs

  2. Run database setup: mix ecto.create --repo Gust.Repo && mix ecto.migrate --repo Gust.Repo

  3. Run Gust start: mix gust.start

  4. Check the docs on how to customize your DAG 🎉


Core Features

  • Task orchestration with Cron-style scheduling and dependency-aware DAGs via the Gust DSL.
  • Manual task controls: stop running tasks, cancel retries, and restart tasks on demand.
  • Run-time tracking, corrupted-state recovery, and graceful handling of syntax errors during development.
  • Retry logic with backoff, plus state clearing for clean restarts.
  • Hook for finished dag run.
  • Web UI for live monitoring and secrets editing.

Sponsors

Comparacar

Find the best offers and save money on car subscription service.

License

Gust is released under the MIT License.


No more Astronomer hefty bills

About

A Task-Based Workflow Orchestration Engine

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Elixir 89.3%
  • HTML 4.4%
  • CSS 2.7%
  • Shell 2.5%
  • JavaScript 1.1%

AltStyle によって変換されたページ (->オリジナル) /