Top AI Repos — open-source AI, indexed and scored
Top AI Repos tracks AI repositories on GitHub and answers two different questions about each one: is it moving right now, and would you bet a product on it.
Top AI Repos tracks AI repositories on GitHub and answers two different questions about each one: is it moving right now, and would you bet a product on it.
A reasonably complete and well-tested golang port of httpbin, with zero dependencies outside the go stdlib.
| Date | Stars |
|---|---|
| 2026-07-24 | 868 |
| 2026-07-25 | 870 |
| 2026-07-28 | 870 |
| 2026-07-30 | 870 |
| 2026-08-06 | 870 |
Today
— stars today
This week
— stars this week
This month
— stars this month
Momentum
35.0
growth rate 0.00%/day
# go-httpbin
A reasonably complete and well-tested golang port of [Kenneth Reitz][kr]'s
[httpbin][httpbin-org] service, with zero dependencies outside the go stdlib.
[](https://pkg.go.dev/github.com/mccutchen/go-httpbin/v2)
[](https://github.com/mccutchen/go-httpbin/actions/workflows/ci.yaml)
[](https://codecov.io/gh/mccutchen/go-httpbin)
[](https://hub.docker.com/r/mccutchen/go-httpbin/)
## Usage
### Docker/OCI images
Prebuilt images for the `linux/amd64` and `linux/arm64` architectures are
automatically published to these public registries for every tagged release:
- [ghcr.io/mccutchen/go-httpbin][ghcr] (recommended)
- [mccutchen/go-httpbin][docker-hub]
```bash
$ docker run -P ghcr.io/mccutchen/go-httpbin
```
> [!NOTE]
> Prebuilt image versions >= 2.19.0 run as a non-root user by default. See
> [Configuring non-root docker images](#configuring-non-root-docker-images)
> below for details.
### Kubernetes
```
$ kubectl apply -k github.com/mccutchen/go-httpbin/kustomize
```
See `./kustomize` directory for further information
### Standalone binary
Follow the [Installation](#installation) instructions to install go-httpbin as
a standalone binary, or use `go run` to install it on demand:
Examples:
```bash
# Run http server
$ go run github.com/mccutchen/go-httpbin/v2/cmd/go-httpbin@latest -host 127.0.0.1 -port 8081
# Run https server
$ openssl genrsa -out server.key 2048
$ openssl ecparam -genkey -name secp384r1 -out server.key
$ openssl req -new -x509 -sha256 -key server.key -out server.crt -days 3650
$ go run github.com/mccutchen/go-httpbin/v2/cmd/go-httpbin@latest -host 127.0.0.1 -port 8081 -https-cert-file ./server.crt -https-key-file ./server.key
```
### Unit testing helper library
The `github.com/mccutchen/go-httpbin/httpbin/v2` package can also be used as a
library for testing an application's interactions with an upstream HTTP
service, like so:
```go
package httpbin_test
import (
"net/http"
"net/http/httptest"
"os"
"testing"
"time"
"github.com/mccutchen/go-httpbin/v2/httpbin"
)
func TestSlowResponse(t *testing.T) {
app := httpbin.New()
testServer := httptest.NewServer(app)
defer testServer.Close()
client := http.Client{
Timeout: time.Duration(1 * time.Second),
}
_, err := client.Get(testServer.URL + "/delay/10")
if !os.IsTimeout(err) {
t.Fatalf("expected timeout error, got %s", err)
}
}
```
### GitHub Actions/Workflows
The 3rd-party [lfreleng-actions/go-httpbin-action][] action is an easy way
to make a local instance of go-httpbin available to other steps in a GitHub
Actions workflow.
## Configuration
go-httpbin can be configured via either command line arguments or environment
variables (or a combination of the two):
| Argument| Env var | Documentation | Default |
| - | - | - | - |
| `-allowed-redirect-domains` | `ALLOWED_REDIRECT_DOMAINS` | Comma-separated list of domains the /redirect-to endpoint will allow | |
| `-exclude-headers` | `EXCLUDE_HEADERS` | Drop platform-specific headers. Comma-separated list of headers key to drop, supporting wildcard suffix matching. For example: `"foo,bar,x-fc-*"` | - |
| `-host` | `HOST` | Host to listen on | 0.0.0.0 |
| `-https-cert-file` | `HTTPS_CERT_FILE` | HTTPS Server certificate file | |
| `-https-key-file` | `HTTPS_KEY_FILE` | HTTPS Server private key file | |
| `-log-format` | `LOG_FORMAT` | Log format (text or json) | text |
| `-log-level` | `LOG_LEVEL` | Logging level (DEBUG, INFO, WARN, ERROR, OFF) | INFO |
| `-max-body-size` | `MAX_BODY_SIZE` | Maximum size of request or response, in bytes | 1048576 |
| `-max-duration` | `MAX_DURATION` | Maximum duration a response may take | 10s |
| `-port` | `PORExcerpt of 11,774 characters
Read on GitHub318
6
5
Bill Mill · United States
4
4
3
2
1
1
1
1
1
1
1
1
1
1
1
1
1
Would you bet a product on this? Bounded 0–100 and slow moving.
matched fp:2d48fcb767b882cc, topic:testing