Installation
Plumego is distributed as a standard Go module.
There are no installers, generators, or bootstrap scripts.
If you can work with Go modules, you can use Plumego.
This document explains the minimal setup required.
Go Version Requirements
Plumego follows Go’s official release cadence and compatibility guarantees.
Supported versions
- Go 1.20 or later (recommended)
- Earlier versions may compile, but are not officially supported
Why this matters
Plumego relies on:
- Modern
contextbehavior - Stable
net/httpsemantics - Current module tooling
Using an up-to-date Go version ensures predictable behavior and easier upgrades.
Verify Your Go Installation
Before installing Plumego, verify your Go environment:
go version
Expected output (example):
go version go1.22.0 darwin/arm64
If Go is not installed, follow the official instructions at:
→ https://go.dev/doc/install
Using Go Modules (Required)
Plumego requires Go modules.
Projects using GOPATH mode are not supported.
To initialize a new module:
go mod init example.com/your-project
This creates a go.mod file in your project root.
Installing Plumego
Add Plumego as a dependency using go get:
go get github.com/spcent/plumego
This will:
- Download Plumego
- Add it to
go.mod - Resolve its dependencies
Plumego has a deliberately small dependency tree,
mostly limited to the Go standard library.
Verifying the Installation
You can verify that Plumego is available by importing it in a Go file:
import "github.com/spcent/plumego"
Then run:
go build ./...
If the build succeeds, Plumego is installed correctly.
Version Management
Plumego follows standard Go module versioning.
Pinning a version
To use a specific version:
go get github.com/spcent/plumego@v0.x.y
This is recommended for production systems to avoid unexpected upgrades.
Upgrading
To upgrade to the latest compatible version:
go get -u github.com/spcent/plumego
Always review release notes before upgrading, especially across minor versions.
Dependency Philosophy
Plumego intentionally avoids:
- Heavy transitive dependencies
- Code generation
- Runtime reflection dependencies
This has several consequences:
- Faster builds
- Easier auditing
- Lower long-term maintenance risk
If your organization has strict dependency policies,
Plumego is designed to work well within them.
Installing for Existing Projects
You can add Plumego to an existing Go project without restructuring it immediately.
Recommended approach:
- Add Plumego as a dependency
- Introduce it at the HTTP boundary only
- Gradually refactor routing and middleware if needed
Plumego does not require a full rewrite to adopt.
Common Installation Issues
go get fails due to network restrictions
If you are behind a restricted network or firewall:
- Configure
GOPROXY - Use an internal module proxy if available
Example:
export GOPROXY=https://proxy.golang.org,direct
Conflicts with existing frameworks
Plumego does not monkey-patch or replace standard library behavior.
It can coexist with:
- Other Go libraries
- Existing domain code
- Custom HTTP handlers
Conflicts usually indicate architectural overlap rather than technical incompatibility.
What Installation Does Not Do
Installing Plumego does not:
- Generate project files
- Modify existing code
- Configure logging
- Set up middleware
- Impose a directory structure
All of these choices are left to you.
Summary
Installing Plumego is intentionally simple:
- Install Go
- Initialize a module
- Add Plumego as a dependency
There are no hidden steps and no global state.
If installation feels uneventful, that is by design.
Next
If you have not yet done so, continue with:
→ Minimal Server
If you already have a running server:
→ Project Layout