Source: https://seerepo.com/r/linkerd/linkerd2/built
Markdown source: https://seerepo.com/r/linkerd/linkerd2/built.md
Description: linkerd2 is a Go repo built with github.com/julienschmidt/httprouter, Tokio, tower, React, react-router-dom, and 1 more.

# What is linkerd2 built with?

linkerd2 is a Go repo built with github.com/julienschmidt/httprouter, Tokio, tower, React, react-router-dom, and 1 more. It validates its data with schemars, github.com/go-openapi/spec, and prop-types, is tested with github.com/go-test/deep, github.com/AdaLogics/go-fuzz-headers, enzyme, Chai, sinon, and 2 more, deploys with github.com/sirupsen/logrus, Prometheus, kube, k8s-openapi, tracing, and 7 more, and uses github.com/patrickmn/go-cache. It has 166,013 written lines, with 248 test files.

Read on November 12, 2026, at commit e9de42d.

Repository: https://github.com/linkerd/linkerd2

## Frontend (/)

### Interface

- **[github.com/briandowns/spinner](https://seerepo.com/uses/githubcom-briandowns-spinner)**: 2 files
- **github.com/nsf/termbox-go**: 1 file

## Backend (/)

### The base

- **github.com/julienschmidt/httprouter**: 5 files

### Data

- **[github.com/patrickmn/go-cache](https://seerepo.com/uses/githubcom-patrickmn-go-cache)**: 2 files

## Support (/)

### The base

- **[Tokio](https://seerepo.com/uses/tokio)**: 10 files
- **[tower](https://seerepo.com/uses/tower)**: 1 file

### Validation

- **[schemars](https://seerepo.com/uses/schemars)**: 13 files
- **github.com/go-openapi/spec**: 2 files

### Testing

- **github.com/go-test/deep**: 33 files
- **github.com/AdaLogics/go-fuzz-headers**: 5 files

### Deploy

- **[github.com/sirupsen/logrus](https://seerepo.com/uses/githubcom-sirupsen-logrus)**: 87 files
- **[Prometheus](https://seerepo.com/uses/prometheus)**: 39 files
- **kube**: 34 files
- **k8s-openapi**: 27 files
- **[tracing](https://seerepo.com/uses/tracing)**: 20 files
- **[Helm](https://seerepo.com/uses/helm)**: 16 files
- **go.opencensus.io**: 6 files
- **[prometheus-client](https://seerepo.com/uses/prometheus-client)**: 5 files
- **sigs.k8s.io/gateway-api**: 3 files
- **github.com/bombsimon/logrusr/v4**: 1 file
- **[github.com/grpc-ecosystem/go-grpc-prometheus](https://seerepo.com/uses/githubcom-grpc-ecosystem-go-grpc-prometheus)**: 1 file
- **[k8s.io/klog/v2](https://seerepo.com/uses/k8sio-klog-v2)**: 1 file

### Tools

- **github.com/spf13/cobra**: 48 files
- **clap**: 1 file
- **github.com/emicklei/proto**: 1 file
- **github.com/shurcooL/vfsgen**: 1 file
- **golang.org/x/tools**: 1 file
- **google.golang.org/grpc/cmd/protoc-gen-go-grpc**: 1 file
- **k8s.io/code-generator**: 1 file

### Other

- **openssl**
- **serde_yaml**
- **k8s.io/apimachinery**: 102 files
- **k8s.io/api**: 78 files
- **k8s.io/client-go**: 43 files
- **anyhow**: 33 files
- **sigs.k8s.io/yaml**: 30 files
- **[Google](https://seerepo.com/uses/google)**: 21 files
- **serde**: 18 files
- **ahash**: 13 files
- **ipnet**: 11 files
- **http**: 7 files
- **async-trait**: 6 files
- **futures**: 6 files
- **google.golang.org/protobuf**: 6 files
- **github.com/fatih/color**: 5 files
- **github.com/spf13/pflag**: 5 files
- **jiff**: 5 files
- **k8s.io/kube-aggregator**: 5 files
- **thiserror**: 5 files
- **tonic**: 5 files
- **k8s.io/apiextensions-apiserver**: 4 files
- **parking_lot**: 4 files
- **serde_json**: 4 files
- **github.com/golang/protobuf**: 3 files
- **k8s.io/utils**: 3 files
- **async-stream**: 2 files
- **bytes**: 2 files
- **github.com/mattn/go-isatty**: 2 files
- **regex**: 2 files
- **dario.cat/mergo**: 1 file
- **github.com/evanphx/json-patch**: 1 file
- **github.com/fsnotify/fsnotify**: 1 file
- **github.com/gorilla/websocket**: 1 file
- **github.com/mattn/go-runewidth**: 1 file
- **github.com/pkg/browser**: 1 file
- **github.com/sergi/go-diff**: 1 file
- **gopkg.in/yaml.v2**: 1 file
- **http-body-util**: 1 file
- **Hyper**: 1 file
- **hyper-util**: 1 file
- **jemallocator**: 1 file
- **maplit**: 1 file
- **prost-types**: 1 file
- **rustls**: 1 file
- **tokio-stream**: 1 file

## Frontend (web/app)

### The base

- **[React](https://seerepo.com/uses/react)**: 58 files
- **[react-router-dom](https://seerepo.com/uses/react-router-dom)**: 3 files

### Styles

- **[classnames](https://seerepo.com/uses/classnames)**: 4 files
- **css-mediaquery**: 1 file

### Interface

- **[material-ui](https://seerepo.com/uses/material-ui)**: 41 files
- **d3-drag**: 1 file
- **[d3-selection](https://seerepo.com/uses/d3-selection)**: 1 file
- **react-linkify**: 1 file
- **react-page-visibility**: 1 file

### Icons

- **@material-ui/icons**: 11 files
- **fortawesome**: 3 files

## Support (web/app)

### The base

- **[history](https://seerepo.com/uses/history)**: 2 files

### Validation

- **[prop-types](https://seerepo.com/uses/prop-types)**: 48 files

### Testing

- **enzyme**: 14 files
- **Chai**: 4 files
- **sinon**: 3 files
- **sinon-stub-promise**: 3 files
- **enzyme-adapter-react-16**: 1 file

### Other

- **Lodash**: 40 files
- **lingui**: 32 files
- **whatwg-fetch**: 6 files
- **use-query-params**: 4 files
- **[D3](https://seerepo.com/uses/d3)**: 2 files
- **core-js**: 1 file
- **date-fns**: 1 file
- **regenerator-runtime**: 1 file

## Other repos with a similar stack

- [ruvnet/RuView](https://seerepo.com/r/ruvnet/RuView/built): Tokio, tower, React, tracing, prometheus-client · [Compare](https://seerepo.com/compare/linkerd/linkerd2/vs/ruvnet/RuView)
- [apache/superset](https://seerepo.com/r/apache/superset/built): React, prometheus-client, classnames, d3-selection, prop-types · [Compare](https://seerepo.com/compare/apache/superset/vs/linkerd/linkerd2)
- [traefik/traefik](https://seerepo.com/r/traefik/traefik/built): github.com/patrickmn/go-cache, React, github.com/sirupsen/logrus, Prometheus, sigs.k8s.io/gateway-api · [Compare](https://seerepo.com/compare/linkerd/linkerd2/vs/traefik/traefik)
- [BerriAI/litellm](https://seerepo.com/r/BerriAI/litellm/built): Tokio, tower, React, schemars, tracing · [Compare](https://seerepo.com/compare/BerriAI/litellm/vs/linkerd/linkerd2)
- [mastodon/mastodon](https://seerepo.com/r/mastodon/mastodon/built): React, react-router-dom, history, classnames, prop-types · [Compare](https://seerepo.com/compare/linkerd/linkerd2/vs/mastodon/mastodon)
- [mudler/LocalAI](https://seerepo.com/r/mudler/LocalAI/built): Tokio, React, react-router-dom, Prometheus, tracing · [Compare](https://seerepo.com/compare/linkerd/linkerd2/vs/mudler/LocalAI)

## Frequently asked questions

### What language is linkerd2 written in?

linkerd2 is written in Go, with 166,013 written lines.

### What framework does linkerd2 use?

linkerd2 is built with github.com/julienschmidt/httprouter, Tokio, tower, React, react-router-dom, and history.

### What services does linkerd2 use?

linkerd2 uses github.com/patrickmn/go-cache.

### Does linkerd2 have tests?

Yes. linkerd2 has 248 test files and is tested with github.com/go-test/deep, github.com/AdaLogics/go-fuzz-headers, enzyme, Chai, sinon, sinon-stub-promise, and enzyme-adapter-react-16.

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

The ones that share most of its stack: ruvnet/RuView, apache/superset, and traefik/traefik.

## 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.
