Skip to content

v0.3.0

Choose a tag to compare

@eularix eularix released this 22 Jun 02:03
· 16 commits to main since this release

Works on any layout — no keyword config required.

New

  • Chain-based auto-layer (Options.AutoLayer, default off): archview walks the call graph from your endpoints, includes the functions actually reached, and infers each one's layer from its role in the chain — entry = controller, calls-onward = service, sink = repository. Naming-agnostic, so hexagonal/clean-arch layouts work without per-project keyword config. Keyword classification still wins where it applies.
  • Wider classification defaults: controller now matches interface/interfaces; service matches core; repository matches postgresql, supabase. Common hexagonal/clean-arch package names are recognized out of the box.

Why

A real echo + hexagonal project (core/, adapter/postgresql, interface/) showed only handlers — its service and repository packages didn't match the keyword set, so they were filtered out. The project was fine; archview was too rigid. This release fixes that.

Install

go get github.com/eularixs/archview@v0.3.0
archview.New(archview.Options{ Root: ".", ShowPorts: true, AutoLayer: true })

Known limitations

  • Layer-first layouts (core/<feature>) classify correctly but group into one lane; per-feature module grouping is on the roadmap.
  • AutoLayer is more inclusive (shows reachable functions); keep it off for the curated keyword-only view.