# monsquaz/lunarkukar architecture

> Architecture diagram of the GitHub repository monsquaz/lunarkukar, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-25). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/monsquaz/lunarkukar
- Repository: https://github.com/monsquaz/lunarkukar
- Video tour (about a minute): https://gitdiagram.com/monsquaz/lunarkukar/video

## Overview

Lunarkukar is a collection of small string generators, implemented independently in Java, Kotlin, Python, and JavaScript. The user runs an implementation to produce a string: some print it, while the JavaScript expressions evaluate to it. The excerpts show distinct generation techniques, not a shared runtime or pipeline; the README does not describe additional capabilities.

Main entry points: [`java/LunarKukar.java`](https://github.com/monsquaz/lunarkukar/blob/master/java/LunarKukar.java) (Java generator), [`kotlin/LunarKukar.kt`](https://github.com/monsquaz/lunarkukar/blob/master/kotlin/LunarKukar.kt) (Kotlin generator), [`python/LunarKukar.py`](https://github.com/monsquaz/lunarkukar/blob/master/python/LunarKukar.py) (Python generator), [`python/LunarKukar2.py`](https://github.com/monsquaz/lunarkukar/blob/master/python/LunarKukar2.py) (Python generator 2)

## Diagram (Mermaid)

```mermaid
flowchart TD

node_user(("User"))
node_java["Java generator<br/>[LunarKukar.java]"]
node_kotlin["Kotlin generator<br/>[LunarKukar.kt]"]
node_python1["Python generator<br/>[LunarKukar.py]"]
node_python2["Python generator 2<br/>[LunarKukar2.py]"]
node_jsarray["Array generator<br/>[array1.js]"]
node_jsbitshift["Bitshift generator<br/>[bitshift1.js]"]
node_jscurrying["Curried generator<br/>[currying1.js]"]
node_jsgenerators["Generator function<br/>[generators.js]"]
node_output["Generated string"]

node_user -->|"runs"| node_java
node_user -->|"runs"| node_kotlin
node_user -->|"runs"| node_python1
node_user -->|"runs"| node_python2
node_user -->|"evaluates"| node_jsarray
node_user -->|"evaluates"| node_jsbitshift
node_user -->|"evaluates"| node_jscurrying
node_user -->|"evaluates"| node_jsgenerators
node_java -->|"prints"| node_output
node_kotlin -->|"prints"| node_output
node_python1 -->|"prints"| node_output
node_python2 -->|"prints"| node_output
node_jsarray -->|"returns"| node_output
node_jsbitshift -->|"returns"| node_output
node_jscurrying -->|"returns"| node_output
node_jsgenerators -->|"returns"| node_output

click node_java "https://github.com/monsquaz/lunarkukar/blob/master/java/LunarKukar.java"
click node_kotlin "https://github.com/monsquaz/lunarkukar/blob/master/kotlin/LunarKukar.kt"
click node_python1 "https://github.com/monsquaz/lunarkukar/blob/master/python/LunarKukar.py"
click node_python2 "https://github.com/monsquaz/lunarkukar/blob/master/python/LunarKukar2.py"
click node_jsarray "https://github.com/monsquaz/lunarkukar/blob/master/javascript/array1.js"
click node_jsbitshift "https://github.com/monsquaz/lunarkukar/blob/master/javascript/bitshift1.js"
click node_jscurrying "https://github.com/monsquaz/lunarkukar/blob/master/javascript/currying1.js"
click node_jsgenerators "https://github.com/monsquaz/lunarkukar/blob/master/javascript/generators.js"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_user toneBlue
class node_java,node_kotlin,node_python1,node_python2,node_jsarray,node_jsbitshift,node_jscurrying,node_jsgenerators toneTeal
class node_output toneIndigo
```

## Components

### Other components

- **User**
- [Java generator](https://github.com/monsquaz/lunarkukar/blob/master/java/LunarKukar.java): `java/LunarKukar.java`
- [Kotlin generator](https://github.com/monsquaz/lunarkukar/blob/master/kotlin/LunarKukar.kt): `kotlin/LunarKukar.kt`
- [Python generator](https://github.com/monsquaz/lunarkukar/blob/master/python/LunarKukar.py): `python/LunarKukar.py`
- [Python generator 2](https://github.com/monsquaz/lunarkukar/blob/master/python/LunarKukar2.py): `python/LunarKukar2.py`
- [Array generator](https://github.com/monsquaz/lunarkukar/blob/master/javascript/array1.js): `javascript/array1.js`
- [Bitshift generator](https://github.com/monsquaz/lunarkukar/blob/master/javascript/bitshift1.js): `javascript/bitshift1.js`
- [Curried generator](https://github.com/monsquaz/lunarkukar/blob/master/javascript/currying1.js): `javascript/currying1.js`
- [Generator function](https://github.com/monsquaz/lunarkukar/blob/master/javascript/generators.js): `javascript/generators.js`
- **Generated string**

## Connections

- User → Java generator: runs
- User → Kotlin generator: runs
- User → Python generator: runs
- User → Python generator 2: runs
- User → Array generator: evaluates
- User → Bitshift generator: evaluates
- User → Curried generator: evaluates
- User → Generator function: evaluates
- Java generator → Generated string: prints
- Kotlin generator → Generated string: prints
- Python generator → Generated string: prints
- Python generator 2 → Generated string: prints
- Array generator → Generated string: returns
- Bitshift generator → Generated string: returns
- Curried generator → Generated string: returns
- Generator function → Generated string: returns
