meltkit

module
v0.1.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: May 10, 2026 License: MIT

README

meltkit

Shared Go infrastructure library for meltforce services. Each service focuses on business logic — meltkit handles the boilerplate.

Packages

Package Description
pkg/config YAML config loading, reusable config structs, env var overrides
pkg/secrets Secret resolution chain: env var → setec → literal value
pkg/db pgxpool connection pool, migrations via embedded FS, optional pgvector
pkg/middleware Tailscale identity, dev identity, request logging, CORS
pkg/server chi router, SPA frontend serving, MCP mounting, health check
pkg/mcp MCP server factory with user ID context injection

Usage

import (
    "codeberg.org/meltforce/meltkit/pkg/config"
    "codeberg.org/meltforce/meltkit/pkg/db"
    "codeberg.org/meltforce/meltkit/pkg/server"
)

// Define your app config by embedding meltkit structs
type AppConfig struct {
    Server   config.ServerConfig   `yaml:"server"`
    Database config.DatabaseConfig `yaml:"database"`
    // app-specific fields...
}

// Load config
var cfg AppConfig
config.Load("config.yaml", &cfg)
config.ApplyEnvOverrides(&cfg.Server, &cfg.Database, nil, "MYAPP")

// Connect to database
database, _ := db.New(ctx, cfg.Database.DSN(password), db.WithPgvector())
defer database.Close()

// Create server
srv := server.New(server.WithLogger(log))
srv.Router().Get("/api/v1/things", handleThings)

Design Principles

  • No app-specific logic — infrastructure only, business logic stays in each service
  • Opt-in features — pgvector, setec secrets, frontend serving are all optional
  • Interface-based — middleware uses interfaces for testability
  • Embed and extend — apps embed meltkit config structs, adding their own fields

Development

go test ./...           # run tests
go test -race ./...     # run tests with race detector
go vet ./...            # static analysis

Dependencies

Directories

Path Synopsis
pkg
db
mcp

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL