Skip to content

Developers

Joshua Shinavier edited this page Mar 11, 2026 · 8 revisions

This page is for developers of Hydra itself. See Contributors.

See also:

  • Developer Recipes - Step-by-step guides for common development tasks, including creating new Hydra implementations

Source code organization

Haskell is Hydra's bootstrapping language. The Hydra kernel and much of its extended functionality is written in a Haskell-based domain-specific language (DSL), then code-generated into Haskell, Java, and Python. The source code is organized by functional concern into several categories:

Kernel sources (hydra-haskell)

The Hydra/Sources directory contains DSL-based definitions that are code-generated into all implementations:

These sources are code-generated into:

Extended sources (hydra-ext)

The Hydra/Ext/Sources directory contains DSL-based definitions for language coders, data format adapters, and domain-specific models:

DSLs and primitives

To write source definitions, use the DSLs in Hydra/Dsl:

Primitive functions (built-ins) are implemented natively in each language:

Releases

See the Release process page for detailed instructions on releasing Hydra-Haskell, Hydra-Java, and Hydra-Python.

Clone this wiki locally