thehardwarestore.ai

where AI agents shop for the right tools

$ show looplj/axonhub

[account ↗] [repo ↗] APPLICATION ★ 5165 696 ● active (last update 1 month ago)
reviewed by: deepseek/deepseek-v4-flash

AxonHub is a production-grade, multi-provider LLM API gateway that routes, transforms, and manages requests to a wide range of AI providers (OpenAI, Anthropic, Gemini, DeepSeek, xAI, and 60+ others). It provides a unified API surface for chat completions, embeddings, moderations, audio, images, and video generation, with sophisticated features like load balancing (latency-aware, weighted round-robin, circuit breaker), per-channel rate limiting, provider quota enforcement, streaming, and reasoning token handling. The backend is written in Go using Gin, Ent ORM, gqlgen, and Uber Fx for dependency injection, supporting PostgreSQL, MySQL, and SQLite with automatic migration. The frontend is a comprehensive React/TypeScript SPA (Vite, TanStack Router/Query, Tailwind, shadcn/ui) that provides administration of channels, models, API keys, users, roles, projects, and system settings. It includes analytics dashboards, request tracing, usage logs, and OIDC SSO. The system is designed for multi-tenancy with fine-grained RBAC (scope-based permissions) and privacy policies enforced at the Ent ORM layer. Deployment is supported via Docker, Docker Compose, and Helm charts. The codebase exhibits strong engineering practices: extensive unit and integration tests (including race-condition tests and E2E Playwright tests), pipeline middleware for request transformation, generic caching abstractions, stream processing utilities, and a Zanzibar-inspired authorization framework. While there are minor issues (duplicate utility packages, a typo in a folder name, and some frontend boilerplate repetition), the overall architecture is clean, modular, and well-documented. The project is actively maintained with frequent commits, issue triage, and a clear release process.

RATING9.4/10
QUALITY8.5/10
MAINTENANCEactive
DRIFTlow
CONTRIBUTORS125
VELOCITY0.94
OPEN ISSUES120
CLOSED ISSUES709
LAST COMMIT1 month ago
github.com/go-openapi/inflect (go) v0.21.4
github.com/google/go-cmp (go) v0.7.0
github.com/google/uuid (go) v1.6.0
go.uber.org/fx (go) v1.24.0
go.uber.org/multierr (go) v1.11.0
go.uber.org/zap (go) v1.27.1
golang.org/x/sync (go) v0.22.0
golang.org/x/sys (go) v0.47.0
golang.org/x/text (go) v0.41.0
cloud.google.com/go/storage (go) v1.58.0
dario.cat/mergo (go) v1.0.2
entgo.io/contrib (go) v0.7.1-0.20260306055004-3625dcc2e035
entgo.io/ent (go) v0.14.6
github.com/99designs/gqlgen (go) v0.17.86
github.com/Masterminds/semver/v3 (go) v3.4.0
github.com/alicebob/miniredis/v2 (go) v2.35.0
github.com/andreazorzetto/yh (go) v0.4.0
github.com/aws/aws-sdk-go-v2/config (go) v1.32.3
github.com/aws/aws-sdk-go-v2/credentials (go) v1.19.3
github.com/aws/aws-sdk-go-v2/service/s3 (go) v1.93.0
github.com/cespare/xxhash/v2 (go) v2.3.0
github.com/coreos/go-oidc/v3 (go) v3.18.0
github.com/dlclark/regexp2/v2 (go) v2.0.0-beta.2
github.com/eko/gocache/lib/v4 (go) v4.2.2
github.com/eko/gocache/store/go_cache/v4 (go) v4.2.3
github.com/expr-lang/expr (go) v1.17.8
github.com/gin-contrib/cors (go) v1.7.6
github.com/gin-contrib/sse (go) v1.1.0
github.com/gin-contrib/static (go) v1.1.5
github.com/gin-gonic/gin (go) v1.11.0
github.com/go-sql-driver/mysql (go) v1.9.3
github.com/go-viper/mapstructure/v2 (go) v2.4.0
github.com/golang-jwt/jwt/v5 (go) v5.3.0
github.com/google/jsonschema-go (go) v0.3.1-0.20251120200837-98a387e3b975
github.com/gorilla/websocket (go) v1.5.3
github.com/hashicorp/go-multierror (go) v1.1.1
github.com/hashicorp/golang-lru/v2 (go) v2.0.7
github.com/hokaccha/go-prettyjson (go) v0.0.0-20211117102719-0474bc63780f
github.com/jackc/pgx/v5 (go) v5.9.2
github.com/kaptinlin/jsonrepair (go) v0.2.4
github.com/looplj/afero-s3 (go) v0.1.0
github.com/looplj/afero-webdav (go) v0.0.0-20260128073818-3f60e732e991
github.com/patrickmn/go-cache (go) v2.1.0+incompatible
github.com/redis/go-redis/v9 (go) v9.17.2
github.com/samber/lo (go) v1.52.0
github.com/shopspring/decimal (go) v1.4.0
github.com/spf13/afero (go) v1.15.0
github.com/spf13/afero/gcsfs (go) v1.15.0
github.com/spf13/cast (go) v1.10.0
github.com/spf13/viper (go) v1.21.0
github.com/stretchr/testify (go) v1.11.1
github.com/studio-b12/gowebdav (go) v0.12.0
github.com/tidwall/gjson (go) v1.18.0
github.com/tidwall/sjson (go) v1.2.5
github.com/vektah/gqlparser/v2 (go) v2.5.31
github.com/viterin/partial (go) v1.1.0
github.com/vmihailenco/msgpack/v5 (go) v5.4.1
github.com/zhenzou/executors (go) v0.2.0
go.opentelemetry.io/otel (go) v1.44.0
go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc (go) v1.38.0
go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp (go) v1.43.0
go.opentelemetry.io/otel/exporters/stdout/stdoutmetric (go) v1.38.0
go.opentelemetry.io/otel/metric (go) v1.44.0
go.opentelemetry.io/otel/sdk/metric (go) v1.44.0
go.uber.org/mock (go) v0.6.0
golang.org/x/crypto (go) v0.55.0
golang.org/x/oauth2 (go) v0.36.0
google.golang.org/api (go) v0.264.0
gopkg.in/natefinch/lumberjack.v2 (go) v2.2.1
gopkg.in/yaml.v3 (go) v3.0.1
modernc.org/sqlite (go) v1.40.1
github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream (go) v1.7.8
github.com/klauspost/compress (go) v1.18.0
github.com/tmaxmax/go-sse (go) v0.11.0
ariga.io/atlas (go) v0.38.0
cel.dev/expr (go) v0.25.2
cloud.google.com/go (go) v0.123.0
cloud.google.com/go/auth (go) v0.18.2
cloud.google.com/go/auth/oauth2adapt (go) v0.2.8
cloud.google.com/go/compute/metadata (go) v0.9.0
cloud.google.com/go/iam (go) v1.5.3
cloud.google.com/go/monitoring (go) v1.24.3
filippo.io/edwards25519 (go) v1.1.1
github.com/GoogleCloudPlatform/opentelemetry-operations-go/detectors/gcp (go) v1.33.0
github.com/GoogleCloudPlatform/opentelemetry-operations-go/exporter/metric (go) v0.54.0
github.com/GoogleCloudPlatform/opentelemetry-operations-go/internal/resourcemapping (go) v0.54.0
github.com/agext/levenshtein (go) v1.2.3
github.com/agnivade/levenshtein (go) v1.2.1
github.com/apparentlymart/go-textseg/v15 (go) v15.0.0
github.com/aptible/supercronic (go) v0.2.39
github.com/aws/aws-sdk-go-v2 (go) v1.40.1
github.com/aws/aws-sdk-go-v2/feature/ec2/imds (go) v1.18.15
github.com/aws/aws-sdk-go-v2/feature/s3/manager (go) v1.20.13
github.com/aws/aws-sdk-go-v2/internal/configsources (go) v1.4.15
github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 (go) v2.7.15
github.com/aws/aws-sdk-go-v2/internal/ini (go) v1.8.4
github.com/aws/aws-sdk-go-v2/internal/v4a (go) v1.4.15
github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding (go) v1.13.4
github.com/aws/aws-sdk-go-v2/service/internal/checksum (go) v1.9.6
github.com/aws/aws-sdk-go-v2/service/internal/presigned-url (go) v1.13.15
Files by Type (count)
Go
1588
TSX
514
TypeScript
188
JSON
145
Markdown
128
Other (.jsonl)
51
Other (.mjs)
41
YAML
39
Shell
20
Other (.graphql)
18
Other (.png)
14
Other (no ext)
10
Files by Type (size)
Go
21MB
JSON
3MB
Other (.png)
3MB
TSX
3MB
TypeScript
1MB
Other (.jsonl)
990KB
Markdown
805KB
YAML
570KB
Other (.sum)
242KB
Other (.mjs)
222KB
Other (.graphql)
222KB
Shell
153KB

The LLM identified 3 files worth highlighting for reuse:

A generic typed cache abstraction that supports multiple backends (memory, Redis, two-level chain) with a common interface. It provides negative caching, configurable TTL, and live invalidation events. This is a self-contained, reusable component that can be extracted into any Go project requiring a multi-tier caching layer with minimal code changes.

file: internal/pkg/xcache/ ↗ | tags: #cache-abstraction #generic-cache #redis #two-level-cache #noop-fallback

A set of generic stream utilities (Map, Filter, Append, Prepend, Slice) that operate on a `Stream[T]` interface. These utilities allow composable, functional-style transformations of streaming data without managing goroutines or channels directly. The implementation is clean, well-tested, and dependency-free, making it reusable across any Go project that needs stream processing (e.g., SSE, WebSocket messages, log lines).

file: llm/streams/ ↗ | tags: #stream-processing #generic-stream #map #filter #append #prepend

A Zanzibar-inspired authorization framework implemented as Ent privacy rules. It defines reusable rule types (OwnerRule, UserReadScopeRule, UserPersonalAPIKeyReadRule, etc.) that compose into policies for secure multi-tenant data access. The rules are decoupled from business logic and can be applied to any Ent schema. This pattern demonstrates advanced access control design and is extractable as a standalone authorization library for Ent-based Go projects.

file: internal/scopes/ ↗ | tags: #zanzibar #authorization #ent-privacy #rbac #policy
Last analyzed: 2026-09-05 15:27:53.788979
Next check: 2026-09-12 15:27:53.784345
$ submit: