Skip to content
Spice Framework on GitHub

Spice Framework

Go-native application development. Compile-time wiring. Deterministic Go. No runtime magic.

Valid Go in. Ordinary Go out.

A framework that gets out of the runtime.

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 main

import (
	"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")
// @Logging
func main() {
	// This package-main boundary alone owns the process status.
	os.Exit(spiceapp.Main(os.Args[1:]))
}

One platform, explicit boundaries

01

Framework

Public runtime contracts, modular application features, and valid-Go declarations.

02

Toolchain

A standalone compiler, deterministic generator, CLI, and language server.

03

Spice Agent

An experimental deterministic agent kernel built from the same compiled extension graph.

Opt in to integrations

Choose only the infrastructure your application owns.

Each starter is independently versioned, lifecycle-aware, and explicit in your module graph.

SQL and persistence

Caching and messaging

Transport

Identity and security

Operations

Reference application

Petclinic

A familiar domain proving external-consumer ergonomics, web flows, validation, views, and SQL starters.

Production-shaped proof

Commerce

A modular commerce boundary with transactions, mail, observability, and deterministic generated composition.