hydra: Graph programming language
Hydra is an implementation of the LambdaGraph data model, which takes advantage of an isomorphism between labeled hypergraphs and typed lambda calculus: in Hydra, "graphs are programs, and programs are graphs". The language is designed to be embedded in other programming languages -- currently Haskell, Java, and Python. Hydra transforms data, schemas, and functional programs into multiple other languages in a way which maintains type safety. It is self-hosting in Haskell -- it generates its own executable source code from Hydra sources -- and it is designed to become self-hosting in its other implementation languages, as well.
[Skip to Readme]
Modules
[Index] [Quick Jump]
- Hydra
- Hydra.Accessors
- Adapt
- Hydra.Annotations
- Hydra.Arity
- Hydra.Ast
- Hydra.Checking
- Hydra.Classes
- Hydra.CodeGeneration
- Hydra.CoderUtils
- Hydra.Coders
- Hydra.Compute
- Hydra.Constants
- Hydra.Constraints
- Hydra.Core
- Decode
- Hydra.Decode.Accessors
- Hydra.Decode.Ast
- Hydra.Decode.Classes
- Hydra.Decode.Coders
- Hydra.Decode.Compute
- Hydra.Decode.Constraints
- Hydra.Decode.Core
- Hydra.Decode.Grammar
- Hydra.Decode.Json
- Hydra.Decode.Module
- Hydra.Decode.Parsing
- Hydra.Decode.Phantoms
- Hydra.Decode.Query
- Hydra.Decode.Relational
- Hydra.Decode.Tabular
- Hydra.Decode.Testing
- Hydra.Decode.Topology
- Hydra.Decode.Typing
- Hydra.Decode.Util
- Hydra.Decode.Variants
- Hydra.Decode.Workflow
- Hydra.Decoding
- Dsl
- Hydra.Dsl.Annotations
- Hydra.Dsl.AsTerm
- Hydra.Dsl.AsType
- Hydra.Dsl.Bootstrap
- Hydra.Dsl.Grammars
- Hydra.Dsl.LiteralTypes
- Hydra.Dsl.Literals
- Meta
- Hydra.Dsl.Meta.Accessors
- Hydra.Dsl.Meta.Ast
- Hydra.Dsl.Meta.Base
- Hydra.Dsl.Meta.Coders
- Hydra.Dsl.Meta.Common
- Hydra.Dsl.Meta.Compute
- Hydra.Dsl.Meta.Core
- Hydra.Dsl.Meta.DeepCore
- Hydra.Dsl.Meta.Grammar
- Hydra.Dsl.Meta.Graph
- Hydra.Dsl.Meta.Json
- Lib
- Hydra.Dsl.Meta.Lib.Chars
- Hydra.Dsl.Meta.Lib.Eithers
- Hydra.Dsl.Meta.Lib.Equality
- Hydra.Dsl.Meta.Lib.Flows
- Hydra.Dsl.Meta.Lib.Lists
- Hydra.Dsl.Meta.Lib.Literals
- Hydra.Dsl.Meta.Lib.Logic
- Hydra.Dsl.Meta.Lib.Maps
- Hydra.Dsl.Meta.Lib.Math
- Hydra.Dsl.Meta.Lib.Maybes
- Hydra.Dsl.Meta.Lib.Pairs
- Hydra.Dsl.Meta.Lib.Sets
- Hydra.Dsl.Meta.Lib.Strings
- Hydra.Dsl.Meta.Literals
- Hydra.Dsl.Meta.Module
- Hydra.Dsl.Meta.Parsing
- Hydra.Dsl.Meta.Phantoms
- Hydra.Dsl.Meta.Terms
- Hydra.Dsl.Meta.Testing
- Hydra.Dsl.Meta.Topology
- Hydra.Dsl.Meta.Types
- Hydra.Dsl.Meta.Typing
- Hydra.Dsl.Meta.Util
- Hydra.Dsl.Meta.Variants
- Hydra.Dsl.Prims
- Hydra.Dsl.Tabular
- Hydra.Dsl.Terms
- Hydra.Dsl.Tests
- Hydra.Dsl.Types
- Encode
- Hydra.Encode.Accessors
- Hydra.Encode.Ast
- Hydra.Encode.Classes
- Hydra.Encode.Coders
- Hydra.Encode.Compute
- Hydra.Encode.Constraints
- Hydra.Encode.Core
- Hydra.Encode.Grammar
- Hydra.Encode.Json
- Hydra.Encode.Module
- Hydra.Encode.Parsing
- Hydra.Encode.Phantoms
- Hydra.Encode.Query
- Hydra.Encode.Relational
- Hydra.Encode.Tabular
- Hydra.Encode.Testing
- Hydra.Encode.Topology
- Hydra.Encode.Typing
- Hydra.Encode.Util
- Hydra.Encode.Variants
- Hydra.Encode.Workflow
- Hydra.Encoding
- Eval
- Ext
- Extract
- Hydra.Formatting
- Hydra.Generation
- Hydra.Grammar
- Hydra.Grammars
- Hydra.Graph
- Hydra.Hoisting
- Hydra.Inference
- Json
- Hydra.Kernel
- Hydra.Languages
- Hydra.Lexical
- Lib
- Hydra.Literals
- Hydra.Minimal
- Hydra.Module
- Hydra.Monads
- Hydra.Names
- Hydra.Parsers
- Hydra.Parsing
- Hydra.Phantoms
- Hydra.Query
- Hydra.Reduction
- Hydra.Reflect
- Hydra.Relational
- Hydra.Rewriting
- Hydra.Schemas
- Hydra.Serialization
- Hydra.Settings
- Show
- Hydra.Sorting
- Sources
- Hydra.Sources.All
- Hydra.Sources.CoderUtils
- Decode
- Hydra.Sources.Decode.Accessors
- Hydra.Sources.Decode.Ast
- Hydra.Sources.Decode.Classes
- Hydra.Sources.Decode.Coders
- Hydra.Sources.Decode.Compute
- Hydra.Sources.Decode.Constraints
- Hydra.Sources.Decode.Core
- Hydra.Sources.Decode.Grammar
- Json
- Hydra.Sources.Decode.Module
- Hydra.Sources.Decode.Parsing
- Hydra.Sources.Decode.Phantoms
- Hydra.Sources.Decode.Query
- Hydra.Sources.Decode.Relational
- Hydra.Sources.Decode.Tabular
- Hydra.Sources.Decode.Testing
- Hydra.Sources.Decode.Topology
- Hydra.Sources.Decode.Typing
- Hydra.Sources.Decode.Util
- Hydra.Sources.Decode.Variants
- Hydra.Sources.Decode.Workflow
- Encode
- Hydra.Sources.Encode.Accessors
- Hydra.Sources.Encode.Ast
- Hydra.Sources.Encode.Classes
- Hydra.Sources.Encode.Coders
- Hydra.Sources.Encode.Compute
- Hydra.Sources.Encode.Constraints
- Hydra.Sources.Encode.Core
- Hydra.Sources.Encode.Grammar
- Json
- Hydra.Sources.Encode.Module
- Hydra.Sources.Encode.Parsing
- Hydra.Sources.Encode.Phantoms
- Hydra.Sources.Encode.Query
- Hydra.Sources.Encode.Relational
- Hydra.Sources.Encode.Tabular
- Hydra.Sources.Encode.Testing
- Hydra.Sources.Encode.Topology
- Hydra.Sources.Encode.Typing
- Hydra.Sources.Encode.Util
- Hydra.Sources.Encode.Variants
- Hydra.Sources.Encode.Workflow
- Eval
- Haskell
- Json
- Kernel
- Terms
- Adapt
- Hydra.Sources.Kernel.Terms.All
- Hydra.Sources.Kernel.Terms.Annotations
- Hydra.Sources.Kernel.Terms.Arity
- Hydra.Sources.Kernel.Terms.Checking
- Hydra.Sources.Kernel.Terms.CodeGeneration
- Hydra.Sources.Kernel.Terms.Constants
- Hydra.Sources.Kernel.Terms.Decoding
- Hydra.Sources.Kernel.Terms.Encoding
- Extract
- Hydra.Sources.Kernel.Terms.Formatting
- Hydra.Sources.Kernel.Terms.Grammars
- Hydra.Sources.Kernel.Terms.Hoisting
- Hydra.Sources.Kernel.Terms.Inference
- Hydra.Sources.Kernel.Terms.Languages
- Hydra.Sources.Kernel.Terms.Lexical
- Hydra.Sources.Kernel.Terms.Literals
- Hydra.Sources.Kernel.Terms.Monads
- Hydra.Sources.Kernel.Terms.Names
- Hydra.Sources.Kernel.Terms.Parsers
- Hydra.Sources.Kernel.Terms.Reduction
- Hydra.Sources.Kernel.Terms.Reflect
- Hydra.Sources.Kernel.Terms.Rewriting
- Hydra.Sources.Kernel.Terms.Schemas
- Hydra.Sources.Kernel.Terms.Serialization
- Show
- Hydra.Sources.Kernel.Terms.Sorting
- Hydra.Sources.Kernel.Terms.Substitution
- Hydra.Sources.Kernel.Terms.Tarjan
- Hydra.Sources.Kernel.Terms.Templates
- Hydra.Sources.Kernel.Terms.Unification
- Types
- Hydra.Sources.Kernel.Types.Accessors
- Hydra.Sources.Kernel.Types.All
- Hydra.Sources.Kernel.Types.Ast
- Hydra.Sources.Kernel.Types.Classes
- Hydra.Sources.Kernel.Types.Coders
- Hydra.Sources.Kernel.Types.Compute
- Hydra.Sources.Kernel.Types.Constraints
- Hydra.Sources.Kernel.Types.Core
- Hydra.Sources.Kernel.Types.Grammar
- Hydra.Sources.Kernel.Types.Graph
- Hydra.Sources.Kernel.Types.Module
- Hydra.Sources.Kernel.Types.Parsing
- Hydra.Sources.Kernel.Types.Phantoms
- Hydra.Sources.Kernel.Types.Query
- Hydra.Sources.Kernel.Types.Relational
- Hydra.Sources.Kernel.Types.Tabular
- Hydra.Sources.Kernel.Types.Testing
- Hydra.Sources.Kernel.Types.Topology
- Hydra.Sources.Kernel.Types.Typing
- Hydra.Sources.Kernel.Types.Util
- Hydra.Sources.Kernel.Types.Variants
- Hydra.Sources.Kernel.Types.Workflow
- Terms
- Hydra.Sources.Libraries
- Test
- Hydra.Sources.Test.All
- Hydra.Sources.Test.Annotations
- Checking
- Hydra.Sources.Test.EtaExpansion
- Hydra.Sources.Test.Formatting
- Hydra.Sources.Test.Hoisting
- Inference
- Json
- Lib
- Hydra.Sources.Test.Lib.Chars
- Hydra.Sources.Test.Lib.Eithers
- Hydra.Sources.Test.Lib.Equality
- Hydra.Sources.Test.Lib.Flows
- Hydra.Sources.Test.Lib.Lists
- Hydra.Sources.Test.Lib.Literals
- Hydra.Sources.Test.Lib.Logic
- Hydra.Sources.Test.Lib.Maps
- Hydra.Sources.Test.Lib.Math
- Hydra.Sources.Test.Lib.Maybes
- Hydra.Sources.Test.Lib.Pairs
- Hydra.Sources.Test.Lib.Sets
- Hydra.Sources.Test.Lib.Strings
- Hydra.Sources.Test.Monads
- Hydra.Sources.Test.Ordering
- Hydra.Sources.Test.Reduction
- Hydra.Sources.Test.Rewriting
- Hydra.Sources.Test.Serialization
- Hydra.Sources.Test.Sorting
- Hydra.Sources.Test.Substitution
- Hydra.Sources.Test.TestGraph
- Hydra.Sources.Test.TestSuite
- Hydra.Sources.Test.TestTerms
- Hydra.Sources.Test.TestTypes
- Hydra.Sources.Test.Unification
- Yaml
- Staging
- Hydra.Substitution
- Hydra.Tabular
- Hydra.Tarjan
- Hydra.Templates
- Hydra.Testing
- Tools
- Hydra.Topology
- Hydra.Typing
- Hydra.Unification
- Hydra.Util
- Hydra.Variants
- Hydra.Workflow
- Org
- Example
Downloads
- hydra-0.13.0.tar.gz [browse] (Cabal source package)
- Package description (as included in the package)
Maintainer's Corner
For package maintainers and hackage trustees
Candidates
| Versions [RSS] | 0.1.0, 0.1.1, 0.5.0, 0.5.1, 0.8.0, 0.12.0, 0.13.0 |
|---|---|
| Dependencies | aeson (>=2.1.0 && <2.3), base (>=4.19.0 && <4.22), base64-bytestring (>=1.2.1 && <1.3), bytestring (>=0.11.5 && <0.13), containers (>=0.6.7 && <0.8), directory (>=1.3.6 && <1.4), filepath (>=1.4.200 && <1.6), hspec (>=2.11.0 && <2.12), HsYAML (>=0.2.1 && <0.3), hydra, scientific (>=0.3.7 && <0.4), split (>=0.2.3 && <0.3), text (>=2.0.2 && <2.2), vector (>=0.12.0 && <0.14) [details] |
| License | Apache-2.0 |
| Author | Joshua Shinavier <josh@fortytwo.net> |
| Maintainer | Joshua Shinavier <josh@fortytwo.net> |
| Uploaded | by joshsh at 2026-02-27T23:08:09Z |
| Category | Data |
| Home page | https://github.com/CategoricalData/hydra#readme |
| Bug tracker | https://github.com/CategoricalData/hydra/issues |
| Source repo | head: git clone https://github.com/CategoricalData/hydra |
| Distributions | NixOS:0.12.0 |
| Executables | verify-json-kernel, update-kernel-tests, update-json-test, update-json-manifest, update-json-main, update-json-kernel, update-haskell-sources, update-haskell-kernel, update-haskell-eval-lib, update-generation-tests |
| Downloads | 356 total (12 in the last 30 days) |
| Rating | 2.0 (votes: 1) [estimated by Bayesian average] |
| Your Rating | |
| Status | Docs available [build log] Last success reported on 2026-02-27 [all 1 reports] |