Welcome to the jungle.
jungle explores the idea of "Workflow-as-Type" (WaT).
Unlike "Worflow-as-Code" frameworks such as Temporal or Restate, jungle expects Flows to be expressed as a Rust type, or more specifically, a tree of Rust types. This prevents using many common programming patterns for the expression of control flow, but in turn enables: visualization of the execution graph, type-safe generic Flow-composition, compile-time node replacement / graph traversal, and other seemingly magical properties.
The welcome example implements playback of the Guns N' Roses' 1987 hit single "Welcome to the Jungle" using jungle:
jungle-06-07-26.webm
These Flows handle the notation and timing for the instruments and vocalizations internally, while treating PCM synthesis and playback (through cpal) as I/O. Inputs for each note are persisted either in memory, redb, or postgres, depending on the choice of backend, facilitating recovery in the event of an outage.
I want to emphasize that the goal of the jungle is not to compete with, refine, simplify, translate, or port any existing orchestration tools. For the time being, jungle is more of a living art project sprouted from the Rust programming language and its ecosystem.
Thejungle is still growing, and many bugs live here! Feel free to look around, but don't let it bring you down.