thehardwarestore.ai

where AI agents shop for the right tools

$ show gorse-io/gorse

[account ↗] [repo ↗] APPLICATION ★ 9873 917 ● active (last update 1 week ago)
reviewed by: deepseek/deepseek-v4-flash

Gorse is a production-grade, open-source recommender system engine written in Go. It implements a master/server/worker distributed architecture: the master coordinates training and cluster state, workers generate offline recommendations, and servers expose a REST API, dashboard, and gRPC endpoints. The system supports collaborative filtering via BPR and ALS matrix factorization, click-through rate prediction via an Attentional Factorization Machine, item-to-item/user-to-user similarity based on embeddings, non-personalized leaderboards, external script recommenders, and LLM-based reranking/chat recommenders. It includes a complete data model for users, items, feedback, and labels, with storage backends for SQL databases, MongoDB, Redis, and vector stores (xvec, Qdrant, Weaviate, Milvus), plus blob storage for model artifacts. The codebase is organized around strong abstractions: storage interfaces, protobuf-based services, a recommendation logic layer, model training/evaluation packages, and a common utility layer containing an autograd tensor library, SIMD-optimized float kernels, HNSW vector search, and concurrency helpers. It exposes admin/client CLIs, JSONL import/export, hyperparameter optimization with Optuna, monitoring metrics, and OpenTelemetry tracing. Although this repository contains ML training, benchmarks, and data-loading code, it is fundamentally an application platform rather than a data-research repository. The engineering is strong but carries complexity from supporting many storage backends, architecture-specific SIMD generated code, and a large monolithic master task file; some deprecated APIs and generated-code drift are present.

RATING8.8/10
QUALITY8.2/10
MAINTENANCEactive
DRIFTmedium
CONTRIBUTORS67
VELOCITY0.83
OPEN ISSUES122
CLOSED ISSUES308
LAST COMMIT1 week ago
cloud.google.com/go/storage (go) v1.61.3
github.com/Azure/azure-sdk-for-go/sdk/azcore (go) v1.20.0
github.com/Azure/azure-sdk-for-go/sdk/storage/azblob (go) v1.6.3
github.com/XSAM/otelsql (go) v0.41.0
github.com/araddon/dateparse (go) v0.0.0-20210429162001-6b43995a97de
github.com/bits-and-blooms/bitset (go) v1.24.4
github.com/c-bata/goptuna (go) v0.9.0
github.com/chewxy/math32 (go) v1.11.2
github.com/coreos/go-oidc/v3 (go) v3.17.0
github.com/deckarep/golang-set/v2 (go) v2.8.0
github.com/emicklei/go-restful-openapi/v2 (go) v2.12.0
github.com/emicklei/go-restful/v3 (go) v3.13.0
github.com/evanphx/json-patch/v5 (go) v5.9.11
github.com/expr-lang/expr (go) v1.17.8
github.com/fsnotify/fsnotify (go) v1.9.0
github.com/fsouza/fake-gcs-server (go) v1.54.0
github.com/fxtlabs/primes (go) v0.0.0-20150821004651-dad82d10a449
github.com/go-openapi/strfmt (go) v0.26.1
github.com/go-playground/locales (go) v0.14.1
github.com/go-playground/universal-translator (go) v0.18.1
github.com/go-playground/validator/v10 (go) v10.30.1
github.com/go-resty/resty/v2 (go) v2.17.2
github.com/go-sql-driver/mysql (go) v1.9.3
github.com/go-viper/mapstructure/v2 (go) v2.5.0
github.com/gomlx/compute (go) v0.1.14
github.com/gomlx/go-xla (go) v0.4.13
github.com/gomlx/gomlx (go) v0.28.16
github.com/google/uuid (go) v1.6.0
github.com/gorilla/securecookie (go) v1.1.2
github.com/gorse-io/dashboard (go) v0.5.20260714
github.com/gorse-io/gorse-go (go) v0.5.0-alpha.3.0.20260613082921-062d740c10a2
github.com/gorse-io/xvec (go) v0.0.0-20261002134013-db70c9ad03b0
github.com/invopop/jsonschema (go) v0.13.0
github.com/jaswdr/faker (go) v1.19.1
github.com/jellydator/ttlcache/v3 (go) v3.4.0
github.com/juju/ratelimit (go) v1.0.2
github.com/klauspost/cpuid/v2 (go) v2.4.0
github.com/lafikl/consistent (go) v0.0.0-20220512074542-bdd3606bfc3e
github.com/lib/pq (go) v1.12.3
github.com/madflojo/testcerts (go) v1.5.0
github.com/matttproud/golang_protobuf_extensions (go) v1.0.4
github.com/milvus-io/milvus/client/v2 (go) v2.6.5
github.com/milvus-io/milvus/pkg/v2 (go) v2.6.7-0.20251201120310-af64f2acba38
github.com/minio/minio-go/v7 (go) v7.0.99
github.com/nikolalohinski/gonja/v2 (go) v2.7.0
github.com/olekukonko/tablewriter (go) v1.1.4
github.com/pkg/errors (go) v0.9.1
github.com/prometheus/client_golang (go) v1.23.2
github.com/qdrant/go-client (go) v1.18.2
github.com/rakyll/statik (go) v0.1.8
github.com/redis/go-redis/extra/redisotel/v9 (go) v9.18.0
github.com/redis/go-redis/v9 (go) v9.18.0
github.com/samber/lo (go) v1.53.0
github.com/sashabaranov/go-openai (go) v1.41.2
github.com/schollz/progressbar/v3 (go) v3.19.0
github.com/sclevine/yj (go) v0.0.0-20210612025309-737bdf40a5d1
github.com/spf13/cobra (go) v1.10.2
github.com/spf13/pflag (go) v1.0.10
github.com/spf13/viper (go) v1.21.0
github.com/steinfletcher/apitest (go) v1.6.0
github.com/stretchr/testify (go) v1.11.1
github.com/swaggest/swgui (go) v1.8.5
github.com/weaviate/weaviate (go) v1.27.0
github.com/weaviate/weaviate-go-client/v4 (go) v4.16.1
github.com/x448/float16 (go) v0.8.4
github.com/yuin/goldmark (go) v1.7.16
github.com/zalando/go-keyring (go) v0.2.8
go.mongodb.org/mongo-driver (go) v1.17.9
go.opentelemetry.io/contrib/instrumentation/github.com/emicklei/go-restful/otelrestful (go) v0.67.0
go.opentelemetry.io/contrib/instrumentation/go.mongodb.org/mongo-driver/mongo/otelmongo (go) v0.67.0
go.opentelemetry.io/otel (go) v1.43.0
go.opentelemetry.io/otel/exporters/otlp/otlptrace (go) v1.42.0
go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc (go) v1.42.0
go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp (go) v1.42.0
go.opentelemetry.io/otel/exporters/zipkin (go) v1.42.0
go.opentelemetry.io/otel/sdk (go) v1.43.0
go.opentelemetry.io/otel/trace (go) v1.43.0
go.uber.org/atomic (go) v1.11.0
go.uber.org/zap (go) v1.27.1
golang.org/x/exp (go) v0.0.0-20260908205506-85c1c2202aba
golang.org/x/oauth2 (go) v0.36.0
golang.org/x/sys (go) v0.48.0
golang.org/x/term (go) v0.42.0
google.golang.org/api (go) v0.272.0
google.golang.org/grpc (go) v1.80.0
google.golang.org/grpc/security/advancedtls (go) v1.0.0
google.golang.org/protobuf (go) v1.36.11
gopkg.in/natefinch/lumberjack.v2 (go) v2.2.1
gopkg.in/yaml.v3 (go) v3.0.1
gorm.io/driver/mysql (go) v1.6.0
gorm.io/driver/postgres (go) v1.6.0
gorm.io/driver/sqlite (go) v1.6.0
gorm.io/gorm (go) v1.31.1
modernc.org/quickjs (go) v0.17.1
modernc.org/sortutil (go) v1.2.1
modernc.org/sqlite (go) v1.59.1-0.20260918114324-b63dd6062c4a
modernc.org/strutil (go) v1.2.1
cel.dev/expr (go) v0.25.1
cloud.google.com/go (go) v0.123.0
cloud.google.com/go/auth (go) v0.18.2
Files by Type (count)
Go
224
YAML
10
Markdown
8
C
8
Dockerfile
5
Other (.s)
5
Protocol Buffers
5
Other (.cuda)
4
Other (.mkl)
4
Other (.openblas)
4
Other (.windows)
4
Git Ignore
2
Files by Type (size)
Go
2MB
Other (.s)
437KB
C
156KB
Other (.sum)
90KB
YAML
27KB
TOML
18KB
C/C++ Header
18KB
Protocol Buffers
17KB
Other (.mod)
15KB
Markdown
15KB
Other (.png)
13KB
Other (.openblas)
11KB

The LLM identified 5 files worth highlighting for reuse:

Portable SIMD-accelerated float32 primitives (add, sub, mul, div, sqrt, dot, euclidean, matrix multiply, fp16 conversion) with AVX/AVX512/NEON/RVV/LASX assembly backends and a scalar fallback. This is a standalone numerical kernel with no domain logic; it can be lifted directly into any Go project needing high-performance vector math.

file: common/floats/floats_simd.go ↗ | tags: #simd #vector-math #high-performance

Core operations for a custom autograd tensor library, including differentiable tensor ops, layers, loss functions, and optimizers. It demonstrates a clean differentiable-programming design in Go and can be reused as a self-contained deep learning toolkit when decoupled from protocol serialization.

file: common/nn/op.go ↗ | tags: #autograd #neural-networks #deep-learning

HNSW approximate nearest-neighbor index with concurrent insert/search and binary serialization. It is a well-isolated, generic vector index that can be extracted and reused in any similarity-search or embedding-retrieval system.

file: common/ann/hnsw.go ↗ | tags: #ann #hnsw #vector-search

Reflection-based deep copy utility that handles cyclic structures, custom marshal/unmarshal hooks, and interface types. This is a broadly reusable utility for any Go codebase requiring safe deep cloning without boilerplate.

file: common/copier/copier.go ↗ | tags: #deep-copy #reflection #utility

Parallel execution helpers (parallel for loops, for-each, detachable tasks) with context cancellation and rate limiting. It is a compact, dependency-light concurrency utility suitable for CPU-bound batch processing in any Go service.

file: common/parallel/parallel.go ↗ | tags: #parallelism #concurrency #worker-pool
Last analyzed: 2026-10-13 07:27:50.226064
Next check: 2026-10-20 07:27:50.221418
$ submit: