Graph Generation Language (GGL)
A domain-specific language for creating and manipulating graphs through declarative syntax. GGL allows you to define graph structures, generate common graph topologies, and apply transformation rules to evolve graphs over time.

Installation
Using Nix Flake
You need Nix and direnv installed:
git clone https://github.com/ocasazza/graph-generation-language.git
cd graph-generation-language
direnv allow
This repo uses Flakes.
nix develop
nix develop -c cargo run
nix build
For building documentation:
cargo doc --document-private-items --package graph_generation_language --all-features
Once built, these docs can be viewed locally at ./graph_generation_language/target/doc/graph_generation_language/index.html
For more, see nix apps:
> om show flake.nix
📦 Packages (nix build flake.nix#<name>)
╭───────────────────────────────┬─────────────╮
│ name │ description │
├───────────────────────────────┼─────────────┤
│ graphGenerationLanguageCli │ N/A │
│ graphGenerationLanguageWasm │ N/A │
│ graphGenerationLanguageClient │ N/A │
│ default │ N/A │
╰───────────────────────────────┴─────────────╯
🐚 Devshells (nix develop flake.nix#<name>)
╭─────────┬─────────────╮
│ name │ description │
├─────────┼─────────────┤
│ default │ N/A │
╰─────────┴─────────────╯
🚀 Apps (nix run flake.nix#<name>)
╭─────────────────────┬─────────────╮
│ name │ description │
├─────────────────────┼─────────────┤
│ fmt │ N/A │
│ server │ N/A │
│ get-build-artifacts │ N/A │
│ update-repo-info │ N/A │
╰─────────────────────┴─────────────╯
🔍 Checks (nix flake check)
╭───────────────────────────────┬─────────────╮
│ name │ description │
├───────────────────────────────┼─────────────┤
│ clippy │ N/A │
│ docs │ N/A │
│ graphGenerationLanguageClient │ N/A │
│ graphGenerationLanguage │ N/A │
│ graphGenerationLanguageCli │ N/A │
│ graphGenerationLanguageWasm │ N/A │
╰───────────────────────────────┴─────────────╯
License
This project is licensed under the MIT License - see the LICENSE file for details.
Acknowledgments