Open-Source Wikis

/

etcd

/

Modules

etcd-io/etcd

Modules

etcd's source tree is a Go workspace (go.work) of independent modules, each tagged separately. This section documents every module and what depends on what.

Module Path Role
go.etcd.io/etcd/v3 ./ (root) Thin wrapper that re-exports etcdmain.Main so go install go.etcd.io/etcd@… still works
go.etcd.io/etcd/api/v3 api/ Public protobuf surface
go.etcd.io/etcd/client/pkg/v3 client/pkg/ Reusable client-side helpers
go.etcd.io/etcd/client/v3 client/v3/ Official Go client
go.etcd.io/etcd/pkg/v3 pkg/ Generic utilities used by both client and server
go.etcd.io/etcd/server/v3 server/ Cluster member implementation
go.etcd.io/etcd/cache/v3 cache/ Buffered watch fan-out cache
go.etcd.io/etcd/etcdctl/v3 etcdctl/ gRPC client CLI
go.etcd.io/etcd/etcdutl/v3 etcdutl/ Offline data-file utility CLI
go.etcd.io/etcd/tests/v3 tests/ Integration, e2e, and robustness tests
go.etcd.io/etcd/tools/... tools/mod/, tools/rw-heatmaps/, tools/testgrid-analysis/ Build and analysis tools

Pages

(etcdctl/ and etcdutl/ are documented under applications/ since they are user-facing binaries.)

Module dependency graph

graph LR
    api[api]
    cpkg[client/pkg]
    cv3[client/v3]
    pkg[pkg]
    server[server]
    cache[cache]
    ctl[etcdctl]
    utl[etcdutl]
    tests[tests]

    cv3 --> api
    cv3 --> cpkg
    pkg --> api
    pkg --> cpkg
    server --> api
    server --> cpkg
    server --> pkg
    cache --> cv3
    ctl --> cv3
    ctl --> pkg
    ctl -.snapshot-only.-> utl
    utl --> server
    utl --> api
    utl --> cpkg
    utl --> pkg
    tests --> server
    tests --> cv3
    tests --> cache
    tests --> api

The strict direction is enforced per-module by .gomodguard.yaml files; make verify-gomodguard will reject a PR that introduces an upstream dependency.

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

Modules – etcd wiki | Factory