← All languages

wildling

Scala library and CLI for pattern-based string generation. Zero third-party dependencies (Scala/JVM standard library only; hand-rolled JSON for templates). Targets Scala 2.13+ / JVM 11+.

Example

Install

From this repository:

cd scala
./build.sh
./bin/wildling "Year 19##"

From a release tag:

git clone --branch v2.0.0 --depth 1 https://github.com/dotmonk/wildling.git
cd wildling
./build.sh scala

Registry: Maven Central — io.github.dotmonk:wildling-scala

libraryDependencies += "io.github.dotmonk" % "wildling-scala" % "2.0.2"

Produces dist/wildling.jar via ./build.sh (includes scala-library). Requires a JRE to run, or Docker (the launcher falls back to Temurin if java is not on PATH).

val wildling = Wildling(Seq("Year 19##"))
var value = wildling.next()
while (value != false) {
  println(value)
  value = wildling.next()
}

CLI

./bin/wildling "Year 19##"
./bin/wildling --dictionary planets:../dictionaries/planets.txt "%{'planets'}"
./bin/wildling --template ./config.json

Help text and --check output follow docs/cli.md / docs/help.txt.

Build

./build.sh   # Docker (Temurin): fetch Scala if needed, scalac + fat jar → dist/wildling.jar

Project tests live in ../tests/ and are run with ../test.sh.