Skip to content

astroville/sprout

Repository files navigation

Sprout

Declarative YAML database seeding — a canned set of data that rides with an application and runs in-process at startup to insert, update, and track seed records idempotently. Sprout is polyglot: one seed-file format, one shared conformance suite, and native in-process engines per language.

Layout

spec/          Normative seed-file format spec + JSON-Schema (the source of truth)
conformance/   Shared fixtures + expected state every engine runs identically
java/          Reference engine (JDBC) — SQLite + Postgres + MySQL
go/            Go engine + `sprout` CLI — SQLite + Postgres + MySQL
rust/          Rust engine — SQLite + Postgres + MySQL
python/        Python engine (DB-API) — SQLite + Postgres + MySQL
typescript/    TypeScript/Node engine — SQLite + Postgres + MySQL
ruby/          Ruby engine — SQLite + Postgres + MySQL
csharp/        C#/.NET engine (ADO.NET) — SQLite + Postgres + MySQL
groovy/        Groovy convenience layer over the Java engine (JVM)
kotlin/        Kotlin ergonomics layer over the Java engine (JVM)
.hero/         Hero spec-driven planning workspace

Shared assets

  • /spec — the normative format specification and JSON-Schema. The single source of truth for seed-file semantics. Every engine conforms to it.
  • /conformance — the shared corpus of fixtures, SQLite schema, and expected-state files. Every engine runs this identical suite to certify correctness.

Engines

/java is the reference engine and certifies the conformance suite first; every other engine mirrors its behavior and passes the same 18-case suite. All seven engines — Java, Go, Rust, Python, TypeScript, Ruby, C# — are certified against SQLite, Postgres, and MySQL, each routing every placeholder and identifier through the same dialect seam. /groovy and /kotlin are not separate engines — they are thin idiomatic JVM layers that call the Java engine directly and inherit its certification.

Conventions

Each language engine lives in its own top-level directory and references the shared assets by relative path from its sibling directory../spec/ and ../conformance/. Engines never vendor or copy these assets; there is exactly one normative spec and one conformance corpus for all languages.

Note: moving the Gradle root means an IDE re-import is required — open the Gradle project rooted at /java.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Packages

 
 
 

Contributors