Project system
GoVisual
Zero-config HTTP request visualizer for Go applications.
What it does
GoVisual wraps a standard Go http.Handler, captures request and middleware behavior, stores the events, and serves a local dashboard at the configured path.
System map
- 1
App Handler
Existing net/http mux
- 2
govisual.Wrap
Functional options configure capture
- 3
Middleware
Request body, response body, timings
- 4
Store
Memory, SQL, Redis, MongoDB
- 5
OpenTelemetry
Optional trace export
- 6
Dashboard
/__viz request inspection
App Handler
Existing net/http mux
Codebase read
- The public API is intentionally small: Wrap(handler, opts...) and functional options.
- Storage can be memory, Postgres, Redis, SQLite, MongoDB, or an existing SQLite connection.
- The dashboard path is intercepted before regular app traffic, so the developer tool ships inside the wrapped server.
Key snippet
handler := govisual.Wrap(
mux,
govisual.WithRequestBodyLogging(true),
govisual.WithResponseBodyLogging(true),
govisual.WithOpenTelemetry(true),
)
http.ListenAndServe(":8080", handler)Tech used
Gonet/httpOpenTelemetryRedisPostgreSQLSQLiteMongoDB
Source paths inspected
wrap.gooptions.gointernal/middlewareinternal/dashboardinternal/store