Skip to content

Repository files navigation

Jungle

Welcome to the jungle.

jungle explores the idea of "Workflow-as-Type" (WaT).

It has many similarities to event-replay driven "Worflow-as-Code" frameworks such as Temporal or Restate, with the main difference being that in jungle, Flows are expressed as type-level trees.

This limits the ways you can write Flows, but allows for their traversal and inspection at compile-time which in turn enables:

  • visualization of the execution graph
  • type-safe generic Flow composition
  • compile-time node/branch replacement & manipulation
  • moving various runtime errors to compile-time
  • ... other 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

In the example, Flows handle the notation and timing for the instruments and vocalizations, while PCM synthesis and playback (through cpal) is performed by Effects. Inputs for each note are persisted either through Fjall or PostgreSQL, depending on choice of backend, which allows the show to go on in the event of an outage.

The jungle is in a primitive state. The terrain is unforgiving and there are a lot of bugs. Have a look around, but don't let it bring you down!

About

Orchestration with a type-level embedded Rust DSL

Resources

Stars

2 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages