Go library · static analysis · v0.5.0

See your backend's flow,
drawn from the code.

archview reads your Go source and renders the live path from endpoint controller service repository. No annotations. Click any node to open it in your editor.

$go get github.com/eularixs/archview
GET /usersendpointUserControllercontrollerUserServiceservicepostgresrepositorygatewayrepository

What you get

go-callvis, plus the three things it never knew.

Layer-aware

Each function placed as controller, service or repository — grouped into module swimlanes.

Route-aware

Endpoints detected from your gin and net/http registrations, wired to their handlers.

Click to source

Every node deep-links to file:line in VS Code or Cursor.

Pattern-aware

Modular MVC or hexagonal ports & adapters — arrows follow your real call graph.

Framework-agnostic

gin and net/http out of the box; add any framework with a single interface.

Zero annotations

Pure static analysis via a CHA call graph. No tags, no comments, no decorators.

Three lines

Mount it. Open /graph.

archview owns its own path and hands the rest back to your router. It analyzes the module at startup, so the graph is always current with your code.

Read the quickstart
main.go
// analyze source, serve the graph
av, _ := archview.New(archview.Options{Root: "."})
av.Mount(mux)
http.ListenAndServe(":8080", mux)

The pipeline

source
CHA call graph
classify layers
extract routes
/graph