Source: https://seerepo.com/r/crowdsecurity/crowdsec/built
Markdown source: https://seerepo.com/r/crowdsecurity/crowdsec/built.md
Description: crowdsec is a Go repo built with Gin and k8s.io/apiserver.

# What is crowdsec built with?

crowdsec is a Go repo built with Gin and k8s.io/apiserver. It stores its data in github.com/bluele/gcache, github.com/aws/aws-sdk-go-v2/service/kinesis, github.com/aws/aws-sdk-go-v2/service/sqs, MySQL, SQLite, and 1 more, reaches it with entgo.io/ent, signs people in with github.com/golang-jwt/jwt/v4, makes its content with github.com/beevik/etree, validates its data with validate, github.com/getkin/kin-openapi, and github.com/santhosh-tekuri/jsonschema/v6, is tested with github.com/stretchr/testify, github.com/jarcoal/httpmock, github.com/sanity-io/litter, and go.uber.org/goleak, deploys with github.com/sirupsen/logrus, Prometheus, github.com/hashicorp/go-hclog, github.com/aws/aws-sdk-go-v2, github.com/aws/aws-sdk-go-v2/config, and 6 more, and uses go-sqlite3, kafka-go, pgx, s3, and github.com/aws/aws-sdk-go-v2/feature/s3/manager. It has 136,939 written lines, with 238 test files.

Read on November 8, 2026, at commit 849c7a2.

Repository: https://github.com/crowdsecurity/crowdsec

## Frontend

### Interface

- **github.com/jedib0t/go-pretty/v6**: 28 files
- **github.com/AlecAivazis/survey/v2**: 5 files

## Backend

### The base

- **[Gin](https://seerepo.com/uses/gin)**: 15 files

### Data

- **[go-sqlite3](https://seerepo.com/uses/go-sqlite3)**
- **kafka-go**
- **[pgx](https://seerepo.com/uses/pgx)**
- **[s3](https://seerepo.com/uses/s3)**
- **github.com/bluele/gcache**: 5 files
- **github.com/aws/aws-sdk-go-v2/service/kinesis**: 3 files
- **github.com/aws/aws-sdk-go-v2/service/sqs**: 3 files
- **[MySQL](https://seerepo.com/uses/mysql)**: 3 files · [pkg/csconfig/database.go, line 14](https://github.com/crowdsecurity/crowdsec/blob/849c7a28d0bde8c0d3bb45c33041014c69e7e771/pkg/csconfig/database.go#L14)
- **[SQLite](https://seerepo.com/uses/sqlite)**: 3 files · [pkg/database/drv_sqlite_mattn.go, line 8](https://github.com/crowdsecurity/crowdsec/blob/849c7a28d0bde8c0d3bb45c33041014c69e7e771/pkg/database/drv_sqlite_mattn.go#L8)
- **[Postgres](https://seerepo.com/uses/postgres)**: 2 files · [pkg/database/drv_postgres.go, line 7](https://github.com/crowdsecurity/crowdsec/blob/849c7a28d0bde8c0d3bb45c33041014c69e7e771/pkg/database/drv_postgres.go#L7)
- **github.com/aws/aws-sdk-go-v2/feature/s3/manager**: 1 file

### Data access

- **entgo.io/ent**: 16 files

### Sign-in

- **[github.com/golang-jwt/jwt/v4](https://seerepo.com/uses/githubcom-golang-jwt-jwt-v4)**: 2 files

## Support

### The base

- **k8s.io/apiserver**: 1 file

### Content

- **github.com/beevik/etree**: 1 file

### Validation

- **validate**
- **github.com/getkin/kin-openapi**: 1 file
- **github.com/santhosh-tekuri/jsonschema/v6**: 1 file

### Testing

- **github.com/stretchr/testify**: 187 files
- **github.com/jarcoal/httpmock**: 6 files
- **github.com/sanity-io/litter**: 1 file
- **go.uber.org/goleak**: 1 file

### Deploy

- **[github.com/sirupsen/logrus](https://seerepo.com/uses/githubcom-sirupsen-logrus)**: 226 files
- **[Prometheus](https://seerepo.com/uses/prometheus)**: 75 files
- **github.com/hashicorp/go-hclog**: 8 files
- **[github.com/aws/aws-sdk-go-v2](https://seerepo.com/uses/githubcom-aws-aws-sdk-go-v2)**: 7 files
- **[github.com/aws/aws-sdk-go-v2/config](https://seerepo.com/uses/githubcom-aws-aws-sdk-go-v2-config)**: 3 files
- **[github.com/moby/moby/client](https://seerepo.com/uses/githubcom-moby-moby-client)**: 3 files
- **[github.com/prometheus/client_model](https://seerepo.com/uses/githubcom-prometheus-client-model)**: 3 files
- **github.com/aws/aws-sdk-go-v2/service/cloudwatchlogs**: 2 files
- **[github.com/moby/moby/api](https://seerepo.com/uses/githubcom-moby-moby-api)**: 2 files
- **[gopkg.in/natefinch/lumberjack.v2](https://seerepo.com/uses/gopkgin-natefinch-lumberjackv2)**: 2 files
- **[github.com/prometheus/common](https://seerepo.com/uses/githubcom-prometheus-common)**: 1 file

### Tools

- **github.com/spf13/cobra**: 62 files
- **github.com/davecgh/go-spew**: 6 files
- **esbuild**: 3 files
- **github.com/hexops/gotextdiff**: 2 files
- **ariga.io/atlas**: 1 file
- **golang.org/x/mod**: 1 file

### Other

- **errors**
- **swag**
- **gopkg.in/yaml.v3**: 40 files
- **github.com/fatih/color**: 30 files
- **github.com/expr-lang/expr**: 25 files
- **github.com/go-openapi/strfmt**: 23 files
- **github.com/goccy/go-yaml**: 20 files
- **golang.org/x/sys**: 17 files
- **[HashiCorp](https://seerepo.com/uses/hashicorp)**: 9 files
- **golang.org/x/sync**: 8 files
- **[Google](https://seerepo.com/uses/google)**: 7 files
- **gopkg.in/yaml.v2**: 6 files
- **github.com/cenkalti/backoff/v5**: 5 files
- **golang.org/x/crypto**: 5 files
- **github.com/oschwald/geoip2-golang**: 4 files
- **github.com/shirou/gopsutil/v4**: 4 files
- **github.com/tetratelabs/wazero**: 4 files
- **github.com/wasilibs/go-re2**: 4 files
- **github.com/fsnotify/fsnotify**: 3 files
- **github.com/Masterminds/semver/v3**: 3 files
- **github.com/mohae/deepcopy**: 3 files
- **k8s.io/apimachinery**: 3 files
- **k8s.io/client-go**: 3 files
- **github.com/cespare/xxhash/v2**: 2 files
- **github.com/go-co-op/gocron/v2**: 2 files
- **github.com/mattn/go-isatty**: 2 files
- **golang.org/x/text**: 2 files
- **golang.org/x/time**: 2 files
- **containerd**: 1 file
- **github.com/agext/levenshtein**: 1 file
- **github.com/buger/jsonparser**: 1 file
- **github.com/gin-contrib/gzip**: 1 file
- **github.com/gorilla/websocket**: 1 file
- **github.com/hashicorp/go-version**: 1 file
- **github.com/Masterminds/sprig/v3**: 1 file
- **github.com/nxadm/tail**: 1 file
- **github.com/oschwald/maxminddb-golang**: 1 file
- **github.com/slack-go/slack**: 1 file
- **golang.org/x/net**: 1 file
- **google.golang.org/grpc**: 1 file
- **google.golang.org/protobuf**: 1 file
- **k8s.io/api**: 1 file

## Other repos with a similar stack

- [Tencent/WeKnora](https://seerepo.com/r/Tencent/WeKnora/built): Gin, pgx, s3, MySQL, SQLite, Postgres, github.com/santhosh-tekuri/jsonschema/v6, github.com/sirupsen/logrus, github.com/aws/aws-sdk-go-v2, github.com/aws/aws-sdk-go-v2/config, github.com/moby/moby/client, github.com/moby/moby/api, gopkg.in/natefinch/lumberjack.v2 · [Compare](https://seerepo.com/compare/crowdsecurity/crowdsec/vs/Tencent/WeKnora)
- [hashicorp/vault](https://seerepo.com/r/hashicorp/vault/built): pgx, s3, MySQL, Postgres, github.com/golang-jwt/jwt/v4, Prometheus, github.com/aws/aws-sdk-go-v2, github.com/aws/aws-sdk-go-v2/config, github.com/moby/moby/client, github.com/moby/moby/api, github.com/prometheus/common · [Compare](https://seerepo.com/compare/crowdsecurity/crowdsec/vs/hashicorp/vault)
- [photoprism/photoprism](https://seerepo.com/r/photoprism/photoprism/built): Gin, go-sqlite3, pgx, MySQL, SQLite, Postgres, github.com/sirupsen/logrus, Prometheus, github.com/prometheus/client_model, github.com/prometheus/common · [Compare](https://seerepo.com/compare/crowdsecurity/crowdsec/vs/photoprism/photoprism)
- [vxcontrol/pentagi](https://seerepo.com/r/vxcontrol/pentagi/built): Gin, go-sqlite3, pgx, SQLite, Postgres, github.com/sirupsen/logrus, github.com/aws/aws-sdk-go-v2, github.com/aws/aws-sdk-go-v2/config, github.com/moby/moby/client, github.com/moby/moby/api · [Compare](https://seerepo.com/compare/crowdsecurity/crowdsec/vs/vxcontrol/pentagi)
- [pingcap/tidb](https://seerepo.com/r/pingcap/tidb/built): s3, MySQL, github.com/aws/aws-sdk-go-v2/feature/s3/manager, github.com/jedib0t/go-pretty/v6, Prometheus, github.com/aws/aws-sdk-go-v2, github.com/aws/aws-sdk-go-v2/config, github.com/prometheus/client_model, github.com/prometheus/common · [Compare](https://seerepo.com/compare/crowdsecurity/crowdsec/vs/pingcap/tidb)
- [seaweedfs/seaweedfs](https://seerepo.com/r/seaweedfs/seaweedfs/built): pgx, s3, MySQL, SQLite, Postgres, Prometheus, github.com/aws/aws-sdk-go-v2, github.com/aws/aws-sdk-go-v2/config, github.com/prometheus/client_model · [Compare](https://seerepo.com/compare/crowdsecurity/crowdsec/vs/seaweedfs/seaweedfs)

## Frequently asked questions

### What language is crowdsec written in?

crowdsec is written in Go, with 136,939 written lines.

### What framework does crowdsec use?

crowdsec is built with Gin and k8s.io/apiserver.

### What database does crowdsec use?

crowdsec stores its data in github.com/bluele/gcache, github.com/aws/aws-sdk-go-v2/service/kinesis, github.com/aws/aws-sdk-go-v2/service/sqs, MySQL, SQLite, and Postgres and reaches it with entgo.io/ent.

### What does crowdsec sign people in with?

crowdsec signs people in with github.com/golang-jwt/jwt/v4.

### What services does crowdsec use?

crowdsec uses go-sqlite3, kafka-go, pgx, s3, and github.com/aws/aws-sdk-go-v2/feature/s3/manager.

### Does crowdsec have tests?

Yes. crowdsec has 238 test files and is tested with github.com/stretchr/testify, github.com/jarcoal/httpmock, github.com/sanity-io/litter, and go.uber.org/goleak.

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

The ones that share most of its stack: Tencent/WeKnora, hashicorp/vault, and photoprism/photoprism.

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