casciian-micronaut

May 25, 2026 · View on GitHub

A Micronaut 4.x replica of crramirez/casciian-spring — same goals, same shape, but built on Micronaut's compile-time DI so the demo ships as a real GraalVM native executable in addition to a regular JVM JAR.

This Gradle multi-project hosts:

SubprojectPurpose
casciian-micronautMicronaut 4.x integration that exposes a Casciian TUI over SSH and/or a Unix domain socket. Publishable to Maven Central.
demo-shopRunnable Micronaut demo: a customer-facing web shop and an admin TUI that operate on the same H2-backed product catalogue. Produces both an executable JAR and a GraalVM native image.

Build

# Build everything (library + demo) and run the JUnit suite
./gradlew build

# Run the JVM demo directly via Gradle
./gradlew :demo-shop:run

# Or run the standalone fat JAR (all dependencies bundled)
java -jar demo-shop/build/libs/demo-shop-*-all.jar

# Build the GraalVM native executable for the demo
# (requires a GraalVM 21 + native-image installation on PATH)
./gradlew :demo-shop:nativeCompile

# Then launch the native binary
./demo-shop/build/native/nativeCompile/demo-shop

Using the running demo

Once demo-shop is up:

  • Customers see the product catalogue at http://localhost:8080/.
  • Operators run CRUD over the same database from a terminal in one of two ways:
    • Over SSH: ssh admin@localhost -p 2222 (password admin).
    • Over a Unix domain socket (e.g. from inside the container via docker exec / kubectl exec): re-invoke the same JAR or native binary with the console argument — java -jar demo-shop-*-all.jar console or ./demo-shop console — and it acts as a thin terminal client that attaches to the running JVM via /tmp/casciian.sock.

See the per-subproject READMEs for details — most consumers of the integration only need to read casciian-micronaut/README.md.