[{"data":1,"prerenderedAt":812},["ShallowReactive",2],{"navigation_docs_hu":3,"-hu-framework-overview":449,"-hu-framework-overview-surround":807},[4,45,120,158,174,204,234,260,272,288,308,327,340,357,374,387,399,426],{"title":5,"icon":6,"path":7,"stem":8,"children":9,"page":44},"Kezdő lépések","i-lucide-rocket","\u002Fhu\u002Fgetting-started","hu\u002F01.getting-started",[10,15,20,25,30,35,40],{"title":11,"path":12,"stem":13,"icon":14},"Bevezetés","\u002Fhu\u002Fgetting-started\u002Fintroduction","hu\u002F01.getting-started\u002F1.introduction","i-lucide-house",{"title":16,"path":17,"stem":18,"icon":19},"Telepítés","\u002Fhu\u002Fgetting-started\u002Finstallation","hu\u002F01.getting-started\u002F2.installation","i-lucide-download",{"title":21,"path":22,"stem":23,"icon":24},"Az első modulod","\u002Fhu\u002Fgetting-started\u002Ffirst-module","hu\u002F01.getting-started\u002F3.first-module","i-lucide-package-plus",{"title":26,"path":27,"stem":28,"icon":29},"Projektstruktúra","\u002Fhu\u002Fgetting-started\u002Fproject-structure","hu\u002F01.getting-started\u002F4.project-structure","i-lucide-folder-tree",{"title":31,"path":32,"stem":33,"icon":34},"A shop mintaalkalmazás","\u002Fhu\u002Fgetting-started\u002Fsample-app","hu\u002F01.getting-started\u002F5.sample-app","i-lucide-shopping-cart",{"title":36,"path":37,"stem":38,"icon":39},"Laravelből érkezőknek","\u002Fhu\u002Fgetting-started\u002Fcoming-from-laravel","hu\u002F01.getting-started\u002F6.coming-from-laravel","i-lucide-arrow-right-left",{"title":41,"path":42,"stem":43,"icon":39},"Symfonyból érkezőknek","\u002Fhu\u002Fgetting-started\u002Fcoming-from-symfony","hu\u002F01.getting-started\u002F7.coming-from-symfony",false,{"title":46,"icon":47,"path":48,"stem":49,"children":50,"page":44},"CLI referencia","i-lucide-terminal","\u002Fhu\u002Fcli","hu\u002F02.cli",[51,55,60,65,70,75,80,85,90,95,100,105,110,115],{"title":52,"path":53,"stem":54,"icon":47},"Áttekintés","\u002Fhu\u002Fcli\u002Foverview","hu\u002F02.cli\u002F1.overview",{"title":56,"path":57,"stem":58,"icon":59},"add compose \u002F add docker","\u002Fhu\u002Fcli\u002Fadd-compose","hu\u002F02.cli\u002F10.add-compose","i-lucide-container",{"title":61,"path":62,"stem":63,"icon":64},"add mail","\u002Fhu\u002Fcli\u002Fadd-mail","hu\u002F02.cli\u002F11.add-mail","i-lucide-mail-plus",{"title":66,"path":67,"stem":68,"icon":69},"add notification","\u002Fhu\u002Fcli\u002Fadd-notification","hu\u002F02.cli\u002F12.add-notification","i-lucide-bell-plus",{"title":71,"path":72,"stem":73,"icon":74},"add realtime","\u002Fhu\u002Fcli\u002Fadd-realtime","hu\u002F02.cli\u002F13.add-realtime","i-lucide-radio-tower",{"title":76,"path":77,"stem":78,"icon":79},"add seeder","\u002Fhu\u002Fcli\u002Fadd-seeder","hu\u002F02.cli\u002F14.add-seeder","i-lucide-sprout",{"title":81,"path":82,"stem":83,"icon":84},"new project","\u002Fhu\u002Fcli\u002Fnew-project","hu\u002F02.cli\u002F2.new-project","i-lucide-folder-plus",{"title":86,"path":87,"stem":88,"icon":89},"new module","\u002Fhu\u002Fcli\u002Fnew-module","hu\u002F02.cli\u002F3.new-module","i-lucide-blocks",{"title":91,"path":92,"stem":93,"icon":94},"add surface","\u002Fhu\u002Fcli\u002Fadd-surface","hu\u002F02.cli\u002F4.add-surface","i-lucide-layers-2",{"title":96,"path":97,"stem":98,"icon":99},"add domain","\u002Fhu\u002Fcli\u002Fadd-domain","hu\u002F02.cli\u002F5.add-domain","i-lucide-box",{"title":101,"path":102,"stem":103,"icon":104},"add handler","\u002Fhu\u002Fcli\u002Fadd-handler","hu\u002F02.cli\u002F6.add-handler","i-lucide-webhook",{"title":106,"path":107,"stem":108,"icon":109},"new migration","\u002Fhu\u002Fcli\u002Fnew-migration","hu\u002F02.cli\u002F7.new-migration","i-lucide-file-plus",{"title":111,"path":112,"stem":113,"icon":114},"worker generátorok","\u002Fhu\u002Fcli\u002Fworker-generators","hu\u002F02.cli\u002F8.worker-generators","i-lucide-cog",{"title":116,"path":117,"stem":118,"icon":119},"add db","\u002Fhu\u002Fcli\u002Fadd-db","hu\u002F02.cli\u002F9.add-db","i-lucide-database-zap",{"title":121,"icon":99,"path":122,"stem":123,"children":124,"page":44},"A framework","\u002Fhu\u002Fframework","hu\u002F03.framework",[125,129,134,139,143,148,153],{"title":126,"path":127,"stem":128,"icon":99},"A framework áttekintése","\u002Fhu\u002Fframework\u002Foverview","hu\u002F03.framework\u002F1.overview",{"title":130,"path":131,"stem":132,"icon":133},"Alkalmazás-életciklus","\u002Fhu\u002Fframework\u002Fapp","hu\u002F03.framework\u002F2.app","i-lucide-power",{"title":135,"path":136,"stem":137,"icon":138},"Szerver","\u002Fhu\u002Fframework\u002Fserver","hu\u002F03.framework\u002F3.server","i-lucide-server",{"title":140,"path":141,"stem":142,"icon":114},"Worker","\u002Fhu\u002Fframework\u002Fworker","hu\u002F03.framework\u002F4.worker",{"title":144,"path":145,"stem":146,"icon":147},"Realtime","\u002Fhu\u002Fframework\u002Frealtime","hu\u002F03.framework\u002F5.realtime","i-lucide-radio",{"title":149,"path":150,"stem":151,"icon":152},"Migrációk","\u002Fhu\u002Fframework\u002Fmigrations","hu\u002F03.framework\u002F6.migrations","i-lucide-file-stack",{"title":154,"path":155,"stem":156,"icon":157},"Social login","\u002Fhu\u002Fframework\u002Fsocial-login","hu\u002F03.framework\u002F7.social-login","i-lucide-log-in",{"title":159,"icon":160,"path":161,"stem":162,"children":163,"page":44},"Referencia","i-lucide-book-open","\u002Fhu\u002Freference","hu\u002F04.reference",[164,169],{"title":165,"path":166,"stem":167,"icon":168},"Konfiguráció","\u002Fhu\u002Freference\u002Fconfiguration","hu\u002F04.reference\u002F1.configuration","i-lucide-settings",{"title":170,"path":171,"stem":172,"icon":173},"Külső függőségek","\u002Fhu\u002Freference\u002Fdependencies","hu\u002F04.reference\u002F2.dependencies","i-lucide-package",{"title":175,"icon":176,"path":177,"stem":178,"children":179,"page":44},"Koncepciók","i-lucide-lightbulb","\u002Fhu\u002Fconcepts","hu\u002F05.concepts",[180,185,190,194,199],{"title":181,"path":182,"stem":183,"icon":184},"Architektúra","\u002Fhu\u002Fconcepts\u002Farchitecture","hu\u002F05.concepts\u002F1.architecture","i-lucide-layers",{"title":186,"path":187,"stem":188,"icon":189},"Hibamodell","\u002Fhu\u002Fconcepts\u002Ferror-model","hu\u002F05.concepts\u002F2.error-model","i-lucide-shield-alert",{"title":165,"path":191,"stem":192,"icon":193},"\u002Fhu\u002Fconcepts\u002Fconfiguration","hu\u002F05.concepts\u002F3.configuration","i-lucide-settings-2",{"title":195,"path":196,"stem":197,"icon":198},"Codegen pipeline","\u002Fhu\u002Fconcepts\u002Fcodegen-pipeline","hu\u002F05.concepts\u002F4.codegen-pipeline","i-lucide-file-json",{"title":200,"path":201,"stem":202,"icon":203},"Design patternek","\u002Fhu\u002Fconcepts\u002Fdesign-patterns","hu\u002F05.concepts\u002F5.design-patterns","i-lucide-puzzle",{"title":205,"icon":206,"path":207,"stem":208,"children":209,"page":44},"auth","i-lucide-shield-check","\u002Fhu\u002Fauth","hu\u002F06.auth",[210,215,220,225,230],{"title":211,"path":212,"stem":213,"icon":214},"Autentikáció","\u002Fhu\u002Fauth\u002Foverview","hu\u002F06.auth\u002F1.overview","i-lucide-key-round",{"title":216,"path":217,"stem":218,"icon":219},"RBAC","\u002Fhu\u002Fauth\u002Frbac","hu\u002F06.auth\u002F2.rbac","i-lucide-users",{"title":221,"path":222,"stem":223,"icon":224},"Policy-k","\u002Fhu\u002Fauth\u002Fpolicy","hu\u002F06.auth\u002F3.policy","i-lucide-gavel",{"title":226,"path":227,"stem":228,"icon":229},"Az auth önálló használata","\u002Fhu\u002Fauth\u002Fstandalone","hu\u002F06.auth\u002F4.standalone","i-lucide-plug",{"title":231,"path":232,"stem":233,"icon":157},"Social login goth-tal, önállóan","\u002Fhu\u002Fauth\u002Fsocial-standalone","hu\u002F06.auth\u002F5.social-standalone",{"title":235,"icon":236,"path":237,"stem":238,"children":239,"page":44},"dbx","i-lucide-database","\u002Fhu\u002Fdbx","hu\u002F07.dbx",[240,243,247,251,256],{"title":52,"path":241,"stem":242,"icon":236},"\u002Fhu\u002Fdbx\u002Foverview","hu\u002F07.dbx\u002F1.overview",{"title":244,"path":245,"stem":246,"icon":229},"pgx","\u002Fhu\u002Fdbx\u002Fpg","hu\u002F07.dbx\u002F2.pg",{"title":248,"path":249,"stem":250,"icon":184},"bun","\u002Fhu\u002Fdbx\u002Fbunx","hu\u002F07.dbx\u002F3.bunx",{"title":252,"path":253,"stem":254,"icon":255},"Tranzakciók","\u002Fhu\u002Fdbx\u002Ftransactions","hu\u002F07.dbx\u002F4.transactions","i-lucide-git-merge",{"title":257,"path":258,"stem":259,"icon":79},"Seederek","\u002Fhu\u002Fdbx\u002Fseed","hu\u002F07.dbx\u002F5.seed",{"title":261,"icon":193,"path":262,"stem":263,"children":264,"page":44},"envconf","\u002Fhu\u002Fenvconf","hu\u002F08.envconf",[265,268],{"title":52,"path":266,"stem":267,"icon":193},"\u002Fhu\u002Fenvconf\u002Foverview","hu\u002F08.envconf\u002F1.overview",{"title":269,"path":270,"stem":271,"icon":193},"Receptek","\u002Fhu\u002Fenvconf\u002Frecipes","hu\u002F08.envconf\u002F2.recipes",{"title":273,"icon":189,"path":274,"stem":275,"children":276,"page":44},"errs","\u002Fhu\u002Ferrs","hu\u002F09.errs",[277,280,284],{"title":52,"path":278,"stem":279,"icon":189},"\u002Fhu\u002Ferrs\u002Foverview","hu\u002F09.errs\u002F1.overview",{"title":281,"path":282,"stem":283,"icon":189},"API","\u002Fhu\u002Ferrs\u002Fapi","hu\u002F09.errs\u002F2.api",{"title":285,"path":286,"stem":287,"icon":189},"Integráció","\u002Fhu\u002Ferrs\u002Fintegration","hu\u002F09.errs\u002F3.integration",{"title":289,"icon":290,"path":291,"stem":292,"children":293,"page":44},"events","i-lucide-workflow","\u002Fhu\u002Fevents","hu\u002F10.events",[294,298,303],{"title":295,"path":296,"stem":297,"icon":147},"Események","\u002Fhu\u002Fevents\u002Foverview","hu\u002F10.events\u002F1.overview",{"title":299,"path":300,"stem":301,"icon":302},"Outbox","\u002Fhu\u002Fevents\u002Foutbox","hu\u002F10.events\u002F2.outbox","i-lucide-inbox",{"title":304,"path":305,"stem":306,"icon":307},"Ütemezés","\u002Fhu\u002Fevents\u002Fscheduler","hu\u002F10.events\u002F3.scheduler","i-lucide-calendar-clock",{"title":309,"icon":310,"path":311,"stem":312,"children":313,"page":44},"httperr","i-lucide-globe","\u002Fhu\u002Fhttperr","hu\u002F11.httperr",[314,317,322],{"title":52,"path":315,"stem":316,"icon":310},"\u002Fhu\u002Fhttperr\u002Foverview","hu\u002F11.httperr\u002F1.overview",{"title":318,"path":319,"stem":320,"icon":321},"Hibaválaszok","\u002Fhu\u002Fhttperr\u002Ferror-responses","hu\u002F11.httperr\u002F2.error-responses","i-lucide-octagon-alert",{"title":323,"path":324,"stem":325,"icon":326},"Validáció","\u002Fhu\u002Fhttperr\u002Fvalidation","hu\u002F11.httperr\u002F3.validation","i-lucide-badge-check",{"title":328,"icon":329,"path":330,"stem":331,"children":332,"page":44},"logx","i-lucide-scroll-text","\u002Fhu\u002Flogx","hu\u002F12.logx",[333,336],{"title":52,"path":334,"stem":335,"icon":329},"\u002Fhu\u002Flogx\u002Foverview","hu\u002F12.logx\u002F1.overview",{"title":337,"path":338,"stem":339,"icon":47},"Monolog-formázó","\u002Fhu\u002Flogx\u002Fmonolog","hu\u002F12.logx\u002F2.monolog",{"title":341,"icon":342,"path":343,"stem":344,"children":345,"page":44},"mail","i-lucide-mail","\u002Fhu\u002Fmail","hu\u002F13.mail",[346,349,353],{"title":52,"path":347,"stem":348,"icon":342},"\u002Fhu\u002Fmail\u002Foverview","hu\u002F13.mail\u002F1.overview",{"title":350,"path":351,"stem":352,"icon":342},"SMTP","\u002Fhu\u002Fmail\u002Fsmtp","hu\u002F13.mail\u002F2.smtp",{"title":354,"path":355,"stem":356,"icon":342},"MJML","\u002Fhu\u002Fmail\u002Fmjml","hu\u002F13.mail\u002F3.mjml",{"title":358,"icon":359,"path":360,"stem":361,"children":362,"page":44},"notify","i-lucide-bell","\u002Fhu\u002Fnotify","hu\u002F14.notify",[363,366,370],{"title":52,"path":364,"stem":365,"icon":359},"\u002Fhu\u002Fnotify\u002Foverview","hu\u002F14.notify\u002F1.overview",{"title":367,"path":368,"stem":369,"icon":359},"Database csatorna","\u002Fhu\u002Fnotify\u002Fdatabase","hu\u002F14.notify\u002F2.database",{"title":371,"path":372,"stem":373,"icon":359},"Broadcast csatorna","\u002Fhu\u002Fnotify\u002Fbroadcast","hu\u002F14.notify\u002F3.broadcast",{"title":375,"icon":376,"path":377,"stem":378,"children":379,"page":44},"paginate","i-lucide-list-ordered","\u002Fhu\u002Fpaginate","hu\u002F15.paginate",[380,383],{"title":52,"path":381,"stem":382,"icon":376},"\u002Fhu\u002Fpaginate\u002Foverview","hu\u002F15.paginate\u002F1.overview",{"title":384,"path":385,"stem":386,"icon":39},"Cursor-lapozás","\u002Fhu\u002Fpaginate\u002Fcursor","hu\u002F15.paginate\u002F2.cursor",{"title":388,"icon":184,"path":389,"stem":390,"children":391,"page":44},"queue","\u002Fhu\u002Fqueue","hu\u002F16.queue",[392,395],{"title":52,"path":393,"stem":394,"icon":376},"\u002Fhu\u002Fqueue\u002Foverview","hu\u002F16.queue\u002F1.overview",{"title":396,"path":397,"stem":398,"icon":184},"Taskok","\u002Fhu\u002Fqueue\u002Ftasks","hu\u002F16.queue\u002F2.tasks",{"title":400,"icon":401,"path":402,"stem":403,"children":404,"page":44},"storage","i-lucide-hard-drive","\u002Fhu\u002Fstorage","hu\u002F17.storage",[405,408,412,416,421],{"title":52,"path":406,"stem":407,"icon":401},"\u002Fhu\u002Fstorage\u002Foverview","hu\u002F17.storage\u002F1.overview",{"title":409,"path":410,"stem":411,"icon":401},"Disk API","\u002Fhu\u002Fstorage\u002Fdisk-api","hu\u002F17.storage\u002F2.disk-api",{"title":413,"path":414,"stem":415,"icon":401},"Memória és helyi lemez","\u002Fhu\u002Fstorage\u002Flocal","hu\u002F17.storage\u002F3.local",{"title":417,"path":418,"stem":419,"icon":420},"S3","\u002Fhu\u002Fstorage\u002Fs3","hu\u002F17.storage\u002F4.s3","i-lucide-cloud",{"title":422,"path":423,"stem":424,"icon":425},"Tesztelés","\u002Fhu\u002Fstorage\u002Ftesting","hu\u002F17.storage\u002F5.testing","i-lucide-flask-conical",{"title":427,"icon":428,"path":429,"stem":430,"children":431,"page":44},"telemetry","i-lucide-activity","\u002Fhu\u002Ftelemetry","hu\u002F18.telemetry",[432,435,439,444],{"title":52,"path":433,"stem":434,"icon":428},"\u002Fhu\u002Ftelemetry\u002Foverview","hu\u002F18.telemetry\u002F1.overview",{"title":436,"path":437,"stem":438,"icon":329},"Logolás","\u002Fhu\u002Ftelemetry\u002Flogging","hu\u002F18.telemetry\u002F2.logging",{"title":440,"path":441,"stem":442,"icon":443},"OpenTelemetry","\u002Fhu\u002Ftelemetry\u002Fopentelemetry","hu\u002F18.telemetry\u002F3.opentelemetry","i-lucide-radar",{"title":445,"path":446,"stem":447,"icon":448},"Sentry","\u002Fhu\u002Ftelemetry\u002Fsentry","hu\u002F18.telemetry\u002F4.sentry","i-lucide-bug",{"id":450,"title":126,"body":451,"description":800,"extension":801,"links":802,"meta":803,"navigation":804,"path":127,"seo":805,"stem":128,"__hash__":806},"docs_hu\u002Fhu\u002F03.framework\u002F1.overview.md",{"type":452,"value":453,"toc":792},"minimark",[454,473,478,580,602,606,648,651,654,679,691,706,716,720,737,741,788],[455,456,457,458,462,463,468,469,472],"p",{},"A ",[459,460,461],"code",{},"github.com\u002Fgp-system\u002Fframework"," egy vékony chassis ",[464,465,467],"a",{"href":466},"\u002Fhu\u002Fconcepts\u002Farchitecture#modult%C3%A9rk%C3%A9p","14 önálló Go-modul"," fölött: minden modul (hibakezelés, config-betöltés, adatbázis-réteg, async-stack, auth, mail, notification, storage, telemetria, ...) saját repóval és saját ",[459,470,471],{},"go.mod","-dal rendelkezik, egymástól függetlenül verziózva, önmagában is használható bármely Go-programban. Ami a frameworkben maradt: egy scaffolding CLI és négy futásidejű chassis-csomag, ami futó service-szé komponálja ezeket a modulokat.",[474,475,477],"h2",{"id":476},"mi-van-a-frameworkben","Mi van a frameworkben",[479,480,481,494],"table",{},[482,483,484],"thead",{},[485,486,487,491],"tr",{},[488,489,490],"th",{},"Csomag",[488,492,493],{},"Mit csinál",[495,496,497,510,535,547,559],"tbody",{},[485,498,499,507],{},[500,501,502],"td",{},[464,503,504],{"href":131},[459,505,506],{},"app",[500,508,509],{},"a signal-vezérelt graceful-shutdown folyamat-életciklus, amin minden más chassis-csomag ül: drain, closerek (LIFO), telemetria-flush",[485,511,512,519],{},[500,513,514],{},[464,515,516],{"href":136},[459,517,518],{},"server",[500,520,521,522,525,526,525,529,525,532],{},"a chi-alapú HTTP-chassis: ",[459,523,524],{},"Config",", ",[459,527,528],{},"Run",[459,530,531],{},"RegisterFunc",[459,533,534],{},"StrictValidator",[485,536,537,544],{},[500,538,539],{},[464,540,541],{"href":141},[459,542,543],{},"worker",[500,545,546],{},"a háttérfeldolgozás-chassis: asynq szerver + outbox relay + schedule runner, egyetlen binárisban",[485,548,549,556],{},[500,550,551],{},[464,552,553],{"href":145},[459,554,555],{},"realtime",[500,557,558],{},"a centrifuge-alapú WebSocket\u002FSSE gateway, ami notificationöket pushol a csatlakozott kliensekhez",[485,560,561,568],{},[500,562,563],{},[464,564,565],{"href":53},[459,566,567],{},"cmd\u002Fgpsystem",[500,569,570,571,525,573,525,575,525,577,579],{},"a scaffolding CLI: ",[459,572,81],{},[459,574,86],{},[459,576,91],{},[459,578,101],{},", és a többi generátor",[455,581,582,583,586,587,590,591,594,595,598,599,601],{},"Mellettük két, framework-generált (nem önálló modul) téma is él, mert nincs saját modulotthonuk: a ",[464,584,585],{"href":150},"migrációk"," (a ",[459,588,589],{},"cmd\u002Fmigrate"," konvenció, a ",[459,592,593],{},"dbx\u002Fpg","-re épülve) és a ",[464,596,597],{"href":155},"social login"," (OAuth2-provider bekötés az ",[459,600,205],{}," modulra építve).",[474,603,605],{"id":604},"komponáló-framework-nem-wrapper","Komponáló framework, nem wrapper",[455,607,608,609,613,614,617,618,621,622,625,626,629,630,634,635,525,638,525,641,644,645,647],{},"A framework nem rejti a modulokat interfész, container vagy facade mögé: ",[610,611,612],"strong",{},"komponálja"," őket. A ",[459,615,616],{},"server.Run",", a ",[459,619,620],{},"worker.Run"," és a ",[459,623,624],{},"realtime.Run"," a 14 modul egy-egy kiválasztott részhalmazát drótozza be futtatható processzé, és a CLI legenerálja ezt a drótozást, így ritkán írod kézzel, de maga a drótozás sima, explicit Go-kód marad a ",[459,627,628],{},"main.go","-dban. Ez ugyanaz a ",[464,631,633],{"href":632},"\u002Fhu\u002Fconcepts\u002Farchitecture#centraliz%C3%A1l-nem-absztrah%C3%A1l","\"centralizálj, ne absztrahálj\""," elv, amire az egész projekt épül: a mögöttes libek nyers típusai (",[459,636,637],{},"chi.Router",[459,639,640],{},"*asynq.Task",[459,642,643],{},"centrifuge.Node",") láthatók a framework saját API-jában, nincsenek elrejtve. A teljes modultérképet, ami fölé ez a vékony réteg épül, az ",[464,646,181],{"href":182}," oldal mutatja.",[474,649,16],{"id":650},"telepítés",[455,652,653],{},"A CLI-hez:",[655,656,661],"pre",{"className":657,"code":658,"language":659,"meta":660,"style":660},"language-sh shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","go install github.com\u002Fgp-system\u002Fframework\u002Fcmd\u002Fgpsystem@latest\n","sh","",[459,662,663],{"__ignoreMap":660},[664,665,668,672,676],"span",{"class":666,"line":667},"line",1,[664,669,671],{"class":670},"sBMFI","go",[664,673,675],{"class":674},"sfazB"," install",[664,677,678],{"class":674}," github.com\u002Fgp-system\u002Fframework\u002Fcmd\u002Fgpsystem@latest\n",[455,680,681,682,525,684,525,686,525,688,690],{},"A chassis-csomagok (",[459,683,506],{},[459,685,518],{},[459,687,543],{},[459,689,555],{},") használatához egy projektben:",[655,692,694],{"className":657,"code":693,"language":659,"meta":660,"style":660},"go get github.com\u002Fgp-system\u002Fframework@latest\n",[459,695,696],{"__ignoreMap":660},[664,697,698,700,703],{"class":666,"line":667},[664,699,671],{"class":670},[664,701,702],{"class":674}," get",[664,704,705],{"class":674}," github.com\u002Fgp-system\u002Fframework@latest\n",[455,707,708,709,712,713,715],{},"Egy új projekt ",[459,710,711],{},"gpsystem new project","-tel való scaffoldolása ezt a függőséget automatikusan felveszi a generált ",[459,714,471],{},"-ba, tehát a második parancsot ritkán futtatod kézzel; főleg akkor számít, ha egy meglévő, kézzel épített projektbe kötsz be egy chassis-csomagot.",[474,717,719],{"id":718},"miért-használd-egyáltalán-a-frameworköt","Miért használd egyáltalán a frameworköt",[455,721,722,723,725,726,617,728,730,731,733,734,647],{},"Semmi itt nem kötelező. A 14 modul mindegyike önmagában is működik, bármilyen Go-programban, framework nélkül: a ",[459,724,593],{},", az ",[459,727,205],{},[459,729,388],{}," és a többi nulla függőséggel bír a ",[459,732,461],{},"-től. A framework azért létezik, hogy megkíméljen az életciklus, a telemetria-bootstrap, a HTTP-routing és a worker-\u002Ftask-dispatch kézi bedrótozásától, valamint a TypeSpec→OpenAPI→szerverkód generátorok megírásától, amik egy specifikációból futtatható surface-t csinálnak. Ha ezt nem akarod (mondjuk egyetlen modult kötnél be egy meglévő service-be), hagyd ki a frameworköt, és importáld közvetlenül a szükséges modulokat; hogy a darabok hogyan illeszkednek egymáshoz akár így, akár úgy, azt a ",[464,735,736],{"href":12},"Getting started",[474,738,740],{"id":739},"merre-tovább","Merre tovább",[742,743,744,754,759,764,769,777,782],"ul",{},[745,746,747,749,750,753],"li",{},[464,748,130],{"href":131},": a közös ",[459,751,752],{},"app.Run"," váz.",[745,755,756,758],{},[464,757,135],{"href":136},": a HTTP-chassis.",[745,760,761,763],{},[464,762,140],{"href":141},": a háttérfeldolgozás-chassis.",[745,765,766,768],{},[464,767,144],{"href":145},": a WebSocket\u002FSSE gateway.",[745,770,771,773,774,776],{},[464,772,149],{"href":150},": a ",[459,775,589],{}," konvenció.",[745,778,779,781],{},[464,780,154],{"href":155},": OAuth2-provider bekötés.",[745,783,784,787],{},[464,785,786],{"href":53},"CLI áttekintő",": a scaffolding parancsok.",[789,790,791],"style",{},"html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":660,"searchDepth":793,"depth":793,"links":794},2,[795,796,797,798,799],{"id":476,"depth":793,"text":477},{"id":604,"depth":793,"text":605},{"id":650,"depth":793,"text":16},{"id":718,"depth":793,"text":719},{"id":739,"depth":793,"text":740},"Mi maradt a vékony gpsystem frameworkben, és hogyan komponálja az önálló modulokat.","md",null,{},{"icon":99},{"title":126,"description":800},"1M0M9qnSV_6R59-_17BFSvG1GePOMBS6pgr6ENp5tAQ",[808,810],{"title":116,"path":117,"stem":118,"description":809,"icon":119,"children":-1},"Nevesített adatbázis-kapcsolat hozzáadása egy modulhoz, saját poollal és connectorral.",{"title":130,"path":131,"stem":132,"description":811,"icon":133,"children":-1},"Az app csomag: signal-vezérelt graceful shutdown, amin minden gpsystem bináris ül.",1787346805051]