Referencia

Külső függőségek

Minden mögöttes library verzióval, szereppel és hivatalos dokumentációval, modulonként csoportosítva.

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.

A verziók az egyes modulok saját 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 (authhttperr, eventsqueue+dbx, notifymail+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égVerzióSzerepDoksi
caarlos0/env/v11v11.4.1env-változó → struct parsegithub.com/caarlos0/env
joho/godotenvv1.5.1.env-fájl betöltésgithub.com/joho/godotenv

httperr (+httperr/validate)

github.com/gp-system/httperr. Lásd httperr: Áttekintés.

FüggőségVerzióSzerepDoksi
go-playground/validator/v10v10.30.3struct-tag alapú validációgithub.com/go-playground/validator
github.com/gp-system/errsv0.1.0a hibatípus, amit a httperr renderelierrs: Áttekintés

dbx (+dbx/pg, dbx/bunx, dbx/seed)

github.com/gp-system/dbx. Lásd dbx: Áttekintés.

FüggőségVerzióSzerepDoksi
jackc/pgx/v5v5.10.0PostgreSQL driver + connection poolgithub.com/jackc/pgx
exaring/otelpgxv0.11.1OTel-tracer a pgx pool fölöttgithub.com/exaring/otelpgx
uptrace/bun (+dialect/pgdialect, extra/bunotel)v1.2.18SQL-first query builder, PostgreSQL-dialektus, OTel query-hookbun.uptrace.dev
pressly/goosea generált projektbenSQL-migrációk, a cmd/migrate futtatjagithub.com/pressly/goose
sqlcopcionális, projekt-oldaliSQL → típusos Go kód generátor; a dbx/pg.DBTX kompatibilis velesqlc.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égVerzióSzerepDoksi
hibiken/asynqv0.26.0Valkey-alapú elosztott task-queuegithub.com/hibiken/asynq
redis/go-redis/v9v9.21.0Redis-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égVerzióSzerepDoksi
hibiken/asynqv0.26.0az outbox relay és az ütemező task-dispatchjagithub.com/hibiken/asynq
redis/go-redis/v9v9.21.0az ütemező leader-election lease-eredis.uptrace.dev
jackc/pgx/v5v5.10.0az events/outbox pgx-alapú store-jagithub.com/jackc/pgx
uptrace/bunv1.2.18az events/outbox bun-alapú store-jabun.uptrace.dev
google/uuidv1.6.0outbox-sor / task-ID-kgithub.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égVerzióSzerepDoksi
golang-jwt/jwt/v5v5.3.1JWT aláírás és ellenőrzésgithub.com/golang-jwt/jwt

mail (+mail/smtp, mail/mjml)

github.com/gp-system/mail. Lásd Mail: Áttekintés.

FüggőségVerzióSzerepDoksi
wneessen/go-mailv0.8.1SMTP-kliens, mail/smtpgithub.com/wneessen/go-mail
Boostport/mjml-gov0.16.0MJML → HTML fordítás (WASM, mjml.io nyelv), mail/mjmlgithub.com/Boostport/mjml-go
go.opentelemetry.io/otel (+/trace)v1.44.0span-ek a kimenő küldés körülopentelemetry.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égVerzióSzerepDoksi
centrifugal/centrifugev0.38.0a notify/broadcast élő-push node-ja/publisher-egithub.com/centrifugal/centrifuge
uptrace/bunv1.2.18a notify/database store-jabun.uptrace.dev
google/uuidv1.6.0notification-sor ID-kgithub.com/google/uuid
go.opentelemetry.io/otelv1.44.0span-ek a kézbesítés körülopentelemetry.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égVerzióSzerepDoksi
go.opentelemetry.io/otel (+/metric, /trace)v1.44.0span-ek és metrikák a storage-műveletek körülopentelemetry.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égVerzióSzerepDoksi
minio/minio-go/v7v7.2.1S3-kompatibilis object storage kliensgithub.com/minio/minio-go

telemetry (+telemetry/logx, telemetry/otelx, telemetry/sentryx)

github.com/gp-system/telemetry. Lásd Telemetry: Áttekintés.

FüggőségVerzióSzerepDoksi
getsentry/sentry-go (+/otel, /otel/otlp)v0.48.0hibariportolás, breadcrumbok, és a Sentry span-exporter az OTel tracer providerre kötvedocs.sentry.io/platforms/go
go.opentelemetry.io/otelv1.44.0OTel API (trace, metrics)opentelemetry.io/docs/languages/go
go.opentelemetry.io/otel/sdkv1.44.0OTel SDK-implementációopentelemetry.io/docs/languages/go
go.opentelemetry.io/otel/sdk/log, /logv0.20.0OTel 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/otelslogv0.19.0slog → OTel log-bridgeopentelemetry-go-contrib
go.opentelemetry.io/contrib/exporters/autoexportv0.69.0env-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égVerzióSzerepKit-csomagDoksi
go-chi/chi/v5v5.3.1net/http-alapú routerservergithub.com/go-chi/chi
go-chi/corsv1.2.2CORS middleware chi-hezservergithub.com/go-chi/cors
go.opentelemetry.io/contrib/.../otelhttpv0.69.0net/http OTel-instrumentációserveropentelemetry-go-contrib
hibiken/asynqv0.26.0a worker-chassis task-szervereworkergithub.com/hibiken/asynq
centrifugal/centrifugev0.38.0a realtime-gateway node-jarealtimegithub.com/centrifugal/centrifuge
oapi-codegen/oapi-codegen/v2v2.8.0OpenAPI → Go szerverkód generátor, csak codegen-időben: a futó binárisba nem linkelődik bea generált projekt go tool-jagithub.com/oapi-codegen/oapi-codegen
spf13/cobrav1.10.2CLI-parancsfacmd/gpsystem, internal/clicobra.dev
golang.org/x/tools(goimports)a generált fájlokat formázzainternal/generatorpkg.go.dev/golang.org/x/tools
gopkg.in/yaml.v3v3.0.1gpsystem.yaml manifest szerializációinternal/generatorpkg.go.dev/gopkg.in/yaml.v3
@typespec/compiler, http, openapi, openapi31.10.0 (npm, generált projektben)API-kontraktus spec-nyelv → OpenAPI 3.0 fordításspec/typespec/**typespec.io/docs

Dev-tooling

EszközSzerepDoksi
misetoolchain-pin (Go, Node) + taskrunner (build, test, lint, e2e, ...)mise.jdx.dev
golangci-lint (v2 séma)statikus analízis, mise run lintgolangci-lint.run
commitlint (@commitlint/config-conventional)Conventional Commits enforce a gpsystem repóbancommitlint.js.org
RustFSS3-kompatibilis object store dev/compose környezetben (MinIO helyett)rustfs.com
mailpitSMTP-csapda dev/compose környezetbengithub.com/axllent/mailpit
PostgreSQL 17 (alpine image)fejlesztői adatbázis a compose.yml-benhub.docker.com/_/postgres
Valkey (alpine image)queue/scheduler backend a compose.yml-benhub.docker.com/_/valkey

Merre tovább

  • A dependenciák mögötti tervezésmintákat (miért wrapper a storage Driver-modellje vagy a telemetry/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.
Copyright © 2026