Hydra

A strongly typed intermediate language for data, schemas, and code, built on the LambdaGraph data model.

Programs and domain models written in Hydra map seamlessly to major programming languages (Java, Python, Scala, Lisp, Haskell, and others), data-exchange formats (Protobuf, Avro, JSON, YAML), and graph data models (RDF, SHACL, TinkerPop-style property graphs). Hydra is mutually self-hosting: its own kernel runs natively in any of its complete implementations.

Start here

I want to use Hydra

Getting started — install the library and pull in a few packages.

Demos — runnable examples with input data and expected output.

I want to understand Hydra

Concepts — the type system, LambdaGraph, the design.

Design — the rationale behind each major choice.

Design paper — the original LambdaGraph framing.

I want to contribute

Source code — the main GitHub repository.

Developer recipes — step-by-step guides for extending the kernel.

Published artifacts

Hydra publishes packages for Java (Maven Central), Scala (Maven Central), Python (PyPI and conda-forge), Haskell (Hackage), and TypeScript (npm). All Hydra packages in a release share a single version number.

See the Releases page for the current version, every registry and package, and release verification (checksums and signatures).

API documentation

Per-package API documentation is published for every language Hydra maps into, cross-linked across packages:

Learn more

Community