Application framework for Go

Build Go applications,
not boilerplate

Develop standalone and web applications faster for modern Go projects.

main.go
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.

1

Install Procyon

Add the framework package to an existing Go module.

terminal
$ go get -i codnect.io/procyon
2

Create a web controller

Define a controller that will own a small HTTP endpoint.

main.go
type HelloController struct {}  func NewHelloController() *HelloController {    return &HelloController{}}
3

Expose /hello

Map the route and keep the handler logic close to the endpoint.

main.go
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}
4

Register the controller

Register the controller so the runtime can discover it.

main.go
func init() {    component.Register(NewHelloController())}
5

Start the app

Start the application from a small main function.

main.go
func main() {    if err := procyon.Run(); err != nil {        os.Exit(1)    }}

Runtime output

The runtime confirms the app is ready.

terminal
$ go run . ___ _______ ______ _____ ___ / _ \/ __/ _ / __/ // / _ \/ _ \ / .__/*/ \_\_\_\_\_/\_, /\_\_\_/*//_/ /_/ /___/ (v0.0.1-dev)

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.

Capabilitynet/httpGinEchoFiberProcyon
HTTP routingBasicBuilt-inBuilt-inBuilt-inBuilt-in
MiddlewareManualBuilt-inBuilt-inBuilt-inBuilt-in
Dependency injectionManualExternalExternalExternalBuilt-in
Typed configurationManualExternalExternalExternalBuilt-in
Application profiles----Built-in
Lifecycle managementManualManualManualManualRuntime managed
Graceful shutdownManualApp codeApp codeApp codeLifecycle managed
CLI foundationManualOut of scopeOut of scopeOut of scopeBuilt-in

Comparison focuses on built-in application capabilities. HTTP routers can often be extended through custom code or third-party packages.

Copyright © 2026 Codnect.

All rights reserved.