Source: https://seerepo.com/r/opensandbox-group/OpenSandbox/built
Markdown source: https://seerepo.com/r/opensandbox-group/OpenSandbox/built.md
Description: OpenSandbox is a Go repo built with net/http, FastAPI, Gin, sigs.k8s.io/controller-runtime, starlette, and 5 more.

# What is OpenSandbox built with?

OpenSandbox is a Go repo built with net/http, FastAPI, Gin, sigs.k8s.io/controller-runtime, starlette, and 5 more. It stores its data in Postgres, etcd, github.com/aliyun/aliyun-oss-go-sdk, and MySQL, signs people in with cryptography, itsdangerous, and pyjwt, uses AI through mcp, validates its data with Pydantic and github.com/go-playground/validator/v10, is tested with github.com/stretchr/testify, org.junit.jupiter:junit-jupiter, github.com/onsi/ginkgo/v2, github.com/onsi/gomega, github.com/golang/mock, and 6 more, deploys with opentelemetry-api, kubernetes, OpenTelemetry, go.opentelemetry.io/otel/metric, docker, and 17 more, and uses go-redis, psycopg, Redis, oss2, and jedis. It has 650,138 written lines, with 952 test files.

Read on November 7, 2026, at commit a0e6e93.

Repository: https://github.com/opensandbox-group/OpenSandbox

## Frontend (/)

### Interface

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

## Backend (/)

### The base

- **[net/http](https://seerepo.com/uses/net-http)**
- **[FastAPI](https://seerepo.com/uses/fastapi)**: 57 files
- **[Gin](https://seerepo.com/uses/gin)**: 17 files

### Data

- **[go-redis](https://seerepo.com/uses/go-redis)**
- **[psycopg](https://seerepo.com/uses/psycopg)**
- **[Redis](https://seerepo.com/uses/redis)**: 10 files · [sdks/sandbox/python/src/opensandbox/async_redis_pool_store.py, line 46](https://github.com/opensandbox-group/OpenSandbox/blob/a0e6e93e40c2a7aa8be4ffef7243e534338615e1/sdks/sandbox/python/src/opensandbox/async_redis_pool_store.py#L46)
- **[Postgres](https://seerepo.com/uses/postgres)**: 4 files · [server/opensandbox_server/repositories/snapshots/migrate.py, line 199](https://github.com/opensandbox-group/OpenSandbox/blob/a0e6e93e40c2a7aa8be4ffef7243e534338615e1/server/opensandbox_server/repositories/snapshots/migrate.py#L199)
- **[etcd](https://seerepo.com/uses/etcd)**: 3 files
- **github.com/aliyun/aliyun-oss-go-sdk**: 2 files
- **[MySQL](https://seerepo.com/uses/mysql)**: 2 files · [components/execd/pkg/runtime/sql.go, line 28](https://github.com/opensandbox-group/OpenSandbox/blob/a0e6e93e40c2a7aa8be4ffef7243e534338615e1/components/execd/pkg/runtime/sql.go#L28)
- **oss2**: 1 file

### Sign-in

- **[cryptography](https://seerepo.com/uses/cryptography)**: 4 files
- **[itsdangerous](https://seerepo.com/uses/itsdangerous)**: 1 file

## Support (/)

### The base

- **sigs.k8s.io/controller-runtime**: 24 files
- **[starlette](https://seerepo.com/uses/starlette)**: 10 files
- **[uvicorn](https://seerepo.com/uses/uvicorn)**: 3 files

### Validation

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

### Testing

- **github.com/stretchr/testify**: 268 files
- **org.junit.jupiter:junit-jupiter**: 14 files
- **github.com/onsi/ginkgo/v2**: 11 files
- **github.com/onsi/gomega**: 10 files
- **github.com/golang/mock**: 7 files
- **github.com/alicebob/miniredis/v2**: 2 files
- **io.opentelemetry:opentelemetry-sdk-testing**: 1 file

### Deploy

- **[opentelemetry-api](https://seerepo.com/uses/opentelemetry-api)**
- **[kubernetes](https://seerepo.com/uses/kubernetes)**: 20 files
- **[OpenTelemetry](https://seerepo.com/uses/opentelemetry)**: 16 files
- **[go.opentelemetry.io/otel/metric](https://seerepo.com/uses/goopentelemetryio-otel-metric)**: 12 files
- **[docker](https://seerepo.com/uses/docker)**: 10 files
- **[k8s.io/klog/v2](https://seerepo.com/uses/k8sio-klog-v2)**: 8 files
- **github.com/go-logr/logr**: 5 files
- **[gopkg.in/natefinch/lumberjack.v2](https://seerepo.com/uses/gopkgin-natefinch-lumberjackv2)**: 5 files
- **containerd**: 4 files
- **[org.slf4j:slf4j-api](https://seerepo.com/uses/orgslf4j-slf4j-api)**: 3 files
- **go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp**: 2 files
- **[go.opentelemetry.io/otel/sdk](https://seerepo.com/uses/goopentelemetryio-otel-sdk)**: 2 files
- **[go.opentelemetry.io/otel/sdk/metric](https://seerepo.com/uses/goopentelemetryio-otel-sdk-metric)**: 2 files
- **[go.uber.org/zap](https://seerepo.com/uses/gouberorg-zap)**: 2 files
- **[go.opentelemetry.io/otel/trace](https://seerepo.com/uses/goopentelemetryio-otel-trace)**: 1 file
- **io.opentelemetry:opentelemetry-api**: 1 file
- **Knative**: 1 file
- **opentelemetry-exporter-otlp-proto-http**: 1 file
- **[opentelemetry-sdk](https://seerepo.com/uses/opentelemetry-sdk)**: 1 file
- **[Prometheus](https://seerepo.com/uses/prometheus)**: 1 file

### Tools

- **click**: 16 files
- **mitmproxy**: 4 files

### Other

- **protobuf**
- **python-multipart**
- **k8s.io/apimachinery**: 41 files
- **k8s.io/api**: 37 files
- **k8s.io/client-go**: 20 files
- **golang.org/x/sys**: 19 files
- **httpx**: 11 files
- **[Google](https://seerepo.com/uses/google)**: 9 files
- **google.golang.org/protobuf**: 5 files
- **github.com/shirou/gopsutil**: 4 files
- **tomli**: 4 files
- **github.com/containerd/errdefs**: 3 files
- **github.com/gorilla/websocket**: 3 files
- **github.com/opencontainers/image-spec**: 3 files
- **go.opentelemetry.io/proto/otlp**: 3 files
- **golang.org/x/net**: 3 files
- **k8s.io/utils**: 3 files
- **pyyaml**: 3 files
- **websockets**: 3 files
- **Cilium**: 2 files
- **github.com/distribution/reference**: 2 files
- **github.com/klauspost/compress**: 2 files
- **github.com/miekg/dns**: 2 files
- **github.com/pelletier/go-toml/v2**: 2 files
- **github.com/robfig/cron/v3**: 2 files
- **google.golang.org/grpc**: 2 files
- **Uber**: 2 files
- **github.com/bmatcuk/doublestar/v4**: 1 file
- **github.com/coder/websocket**: 1 file
- **github.com/creack/pty**: 1 file
- **github.com/fsnotify/fsnotify**: 1 file
- **github.com/opencontainers/go-digest**: 1 file
- **golang.org/x/time**: 1 file
- **gopkg.in/yaml.v3**: 1 file
- **grpcio**: 1 file
- **h2**: 1 file
- **hyperframe**: 1 file
- **k8s.io/component-helpers**: 1 file
- **pydantic-settings**: 1 file
- **sigs.k8s.io/yaml**: 1 file
- **System.Text.Json**: 1 file
- **tomlkit**: 1 file

## Frontend (console/web)

### The base

- **[Vite](https://seerepo.com/uses/vite)**: [in console/web/package.json](https://github.com/opensandbox-group/OpenSandbox/blob/a0e6e93e40c2a7aa8be4ffef7243e534338615e1/console/web/package.json)
- **[React](https://seerepo.com/uses/react)**: 20 files · [in console/web/package.json](https://github.com/opensandbox-group/OpenSandbox/blob/a0e6e93e40c2a7aa8be4ffef7243e534338615e1/console/web/package.json)
- **[react-router-dom](https://seerepo.com/uses/react-router-dom)**: 11 files

### Interface

- **[antd](https://seerepo.com/uses/antd)**: 22 files
- **[xterm](https://seerepo.com/uses/xterm)**: 1 file

### Icons

- **[Ant Design](https://seerepo.com/uses/ant-design)**: 4 files

## Support (console/web)

### Other

- **dayjs**: 1 file

## Backend (sdks)

### Data

- **[go-redis](https://seerepo.com/uses/go-redis)**
- **[jedis](https://seerepo.com/uses/jedis)**
- **[Redis](https://seerepo.com/uses/redis)**: 6 files · [sdks/sandbox/python/src/opensandbox/async_redis_pool_store.py, line 46](https://github.com/opensandbox-group/OpenSandbox/blob/a0e6e93e40c2a7aa8be4ffef7243e534338615e1/sdks/sandbox/python/src/opensandbox/async_redis_pool_store.py#L46)

### Sign-in

- **[cryptography](https://seerepo.com/uses/cryptography)**
- **[pyjwt](https://seerepo.com/uses/pyjwt)**

### AI

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

## Support (sdks)

### The base

- **[JetBrains](https://seerepo.com/uses/jetbrains)**
- **[starlette](https://seerepo.com/uses/starlette)**

### Validation

- **[Pydantic](https://seerepo.com/uses/pydantic)**: 14 files

### Testing

- **junit-platform-launcher**
- **mockwebserver**
- **org.junit.jupiter:junit-jupiter**: 55 files
- **io.mockk:mockk**: 10 files
- **io.opentelemetry:opentelemetry-sdk-testing**: 1 file

### Deploy

- **[opentelemetry-api](https://seerepo.com/uses/opentelemetry-api)**
- **[org.slf4j:slf4j-api](https://seerepo.com/uses/orgslf4j-slf4j-api)**: 22 files
- **Microsoft.Extensions.Logging.Abstractions**: 6 files
- **[OpenTelemetry](https://seerepo.com/uses/opentelemetry)**: 3 files
- **[ch.qos.logback:logback-classic](https://seerepo.com/uses/chqoslogback-logback-classic)**: 1 file
- **[opentelemetry-sdk](https://seerepo.com/uses/opentelemetry-sdk)**: 1 file

### Tools

- **PolySharp**

### Other

- **jackson-core**
- **jackson-databind**
- **jackson-dataformat-yaml**
- **jackson-module-kotlin**
- **logging-interceptor**
- **Microsoft.Bcl.AsyncInterfaces**
- **okhttp**
- **pydantic-settings**
- **python-multipart**
- **attrs**: 155 files
- **httpx**: 132 files
- **System.Text.Json**: 18 files
- **python-dateutil**: 16 files
- **org.jetbrains.kotlinx:kotlinx-serialization-json**: 13 files
- **golang.org/x/sync**: 1 file
- **httpcore**: 1 file
- **httpx-sse**: 1 file

## Support (sdks/sandbox/javascript)

### Testing

- **Vitest**: 1 file

### Tools

- **TypeScript**: 1 file

### Other

- **openapi-fetch**: 4 files
- **[OpenTelemetry](https://seerepo.com/uses/opentelemetry)**: 1 file
- **undici**: 1 file

## Other repos with a similar stack

- [apache/superset](https://seerepo.com/r/apache/superset/built): Redis, Postgres, MySQL, starlette, uvicorn, React, Rich, cryptography, itsdangerous, Pydantic, OpenTelemetry, docker, antd, Ant Design, pyjwt, MCP · [Compare](https://seerepo.com/compare/apache/superset/vs/opensandbox-group/OpenSandbox)
- [apache/airflow](https://seerepo.com/r/apache/airflow/built): FastAPI, psycopg, Redis, uvicorn, Vite, React, react-router-dom, Rich, cryptography, Pydantic, kubernetes, OpenTelemetry, docker, org.slf4j:slf4j-api, pyjwt · [Compare](https://seerepo.com/compare/apache/airflow/vs/opensandbox-group/OpenSandbox)
- [infiniflow/ragflow](https://seerepo.com/r/infiniflow/ragflow/built): net/http, Gin, go-redis, Redis, Postgres, MySQL, React, OpenTelemetry, go.uber.org/zap, go.opentelemetry.io/otel/trace, Ant Design, MCP · [Compare](https://seerepo.com/compare/infiniflow/ragflow/vs/opensandbox-group/OpenSandbox)
- [datawhalechina/hello-agents](https://seerepo.com/r/datawhalechina/hello-agents/built): FastAPI, Redis, Postgres, starlette, uvicorn, Vite, React, react-router-dom, Rich, Pydantic, OpenTelemetry, MCP · [Compare](https://seerepo.com/compare/datawhalechina/hello-agents/vs/opensandbox-group/OpenSandbox)
- [vectorize-io/hindsight](https://seerepo.com/r/vectorize-io/hindsight/built): FastAPI, Postgres, uvicorn, React, Rich, cryptography, Pydantic, opentelemetry-api, OpenTelemetry, opentelemetry-exporter-otlp-proto-http, pyjwt, MCP · [Compare](https://seerepo.com/compare/opensandbox-group/OpenSandbox/vs/vectorize-io/hindsight)
- [run-llama/llama_index](https://seerepo.com/r/run-llama/llama_index/built): psycopg, Redis, MySQL, starlette, Rich, cryptography, Pydantic, opentelemetry-api, OpenTelemetry, docker, pyjwt, MCP · [Compare](https://seerepo.com/compare/opensandbox-group/OpenSandbox/vs/run-llama/llama_index)

## Frequently asked questions

### What language is OpenSandbox written in?

OpenSandbox is written in Go, with 650,138 written lines.

### What framework does OpenSandbox use?

OpenSandbox is built with net/http, FastAPI, Gin, sigs.k8s.io/controller-runtime, starlette, uvicorn, Vite, React, react-router-dom, and JetBrains.

### What database does OpenSandbox use?

OpenSandbox stores its data in Postgres, etcd, github.com/aliyun/aliyun-oss-go-sdk, and MySQL.

The proof: [server/opensandbox_server/repositories/snapshots/migrate.py, line 199](https://github.com/opensandbox-group/OpenSandbox/blob/a0e6e93e40c2a7aa8be4ffef7243e534338615e1/server/opensandbox_server/repositories/snapshots/migrate.py#L199)

### What does OpenSandbox sign people in with?

OpenSandbox signs people in with cryptography, itsdangerous, and pyjwt.

### Does OpenSandbox use AI?

Yes. OpenSandbox uses AI through mcp.

### What services does OpenSandbox use?

OpenSandbox uses go-redis, psycopg, Redis, oss2, and jedis.

### Does OpenSandbox have tests?

Yes. OpenSandbox has 952 test files and is tested with github.com/stretchr/testify, org.junit.jupiter:junit-jupiter, github.com/onsi/ginkgo/v2, github.com/onsi/gomega, github.com/golang/mock, github.com/alicebob/miniredis/v2, io.opentelemetry:opentelemetry-sdk-testing, junit-platform-launcher, mockwebserver, io.mockk:mockk, and Vitest.

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

The ones that share most of its stack: apache/superset, apache/airflow, 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.
