Skip to content
Joshua Shinavier edited this page Apr 13, 2026 · 19 revisions

Welcome to the Hydra wiki!

Documentation

  • Main README - Project overview and getting started
  • Concepts - Core concepts, type system, and design principles
  • DSL guide - Comprehensive guide to Hydra's domain-specific languages
  • Implementation - Detailed implementation guide covering type modules, DSLs, primitives, and coders
  • Coding style - Guiding principles and coding conventions
  • Code organization - The packages/, heads/, dist/ layout used across Hydra packages
  • Developer Recipes - Step-by-step guides for common development tasks
  • Property graphs - Property graph data model, GraphSON, GQL, mapping language
  • RDF - RDF, SHACL, and OWL support
  • Testing - Common test suite and language-specific testing
  • Wiki pages (see sidebar) - Release process and feature documentation

Package documentation

  • Hydra-Kernel - Language-independent kernel types, terms, and DSL sources
  • Hydra-Haskell - Haskell coder (DSL sources + generated Haskell coder output)
  • Hydra-Java - Java coder DSL sources (Haskell-based)
  • Hydra-Python - Python coder DSL sources (Haskell-based)
  • Hydra-Scala - Scala coder DSL sources + sbt build
  • Hydra-Lisp - Lisp coder DSL sources (Clojure, Scheme, Common Lisp, Emacs Lisp)
  • Hydra-Ext - Extension coders (Avro, Protobuf, GraphQL, C++, Go, Rust, TypeScript, ...)
  • Hydra-PG - Property graph models and coders
  • Hydra-RDF - RDF, SHACL, and OWL models
  • Hydra-Coq - Coq code generation
  • Hydra-JavaScript - JavaScript coder DSL sources (in progress)

Runtime heads

  • heads/haskell/ - Haskell runtime, exec binaries, sync scripts
  • heads/java/ - Java runtime (primitives, DSL, utils)
  • heads/python/ - Python runtime (primitives, DSL, pyproject.toml)
  • heads/scala/ - Scala runtime (primitives, bootstrapping host)
  • heads/lisp/ - Per-dialect Lisp runtimes (clojure, scheme, common-lisp, emacs-lisp)

Generated output

Clone this wiki locally