Open-Source Wikis

/

Consul

/

Reference

/

Dependencies

hashicorp/consul

Dependencies

Important third-party Go modules. The full list is in the root go.mod and each sub-module's go.mod.

Core HashiCorp libraries

Module Used for
github.com/hashicorp/raft Consensus library (the heart of the server)
github.com/hashicorp/raft-boltdb BoltDB-backed Raft log store (legacy default)
github.com/hashicorp/raft-wal Newer WAL-backed Raft log store
github.com/hashicorp/serf Gossip-based membership (LAN + WAN)
github.com/hashicorp/memberlist Underpins Serf's membership
github.com/hashicorp/go-memdb The in-memory database used by the state store
github.com/hashicorp/go-msgpack/v2 RPC codec
github.com/hashicorp/net-rpc-msgpackrpc/v2 net/rpc codec adapter
github.com/hashicorp/go-hclog Structured logger used everywhere
github.com/hashicorp/go-bexpr Filter expression language for ?filter= queries
github.com/hashicorp/go-rootcerts OS root cert helper
github.com/hashicorp/go-cleanhttp http.Client builder
github.com/hashicorp/go-uuid UUID generator
github.com/hashicorp/go-version Semver parsing
github.com/hashicorp/go-multierror Aggregated errors
github.com/hashicorp/cap OAuth/OIDC client capabilities (used by ACL auth methods)
github.com/hashicorp/consul-net-rpc Custom net/rpc fork
github.com/hashicorp/raft-autopilot Autopilot logic
github.com/hashicorp/copywrite License header tooling (build only)

Service mesh

Module Used for
github.com/envoyproxy/go-control-plane Envoy xDS protobuf types
github.com/envoyproxy/go-control-plane/contrib Contributed/optional Envoy types
github.com/envoyproxy/go-control-plane/envoy Envoy v3 API surface
github.com/envoyproxy/go-control-plane/ratelimit Rate limit types
github.com/envoyproxy/go-control-plane/xdsmatcher Matching primitives for xDS
github.com/hashi-derek/grpc-proxy gRPC connection proxy used by some integrations

Identity / crypto

Module Used for
github.com/coreos/go-oidc/v3 OIDC discovery + verification
github.com/golang-jwt/jwt/v5 JWT parsing/validation
github.com/go-jose/go-jose/v3 JOSE / JWS / JWE
crypto/... (stdlib) TLS, X.509, hashing

Storage and infrastructure

Module Used for
github.com/aws/aws-sdk-go-v2 AWS auto-join, AWS Private CA provider
github.com/aliyun/alibaba-cloud-sdk-go AliCloud auto-join
github.com/Azure/azure-sdk-for-go/... Azure auto-join
github.com/digitalocean/godo DigitalOcean auto-join
cloud.google.com/go/compute GCP auto-join
github.com/aws/aws-sdk-go-v2/service/acmpca AWS Private CA provider

CLI / output

Module Used for
github.com/mitchellh/cli The CLI runtime
github.com/mitchellh/mapstructure (now github.com/go-viper/mapstructure/v2) HCL/JSON to struct decoding
github.com/fatih/color Colored output
github.com/ryanuber/columnize Table rendering
github.com/posener/complete/v2 Shell autocompletion

Misc runtime

Module Used for
github.com/armon/go-metrics Prometheus / statsd / DataDog / Circonus sinks
github.com/armon/go-radix Radix tree (used in router and ACL)
github.com/armon/circbuf Circular buffer for bounded log capture
github.com/NYTimes/gziphandler HTTP gzip handler
github.com/grpc-ecosystem/go-grpc-middleware gRPC interceptors
google.golang.org/grpc gRPC server + client
github.com/google/go-cmp Test diff helper
github.com/google/gofuzz Fuzz fixtures
github.com/fullstorydev/grpchan Channel-based gRPC for in-process services
github.com/fsnotify/fsnotify File watcher (config reload)
github.com/google/tcpproxy TCP proxy used by some test paths
github.com/google/pprof Pprof helpers
github.com/deckarep/golang-set/v2 Set type
github.com/docker/go-connections Docker network helpers (used by Docker checks)
github.com/stretchr/testify Test assertions

Build-time tools

Pinned versions in the Makefile:

Tool Version Purpose
golangci-lint v2.11.4 Linting
mockery v3.5.2 Mock generation
buf v1.56.0 Protobuf compilation
protoc-gen-go-grpc v1.5.1 gRPC stub generation
mog pinned commit Struct ↔ proto conversion
protoc-go-inject-tag v1.3.0 Inject JSON tags into generated proto Go
protoc-gen-go-binary v0.1.0 Custom binary marshalling
deep-copy pinned commit DeepCopy helper generation
copywrite v0.16.4 License header enforcement
lint-consul-retry v1.4.0 Custom lint rule for retry patterns
gci v0.11.2 Import grouping

make tools and make codegen-tools install all of these into $GOPATH/bin.

Vendoring

The repo does not vendor dependencies. The Go module proxy is used for reproducible downloads. Sub-modules (api/, sdk/, envoyextensions/, proto-public/, troubleshoot/) each have their own go.mod with their own (usually narrower) dependency set.

Built by Factory AutoWiki from public repository content. It is a generated preview for codebase exploration, not source-maintained documentation.

Dependencies – Consul wiki | Factory