Külső függőségek
A "centralizál, nem absztrahál" elv szerint sem a kit, sem a 12 önálló modul egyike sem rejti el a mögöttes library-ket: a típusaik szabadon átfolynak a publikus API-n. Ez az oldal a teljes leltár: melyik modul mit használ, milyen verzióban, és hol a hivatalos dokumentációja, a modultérkép sorrendjében. Design pattern szerinti bontásért lásd a Design patternek oldalt.
go.mod-jának pillanatnyi állapotát tükrözik. Egy generált projekt go.mod-ja a go mod tidy szerint alakul; a go get -u github.com/gp-system/<modul> a többitől függetlenül, modulonként frissíti a verziót.A lenti csoportosítás lényege: egy modul felvétele sosem húzza be egy másik modul függőségeit. A go get github.com/gp-system/errs semmit nem linkel be a standard library-n kívül; a go get github.com/gp-system/dbx/pg a pgx-et és a saját OTel-tracerét linkeli be, semmit az auth-ból, a mail-ből vagy a másik kilencből. Csak ott, ahol egy modul saját go.mod-ja egy másik modult igényel (auth→httperr, events→queue+dbx, notify→mail+dbx), ott húzza be egy modul felvétele tranzitívan a másik lábnyomát is, és ez mindig egy gp-system/* modul, a saját áttekintő oldalán dokumentálva, sosem egy meglepetés 3rd-party library.
errs
github.com/gp-system/errs. Nulla 3rd-party függőség: csak a standard library (errors, fmt, runtime, log/slog). Lásd errs: Áttekintés.
envconf
github.com/gp-system/envconf. Lásd envconf: Áttekintés.
| Függőség | Verzió | Szerep | Doksi |
|---|---|---|---|
| caarlos0/env/v11 | v11.4.1 | env-változó → struct parse | github.com/caarlos0/env |
| joho/godotenv | v1.5.1 | .env-fájl betöltés | github.com/joho/godotenv |
httperr (+httperr/validate)
github.com/gp-system/httperr. Lásd httperr: Áttekintés.
| Függőség | Verzió | Szerep | Doksi |
|---|---|---|---|
| go-playground/validator/v10 | v10.30.3 | struct-tag alapú validáció | github.com/go-playground/validator |
github.com/gp-system/errs | v0.1.0 | a hibatípus, amit a httperr rendereli | errs: Áttekintés |
dbx (+dbx/pg, dbx/bunx, dbx/seed)
github.com/gp-system/dbx. Lásd dbx: Áttekintés.
| Függőség | Verzió | Szerep | Doksi |
|---|---|---|---|
| jackc/pgx/v5 | v5.10.0 | PostgreSQL driver + connection pool | github.com/jackc/pgx |
| exaring/otelpgx | v0.11.1 | OTel-tracer a pgx pool fölött | github.com/exaring/otelpgx |
uptrace/bun (+dialect/pgdialect, extra/bunotel) | v1.2.18 | SQL-first query builder, PostgreSQL-dialektus, OTel query-hook | bun.uptrace.dev |
| pressly/goose | a generált projektben | SQL-migrációk, a cmd/migrate futtatja | github.com/pressly/goose |
| sqlc | opcionális, projekt-oldali | SQL → típusos Go kód generátor; a dbx/pg.DBTX kompatibilis vele | sqlc.dev |
paginate
github.com/gp-system/paginate. Nincs függősége a github.com/gp-system/errs-en túl (ErrInvalidCursor és társai). Lásd paginate: Áttekintés.
queue
github.com/gp-system/queue. Lásd Queue.
| Függőség | Verzió | Szerep | Doksi |
|---|---|---|---|
| hibiken/asynq | v0.26.0 | Valkey-alapú elosztott task-queue | github.com/hibiken/asynq |
| redis/go-redis/v9 | v9.21.0 | Redis-protokollú kliens (a Valkeyvel is kompatibilis) | redis.uptrace.dev |
events (+events/outbox, events/scheduler)
github.com/gp-system/events. Saját go.mod-ja a github.com/gp-system/queue-t és a github.com/gp-system/dbx-et is igényli (egy már kiemelt modul, ami két másikra épül), így az events felvétele mindkettő lábnyomát behúzza; lásd events: Áttekintés.
| Függőség | Verzió | Szerep | Doksi |
|---|---|---|---|
| hibiken/asynq | v0.26.0 | az outbox relay és az ütemező task-dispatchja | github.com/hibiken/asynq |
| redis/go-redis/v9 | v9.21.0 | az ütemező leader-election lease-e | redis.uptrace.dev |
| jackc/pgx/v5 | v5.10.0 | az events/outbox pgx-alapú store-ja | github.com/jackc/pgx |
| uptrace/bun | v1.2.18 | az events/outbox bun-alapú store-ja | bun.uptrace.dev |
| google/uuid | v1.6.0 | outbox-sor / task-ID-k | github.com/google/uuid |
auth (+auth/rbac, auth/policy)
github.com/gp-system/auth. Levél-modul: saját go.mod-ja a golang-jwt/jwt/v5-ön kívül semmit nem igényel, még a github.com/gp-system/errs-t sem. Sima sentinel errorokat ad vissza, és sosem ír választ; a kit server csomagja (ami viszont függ a httperr-től) adja hozzá az RFC 9457 Problem-renderelést. Lásd Autentikáció és Önálló használat.
| Függőség | Verzió | Szerep | Doksi |
|---|---|---|---|
| golang-jwt/jwt/v5 | v5.3.1 | JWT aláírás és ellenőrzés | github.com/golang-jwt/jwt |
mail (+mail/smtp, mail/mjml)
github.com/gp-system/mail. Lásd Mail: Áttekintés.
| Függőség | Verzió | Szerep | Doksi |
|---|---|---|---|
| wneessen/go-mail | v0.8.1 | SMTP-kliens, mail/smtp | github.com/wneessen/go-mail |
| Boostport/mjml-go | v0.16.0 | MJML → HTML fordítás (WASM, mjml.io nyelv), mail/mjml | github.com/Boostport/mjml-go |
go.opentelemetry.io/otel (+/trace) | v1.44.0 | span-ek a kimenő küldés körül | opentelemetry.io/docs/languages/go |
notify (+notify/broadcast, notify/database)
github.com/gp-system/notify. Saját go.mod-ja a github.com/gp-system/mail-t és a github.com/gp-system/dbx-et is igényli, így a notify felvétele mindkettő lábnyomát behúzza; lásd Notification: Áttekintés.
| Függőség | Verzió | Szerep | Doksi |
|---|---|---|---|
| centrifugal/centrifuge | v0.38.0 | a notify/broadcast élő-push node-ja/publisher-e | github.com/centrifugal/centrifuge |
| uptrace/bun | v1.2.18 | a notify/database store-ja | bun.uptrace.dev |
| google/uuid | v1.6.0 | notification-sor ID-k | github.com/google/uuid |
| go.opentelemetry.io/otel | v1.44.0 | span-ek a kézbesítés körül | opentelemetry.io/docs/languages/go |
storage (+storage/memory, storage/local, storage/storagetest)
github.com/gp-system/storage. A Driver/Disk/Manager mag és a memória-/helyi lemez-driverei az OTel-en túl semmit nem húznak be: nincs object-storage SDK belinkelve, hacsak nem importálod a lenti S3-drivert is. Lásd Storage: Áttekintés.
| Függőség | Verzió | Szerep | Doksi |
|---|---|---|---|
go.opentelemetry.io/otel (+/metric, /trace) | v1.44.0 | span-ek és metrikák a storage-műveletek körül | opentelemetry.io/docs/languages/go |
storage/driver/s3
github.com/gp-system/storage/driver/s3, a lista egyetlen beágyazott Go modulja: saját go.mod, így csak azok a projektek fizetnek ezért a függőségért, amelyeknek tényleg kell S3. Lásd S3.
| Függőség | Verzió | Szerep | Doksi |
|---|---|---|---|
| minio/minio-go/v7 | v7.2.1 | S3-kompatibilis object storage kliens | github.com/minio/minio-go |
telemetry (+telemetry/logx, telemetry/otelx, telemetry/sentryx)
github.com/gp-system/telemetry. Lásd Telemetry: Áttekintés.
| Függőség | Verzió | Szerep | Doksi |
|---|---|---|---|
getsentry/sentry-go (+/otel, /otel/otlp) | v0.48.0 | hibariportolás, breadcrumbok, és a Sentry span-exporter az OTel tracer providerre kötve | docs.sentry.io/platforms/go |
| go.opentelemetry.io/otel | v1.44.0 | OTel API (trace, metrics) | opentelemetry.io/docs/languages/go |
| go.opentelemetry.io/otel/sdk | v1.44.0 | OTel SDK-implementáció | opentelemetry.io/docs/languages/go |
go.opentelemetry.io/otel/sdk/log, /log | v0.20.0 | OTel logs SDK/API (1.0 előtti, ezért izolálja a telemetry a telemetry/otelx mögé) | opentelemetry.io/docs/languages/go |
| go.opentelemetry.io/contrib/bridges/otelslog | v0.19.0 | slog → OTel log-bridge | opentelemetry-go-contrib |
| go.opentelemetry.io/contrib/exporters/autoexport | v0.69.0 | env-vezérelt exporter-választás (OTEL_TRACES_EXPORTER stb.) | opentelemetry-go-contrib |
Maga a kit
github.com/gp-system/gpsystem: a CLI plusz a négy chassis-csomag (app, server, worker, realtime). Ezek a fenti modul-függőségek fölé épülnek, nem helyettük: a worker a queue-t és az events-et igényli, a realtime a notify-t, az auth-ot és a queue-t, és így tovább, a modultérkép szerint.
| Függőség | Verzió | Szerep | Kit-csomag | Doksi |
|---|---|---|---|---|
| go-chi/chi/v5 | v5.3.1 | net/http-alapú router | server | github.com/go-chi/chi |
| go-chi/cors | v1.2.2 | CORS middleware chi-hez | server | github.com/go-chi/cors |
| go.opentelemetry.io/contrib/.../otelhttp | v0.69.0 | net/http OTel-instrumentáció | server | opentelemetry-go-contrib |
| hibiken/asynq | v0.26.0 | a worker-chassis task-szervere | worker | github.com/hibiken/asynq |
| centrifugal/centrifuge | v0.38.0 | a realtime-gateway node-ja | realtime | github.com/centrifugal/centrifuge |
| oapi-codegen/oapi-codegen/v2 | v2.8.0 | OpenAPI → Go szerverkód generátor, csak codegen-időben: a futó binárisba nem linkelődik be | a generált projekt go tool-ja | github.com/oapi-codegen/oapi-codegen |
| spf13/cobra | v1.10.2 | CLI-parancsfa | cmd/gpsystem, internal/cli | cobra.dev |
| golang.org/x/tools | (goimports) | a generált fájlokat formázza | internal/generator | pkg.go.dev/golang.org/x/tools |
| gopkg.in/yaml.v3 | v3.0.1 | gpsystem.yaml manifest szerializáció | internal/generator | pkg.go.dev/gopkg.in/yaml.v3 |
| @typespec/compiler, http, openapi, openapi3 | 1.10.0 (npm, generált projektben) | API-kontraktus spec-nyelv → OpenAPI 3.0 fordítás | spec/typespec/** | typespec.io/docs |
Dev-tooling
| Eszköz | Szerep | Doksi |
|---|---|---|
| mise | toolchain-pin (Go, Node) + taskrunner (build, test, lint, e2e, ...) | mise.jdx.dev |
| golangci-lint (v2 séma) | statikus analízis, mise run lint | golangci-lint.run |
commitlint (@commitlint/config-conventional) | Conventional Commits enforce a gpsystem repóban | commitlint.js.org |
| RustFS | S3-kompatibilis object store dev/compose környezetben (MinIO helyett) | rustfs.com |
| mailpit | SMTP-csapda dev/compose környezetben | github.com/axllent/mailpit |
| PostgreSQL 17 (alpine image) | fejlesztői adatbázis a compose.yml-ben | hub.docker.com/_/postgres |
| Valkey (alpine image) | queue/scheduler backend a compose.yml-ben | hub.docker.com/_/valkey |
Merre tovább
- A dependenciák mögötti tervezésmintákat (miért wrapper a
storageDriver-modellje vagy atelemetry/sentryx, miért nem a többi) a Design patternek oldal tárgyalja. - Minden modul env-változóit a Konfiguráció oldal listázza.