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.