Spice analyzes typed Go declarations before your application runs, validates the
graph, and commits direct construction code you can read, test, debug, and ship.
petclinic/main.go
// @import { Module } from "github.com/spice-framework/spice/annotation/modulith"// Package main assembles the zero-network Petclinic application.// @Module(allowedDependencies=["github.com/spice-framework/petclinic/memory", "github.com/spice-framework/petclinic/model", "github.com/spice-framework/petclinic/owner", "github.com/spice-framework/petclinic/presentation", "github.com/spice-framework/petclinic/system", "github.com/spice-framework/petclinic/vet"])package mainimport ( "os" spiceapp "github.com/spice-framework/petclinic/internal/spicegen/petclinic" _ "github.com/spice-framework/petclinic/memory" _ "github.com/spice-framework/petclinic/model" _ "github.com/spice-framework/petclinic/owner" _ "github.com/spice-framework/petclinic/presentation" _ "github.com/spice-framework/petclinic/system" _ "github.com/spice-framework/petclinic/vet")// @import { Application } from "github.com/spice-framework/spice/annotation/core"// @import { Enable } from "github.com/spice-framework/spice/annotation/management"// @import { Logging } from "github.com/spice-framework/spice/annotation/observability"// @Application// @Enable(expose=["health", "liveness", "readiness", "info", "metrics", "configprops", "modules"], access="loopback")// @Loggingfunc main() { // This package-main boundary alone owns the process status. os.Exit(spiceapp.Main(os.Args[1:]))}
// @import { Module } from "github.com/spice-framework/spice/annotation/modulith"// Package main assembles the zero-network Petclinic application.// @Module(allowedDependencies=["github.com/spice-framework/petclinic/memory", "github.com/spice-framework/petclinic/model", "github.com/spice-framework/petclinic/owner", "github.com/spice-framework/petclinic/presentation", "github.com/spice-framework/petclinic/system", "github.com/spice-framework/petclinic/vet"])package mainimport ( "os" spiceapp "github.com/spice-framework/petclinic/internal/spicegen/petclinic" _ "github.com/spice-framework/petclinic/memory" _ "github.com/spice-framework/petclinic/model" _ "github.com/spice-framework/petclinic/owner" _ "github.com/spice-framework/petclinic/presentation" _ "github.com/spice-framework/petclinic/system" _ "github.com/spice-framework/petclinic/vet")// @import { Application } from "github.com/spice-framework/spice/annotation/core"// @import { Enable } from "github.com/spice-framework/spice/annotation/management"// @import { Logging } from "github.com/spice-framework/spice/annotation/observability"// @Application// @Enable(expose=["health", "liveness", "readiness", "info", "metrics", "configprops", "modules"], access="loopback")// @Loggingfunc main() { // This package-main boundary alone owns the process status. os.Exit(spiceapp.Main(os.Args[1:]))}