Thanks to visit codestin.com
Credit goes to github.com

Skip to content

marciok/gust

Repository files navigation

Gust

Gust Logo

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

TestCoverage 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 10× 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

ss2

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