Source: https://seerepo.com/r/openimsdk/open-im-server/built
Markdown source: https://seerepo.com/r/openimsdk/open-im-server/built.md
Description: open-im-server is a Go repo built with net/http and Gin. It stores its data in MongoDB, etcd, and HashiCorp. It has 54,052 written lines, with 40 test files.

# What is open-im-server built with?

open-im-server is a Go repo built with net/http and Gin. It stores its data in MongoDB, etcd, and HashiCorp, signs people in with github.com/golang-jwt/jwt/v4, validates its data with github.com/go-playground/validator/v10, is tested with redismock and github.com/stretchr/testify, deploys with Prometheus and github.com/grpc-ecosystem/go-grpc-prometheus, and uses go-redis, go.mongodb.org/mongo-driver, sarama, Redis, and Kafka. It has 54,052 written lines, with 40 test files.

Read on November 7, 2026, at commit 9502a1a.

Repository: https://github.com/openimsdk/open-im-server

## Backend

### The base

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

### Data

- **[go-redis](https://seerepo.com/uses/go-redis)**
- **go.mongodb.org/mongo-driver**
- **sarama**
- **[Redis](https://seerepo.com/uses/redis)**: 43 files · [internal/msgtransfer/online_history_msg_handler.go, line 30](https://github.com/openimsdk/open-im-server/blob/9502a1a15fe63f6342fb1e2d8068346a82f278d8/internal/msgtransfer/online_history_msg_handler.go#L30)
- **[MongoDB](https://seerepo.com/uses/mongodb)**: 24 files · [internal/rpc/group/notification.go, line 26](https://github.com/openimsdk/open-im-server/blob/9502a1a15fe63f6342fb1e2d8068346a82f278d8/internal/rpc/group/notification.go#L26)
- **[etcd](https://seerepo.com/uses/etcd)**: 5 files
- **[HashiCorp](https://seerepo.com/uses/hashicorp)**: 3 files

### Sign-in

- **github.com/golang-jwt/jwt/v4**: 2 files

### Services

- **[Kafka](https://seerepo.com/uses/kafka)**: 4 files · [pkg/common/storage/kafka/consumer_group.go, line 21](https://github.com/openimsdk/open-im-server/blob/9502a1a15fe63f6342fb1e2d8068346a82f278d8/pkg/common/storage/kafka/consumer_group.go#L21)

## Support

### Validation

- **[github.com/go-playground/validator/v10](https://seerepo.com/uses/githubcom-go-playground-validator-v10)**: 5 files

### Testing

- **redismock**
- **github.com/stretchr/testify**: 5 files

### Deploy

- **[Prometheus](https://seerepo.com/uses/prometheus)**: 9 files
- **github.com/grpc-ecosystem/go-grpc-prometheus**: 1 file

### Tools

- **github.com/spf13/cobra**: 14 files

### Other

- **color**
- **gopsutil**
- **Uber**
- **[Google](https://seerepo.com/uses/google)**: 35 files
- **google.golang.org/protobuf**: 19 files
- **github.com/google/uuid**: 4 files
- **golang.org/x/sync**: 4 files
- **github.com/gorilla/websocket**: 2 files
- **github.com/mitchellh/mapstructure**: 2 files
- **github.com/spf13/viper**: 2 files
- **github.com/gin-contrib/gzip**: 1 file
- **github.com/robfig/cron/v3**: 1 file
- **gopkg.in/yaml.v3**: 1 file
- **k8s.io/api**: 1 file
- **k8s.io/apimachinery**: 1 file
- **k8s.io/client-go**: 1 file

## Other repos with a similar stack

- [hashicorp/vault](https://seerepo.com/r/hashicorp/vault/built): MongoDB, etcd, HashiCorp, github.com/golang-jwt/jwt/v4, Prometheus · [Compare](https://seerepo.com/compare/hashicorp/vault/vs/openimsdk/open-im-server)
- [seaweedfs/seaweedfs](https://seerepo.com/r/seaweedfs/seaweedfs/built): net/http, go-redis, MongoDB, etcd, Prometheus · [Compare](https://seerepo.com/compare/openimsdk/open-im-server/vs/seaweedfs/seaweedfs)
- [infiniflow/ragflow](https://seerepo.com/r/infiniflow/ragflow/built): net/http, Gin, go-redis, Redis · [Compare](https://seerepo.com/compare/infiniflow/ragflow/vs/openimsdk/open-im-server)
- [rclone/rclone](https://seerepo.com/r/rclone/rclone/built): net/http, etcd, HashiCorp, Prometheus · [Compare](https://seerepo.com/compare/openimsdk/open-im-server/vs/rclone/rclone)
- [router-for-me/CLIProxyAPI](https://seerepo.com/r/router-for-me/CLIProxyAPI/built): net/http, Gin, go-redis, Redis · [Compare](https://seerepo.com/compare/openimsdk/open-im-server/vs/router-for-me/CLIProxyAPI)
- [multica-ai/multica](https://seerepo.com/r/multica-ai/multica/built): net/http, go-redis, Redis, Prometheus · [Compare](https://seerepo.com/compare/multica-ai/multica/vs/openimsdk/open-im-server)

## Frequently asked questions

### What language is open-im-server written in?

open-im-server is written in Go, with 54,052 written lines.

### What framework does open-im-server use?

open-im-server is built with net/http and Gin.

### What database does open-im-server use?

open-im-server stores its data in MongoDB, etcd, and HashiCorp.

The proof: [internal/rpc/group/notification.go, line 26](https://github.com/openimsdk/open-im-server/blob/9502a1a15fe63f6342fb1e2d8068346a82f278d8/internal/rpc/group/notification.go#L26)

### What does open-im-server sign people in with?

open-im-server signs people in with github.com/golang-jwt/jwt/v4.

### What services does open-im-server use?

open-im-server uses go-redis, go.mongodb.org/mongo-driver, sarama, Redis, and Kafka.

### Does open-im-server have tests?

Yes. open-im-server has 40 test files and is tested with redismock and github.com/stretchr/testify.

### Which repos have a stack like open-im-server's?

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

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