Hydra-Ext
Extension coders for Hydra: schema languages and data formats outside the
core hydra-pg / hydra-rdf set. This package holds DSL sources only — generated
output lands under dist/<lang>/hydra-ext/ for each target language that the
package supports.
Hydra is a functional programming language based on the LambdaGraph data model. See the main Hydra README for project overview and use cases.
What's in this package
Coders, syntax models, and language metadata for:
- Schema languages and IDLs — Avro, Protobuf, GraphQL, Pegasus/PDL, JSON Schema, YAML, SQL (ANSI), Datalog, Kusto KQL.
- Generation targets — C++, C# (Csharp), Rust.
- Domain models — Workflow, Atlas, Azure DTDL, GeoJSON, IANA Relations, OSV (Open Source Vulnerability), STAC Items, Parquet/Delta Parquet.
The full list is maintained in
src/main/haskell/Hydra/Sources/Ext/Manifest.hs.
Not in this package
A few originally-Ext members have moved out into their own packages as they matured into proper coders:
- Go →
packages/hydra-go/(issue #289). - TypeScript →
packages/hydra-typescript/(issue #126).
Sync scope
hydra-ext is not part of the default bin/sync.sh host × target matrix.
Most modules here are experimental schema and syntax models rather than full
cross-language coders. The package's package.json declares:
"targetLanguages": ["python"]
which scopes regeneration to Python-side artifacts under dist/python/hydra-ext/.
To regenerate, run from a worktree root:
bin/sync.sh --hosts haskell --targets python # via the kernel manifest
The Haskell-side DSL sources are processed in Phase 1 of every bin/sync.sh
invocation; the result lands in dist/json/hydra-ext/. Target-language emission
beyond Python is currently opt-in and limited.
Demos using hydra-ext
Several demos exercise extension coders:
- Avro demo — bidirectional Avro schema reading and writing.
- GenPG demo — CSV → property graph (uses Avro for schemas).
- GraphQL JSON demo — GraphQL schema inference and JSON validation.
- SHACL demo — uses several ext models.
Adding a coder
For a new schema language or generation target:
- Add the DSL source modules under
src/main/haskell/Hydra/Sources/<Lang>/(Coder.hs, Language.hs, Serde.hs, Syntax.hs at minimum). - Register them in
src/main/haskell/Hydra/Sources/Ext/Manifest.hs'smainModuleslist. - Run
heads/haskell/bin/sync-haskell.shto regenerate the JSON kernel and validate that the new sources type-check against the rest ofhydra-ext.
For the broader process, see
Creating a new Hydra implementation
(for full host languages) or
Adding new primitives
(for new functions in hydra.lib.*).
See also
- Concepts — the LambdaGraph data model.
hydra-kernelREADME — the core types, terms, and primitives every extension coder builds on.- Implementation overview — the coder framework and how it's organized.
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file hydra_ext-0.17.6.tar.gz.
File metadata
- Download URL: hydra_ext-0.17.6.tar.gz
- Upload date:
- Size: 475.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/7.0.0 CPython/3.12.8
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d14453a1ecd82bac5491f12a5bcd9ce8866ea42ed34ce4a2771e6a5576f95686
|
|
| MD5 |
62d370f23f88b36a2517ef23b0df523c
|
|
| BLAKE2b-256 |
b2b0f9e29b4e376040049e641fb5de2730fe49ff292e8aad9de8be959092033f
|
File details
Details for the file hydra_ext-0.17.6-py3-none-any.whl.
File metadata
- Download URL: hydra_ext-0.17.6-py3-none-any.whl
- Upload date:
- Size: 501.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/7.0.0 CPython/3.12.8
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a2f95665cd2d9f070797faead1180de3ec9e8670359162b4f04c215379da062b
|
|
| MD5 |
7a0a2e0fd830e7ec95f7ba9ef770d21d
|
|
| BLAKE2b-256 |
facf388827f0553db7244a397b29d486720ce176f1984cb0848297e45af991a1
|