Source: https://seerepo.com/r/hashicorp/consul/built
Markdown source: https://seerepo.com/r/hashicorp/consul/built.md
Description: consul is a Go repo built with net/http, Express, @glimmer/tracking, ember-modifier, ember-classic-decorator, and 2 more.

# What is consul built with?

consul is a Go repo built with net/http, Express, @glimmer/tracking, ember-modifier, ember-classic-decorator, and 2 more. It stores its data in github.com/hashicorp/go-memdb, reaches it with ember-data and ember-data-model-fragments, signs people in with github.com/coreos/go-oidc/v3, github.com/go-jose/go-jose/v3, github.com/hashicorp/cap, github.com/aws/aws-sdk-go-v2/credentials, github.com/golang-jwt/jwt/v5, and 3 more, makes its content with hast-util-to-string, js-yaml, and unist-util-visit, validates its data with github.com/xeipuuv/gojsonschema, is tested with github.com/stretchr/testify, github.com/google/go-cmp, github.com/google/gofuzz, gotest.tools/v3, go.uber.org/goleak, and 11 more, deploys with HashiCorp, github.com/hashicorp/go-metrics, github.com/hashicorp/serf, github.com/aws/aws-sdk-go-v2, github.com/aws/aws-sdk-go-v2/config, and 4 more, and uses github.com/hashicorp/consul/api, etcd, github.com/hashicorp/golang-lru, github.com/hashicorp/raft-boltdb/v2, and github.com/patrickmn/go-cache. It has 772,526 written lines, with 1,675 test files.

Read on November 7, 2026, at commit c711a9f.

Repository: https://github.com/hashicorp/consul

## Frontend (/)

### Interface

- **[github.com/olekukonko/tablewriter](https://seerepo.com/uses/githubcom-olekukonko-tablewriter)**: 2 files

## Backend (/)

### The base

- **[net/http](https://seerepo.com/uses/net-http)**

### Data

- **github.com/hashicorp/consul/api**
- **github.com/hashicorp/go-memdb**: 103 files
- **[etcd](https://seerepo.com/uses/etcd)**: 1 file
- **github.com/hashicorp/golang-lru**: 1 file
- **github.com/hashicorp/raft-boltdb/v2**: 1 file
- **[github.com/patrickmn/go-cache](https://seerepo.com/uses/githubcom-patrickmn-go-cache)**: 1 file

### Sign-in

- **[github.com/coreos/go-oidc/v3](https://seerepo.com/uses/githubcom-coreos-go-oidc-v3)**: 3 files
- **github.com/go-jose/go-jose/v3**: 2 files
- **github.com/hashicorp/cap**: 2 files
- **[github.com/aws/aws-sdk-go-v2/credentials](https://seerepo.com/uses/githubcom-aws-aws-sdk-go-v2-credentials)**: 1 file
- **[github.com/golang-jwt/jwt/v5](https://seerepo.com/uses/githubcom-golang-jwt-jwt-v5)**: 1 file
- **github.com/hashicorp/vault-plugin-auth-alicloud**: 1 file
- **github.com/hashicorp/vault/sdk**: 1 file
- **[golang.org/x/oauth2](https://seerepo.com/uses/golangorg-x-oauth2)**: 1 file

## Support (/)

### Validation

- **github.com/xeipuuv/gojsonschema**: 1 file

### Testing

- **github.com/stretchr/testify**: 814 files
- **github.com/google/go-cmp**: 23 files
- **github.com/google/gofuzz**: 6 files
- **gotest.tools/v3**: 2 files
- **go.uber.org/goleak**: 1 file

### Deploy

- **[HashiCorp](https://seerepo.com/uses/hashicorp)**: 169 files
- **github.com/hashicorp/go-metrics**: 64 files
- **github.com/hashicorp/serf**: 37 files
- **[github.com/aws/aws-sdk-go-v2](https://seerepo.com/uses/githubcom-aws-aws-sdk-go-v2)**: 4 files
- **[github.com/aws/aws-sdk-go-v2/config](https://seerepo.com/uses/githubcom-aws-aws-sdk-go-v2-config)**: 2 files
- **github.com/hashicorp/go-discover**: 2 files
- **github.com/hashicorp/go-syslog**: 2 files
- **[Prometheus](https://seerepo.com/uses/prometheus)**: 2 files
- **github.com/aliyun/alibaba-cloud-sdk-go**: 1 file

### Tools

- **github.com/mitchellh/cli**: 144 files
- **github.com/aws/smithy-go**: 1 file
- **github.com/google/pprof**: 1 file

### Other

- **Consul**
- **contrib**
- **google.golang.org/protobuf**: 90 files
- **[Google](https://seerepo.com/uses/google)**: 77 files
- **github.com/envoyproxy/go-control-plane/envoy**: 45 files
- **github.com/hashicorp/go-multierror**: 38 files
- **github.com/go-viper/mapstructure/v2**: 34 files
- **github.com/hashicorp/raft**: 24 files
- **golang.org/x/time**: 22 files
- **github.com/hashicorp/go-bexpr**: 17 files
- **github.com/hashicorp/go-uuid**: 16 files
- **github.com/hashicorp/go-version**: 15 files
- **github.com/mitchellh/hashstructure**: 12 files
- **github.com/ryanuber/columnize**: 11 files
- **golang.org/x/exp**: 11 files
- **github.com/hashicorp/go-cleanhttp**: 9 files
- **github.com/hashicorp/raft-autopilot**: 9 files
- **github.com/miekg/dns**: 8 files
- **golang.org/x/sync**: 8 files
- **github.com/mitchellh/copystructure**: 7 files
- **github.com/zclconf/go-cty**: 7 files
- **github.com/hashicorp/memberlist**: 6 files
- **github.com/mitchellh/hashstructure/v2**: 6 files
- **Avast**: 5 files
- **github.com/envoyproxy/go-control-plane**: 5 files
- **github.com/grpc-ecosystem/go-grpc-middleware**: 5 files
- **github.com/hashicorp/go-raftchunking**: 5 files
- **golang.org/x/net**: 5 files
- **golang.org/x/sys**: 5 files
- **github.com/hashicorp/go-connlimit**: 4 files
- **github.com/hashicorp/hcl**: 4 files
- **github.com/hashicorp/raft-wal**: 4 files
- **github.com/shirou/gopsutil/v3**: 4 files
- **github.com/armon/circbuf**: 3 files
- **github.com/armon/go-radix**: 3 files
- **github.com/hashicorp/yamux**: 3 files
- **github.com/oklog/ulid/v2**: 3 files
- **github.com/pkg/errors**: 3 files
- **github.com/rboyer/safeio**: 3 files
- **HCL**: 3 files
- **github.com/hashicorp/go-immutable-radix/v2**: 2 files
- **github.com/hashicorp/go-rootcerts**: 2 files
- **github.com/hashicorp/go-sockaddr**: 2 files
- **github.com/hashicorp/hil**: 2 files
- **github.com/imdario/mergo**: 2 files
- **github.com/kr/text**: 2 files
- **github.com/mitchellh/reflectwalk**: 2 files
- **golang.org/x/crypto**: 2 files
- **Vault**: 2 files
- **[Docker](https://seerepo.com/uses/docker)**: 1 file
- **github.com/deckarep/golang-set/v2**: 1 file
- **github.com/fatih/color**: 1 file
- **github.com/fsnotify/fsnotify**: 1 file
- **github.com/hashicorp/go-checkpoint**: 1 file
- **github.com/hashicorp/go-immutable-radix**: 1 file
- **github.com/hashicorp/go-retryablehttp**: 1 file
- **github.com/hashicorp/go-secure-stdlib/awsutil/v2**: 1 file
- **github.com/mitchellh/pointerstructure**: 1 file
- **github.com/NYTimes/gziphandler**: 1 file
- **google.golang.org/genproto/googleapis/rpc**: 1 file
- **k8s.io/api**: 1 file
- **k8s.io/apimachinery**: 1 file
- **k8s.io/client-go**: 1 file
- **[OpenTelemetry](https://seerepo.com/uses/opentelemetry)**: 1 file

## Frontend (ui/packages/consul-ui)

### Styles

- **[Sass](https://seerepo.com/uses/sass)**: 1 file

### Interface

- **@glimmer/component**: 95 files
- **[tippy.js](https://seerepo.com/uses/tippyjs)**: 2 files
- **a11y-dialog**: 1 file
- **d3-scale**: 1 file
- **d3-scale-chromatic**: 1 file
- **d3-selection**: 1 file
- **d3-shape**: 1 file

## Backend (ui/packages/consul-ui)

### The base

- **[Express](https://seerepo.com/uses/express)**: 1 file

### Data access

- **ember-data**: 30 files
- **ember-data-model-fragments**: 9 files

## Support (ui/packages/consul-ui)

### The base

- **@glimmer/tracking**: 56 files
- **ember-modifier**: 18 files
- **ember-classic-decorator**: 12 files
- **ember-source**: 2 files
- **ember-resolver**: 1 file

### Content

- **hast-util-to-string**: 1 file
- **[js-yaml](https://seerepo.com/uses/js-yaml)**: 1 file
- **[unist-util-visit](https://seerepo.com/uses/unist-util-visit)**: 1 file

### Testing

- **qunit**: 363 files
- **ember-qunit**: 253 files
- **@ember/test-helpers**: 110 files
- **@playwright/test**: 16 files
- **ember-cli-page-object**: 15 files
- **sinon**: 11 files
- **tape**: 2 files
- **ember-exam**: 1 file
- **ember-sinon-qunit**: 1 file
- **Faker**: 1 file
- **qunit-dom**: 1 file

### Tools

- **ember-cli-htmlbars**: 18 files
- **broccoli-funnel**: 1 file
- **broccoli-merge-trees**: 1 file
- **ember-cli**: 1 file

### Other

- **mnemonist**: 7 files
- **ember-can**: 3 files
- **@ember/string**: 2 files
- **base64-js**: 2 files
- **clipboard**: 2 files
- **dayjs**: 2 files
- **deepmerge**: 2 files
- **ember-data**: 2 files
- **parse-duration**: 2 files
- **chalk**: 1 file
- **[D3](https://seerepo.com/uses/d3)**: 1 file
- **ember-cli-string-helpers**: 1 file
- **ember-inflector**: 1 file
- **ember-intl**: 1 file
- **ember-load-initializers**: 1 file
- **flat**: 1 file
- **pretty-ms**: 1 file
- **refractor**: 1 file
- **tracked-built-ins**: 1 file
- **XState**: 1 file

## Support (ui/packages/consul-ui/lib/colocated-components)

### Tools

- **broccoli-file-creator**: 1 file
- **broccoli-funnel**: 1 file
- **broccoli-merge-trees**: 1 file

## Support (ui/packages/consul-ui/lib/commands)

### Tools

- **Babel**: 1 file

### Other

- **chalk**: 1 file

## Support (ui/packages/consul-ui/lib/startup)

### Tools

- **broccoli-file-creator**: 1 file
- **broccoli-merge-trees**: 1 file

### Other

- **body-parser**: 1 file
- **cookie-parser**: 1 file

## Other repos with a similar stack

- [hashicorp/vault](https://seerepo.com/r/hashicorp/vault/built): github.com/hashicorp/go-memdb, etcd, github.com/hashicorp/golang-lru, github.com/hashicorp/raft-boltdb/v2, github.com/patrickmn/go-cache, github.com/aws/aws-sdk-go-v2/credentials, github.com/golang-jwt/jwt/v5, golang.org/x/oauth2, HashiCorp, github.com/aws/aws-sdk-go-v2, github.com/aws/aws-sdk-go-v2/config, Prometheus, github.com/aliyun/alibaba-cloud-sdk-go · [Compare](https://seerepo.com/compare/hashicorp/consul/vs/hashicorp/vault)
- [seaweedfs/seaweedfs](https://seerepo.com/r/seaweedfs/seaweedfs/built): net/http, etcd, github.com/hashicorp/raft-boltdb/v2, github.com/aws/aws-sdk-go-v2/credentials, github.com/golang-jwt/jwt/v5, golang.org/x/oauth2, github.com/xeipuuv/gojsonschema, github.com/hashicorp/go-metrics, github.com/aws/aws-sdk-go-v2, github.com/aws/aws-sdk-go-v2/config, Prometheus · [Compare](https://seerepo.com/compare/hashicorp/consul/vs/seaweedfs/seaweedfs)
- [goharbor/harbor](https://seerepo.com/r/goharbor/harbor/built): net/http, github.com/olekukonko/tablewriter, github.com/coreos/go-oidc/v3, github.com/aws/aws-sdk-go-v2/credentials, github.com/golang-jwt/jwt/v5, golang.org/x/oauth2, github.com/aws/aws-sdk-go-v2, github.com/aws/aws-sdk-go-v2/config, Prometheus, github.com/aliyun/alibaba-cloud-sdk-go, js-yaml · [Compare](https://seerepo.com/compare/goharbor/harbor/vs/hashicorp/consul)
- [rclone/rclone](https://seerepo.com/r/rclone/rclone/built): net/http, etcd, github.com/patrickmn/go-cache, github.com/aws/aws-sdk-go-v2/credentials, github.com/golang-jwt/jwt/v5, golang.org/x/oauth2, HashiCorp, github.com/aws/aws-sdk-go-v2, github.com/aws/aws-sdk-go-v2/config, Prometheus · [Compare](https://seerepo.com/compare/hashicorp/consul/vs/rclone/rclone)
- [portainer/portainer](https://seerepo.com/r/portainer/portainer/built): etcd, github.com/patrickmn/go-cache, github.com/aws/aws-sdk-go-v2/credentials, github.com/golang-jwt/jwt/v5, golang.org/x/oauth2, HashiCorp, github.com/aws/aws-sdk-go-v2, Prometheus, tippy.js · [Compare](https://seerepo.com/compare/hashicorp/consul/vs/portainer/portainer)
- [netbirdio/netbird](https://seerepo.com/r/netbirdio/netbird/built): net/http, github.com/patrickmn/go-cache, github.com/coreos/go-oidc/v3, github.com/aws/aws-sdk-go-v2/credentials, github.com/golang-jwt/jwt/v5, golang.org/x/oauth2, github.com/aws/aws-sdk-go-v2, github.com/aws/aws-sdk-go-v2/config, Prometheus · [Compare](https://seerepo.com/compare/hashicorp/consul/vs/netbirdio/netbird)

## Frequently asked questions

### What language is consul written in?

consul is written in Go, with 772,526 written lines.

### What framework does consul use?

consul is built with net/http, Express, @glimmer/tracking, ember-modifier, ember-classic-decorator, ember-source, and ember-resolver.

### What database does consul use?

consul stores its data in github.com/hashicorp/go-memdb and reaches it with ember-data and ember-data-model-fragments.

### What does consul sign people in with?

consul signs people in with github.com/coreos/go-oidc/v3, github.com/go-jose/go-jose/v3, github.com/hashicorp/cap, github.com/aws/aws-sdk-go-v2/credentials, github.com/golang-jwt/jwt/v5, github.com/hashicorp/vault-plugin-auth-alicloud, github.com/hashicorp/vault/sdk, and golang.org/x/oauth2.

### What services does consul use?

consul uses github.com/hashicorp/consul/api, etcd, github.com/hashicorp/golang-lru, github.com/hashicorp/raft-boltdb/v2, and github.com/patrickmn/go-cache.

### Does consul have tests?

Yes. consul has 1,675 test files and is tested with github.com/stretchr/testify, github.com/google/go-cmp, github.com/google/gofuzz, gotest.tools/v3, go.uber.org/goleak, qunit, ember-qunit, @ember/test-helpers, @playwright/test, ember-cli-page-object, sinon, tape, ember-exam, ember-sinon-qunit, Faker, and qunit-dom.

### Which repos have a stack like consul's?

The ones that share most of its stack: hashicorp/vault, seaweedfs/seaweedfs, and goharbor/harbor.

## What is your repo built with?

Any public repo, with no account: https://seerepo.com/r/owner/repo/built, with the owner and name it has on GitHub.
