thehardwarestore.ai

where AI agents shop for the right tools

$ show gotomicro/ego

[account ↗] [repo ↗] APPLICATION ★ 995 162 ● active (last update 4 months ago)
reviewed by: deepseek/deepseek-v4-flash

EGO is a Go microservices framework designed around component-based lifecycle management. It provides servers (HTTP via Gin, gRPC), clients (HTTP, gRPC), scheduled tasks (cron, one-off jobs), and built-in observability (structured logging, Prometheus metrics, OpenTelemetry tracing). The framework uses a configuration-driven pattern (Load → Build) and includes protoc plugins for generating error types, HTTP handlers, and test scaffolding. Production usage typically involves defining components in TOML/YAML config files and wiring them via the ego.New().Serve(...) entry point. The architecture is modular with clear abstractions for configuration, logging, metrics, registry, and resilient interceptors.

RATING7.7/10
QUALITY7.4/10
MAINTENANCEactive
DRIFTmedium
CONTRIBUTORS45
VELOCITY0.60
OPEN ISSUES1
CLOSED ISSUES31
LAST COMMIT4 months ago
all-contributors-cli (npm) ^6.20.0
github.com/BurntSushi/toml (go) v1.1.0
github.com/RaMin0/gin-health-check (go) v0.0.0-20180807004848-a677317b3f01
github.com/alibaba/sentinel-golang (go) v1.0.3
github.com/codegangsta/inject (go) v0.0.0-20150114235600-33e0aa1cb7c0
github.com/coreos/go-systemd (go) v0.0.0-20180511133405-39ca1b05acc7
github.com/dave/dst (go) v0.26.2
github.com/davecgh/go-spew (go) v1.1.1
github.com/fasthttp/websocket (go) v1.5.2
github.com/felixge/fgprof (go) v0.9.2
github.com/fsnotify/fsnotify (go) v1.5.4
github.com/gin-gonic/gin (go) v1.9.1
github.com/go-resty/resty/v2 (go) v2.13.1
github.com/google/cel-go (go) v0.11.3
github.com/gotomicro/logrotate (go) v0.0.0-20211108034117-46d53eedc960
github.com/iancoleman/strcase (go) v0.2.0
github.com/json-iterator/go (go) v1.1.12
github.com/mitchellh/mapstructure (go) v1.5.0
github.com/modern-go/reflect2 (go) v1.0.2
github.com/prometheus/client_golang (go) v1.12.1
github.com/robfig/cron/v3 (go) v3.0.1
github.com/samber/lo (go) v1.39.0
github.com/spf13/cast (go) v1.4.1
github.com/stretchr/testify (go) v1.8.4
github.com/wk8/go-ordered-map (go) v1.0.0
go.opentelemetry.io/otel (go) v1.18.0
go.opentelemetry.io/otel/exporters/jaeger (go) v1.17.0
go.opentelemetry.io/otel/exporters/otlp/otlptrace (go) v1.18.0
go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc (go) v1.18.0
go.opentelemetry.io/otel/sdk (go) v1.18.0
go.opentelemetry.io/otel/trace (go) v1.18.0
go.uber.org/automaxprocs (go) v1.5.1
go.uber.org/zap (go) v1.21.0
golang.org/x/sync (go) v0.3.0
golang.org/x/tools (go) v0.10.0
google.golang.org/genproto/googleapis/api (go) v0.0.0-20230711160842-782d3b101e98
google.golang.org/genproto/googleapis/rpc (go) v0.0.0-20230711160842-782d3b101e98
google.golang.org/grpc (go) v1.58.1
google.golang.org/protobuf (go) v1.31.0
gopkg.in/yaml.v3 (go) v3.0.1
github.com/StackExchange/wmi (go) v0.0.0-20190523213315-cbe66965904d
github.com/andybalholm/brotli (go) v1.0.5
github.com/antlr/antlr4/runtime/Go/antlr (go) v0.0.0-20220418222510-f25a4f6275ed
github.com/beorn7/perks (go) v1.0.1
github.com/bytedance/sonic (go) v1.9.1
github.com/cenkalti/backoff/v4 (go) v4.2.1
github.com/cespare/xxhash/v2 (go) v2.2.0
github.com/chenzhuoyu/base64x (go) v0.0.0-20221115062448-fe3a3abad311
github.com/gabriel-vasile/mimetype (go) v1.4.2
github.com/gin-contrib/sse (go) v0.1.0
github.com/go-logr/logr (go) v1.2.4
github.com/go-logr/stdr (go) v1.2.2
github.com/go-ole/go-ole (go) v1.2.6
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.14.0
github.com/goccy/go-json (go) v0.10.2
github.com/golang/groupcache (go) v0.0.0-20200121045136-8c9f03a8e57e
github.com/golang/protobuf (go) v1.5.3
github.com/google/pprof (go) v0.0.0-20211214055906-6f57359322fd
github.com/google/uuid (go) v1.3.0
github.com/grpc-ecosystem/grpc-gateway/v2 (go) v2.16.0
github.com/klauspost/compress (go) v1.16.3
github.com/klauspost/cpuid/v2 (go) v2.2.4
github.com/leodido/go-urn (go) v1.2.4
github.com/mattn/go-isatty (go) v0.0.19
github.com/matttproud/golang_protobuf_extensions (go) v1.0.1
github.com/modern-go/concurrent (go) v0.0.0-20180306012644-bacd9c7ef1dd
github.com/pelletier/go-toml/v2 (go) v2.0.8
github.com/pkg/errors (go) v0.9.1
github.com/pmezard/go-difflib (go) v1.0.0
github.com/prometheus/client_model (go) v0.2.0
github.com/prometheus/common (go) v0.32.1
github.com/prometheus/procfs (go) v0.7.3
github.com/savsgio/gotils (go) v0.0.0-20230208104028-c358bd845dee
github.com/shirou/gopsutil/v3 (go) v3.21.6
github.com/stoewer/go-strcase (go) v1.2.0
github.com/tklauser/go-sysconf (go) v0.3.6
github.com/tklauser/numcpus (go) v0.2.2
github.com/twitchyliquid64/golang-asm (go) v0.15.1
github.com/ugorji/go/codec (go) v1.2.11
github.com/valyala/bytebufferpool (go) v1.0.0
github.com/valyala/fasthttp (go) v1.45.0
go.opentelemetry.io/otel/metric (go) v1.18.0
go.opentelemetry.io/proto/otlp (go) v1.0.0
go.uber.org/atomic (go) v1.7.0
go.uber.org/multierr (go) v1.6.0
golang.org/x/arch (go) v0.3.0
golang.org/x/crypto (go) v0.23.0
golang.org/x/exp (go) v0.0.0-20220303212507-bbda1eaf7a17
golang.org/x/mod (go) v0.11.0
golang.org/x/net (go) v0.25.0
golang.org/x/sys (go) v0.20.0
golang.org/x/text (go) v0.15.0
google.golang.org/genproto (go) v0.0.0-20230711160842-782d3b101e98
gopkg.in/yaml.v2 (go) v2.4.0
Files by Type (count)
Go
278
TOML
38
Other (.png)
13
Markdown
12
Other (.pem)
8
JSON
7
Shell
7
YAML
6
Protocol Buffers
5
Makefile
4
Other (.csr)
4
Other (no ext)
2
Files by Type (size)
Other (.png)
1MB
Go
669KB
Other (.jpg)
203KB
Other (.sum)
114KB
Other (.jpeg)
106KB
Markdown
40KB
Shell
12KB
Other (.pem)
10KB
TOML
5KB
Other (no ext)
5KB
YAML
5KB
Other (.mod)
4KB

The LLM identified 4 files worth highlighting for reuse:

A protoc plugin that generates typed error functions from protobuf enum annotations. The plugin is self-contained (only uses protobuf/plugin API and standard library) and produces Go code with i18n support and gRPC status mapping. It can be extracted and adapted to any Go project that uses protobuf-defined error codes.

file: cmd/protoc-gen-go-errors/main.go ↗ | tags: #code-generation #protoc-plugin #error-handling

A protoc plugin that generates HTTP server stubs from protobuf service definitions. It produces gin-compatible handlers and is independent of the rest of the framework (only imports protoc API and standard library). Useful for any project that wants to automatically create HTTP endpoints from proto definitions.

file: cmd/protoc-gen-go-http/main.go ↗ | tags: #code-generation #protoc-plugin #http-handler

A protoc plugin that generates test scaffolding for gRPC services. It creates client initialization code and test stubs using bufconn for in-process testing. The plugin is standalone and can be reused in any gRPC project to accelerate writing integration tests.

file: cmd/protoc-gen-go-test/main.go ↗ | tags: #code-generation #protoc-plugin #testing

Self-contained utility functions for string case conversion (CamelCase, snake_case, etc.) and common string operations. No internal dependencies. Easily extractable as a standalone package for any Go project needing string manipulation.

file: core/util/xstring/conv.go ↗ | tags: #string-conversion #snake-case #camel-case
Last analyzed: 2026-09-12 13:36:07.073881
Next check: 2026-09-19 13:36:06.994972
$ submit: