-
Notifications
You must be signed in to change notification settings - Fork 24
Home
Joshua Shinavier edited this page May 31, 2026
·
24 revisions
Welcome to the Hydra wiki!
Where docs live. This wiki is for user-facing documentation that explains Hydra's design as it is: conceptual framing, the LambdaGraph data model, property-graph and RDF design, release policy. Procedural recipes, implementation-level details, build-system mechanics, and troubleshooting live in
docs/. Provisional material — sketches, in-flight proposals — belongs in issues or branch plans, not here.
- Main README - Project overview and getting started
- Concepts - Core concepts, type system, and design principles
- Packaging - The packaging model: packages, modules, definitions, and entity metadata
- Inference - Type inference and checking: HM together with elaboration to System F
- 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
- 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-TypeScript - TypeScript coder DSL sources (full implementation, #126)
- Hydra-Go - Go coder DSL sources (head bud — generator works, runtime partial; not yet test-suite green)
- Hydra-Wasm - WebAssembly target (in progress)
- Hydra-Bench - Synthetic workloads for cross-host inference benchmarking
-
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) -
heads/typescript/- TypeScript runtime (#126) -
heads/go/- Go runtime (head bud) -
heads/wasm/- WebAssembly runtime (in progress)
-
dist/json/- JSON kernel modules (always checked in; canonical interchange format) -
dist/haskell/- Generated Haskell kernel and per-package coders (hydra-haskell,hydra-java,hydra-python,hydra-scala,hydra-lisp,hydra-pg,hydra-rdf,hydra-ext,hydra-coq,hydra-typescript,hydra-wasm, ...) -
dist/java/- Generated Java kernel -
dist/python/- Generated Python kernel -
dist/scala/- Generated Scala kernel -
dist/typescript/- Generated TypeScript kernel -
dist/go/- Generated Go kernel (head bud — kernel only) -
dist/clojure/,dist/scheme/,dist/common-lisp/,dist/emacs-lisp/- Per-dialect Lisp kernels
Only dist/json/ and dist/haskell/ are tracked in git; the rest are regenerated from dist/json/ on demand via bin/sync.sh.