Application framework for Go
Build Go applications,
not boilerplate
Develop standalone and web applications faster for modern Go projects.
package main import ( "os" "codnect.io/procyon") func main() { if err := procyon.Run(); err != nil { os.Exit(1) } }Features
Build well-structured Go applications.
Configuration, components, lifecycle, and startup live in one runtime model, so application code can stay organized as it grows.
Web and CLI applications
Build web services and CLIs with the same application model.
Application lifecycle
Run startup, shutdown, and lifecycle hooks through one runtime path.
Component model
Register application pieces once and let the container wire them together.
Externalized configuration
Bind YAML and property sources into typed options your services can use.
Production-oriented runtime
Ship with clear boot logs and framework-managed application signals.
Just run it
Keep main small while Procyon prepares the application around it.
Quick start
From package install to running endpoint.
Start with a tiny controller, map a route, register the component, and let the runtime boot the application.
Install Procyon
Add the framework package to an existing Go module.
$ go get -i codnect.io/procyonCreate a web controller
Define a controller that will own a small HTTP endpoint.
type HelloController struct {} func NewHelloController() *HelloController { return &HelloController{}}Expose /hello
Map the route and keep the handler logic close to the endpoint.
func (h *HelloController) ConfigureEndpoints(endpoints http.Endpoints) { endpoints.MapGet("/hello", http.Handle(h.sayHello))} func (h *HelloController) sayHello(ctx *http.Context) error { response := ctx.Response() response.Writer().Write([]byte("Hello, World!")) return nil}Register the controller
Register the controller so the runtime can discover it.
func init() { component.Register(NewHelloController())}Start the app
Start the application from a small main function.
func main() { if err := procyon.Run(); err != nil { os.Exit(1) }}Runtime output
The runtime confirms the app is ready.
2026-07-20 10:29:21.174640INFOcodnect.io/procyon:Starting application using Go 1.24.0 (darwin/arm64)
2026-07-20 10:29:21.174912INFOcodnect.io/procyon:Running with Procyon v0.0.1-dev
2026-07-20 10:29:21.175024INFOcodnect.io/procyon:Started application in 0.000928666 seconds
Framework comparison
More than an HTTP router.
Gin, Echo, and Fiber are strong HTTP-focused choices. Procyon is designed as a broader application framework with infrastructure capabilities available out of the box.
| Capability | net/http | Gin | Echo | Fiber | Procyon |
|---|---|---|---|---|---|
| HTTP routing | Basic | Built-in | Built-in | Built-in | Built-in |
| Middleware | Manual | Built-in | Built-in | Built-in | Built-in |
| Dependency injection | Manual | External | External | External | Built-in |
| Typed configuration | Manual | External | External | External | Built-in |
| Application profiles | - | - | - | - | Built-in |
| Lifecycle management | Manual | Manual | Manual | Manual | Runtime managed |
| Graceful shutdown | Manual | App code | App code | App code | Lifecycle managed |
| CLI foundation | Manual | Out of scope | Out of scope | Out of scope | Built-in |
Comparison focuses on built-in application capabilities. HTTP routers can often be extended through custom code or third-party packages.