{"id":121950,"date":"2025-02-15T14:22:29","date_gmt":"2025-02-15T12:22:29","guid":{"rendered":"https:\/\/prohoster.info\/blog\/novosti-interneta\/go-1-24"},"modified":"2025-02-15T14:22:29","modified_gmt":"2025-02-15T12:22:29","slug":"go-1-24","status":"publish","type":"post","link":"https:\/\/prohoster.info\/sq\/blog\/novosti-interneta\/go-1-24","title":{"rendered":"Go 1.24","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><a rel=\"nofollow\" href=\"https:\/\/www.linux.org.ru\/images\/21754\/original.png\" itemprop=\"contentURL\">            <img decoding=\"async\" alt=\"Go 1.24\" src=\"\/wp-content\/uploads\/2025\/02\/6d6299421d83951d055782658814425f.jpg\" style=\"display:block;margin: 0 auto;\" \/>                   <\/a>                       <noindex>      <noindex><\/p>\n<p>Shq release i ri i gjuh\u00ebs Go, versioni 1.24, del pas gjasht\u00eb muajve <a rel=\"nofollow\" href=\"https:\/\/go.dev\/doc\/go1.23\">Go 1.23<\/a>. Shumica e ndryshimeve jan\u00eb n\u00eb implementimin e mjeteve, runtime dhe biblioteka. Si gjithmon\u00eb, ky version garanton <a rel=\"nofollow\" href=\"https:\/\/go.dev\/doc\/go1compat\">premtimin e kompatibilitetit<\/a> Go 1. Zhvilluesit e gjuh\u00ebs presin q\u00eb pothuajse t\u00eb gjitha programet Go t\u00eb vazhdojn\u00eb t\u00eb kompilohet dhe t\u00eb funksionoj\u00eb si m\u00eb par\u00eb.<\/p>\n<p><\/noindex><\/noindex>  <\/p>\n<h2>Ndryshime n\u00eb gjuh\u00eb<\/h2>\n<p> <noindex><\/p>\n<p>Go 1.24 tani mb\u00ebshtet plot\u00ebsisht <a rel=\"nofollow\" href=\"https:\/\/go.dev\/issue\/46477\">aliaset e p\u00ebrgjithshme t\u00eb tipeve<\/a>: aliasi i tipit mund t\u00eb jet\u00eb parametrizuar si nj\u00eb tip i deklaruar. Detajet mund t\u00eb gjenden n\u00eb <a rel=\"nofollow\" href=\"https:\/\/go.dev\/ref\/spec#Alias_declarations\">specifikimin e gjuh\u00ebs<\/a>. P\u00ebr actualmente, mund\u00ebsia mund t\u00eb \u00e7aktivizohet duke vendosur GOEXPERIMENT=noaliastypeparams; megjithat\u00eb, opsioni aliastypeparams do t\u00eb eliminohet n\u00eb Go 1.25.<\/p>\n<p><\/noindex> <\/p>\n<h2>Mjetet<\/h2>\n<h3>Ekipi go<\/h3>\n<p> <noindex><\/p>\n<p>Modulet go tani mund t\u00eb ndjekin var\u00ebsit\u00eb ekzekutues duke p\u00ebrdorur direktiv\u00ebn tool n\u00eb go.mod. Kjo heq nevoj\u00ebn p\u00ebr nj\u00eb zgjidhje an\u00ebsore t\u00eb m\u00ebparshme p\u00ebr t\u00eb shtuar mjete si importe bosh n\u00eb skedarin, zakonisht t\u00eb quajtur \u201ctools.go\u201d. Ekipi go tool tani mund t\u00eb ekzekutoj\u00eb k\u00ebto mjete p\u00ebrve\u00e7 mjeteve t\u00eb ofruara me Go. Informacione m\u00eb t\u00eb sakta mund t\u00eb shihen n\u00eb <a rel=\"nofollow\" href=\"https:\/\/go.dev\/doc\/modules\/managing-dependencies#tools\">dokumentacion<\/a>.<\/p>\n<p><\/noindex> <\/p>\n<p>Flagu i ri -tool p\u00ebr go get \u00e7on n\u00eb shtimin e direktiv\u00ebs s\u00eb mjetit n\u00eb modul aktual p\u00ebr paketat e specifikuara, p\u00ebrve\u00e7 shtimit t\u00eb direktivave t\u00eb k\u00ebrkesave.<\/p>\n<p> <noindex><\/p>\n<p>E re <a rel=\"nofollow\" href=\"https:\/\/go.dev\/cmd\/go#hdr-Package_lists_and_patterns\">meta-shtes\u00eb tool<\/a> i referohet t\u00eb gjitha mjeteve n\u00eb modul aktual. Kjo mund t\u00eb p\u00ebrdoret p\u00ebr t\u00eb p\u00ebrdit\u00ebsuar t\u00eb gjitha ato p\u00ebrmes go get tool ose p\u00ebr t'i instaluar ato n\u00eb drejtoryn\u00eb tuaj GOBIN p\u00ebrmes go install tool.<\/p>\n<p><\/noindex> <noindex><\/p>\n<p>Skedar\u00ebt ekzekutiv\u00eb t\u00eb krijuar p\u00ebrmes go run dhe sjellja e re e go tool tani ruhen n\u00eb cache-n e nd\u00ebrtimit Go. Kjo e b\u00ebn ekzekutimin e p\u00ebrs\u00ebritur m\u00eb t\u00eb shpejt\u00eb p\u00ebr shkak t\u00eb cache-it t\u00eb rritur. <a rel=\"nofollow\" href=\"https:\/\/go.dev\/issue\/69290\">#69290<\/a>.<\/p>\n<p><\/noindex> <\/p>\n<p>Komandat go build dhe go install tani pranojn\u00eb flamurin -json, i cili raporton daljet dhe gabimet e nd\u00ebrtimit si nj\u00eb dalje t\u00eb strukturuar JSON n\u00eb standardin e daljes. Detajet e formatit mund t\u00eb shihni n\u00eb go help buildjson.<\/p>\n<p> <noindex><\/p>\n<p>P\u00ebr m\u00eb tep\u00ebr, go test -json tani raporton daljet dhe gabimet e nd\u00ebrtimit n\u00eb JSON, s\u00eb bashku me rezultatin e testimit n\u00eb JSON. Ato mund t\u00eb dallohen nga tipet e reja t\u00eb Veprimit, por n\u00ebse krijojn\u00eb probleme n\u00eb sistemin e integrimit t\u00eb testeve, mund t\u00eb riktheheni n\u00eb daljen tekstuale t\u00eb nd\u00ebrtimit p\u00ebrmes <a rel=\"nofollow\" href=\"https:\/\/go.dev\/doc\/godebug\">konfigurimit GODEBUG<\/a> gotestjsonbuildtext=1.<\/p>\n<p><\/noindex> <\/p>\n<p>Variab\u00ebl e re e mjedisit GOAUTH ofron nj\u00eb m\u00ebnyr\u00eb fleksibile p\u00ebr autentifikimin e t\u00ebrheqjeve private t\u00eb moduleve. Detajet mund t\u00eb shihen n\u00eb go help goauth.<\/p>\n<p> <noindex><\/p>\n<p>Komanda go build tani instaluar <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/runtime\/debug#BuildInfo.Main\">versionin e modulit kryesor<\/a> n\u00eb binarin e kompiluar, duke u bazuar n\u00eb etiket\u00ebn dhe\/ose komentin e sistemit t\u00eb kontrollit t\u00eb versions. Shtesa +dirty do t\u00eb shtohet n\u00ebse ka ndryshime t\u00eb pa komituara. Mund t\u00eb p\u00ebrdorni flag -buildvcs=false p\u00ebr t\u00eb l\u00ebn\u00eb jasht\u00eb informacionin e kontrollit t\u00eb versions nga binari.<\/p>\n<p><\/noindex> <noindex><\/p>\n<p>E re <a rel=\"nofollow\" href=\"https:\/\/go.dev\/doc\/godebug\">konfigurimi GODEBUG<\/a> <a rel=\"nofollow\" href=\"https:\/\/go.dev\/doc\/toolchain#select\">toolchaintrace=1<\/a> tani mund t\u00eb p\u00ebrdoret p\u00ebr t\u00eb ndjekur procesin e zgjedhjes s\u00eb toolchain n\u00eb komand\u00ebn go.<\/p>\n<p><\/noindex> <\/p>\n<h3>Cgo<\/h3>\n<p> <noindex><\/p>\n<p>Cgo mb\u00ebshtet annotime t\u00eb reja p\u00ebr funksionet C p\u00ebr t\u00eb p\u00ebrmir\u00ebsuar performanc\u00ebn n\u00eb koh\u00eb reale. #cgo noescape cFunctionName i thot\u00eb kompajlerit q\u00eb memoria e kaluar n\u00eb funksionin C cFunctionName nuk ik\u00ebn. #cgo nocallback cFunctionName i thot\u00eb kompajlerit q\u00eb funksioni C cFunctionName nuk th\u00ebrret asnj\u00eb funksion Go prapa. M\u00eb shum\u00eb informacion mund t\u00eb shihet n\u00eb <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/cmd\/cgo#hdr-Optimizing_calls_of_C_code\">dokumentacionin cgo<\/a>.<\/p>\n<p><\/noindex> <noindex><\/p>\n<p>Cgo tani po refuzon t\u00eb kompiloj\u00eb thirrjet e funksionit C, i cili ka shpallje t\u00eb shumta t\u00eb pap\u00ebrshtatshme. P\u00ebr shembull, n\u00ebse f shpallet si nj\u00ebkoh\u00ebsisht void f(int) dhe void f(double), cgo do t\u00eb raportoj\u00eb nj\u00eb gabim n\u00eb vend q\u00eb t\u00eb gjeneroj\u00eb nj\u00eb sekuenc\u00eb t\u00eb gabuar thirrjeje f(0). E reja n\u00eb k\u00ebt\u00eb version \u00ebsht\u00eb p\u00ebrmir\u00ebsimi i zb ke\u015ftimit t\u00eb k\u00ebtij kushti t\u00eb gabimit, kur shpalljet jo t\u00eb p\u00ebrshtatshme shfaqen n\u00eb skedar\u00eb t\u00eb ndrysh\u00ebm. <a rel=\"nofollow\" href=\"https:\/\/go.dev\/issue\/67699\">#67699<\/a>.<\/p>\n<p><\/noindex> <\/p>\n<h3>Objdump<\/h3>\n<p>Mjeti objdump tani mb\u00ebshtet derisa n\u00eb 64-bit LoongArch (GOARCH=loong64), RISC-V (GOARCH=riscv64) dhe S390X (GOARCH=s390x).<\/p>\n<h3>Vet<\/h3>\n<p>Analizatori i ri i testeve raporton gabimet m\u00eb t\u00eb zakonshme n\u00eb shpalljet e testeve, fuzzers, benchmarke dhe shembuj n\u00eb paketat e testeve, t\u00eb tilla si emra t\u00eb formuluar gabim, n\u00ebnshkrime t\u00eb pavlefshme ose shembuj q\u00eb dokumentojn\u00eb identifikues q\u00eb nuk ekzistojn\u00eb. Disa nga k\u00ebto gabime mund t\u00eb shkaktojn\u00eb moskryerjen e testeve.<\/p>\n<p> <noindex><\/p>\n<p>Analizuesi ekzistues printf tani raporton diagnostik\u00ebn e thirrjeve t\u00eb form\u00ebs fmt.Printf(s), ku s \u00ebsht\u00eb nj\u00eb varg i form\u00ebs jo-konstante, pa argumente t\u00eb tjera. K\u00ebto thirrje jan\u00eb pothuajse gjithmon\u00eb gabim, pasi vlera e s mund t\u00eb p\u00ebrmbaj\u00eb simbolin %; p\u00ebrdorni n\u00eb vend t\u00eb k\u00ebsaj fmt.Print. <a rel=\"nofollow\" href=\"https:\/\/go.dev\/issue\/60529\">60529<\/a>. Kjo kontrollim ka tendenc\u00eb t\u00eb b\u00ebj\u00eb gjetje n\u00eb kodin ekzistues, dhe prandaj aplikohet vet\u00ebm kur \u0432\u0435\u0440\u0441\u0438\u044f e gjuh\u00ebs (si\u00e7 tregohet nga direktiva go e skedarit go.mod ose komentet `\/\/go:build`) \u00ebsht\u00eb t\u00eb pakt\u00ebn Go 1.24, p\u00ebr t\u00eb shmangur d\u00ebshtimet e integrimit t\u00eb vazhduesh\u00ebm kur azhurnohet n\u00eb mjetin Go 1.24.<\/p>\n<p><\/noindex> <noindex><\/p>\n<p>Analizuesi ekzistues buildtag tani raporton diagnostik\u00ebn kur ka nj\u00eb <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/cmd\/go#hdr-Build_constraints\">kufizim nd\u00ebrtimi versioni t\u00eb lart\u00eb<\/a> Go n\u00eb direktiv\u00ebn \/\/go:build. P\u00ebr shembull, \/\/go:build go1.23.1 i referohet nj\u00eb versioni t\u00eb sakt\u00eb; p\u00ebrdorni n\u00eb vend t\u00eb k\u00ebsaj \/\/go:build go1.23. <a rel=\"nofollow\" href=\"https:\/\/go.dev\/issue\/64127\">#64127<\/a>.<\/p>\n<p><\/noindex> <noindex><\/p>\n<p>Analizuesi ekzistues copylock tani raporton diagnostik\u00ebn kur nj\u00eb variab\u00ebl, e shpallur n\u00eb nj\u00eb cik\u00ebl t\u00eb trefisht\u00eb \u201cfor\u201d, si for i := iter(); done(i); i = next(i) { \u2026 }, p\u00ebrmban sync.Locker, si\u00e7 \u00ebsht\u00eb sync.Mutex. <a rel=\"nofollow\" href=\"https:\/\/go.dev\/doc\/go1.22#language\">Go 1.22<\/a> ka ndryshuar sjelljen e cikleve t\u00eb tilla n\u00eb krijimin e nj\u00eb variabli t\u00eb ri p\u00ebr \u00e7do iterim, duke kopjuar vlerat nga iterimi i m\u00ebparsh\u00ebm; kjo kopjim nuk \u00ebsht\u00eb i sigurt p\u00ebr loket. <a rel=\"nofollow\" href=\"https:\/\/go.dev\/issue\/66387\">#66387<\/a>.<\/p>\n<p><\/noindex> <\/p>\n<h3>GOCACHEPROG<\/h3>\n<p> <noindex><\/p>\n<p>Binar i brendsh\u00ebm cmd\/go dhe mekanizmi i caching t\u00eb testeve tani mund t\u00eb implementohen nga procese dyt\u00ebsore, q\u00eb implementojn\u00eb protokollin JSON midis mjetit cmd\/go dhe procesit dyt\u00ebsor, t\u00eb quajtur variabla e ambientit GOCACHEPROG. M\u00eb par\u00eb kjo ishte p\u00ebr GOEXPERIMENT. Detajet e protokollit mund t\u00eb shihen n\u00eb <a rel=\"nofollow\" href=\"https:\/\/go.dev\/cmd\/go\/internal\/cacheprog\">dokumentacion<\/a>.<\/p>\n<p><\/noindex> <\/p>\n<h2>Koha e ekzekutimit<\/h2>\n<p> <noindex><\/p>\n<p>Disa p\u00ebrmir\u00ebsime t\u00eb performanc\u00ebs n\u00eb runtime reduktuan cost-in e CPU-s me 2-3% n\u00eb mesatare p\u00ebr nj\u00eb gam\u00eb p\u00ebrfaq\u00ebsuese t\u00eb benchmark-eve. Rezultatet mund t\u00eb variojn\u00eb n\u00eb var\u00ebsi t\u00eb aplikacionit. K\u00ebto p\u00ebrmir\u00ebsime p\u00ebrfshijn\u00eb nj\u00eb implementim t\u00eb ri t\u00eb integruar t\u00eb map n\u00eb baz\u00eb t\u00eb <a rel=\"nofollow\" href=\"https:\/\/abseil.io\/about\/design\/swisstables\">Tabela Suedeze<\/a>, ndarjes m\u00eb efikase t\u00eb memories p\u00ebr objekte t\u00eb vogla dhe nj\u00eb implementim t\u00eb ri t\u00eb brendsh\u00ebm t\u00eb mutex-it n\u00eb runtime.<\/p>\n<p><\/noindex> <\/p>\n<p>Implementimi i ri i integruar i map dhe mutex-i i ri i brendsh\u00ebm n\u00eb runtime mund t\u00eb jen\u00eb t\u00eb \u00e7aktivizuar me parametrat GOEXPERIMENT=noswissmap dhe GOEXPERIMENT=nospinbitmutex gjat\u00eb nd\u00ebrtimit p\u00ebrkat\u00ebsisht.<\/p>\n<h2>Kompilatori<\/h2>\n<p>Kompiluesi tashm\u00eb ndalonte p\u00ebrcaktimin e metodave t\u00eb reja me tipe marr\u00ebsish t\u00eb gjeneruar nga cgo, por ishte e mundur t\u00eb anashkalohej ky kufizim p\u00ebrmes aliasit t\u00eb tipit. Go 1.24 tani raporton gjithmon\u00eb nj\u00eb gabim n\u00ebse marr\u00ebsi tregon nj\u00eb tip t\u00eb gjeneruar nga cgo, drejtp\u00ebrdrejt ose t\u00ebrthorazi (p\u00ebrmes tipit t\u00eb aliasit).<\/p>\n<h2>Lidh\u00ebsi<\/h2>\n<p>Lidh\u00ebsi tani gjeneron nj\u00eb identifikues nd\u00ebrtimi GNU (sh\u00ebnim ELF NT_GNU_BUILD_ID) n\u00eb platformat ELF dhe UUID (komanda ngarkimit Mach-O LC_UUID) n\u00eb macOS si standard. Identifikuesi i nd\u00ebrtimit ose UUID del nga identifikuesi i nd\u00ebrtimit Go. Kjo mund t\u00eb ndalohet me flagun e lidh\u00ebsit -B none, ose t\u00eb ridifinohet me flagun e lidh\u00ebsit -B 0xNNNN me nj\u00eb vler\u00eb t\u00eb dh\u00ebn\u00eb n\u00eb sistemin heksadecimal nga p\u00ebrdoruesi.<\/p>\n<h2>Zhvillim<\/h2>\n<p> <noindex><\/p>\n<p>Si\u00e7 u tha n\u00eb <a rel=\"nofollow\" href=\"https:\/\/go.dev\/doc\/go1.22#bootstrap\">sh\u00ebnimet e botimit Go 1.22<\/a>, Go 1.24 tani k\u00ebrkon p\u00ebr zhvillim Go 1.22.6 ose m\u00eb von\u00eb. Zhvilluesit presin q\u00eb Go 1.26 do t\u00eb k\u00ebrkoj\u00eb p\u00ebr zhvillim nj\u00eb version t\u00eb ve\u00e7ant\u00eb Go 1.24 ose m\u00eb von\u00eb.<\/p>\n<p><\/noindex> <\/p>\n<h2>Biblioteka standarde<\/h2>\n<h3>Qasja e kufizuar n\u00eb sistemin e skedave me direktorin\u00eb<\/h3>\n<p> <noindex><\/p>\n<p>Tipi i ri <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/os#Root\">os.Root<\/a> jep mund\u00ebsin\u00eb p\u00ebr t\u00eb kryer operacione n\u00eb skedar\u00ebt brenda nj\u00eb direktorie t\u00eb caktuar.<\/p>\n<p><\/noindex> <noindex><\/p>\n<p>Funksioni <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/os#OpenRoot\">os.OpenRoot<\/a> hap direktorin\u00eb dhe kthen <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/os#Root\">os.Root<\/a>. Metodat mbi <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/os#Root\">os.Root<\/a> operon n\u00eb k\u00ebt\u00eb direktorium dhe nuk lejojn\u00eb rrug\u00ebt t\u00eb referojn\u00eb n\u00eb vende jasht\u00eb direktoriumit, duke p\u00ebrfshir\u00eb ato q\u00eb ndjekin lidhjet simbolike jasht\u00eb direktoriumit. Metodat n\u00eb os.Root pasqyrojn\u00eb shumic\u00ebn e operacioneve t\u00eb sistemit t\u00eb skedar\u00ebve t\u00eb disponueshme n\u00eb paket\u00ebn os, p\u00ebrfshir\u00eb, p\u00ebr shembull, <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/os#Root.Open\">os.Root.Open<\/a>, <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/os#Root.Create\">os.Root.Create<\/a>, <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/os#Root.Mkdir\">os.Root.Mkdir<\/a> dhe <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/os#Root.Stat\">os.Root.Stat<\/a>.<\/p>\n<p><\/noindex> <\/p>\n<h3>Funksioni i ri i benchmark-ut<\/h3>\n<p> <noindex><\/p>\n<p>Benchmark-et tani mund t\u00eb p\u00ebrdorin nj\u00eb metod\u00eb m\u00eb t\u00eb shpejt\u00eb dhe m\u00eb t\u00eb q\u00ebndrueshme <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/testing#B.Loop\">testing.B.Loop<\/a> p\u00ebr t\u00eb b\u00ebr\u00eb iteracione t\u00eb benchmark-it t\u00eb ngjashme me for b.Loop() { \u2026 } n\u00eb vend t\u00eb strukturave tipike ciklike q\u00eb p\u00ebrfshijn\u00eb b.N si p\u00ebr shembull for range b.N. Kjo ofron dy p\u00ebrpar\u00ebsi t\u00eb r\u00ebnd\u00ebsishme:<\/p>\n<p><\/noindex> <\/p>\n<ul>\n<li>Funksioni i benchmark-ut ekzekutohet n\u00eb m\u00ebnyr\u00eb t\u00eb sakt\u00eb nj\u00eb her\u00eb p\u00ebr \u00e7do -count, k\u00ebshtu q\u00eb hapat e shtrenjt\u00eb t\u00eb vendosjes dhe pastrimit ekzekutohen vet\u00ebm nj\u00eb her\u00eb.<\/li>\n<li>Parametrat e thirrjes s\u00eb funksionit dhe rezultatet vazhdojn\u00eb t\u00eb jetojn\u00eb, duke parandaluar kompiluesin nga optimizimi i plot\u00eb i trupit t\u00eb ciklit.<\/li>\n<\/ul>\n<h3>Finallizuesit e p\u00ebrmir\u00ebsuar<\/h3>\n<p> <noindex><\/p>\n<p>Funksioni i ri <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/runtime#AddCleanup\">runtime.AddCleanup<\/a> \u00ebsht\u00eb nj\u00eb mekaniz\u00ebm p\u00ebrfundimi q\u00eb \u00ebsht\u00eb m\u00eb i fleksib\u00ebl, m\u00eb efikas dhe m\u00eb pak i ndjesh\u00ebm ndaj gabimeve se <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/runtime#SetFinalizer\">runtime.SetFinalizer<\/a>. AddCleanup i bashkon nj\u00eb funksioni pastrimi objektit, i cili do t\u00eb ekzekutohet sapo objekti t\u00eb b\u00ebhet i paaksesuesh\u00ebm. Megjithat\u00eb, ndryshe nga SetFinalizer, disa pastrime mund t\u00eb bashkohen me nj\u00eb objekt t\u00eb vet\u00ebm, pastrimet mund t\u00eb bashkohen me treguesit e brendsh\u00ebm, pastrimet normalisht nuk shkaktojn\u00eb rrjedhje kur objektet formojn\u00eb cikle, dhe pastrimet nuk e vonojn\u00eb \u00e7lirimin e objektit ose objekteve q\u00eb tregohet. Kodi i ri duhet t\u00eb preferoj\u00eb AddCleanup p\u00ebrpara SetFinalizer.<\/p>\n<p><\/noindex> <\/p>\n<h3>Paketa e re weak<\/h3>\n<p> <noindex><\/p>\n<p>Paketa e re <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/weak\/\">weak<\/a> siguron tregues t\u00eb dob\u00ebt.<\/p>\n<p><\/noindex> <noindex><\/p>\n<p>Treguesit e dob\u00ebt jan\u00eb nj\u00eb primitiv i ul\u00ebt, i siguruar p\u00ebr t\u00eb krijuar struktura q\u00eb p\u00ebrdorin efektivisht kujtes\u00ebn, si fjalor\u00ebt e dob\u00ebt p\u00ebr mapimin e vlerave, fjalor\u00ebt e kanonizimit p\u00ebr \u00e7do gj\u00eb q\u00eb nuk mb covered nga paketa <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/unique\/\">unique<\/a>, dhe lloje t\u00eb ndryshme t\u00eb caches. P\u00ebr mb\u00ebshtetje t\u00eb k\u00ebtyre rasteve p\u00ebrdorimi, kjo version ofron gjithashtu <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/runtime\/#AddCleanup\">runtime.AddCleanup<\/a> dhe <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/maphash\/#Comparable\">maphash.Comparable<\/a>.<\/p>\n<p><\/noindex> <\/p>\n<h3>Paketa e re crypto\/mlkem<\/h3>\n<p> <noindex><\/p>\n<p>Paketa e re <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/crypto\/mlkem\/\">crypto\/mlkem<\/a> implementon ML-KEM-768 dhe ML-KEM-1024.<\/p>\n<p><\/noindex> <noindex><\/p>\n<p>ML-KEM \u00ebsht\u00eb nj\u00eb mekaniz\u00ebm shk\u00ebmbimi t\u00eb \u00e7el\u00ebsit post-kvantor, m\u00eb par\u00eb i njohur si Kyber dhe i specifikuar n\u00eb <a rel=\"nofollow\" href=\"https:\/\/doi.org\/10.6028\/NIST.FIPS.203\">FIPS 203<\/a>.<\/p>\n<p><\/noindex> <\/p>\n<h3>Paketa t\u00eb reja crypto\/hkdf, crypto\/pbkdf2 dhe crypto\/sha3<\/h3>\n<p> <noindex><\/p>\n<p>Paketa e re <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/crypto\/hkdf\/\">crypto\/hkdf<\/a> implementon nj\u00eb funksion t\u00eb bazuar n\u00eb HMAC p\u00ebr ekstraktimin e \u00e7el\u00ebsit \u201cExtract-and-Expand\u201d HKDF, si\u00e7 p\u00ebrcaktohet n\u00eb <a rel=\"nofollow\" href=\"https:\/\/www.rfc-editor.org\/rfc\/rfc5869.html\">RFC 5869<\/a>.<\/p>\n<p><\/noindex> <noindex><\/p>\n<p>Paketa e re <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/crypto\/pbkdf2\/\">crypto\/pbkdf2<\/a> implementon nj\u00eb funksion t\u00eb bazuar n\u00eb fjal\u00ebkalim p\u00ebr nxjerrjen e \u00e7el\u00ebsit PBKDF2, si\u00e7 p\u00ebrcaktohet n\u00eb <a rel=\"nofollow\" href=\"https:\/\/www.rfc-editor.org\/rfc\/rfc8018.html\">RFC 8018<\/a>.<\/p>\n<p><\/noindex> <noindex><\/p>\n<p>Paketa e re <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/crypto\/sha3\/\">crypto\/sha3<\/a> implementon funksionin hash SHA-3 dhe SHAKE dhe funksionet cSHAKE p\u00ebr zgjerimin e daljes, si\u00e7 p\u00ebrcaktohet n\u00eb <a rel=\"nofollow\" href=\"http:\/\/doi.org\/10.6028\/NIST.FIPS.202\">FIPS 202<\/a>.<\/p>\n<p><\/noindex> <\/p>\n<p>T\u00eb tri paketat jan\u00eb t\u00eb bazuara n\u00eb paketa ekzistuese nga golang.org\/x\/crypto\/\u2026<\/p>\n<h3>Kompak\u00ebs FIPS 140-3<\/h3>\n<p> <noindex><\/p>\n<p>Ky version p\u00ebrfshin <a rel=\"nofollow\" href=\"https:\/\/go.dev\/doc\/security\/fips140\">nj\u00eb grup t\u00eb ri mekanizmash p\u00ebr t\u00eb siguruar p\u00ebrputhjen me FIPS 140-3<\/a>.<\/p>\n<p><\/noindex> <\/p>\n<p>Moduli kriptografik Go \u00ebsht\u00eb nj\u00eb grup paketash t\u00eb brendshme t\u00eb bibliotek\u00ebs standarde, t\u00eb cilat p\u00ebrdoren n\u00eb m\u00ebnyr\u00eb transparente p\u00ebr t\u00eb realizuar algoritmet e miratuara FIPS 140-3. Aplikacionet nuk k\u00ebrkojn\u00eb ndryshime p\u00ebr t\u00eb p\u00ebrdorur modulin kriptografik Go p\u00ebr algoritmet e miratuara.<\/p>\n<p> <noindex><\/p>\n<p>Nj\u00eb variab\u00ebl e re ambienti GOFIPS140 mund t\u00eb p\u00ebrdoret p\u00ebr t\u00eb zgjedhur versionin e modulit kriptografik Go p\u00ebr t'u p\u00ebrdorur n\u00eb nd\u00ebrtim. E reja <a rel=\"nofollow\" href=\"https:\/\/go.dev\/doc\/godebug\">konfigurimi GODEBUG<\/a> fips140 mund t\u00eb p\u00ebrdoret p\u00ebr t\u00eb aktivizuar modalitetin FIPS 140-3 gjat\u00eb ekzekutimit.<\/p>\n<p><\/noindex> <\/p>\n<p>Go 1.24 p\u00ebrfshin modul\u00ebn kriptografike Go versioni v1.0.0, e cila aktualisht \u00ebsht\u00eb n\u00eb testim me laboratorin e akredituar CMVP.<\/p>\n<h3>Nj\u00eb paket\u00eb eksperimentale t\u00eb re testing\/synctest<\/h3>\n<p> <noindex><\/p>\n<p>Pako eksperimental i ri <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/testing\/synctest\/\">testing\/synctest<\/a> ofron mb\u00ebshtetje p\u00ebr testimin e kodit konkurrent.<\/p>\n<p><\/noindex> <\/p>\n<ul>\n<li>Funksioni <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/testing\/synctest\/#Run\">synctest.Run<\/a> n\u00eb ngre nj\u00eb grup gorutina n\u00eb nj\u00eb \"bul\u00eb\" t\u00eb izoluar. Brenda bul\u00ebs, funksionet e paket\u00ebs <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/time\">time<\/a> kan\u00eb operacione mbi or\u00ebt false.<\/li>\n<li>Funksionet <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/testing\/synctest#Wait\">synctest.Wait<\/a> pret derisa t\u00eb gjitha gorutinat t\u00eb bllokohen n\u00eb bul\u00ebn aktuale.<\/li>\n<\/ul>\n<p>Detajet mund t\u00eb shihen n\u00eb dokumentacionin e paket\u00ebs.<\/p>\n<p> <noindex><\/p>\n<p>Paketa synctest \u00ebsht\u00eb eksperimentale dhe duhet t\u00eb aktivizohet me vendosjen GOEXPERIMENT=synctest. API e paket\u00ebs mund t\u00eb ndryshoj\u00eb n\u00eb l\u00ebshimet e ardhshme. N\u00eb <a rel=\"nofollow\" href=\"https:\/\/go.dev\/issue\/67434\">#67434<\/a> mund t\u00eb shihni m\u00eb shum\u00eb detaje dhe t\u00eb jepni feedback.<\/p>\n<p><\/noindex> <\/p>\n<h3>Ndryshime minore n\u00eb bibliotek\u00eb<\/h3>\n<h4><a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/archive\/\">archive<\/a><\/h4>\n<p>Implementimet (*Writer.AddFS) n\u00eb archive\/zip dhe archive\/tar tani shkruajn\u00eb kok\u00ebn e direktorive p\u00ebr direktor\u00ebt e zbraz\u00ebt.<\/p>\n<h4><a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/bytes\/\">bytes<\/a><\/h4>\n<p> <noindex><\/p>\n<p>Paketa <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/bytes\">bytes<\/a> shton disa funksione q\u00eb punojn\u00eb me iteratoret:<\/p>\n<p><\/noindex> <\/p>\n<ul>\n<li><a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/bytes#Lines\">Lines<\/a> kthen nj\u00eb iterator mbi linjat e ndara me nj\u00eb rresht t\u00eb ri n\u00eb nj\u00eb slice bytes.<\/li>\n<li><a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/bytes#SplitSeq\">SplitSeq<\/a> kthen nj\u00eb iterator mbi t\u00eb gjitha n\u00ebn-slicet e slices bytes, t\u00eb ndara me separator.<\/li>\n<li><a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/bytes#SplitAfterSeq\">SplitAfterSeq<\/a> kthen nj\u00eb iterator mbi n\u00ebn-slicet e slices bytes, t\u00eb ndara pas \u00e7do ndeshje t\u00eb separatorit.<\/li>\n<li><a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/bytes#FieldsSeq\">FieldsSeq<\/a> kthen nj\u00eb iterator mbi n\u00ebn-slice e bytes rreth sekuencave t\u00eb karaktereve t\u00eb hap\u00ebsir\u00ebs, si\u00e7 p\u00ebrcaktohet <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/unicode#IsSpace\">unicode.IsSpace<\/a><\/li>\n<li><a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/bytes#FieldsFuncSeq\">FieldsFuncSeq<\/a> kthen nj\u00eb iterator mbi n\u00ebn-slice e bytes rreth sekuencave t\u00eb pikave koduese Unicode q\u00eb plot\u00ebsojn\u00eb predikatin.<\/li>\n<\/ul>\n<h4><a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/crypto\/aes\/\">crypto\/aes<\/a><\/h4>\n<p> <noindex><\/p>\n<p>Vlera e kthyer <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/crypto\/aes#NewCipher\">NewChipher<\/a> nuk p\u00ebrmbush m\u00eb metodat NewCTR, NewGCM, NewCBCEncrypter dhe NewCBCDecrypter. K\u00ebto metoda ishin t\u00eb pa dokumentuara dhe nuk ishin t\u00eb aksesueshme n\u00eb t\u00eb gjitha arkitektur\u00ebt. Tani vlera <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/crypto\/cipher#Block\">Block<\/a> duhet t\u00eb kaloj\u00eb direkt n\u00eb funksionet p\u00ebrkat\u00ebse <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/crypto\/cipher\/\">crypto\/cipher<\/a>. Deri tani crypto\/cipher ende kontrollon k\u00ebto metoda p\u00ebr vlerat Block, edhe n\u00ebse ato nuk mb\u00ebshteten m\u00eb nga biblioteca standarde.<\/p>\n<p><\/noindex> <\/p>\n<h4><a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/crypto\/cipher\/\">crypto\/cipher<\/a><\/h4>\n<p> <noindex><\/p>\n<p>Funksioni i ri <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/crypto\/cipher#NewGCMWithRandomNonce\">NewGCMWithRandomNonce<\/a> kthen <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/crypto\/cipher#AEAD\">AEAD<\/a>, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0440\u0435\u0430\u043b\u0438\u0437\u0443\u0435\u0442 AES-GCM, \u0433\u0435\u043d\u0435\u0440\u0438\u0440\u0443\u044f \u0441\u043b\u0443\u0447\u0430\u0439\u043d\u044b\u0439 \u043e\u0434\u043d\u043e\u0440\u0430\u0437\u043e\u0432\u044b\u0439 \u043d\u043e\u043c\u0435\u0440 \u0432\u043e \u0432\u0440\u0435\u043c\u044f Seal \u0438 \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u044f \u0435\u0433\u043e \u0432 \u043d\u0430\u0447\u0430\u043b\u043e \u0437\u0430\u0448\u0438\u0444\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0433\u043e \u0442\u0435\u043a\u0441\u0442\u0430.<\/p>\n<p><\/noindex> <noindex><\/p>\n<p>Realizimi <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/crypto\/cipher#Stream\">Stream<\/a>, e kthyer <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/crypto\/cipher#NewCTR\">NewCTR<\/a> kur p\u00ebrdoret me <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/crypto\/aes\/\">crypto\/aes<\/a> tani \u00ebsht\u00eb disa her\u00eb m\u00eb e shpejt\u00eb n\u00eb amd64 dhe arm64.<\/p>\n<p><\/noindex> <noindex><\/p>\n<p><a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/crypto\/cipher#NewOFB\">NewOFB<\/a>, <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/crypto\/cipher#NewCFBEncrypter\">NewCFBEncrypter<\/a> dhe <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/crypto\/cipher#NewCFBDecrypter\">NewCFBDecrypter<\/a> tani jan\u00eb shpallur t\u00eb vjetra. Rejimet OFB dhe CFB jan\u00eb t\u00eb paautentikuara, q\u00eb n\u00eb p\u00ebrgjith\u00ebsi lejon sulmet aktive t\u00eb manipulojn\u00eb dhe rikuperojn\u00eb tekstin e hapur. Aplikacioneve u rekomandohet t\u00eb p\u00ebrdorin <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/crypto\/cipher#AEAD\">AEAD<\/a> n\u00eb vend. N\u00ebse regjimi i paautentikuar <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/crypto\/cipher#Stream\">Stream<\/a> \u00ebsht\u00eb i nevojsh\u00ebm, mund t\u00eb p\u00ebrdoret <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/crypto\/cipher#NewCTR\">NewCTR<\/a> n\u00eb vend.<\/p>\n<p><\/noindex> <\/p>\n<h4><a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/crypto\/ecdsa\/\">crypto\/ecdsa<\/a><\/h4>\n<p> <noindex><\/p>\n<p><a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/crypto\/ecdsa#PrivateKey.Sign\">PrivateKey.Sign<\/a> tani krijon nj\u00eb n\u00ebnshkrim deterministik sipas <a rel=\"nofollow\" href=\"https:\/\/www.rfc-editor.org\/rfc\/rfc6979.html\">RFC 6979<\/a>, n\u00ebse burimi i rast\u00ebsis\u00eb \u00ebsht\u00eb nil.<\/p>\n<p><\/noindex> <\/p>\n<h4><a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/crypto\/md5\/\">crypto\/md5<\/a><\/h4>\n<p> <noindex><\/p>\n<p>Vlera e kthyer <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/md5#New\">md5.New<\/a>, tani gjithashtu implementon interfacin\u00eb <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/encoding#BinaryAppender\">encoding.BinaryAppender<\/a>.<\/p>\n<p><\/noindex> <\/p>\n<h4><a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/crypto\/rand\/\">crypto\/rand<\/a><\/h4>\n<p> <noindex><\/p>\n<p>Funksioni <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/crypto\/rand#Read\">Read<\/a> tani garanton munges\u00ebn e d\u00ebshtimeve. N\u00ebse Read has nj\u00eb gabim gjat\u00eb leximit <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/crypto\/rand#Reader\">Reader<\/a>, programi do t\u00eb mbyllet n\u00eb m\u00ebnyr\u00eb t\u00eb pakthyeshme. Vini re se Reader-i me defaut \u00ebsht\u00eb dokumentuar gjithmon\u00eb t\u00eb funksionoj\u00eb me sukses, prandaj ky ndryshim duhet t\u00eb prek\u00eb vet\u00ebm ato programe q\u00eb rimarrin variablin Reader. Nj\u00eb p\u00ebrjashtim \u00ebsht\u00eb b\u00ebrthamoret e Linux deri n\u00eb versionin 3.17, ku Reader-i me defaut ende hap \\\/dev\\\/urandom dhe mund t\u00eb d\u00ebshtoj\u00eb.<\/p>\n<p><\/noindex> <\/p>\n<p>N\u00eb Linux 6.11 dhe m\u00eb von\u00eb, Reader tani p\u00ebrdor thirrjen sistemike getrandom p\u00ebrmes vDSO. Kjo \u00ebsht\u00eb disa her\u00eb m\u00eb e shpejt\u00eb, zakonisht p\u00ebr lexime t\u00eb vogla.<\/p>\n<p>N\u00eb OpenBSD, Reader tani p\u00ebrdor arc4random_buf(3).<\/p>\n<p> <noindex><\/p>\n<p>Funksioni i ri <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/crypto\/rand#Text\">Text<\/a> tani tani mund t\u00eb gjeneroj\u00eb vargje t\u00eb rast\u00ebsishme tekstesh t\u00eb sigurta me kriptografi.<\/p>\n<p><\/noindex> <\/p>\n<h4><a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/crypto\/rsa\/\">crypto\/rsa<\/a><\/h4>\n<p> <noindex><\/p>\n<p><a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/crypto\/rsa#GenerateKey\">GeneroniK\u00ebn<\/a> tani kthen nj\u00eb gabim n\u00ebse k\u00ebrkohet nj\u00eb \u00e7el\u00ebs me gjat\u00ebsi m\u00eb t\u00eb vog\u00ebl se 1024 bit. T\u00eb gjitha metodat Sign, Verify, Encrypt dhe Decrypt tani kthejn\u00eb nj\u00eb gabim, n\u00ebse p\u00ebrdoren me nj\u00eb \u00e7el\u00ebs t\u00eb madh\u00ebsis\u00eb m\u00eb t\u00eb vog\u00ebl se 1024 bit. \u00c7el\u00ebsat e till\u00eb nuk jan\u00eb t\u00eb sigurta dhe nuk duhet t\u00eb p\u00ebrdoren. <a rel=\"nofollow\" href=\"https:\/\/go.dev\/doc\/godebug\">Krijimi i GODEBUG<\/a> rsa1024min=0 rikthen sjelljen e vjet\u00ebr, por zhvilluesit e Go rekomandojn\u00eb q\u00eb t\u00eb b\u00ebhet vet\u00ebm kur \u00ebsht\u00eb e nevojshme dhe vet\u00ebm n\u00eb teste, duke shtuar, p\u00ebr shembull, nj\u00eb rresht \/\/go:debug rsa1024min=0 n\u00eb skedarin e testimit. I ri <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/crypto\/rsa#example-GenerateKey-TestKey\">shembull<\/a> GenerateKey ofron nj\u00eb \u00e7el\u00ebs testimi standart 2024-bit t\u00eb leht\u00eb p\u00ebr t'u p\u00ebrdorur.<\/p>\n<p><\/noindex> <noindex><\/p>\n<p>Tani \u00ebsht\u00eb e sigurt dhe m\u00eb efektive t\u00eb th\u00ebrras\u00ebsh <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/crypto\/rsa#PrivateKey.Precompute\">PrivateKey.Precompute<\/a> deri te <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/crypto\/rsa#PrivateKey.Validate\">PrivateKey.Validate<\/a>. Precompute tani \u00ebsht\u00eb m\u00eb i shpejt\u00eb n\u00eb prani t\u00eb <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/crypto\/rsa#PrecomputedValues\">PrecomputedValues<\/a>, p\u00ebr shembull kur nxjerr \u00e7el\u00ebsin nga JSON.<\/p>\n<p><\/noindex> <noindex><\/p>\n<p>Paketa tani refuzon m\u00eb shum\u00eb \u00e7el\u00ebsa t\u00eb gabuar, madje kur Validate nuk thirret dhe <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/crypto\/rsa#GenerateKey\">GeneroniK\u00ebn<\/a> tani mund t\u00eb kthej\u00eb gabime t\u00eb reja p\u00ebr burime dob\u00ebsish t\u00eb rast\u00ebsishme. Fushat <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/crypto\/rsa#PrivateKey.Primes\">Primes<\/a> dhe <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/crypto\/rsa#PrivateKey.Precomputed\">Precomputed<\/a> strukturat <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/crypto\/rsa#PrivateKey\">PrivateKey<\/a> tani p\u00ebrdoren dhe validohen edhe kur disa vlera mungojn\u00eb. Jan\u00eb b\u00ebr\u00eb gjithashtu ndryshime n\u00eb crypto\/x509 p\u00ebr analizimin dhe nxjerrjen e \u00e7el\u00ebsave RSA, si\u00e7 p\u00ebrshkruhet m\u00eb posht\u00eb.<\/p>\n<p><\/noindex> <noindex><\/p>\n<p><a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/crypto\/rsa#SignPKCS1v15\">SignPKCS1v15<\/a> dhe <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/crypto\/rsa#VerifyPKCS1v15\">VerifyPKCS1v15<\/a> tani mb\u00ebshtesin SHA-512\/224, SHA-512\/256 dhe SHA-3.<\/p>\n<p><\/noindex> <noindex><\/p>\n<p><a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/crypto\/rsa#GenerateKey\">GeneroniK\u00ebn<\/a> tani p\u00ebrdor nj\u00eb metod\u00eb pak ndryshe p\u00ebr gjenerimin e eksponentit privat (funksioni Karamikllas n\u00eb vend t\u00eb funksionit Euler). Aplikacione t\u00eb rralla, t\u00eb cilat rind\u00ebrtojn\u00eb \u00e7el\u00ebsat vet\u00ebm nga numra prim, mund t\u00eb krijojn\u00eb rezultate t\u00eb ndryshme, por t\u00eb p\u00ebrputhshme.<\/p>\n<p><\/noindex> <\/p>\n<p>Operacionet mbi \u00e7el\u00ebsat publik\u00eb dhe privat\u00eb tani jan\u00eb deri n\u00eb dy her\u00eb m\u00eb t\u00eb shpejta n\u00eb wasm.<\/p>\n<h3>crypto\/sha*<\/h3>\n<ul>\n<li><a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/crypto\/sha1\/\">crypto\/sha1<\/a>: vlera q\u00eb kthehet <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/sha1#New\">sha1.New<\/a> tani gjithashtu realizon nd\u00ebrfaqen <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/encoding#BinaryAppender\">encoding.BinaryAppender<\/a>.<\/li>\n<li><a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/crypto\/sha256\/\">crypto\/sha256<\/a>: vlerat q\u00eb kthehen <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/sha256#New\">sha256.New<\/a> dhe <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/sha256#New224\">sha256.New224<\/a> tani gjithashtu realizojn\u00eb nd\u00ebrfaqen <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/encoding#BinaryAppender\">encoding.BinaryAppender<\/a>.<\/li>\n<li><a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/crypto\/sha512\/\">crypto\/sha512<\/a>: vlerat q\u00eb kthehen <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/sha512#New\">sha512.New<\/a>, <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/sha512#New384\">sha512.New384<\/a>, <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/sha512#New512_224\">sha512.New512_224<\/a> dhe <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/sha512#New512_256\">sha512.New512_256<\/a>, tani gjithashtu realizojn\u00eb nd\u00ebrfaqen <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/encoding#BinaryAppender\">encoding.BinaryAppender<\/a>.<\/li>\n<\/ul>\n<h4><a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/crypto\/subtle\/\">crypto\/subtle<\/a><\/h4>\n<p> <noindex><\/p>\n<p>Funksioni i ri <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/crypto\/subtle#WithDataIndependentTiming\">WithDataIndependentTiming<\/a> i mund\u00ebson p\u00ebrdoruesit t\u00eb ekzekutoj\u00eb funksionin me funksionalitete specifike p\u00ebr arkitektur\u00ebn, t\u00eb cilat garantojn\u00eb invarianc\u00ebn e disa instrukcioneve n\u00eb lidhje me koh\u00ebn e vlerave t\u00eb t\u00eb dh\u00ebnave. Kjo mund t\u00eb p\u00ebrdoret p\u00ebr t\u00eb siguruar se kodi i krijuar p\u00ebr t\u00eb punuar me koh\u00eb konstante nuk \u00ebsht\u00eb optimizuar nga funksionet e nivelit t\u00eb procesorit n\u00eb m\u00ebnyr\u00eb q\u00eb t\u00eb funksionoj\u00eb me koh\u00eb t\u00eb ndryshueshme. N\u00eb k\u00ebt\u00eb moment, WithDataIndependentTiming p\u00ebrdor bitin PSTATE.DIT n\u00eb arm64 dhe nuk b\u00ebn asgj\u00eb n\u00eb t\u00eb gjitha arkitekturat e tjera. <a rel=\"nofollow\" href=\"https:\/\/go.dev\/doc\/godebug\">Krijimi i GODEBUG<\/a> dataindependenttiming=1 aktivizon modalitetin DIT p\u00ebr t\u00eb gjith\u00eb programin Go.<\/p>\n<p><\/noindex> <noindex><\/p>\n<p>P\u00ebrfundim <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/crypto\/subtle#XORBytes\">XORBytes<\/a> duhet t\u00eb mbulohet plot\u00ebsisht ose aspak me hyrjen. Sjellja e m\u00ebparshme ishte e pacaktuar n\u00eb t\u00eb kund\u00ebrt, nd\u00ebrsa tani XORBytes do t\u00eb panikoj\u00eb.<\/p>\n<p><\/noindex> <\/p>\n<h4><a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/crypto\/tls\/\">crypto\/tls<\/a><\/h4>\n<p> <noindex><\/p>\n<p>Serveri TLS tani mb\u00ebshtet Encrypted Client Hello (ECH). Kjo aft\u00ebsi mund t\u00eb aktivizohet duke plot\u00ebsuar fush\u00ebn <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/crypto\/tls#Config.EncryptedClientHelloKeys\">Config.EncryptedClientHelloKeys<\/a>.<\/p>\n<p><\/noindex> <noindex><\/p>\n<p>Mekanizmi i ri i shk\u00ebmbimit t\u00eb \u00e7el\u00ebsit post-kvant <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/crypto\/tls#X25519MLKEM768\">X25519MLKEM768<\/a> tani mb\u00ebshtetet dhe aktivizohet si parazgjedhje kur <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/crypto\/tls#Config.CurvePreferences\">Config.CurvePreferences<\/a> \u00ebsht\u00eb nil. <a rel=\"nofollow\" href=\"https:\/\/go.dev\/doc\/godebug\">Krijimi i GODEBUG<\/a> tlsmlkem=0 kthen defolt.<\/p>\n<p><\/noindex> <\/p>\n<p>Mb\u00ebshtetje p\u00ebr shk\u00ebmbimin eksperimental t\u00eb \u00e7el\u00ebsit X25519Kyber768Draft00 \u00ebsht\u00eb hequr.<\/p>\n<p> <noindex><\/p>\n<p>Procesi i shk\u00ebmbimit t\u00eb \u00e7el\u00ebsave tani p\u00ebrpunohen t\u00ebr\u00ebsisht nga paketa crypto\/tls. Procesi <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/crypto\/tls#Config.CurvePreferences\">Config.CurvePreferences<\/a> tani injorohet, dhe p\u00ebrmbajtja p\u00ebrdoret vet\u00ebm p\u00ebr t\u00eb p\u00ebrcaktuar se cilat shk\u00ebmbime \u00e7el\u00ebsi duhet t\u00eb p\u00ebrfshihen kur fusha mbushet.<\/p>\n<p><\/noindex> <noindex><\/p>\n<p>Fusha e re <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/crypto\/tls#ClientHelloInfo.Extensions\">ClientHelloInfo.Extensions<\/a> liston identifikuesit e zgjerimeve t\u00eb marra n\u00eb mesazhin Client Hello. Kjo mund t\u00eb jet\u00eb e dobishme p\u00ebr t\u00eb v\u00ebn\u00eb n\u00eb dukje klient\u00ebt TLS.<\/p>\n<p><\/noindex> <\/p>\n<h4><a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/crypto\/x509\/\">crypto\/x509<\/a><\/h4>\n<p> <noindex><\/p>\n<p><a rel=\"nofollow\" href=\"https:\/\/go.dev\/doc\/godebug\">Krijimi i GODEBUG<\/a> x509sha1 \u00ebsht\u00eb hequr. <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/crypto\/x509#Certificate.Verify\">Certficicate.Verify<\/a> nuk mb\u00ebshtet m\u00eb n\u00ebnshkrimet e bazuara n\u00eb SHA-1.<\/p>\n<p><\/noindex> <noindex><\/p>\n<p><a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/crypto\/x509#OID\">OID<\/a> tani implementon nd\u00ebrfaqet <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/encoding#BinaryAppender\">encoding.BinaryAppender<\/a> dhe <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/encoding#TextAppender\">encoding.TextAppender<\/a>.<\/p>\n<p><\/noindex> <noindex><\/p>\n<p>Fusha e parazgjedhur e politikave t\u00eb \u00e7ertifikatave \u00ebsht\u00eb ndryshuar nga <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/crypto\/x509#Certificate.PolicyIdentifiers\">Certificate.PolicyIdentifiers<\/a> n\u00eb <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/crypto\/x509#Certificate.Policies\">Certificate.Policies<\/a>. Gjat\u00eb analiz\u00ebs s\u00eb \u00e7ertifikatave, t\u00eb dy fushat do t\u00eb plot\u00ebsohen, por kur krijohet politika e \u00e7ertifikatave do t\u00eb merret nga fusha Certificate.Policies n\u00eb vend t\u00eb Certificate.PolicyIdentifiers. Ky ndryshim mund t\u00eb kthehet <a rel=\"nofollow\" href=\"https:\/\/go.dev\/doc\/godebug\">n\u00ebp\u00ebrmjet konfigurimit GODEBUG<\/a> x509usepolicies=0.<\/p>\n<p><\/noindex> <noindex><\/p>\n<p><a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/crypto\/x509#CreateCertificate\">CreateCertificate<\/a> tani do t\u00eb gjeneroj\u00eb nj\u00eb num\u00ebr serial duke p\u00ebrdorur nj\u00eb metod\u00eb p\u00ebrputh\u00ebse me RFC 5280 gjat\u00eb kalimit t\u00eb modelit n\u00ebp\u00ebrmjet fush\u00ebs <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/crypto\/x509#Certificate.SerialNumber\">Certificate.SerialNumber<\/a> nil, n\u00eb vend t\u00eb d\u00ebshtimit.<\/p>\n<p><\/noindex> <noindex><\/p>\n<p><a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/crypto\/x509#Certificate.Verify\">Certificate.Verify<\/a> tani mb\u00ebshtet validimin e politikave, si\u00e7 definohet n\u00eb RFC 5280 dhe RFC 9618. Fusha e re <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/crypto\/x509#VerifyOptions.CertificatePolicies\">VerifyOptions.CertificatePolicies<\/a> mund t\u00eb vendoset n\u00eb nj\u00eb grup t\u00eb pranuesh\u00ebm politikash <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/crypto\/x509#OID\">OID-et<\/a>. Vet\u00ebm zinxhir\u00ebt e certifikatave me grafike valide politike do t\u00eb kthehen nga <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/crypto\/x509#Certificate.Verify\">Certificate.Verify<\/a>.<\/p>\n<p><\/noindex> <noindex><\/p>\n<p><a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/crypto\/x509#MarshalPKCS8PrivateKey\">MarshalPKCS8PrivateKey<\/a> tani kthen nj\u00eb gabim n\u00eb vend q\u00eb t\u00eb nxjerr\u00eb nj\u00eb \u00e7el\u00ebs t\u00eb gabuar RSA. (<a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/crypto\/x509#MarshalPKCS1PrivateKey\">MarshalPKCS1PrivateKey<\/a> nuk ka kthim gabimi dhe sjellja e tij me \u00e7el\u00ebsa t\u00eb gabuar t\u00eb dh\u00ebn\u00eb vazhdon t\u00eb jet\u00eb e pap\u00ebrcaktuar.)<\/p>\n<p><\/noindex> <noindex><\/p>\n<p><a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/crypto\/x509#ParsePKCS1PrivateKey\">ParsePKCS1PrivateKey<\/a> dhe <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/crypto\/x509#ParsePKCS8PrivateKey\">ParsePKCS8PrivateKey<\/a> tani p\u00ebrdorin dhe validojn\u00eb vlerat e koduara CRT, prandaj mund t\u00eb refuzojn\u00eb \u00e7el\u00ebsa t\u00eb gabuar RSA q\u00eb jan\u00eb pranuar m\u00eb par\u00eb. P\u00ebrdorimi <a rel=\"nofollow\" href=\"https:\/\/go.dev\/doc\/godebug\">i konfigurimeve GODEBUG<\/a> x509rsacrt=0 kthen n\u00eb ri-kalkulimin e vlerave CRT.<\/p>\n<p><\/noindex> <\/p>\n<h4><a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/debug\/elf\/\">debug\/elf<\/a><\/h4>\n<p> <noindex><\/p>\n<p>Paketa <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/debug\/elf\">debug\/elf<\/a> shton mb\u00ebshtetje p\u00ebr p\u00ebrpunimin e versioneve t\u00eb simboleve n\u00eb skedar\u00ebt dinamik\u00eb ELF (Formati Ekzekutiv dhe i Lidhjes). Metoda e re <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/debug\/elf#File.DynamicVersions\">File.DynamicVersions<\/a> kthehet nj\u00eb list\u00eb e versioneve dinamike t\u00eb p\u00ebrcaktuara n\u00eb skedarin ELF. Metoda e re <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/debug\/elf#File.DynamicVersionNeeds\">File.DynamicVersionNeeds<\/a> kthehet nj\u00eb list\u00eb e versioneve dinamike q\u00eb k\u00ebrkohen nga ky skedar ELF, t\u00eb cilat jan\u00eb t\u00eb p\u00ebrcaktuara n\u00eb objekte t\u00eb tjera ELF. S\u00eb fundmi, fushat e reja <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/debug\/elf#Symbol\">Symbol.HasVersion<\/a> dhe <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/debug\/elf#Symbol\">Symbol.VersionIndex<\/a> tregojn\u00eb versionin e simbolit.<\/p>\n<p><\/noindex> <\/p>\n<h4><a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/encoding\/\">kodimi<\/a><\/h4>\n<p> <noindex><\/p>\n<p>Dy interface t\u00eb reja <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/encoding#TextAppender\">TextAppender<\/a> dhe <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/encoding#BinaryAppender\">BinaryAppender<\/a> jan\u00eb futur p\u00ebr t\u00eb shtuar nj\u00eb p\u00ebrfaq\u00ebsim tekstual ose binar t\u00eb nj\u00eb objekti n\u00eb nj\u00eb slice bajtaresh. K\u00ebto interface ofrojn\u00eb t\u00eb nj\u00ebjt\u00ebn funksionalitet si <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/encoding#TextMarshaler\">TextMarshaler<\/a> dhe <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/encoding#BinaryMarshaler\">BinaryMarshaler<\/a>, por n\u00eb vend q\u00eb t\u00eb alokojn\u00eb nj\u00eb slice t\u00eb ri \u00e7do her\u00eb, ato shtojn\u00eb t\u00eb dh\u00ebnat drejtp\u00ebrdrejt n\u00eb slice-n ekzistues. K\u00ebto interface tani jan\u00eb implementuar nga llojet e bibliotek\u00ebs standarde, t\u00eb cilat tashm\u00eb zbatojn\u00eb TextMarshaler dhe\/ose BinaryMarshaler.<\/p>\n<p><\/noindex> <\/p>\n<h4><a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/encoding\/json\/\">encoding\/json<\/a><\/h4>\n<p> <noindex><\/p>\n<p>Kur nd\u00ebrtohet nj\u00eb fush\u00eb strukture me opsionin e ri omitzero n\u00eb etiket\u00ebn e fush\u00ebs s\u00eb struktur\u00ebs, do t\u00eb anashkalohet n\u00ebse vlera e saj \u00ebsht\u00eb zero. N\u00ebse lloji i fush\u00ebs ka nj\u00eb metod\u00eb IsZero() bool, kjo do t\u00eb p\u00ebrdoret p\u00ebr t\u00eb p\u00ebrcaktuar n\u00ebse vlera \u00ebsht\u00eb zero. Ndryshe, vlera do t\u00eb jet\u00eb zero n\u00ebse <a rel=\"nofollow\" href=\"https:\/\/go.dev\/ref\/spec#The_zero_value\">vlera zero p\u00ebr llojin e tij<\/a>. Etiketa e fush\u00ebs omitzero \u00ebsht\u00eb m\u00eb e past\u00ebr dhe m\u00eb pak e predispozuar ndaj gabimeve se omitempty, kur q\u00ebllimi \u00ebsht\u00eb t\u00eb anashkalohet vlerat zero. Ve\u00e7an\u00ebrisht, ndryshe nga omitempty, omitzero anashkalon vlerat zero <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/time#Time\">time.Time<\/a> , q\u00eb \u00ebsht\u00eb nj\u00eb burim i zakonsh\u00ebm problemeve.<\/p>\n<p><\/noindex> <\/p>\n<p>N\u00ebse t\u00eb dy omitempty dhe omitzero jan\u00eb p\u00ebrcaktuar, fusha do t\u00eb anashkalohet n\u00ebse vlera \u00ebsht\u00eb bosh ose zero (ose t\u00eb dyja s\u00eb bashku).<\/p>\n<p> <noindex><\/p>\n<p><a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/encoding\/json#UnmarshalTypeError.Field\">UnmarshalTypeError.Field<\/a> tani tani p\u00ebrfshin struktura t\u00eb integruara p\u00ebr t\u00eb ofruar mesazhe m\u00eb t\u00eb detajuara p\u00ebr gabimet.<\/p>\n<p><\/noindex> <\/p>\n<h4><a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/go\/types\/\">go\/types<\/a><\/h4>\n<p>T\u00eb gjitha strukturat e t\u00eb dh\u00ebnave go\/types, t\u00eb cilat zbulojn\u00eb sekuencat e \u00e7iftit t\u00eb metodave, si Len() int dhe At(int) T, tani gjithashtu kan\u00eb metoda q\u00eb kthejn\u00eb iterator\u00eb, duke e thjeshtuar kodin si ky:<\/p>\n<p> params := fn.Type.(*types.Signature).Params() for i := 0; i &lt; params.Len(); i++ {   use(params.At(i)) }   <\/p>\n<p>P\u00ebr k\u00ebt\u00eb:<\/p>\n<p> for param := range fn.Signature().Params().Variables() {   use(param) }   <noindex><\/p>\n<p>Metodat: <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/go\/types#Interface.EmbeddedTypes\">Interface.EmbeddedTypes<\/a> <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/go\/types#Interface.ExplicitMethods\">Interface.ExplicitMethods<\/a> <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/go\/types#Interface.Methods\">Interface.Methods<\/a> <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/go\/types#MethodSet.Methods\">MethodSet.Methods<\/a> <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/go\/types#Named.Methods\">Named.Methods<\/a> <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/go\/types#Scope.Children\">Scope.Children<\/a> <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/go\/types#Struct.Fields\">Struct.Fields<\/a> <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/go\/types#Tuple.Variables\">Tuple.Variables<\/a> <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/go\/types#TypeList.Types\">TypeList.Types<\/a> <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/go\/types#TypeParamList.TypeParams\">TypeParamList.TypeParams<\/a> <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/go\/types#Union.Terms\">Union.Terms<\/a><\/p>\n<p><\/noindex> <\/p>\n<h4>hash\/*<\/h4>\n<ul>\n<li><a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/hash\/adler32\/\">hash\/adler32<\/a>: vlera q\u00eb kthehet <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/hash\/adler32#New\">E Re<\/a>, tani gjithashtu implementon interfacin\u00eb <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/encoding#BinaryAppender\">encoding.BinaryAppender<\/a><\/li>\n<li><a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/hash\/crc32\/\">hash\/crc32<\/a>: vlerat q\u00eb kthehen <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/hash\/crc32#New\">E Re<\/a> dhe <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/hash\/crc32#NewIEEE\">NewIEEE<\/a>, tani gjithashtu realizojn\u00eb nd\u00ebrfaqen <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/encoding#BinaryAppender\">encoding.BinaryAppender<\/a><\/li>\n<li><a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/hash\/crc64\/\">hash\/crc64<\/a>: vlera q\u00eb kthehet <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/hash\/crc64#New\">E Re<\/a>, tani gjithashtu implementon interfacin\u00eb <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/encoding#BinaryAppender\">encoding.BinaryAppender<\/a><\/li>\n<li><a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/hash\/fnv\/\">hash\/fnv<\/a>: vlerat q\u00eb kthehen <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/hash\/fnv#New32\">New32<\/a> <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/hash\/fnv#New32a\">New32a<\/a> <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/hash\/fnv#New64\">New64<\/a> <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/hash\/fnv#New64a\">New64a<\/a> <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/hash\/fnv#New128\">New128<\/a> dhe <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/hash\/fnv#New128a\">New128a<\/a>, tani gjithashtu realizojn\u00eb nd\u00ebrfaqen <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/encoding#BinaryAppender\">encoding.BinaryAppender<\/a><\/li>\n<li><a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/hash\/maphash\/\">hash\/maphash<\/a>: funksione t\u00eb reja <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/hash\/maphash#Comparable\">Comparable<\/a> dhe <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/hash\/maphash#WriteComparable\">WriteComparable<\/a> mund t\u00eb llogarisin hash-in e \u00e7far\u00ebdo vler\u00eb q\u00eb \u00ebsht\u00eb e krahasueshme. Kjo lejon hash-imin e \u00e7do gj\u00ebje q\u00eb mund t\u00eb p\u00ebrdoret si \u00e7el\u00ebsi i nj\u00eb fjalori Go.<\/li>\n<\/ul>\n<h4><a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/log\/slog\/\">log\/slog<\/a><\/h4>\n<p> <noindex><\/p>\n<p>E re <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/log\/slog#DiscardHandler\">DiscardHandler<\/a> \u00ebsht\u00eb nj\u00eb trajtues q\u00eb kurr\u00eb nuk p\u00ebrfshihet dhe gjithmon\u00eb hedh jasht\u00eb daljen e tij.<\/p>\n<p><\/noindex> <noindex><\/p>\n<p><a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/log\/slog#Level\">Level<\/a> dhe <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/log\/slog#LevelVar\">LevelVar<\/a> tani implementojn\u00eb nd\u00ebrfaqen <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/encoding#TextAppender\">encoding.TextAppender<\/a>.<\/p>\n<p><\/noindex> <\/p>\n<h4>math\/*<\/h4>\n<ul>\n<li><a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/math\/big\/\">math\/big<\/a>: <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/math\/big#Float\">Float<\/a>, <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/math\/big#Int\">Int<\/a> dhe <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/math\/big#Rat\">Rat<\/a> tani implementojn\u00eb nd\u00ebrfaqen <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/encoding#TextAppender\">encoding.TextAppender<\/a>.<\/li>\n<li><a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/math\/rand\/\">math\/rand<\/a>: thirrjet e funksionit t\u00eb vjet\u00ebr t\u00eb nivelit t\u00eb lart\u00eb <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/math\/rand#Seed\">Seed<\/a> nuk kan\u00eb m\u00eb asnj\u00eb efekt. P\u00ebr t\u00eb rikthyer sjelljen e vjet\u00ebr, mund t\u00eb p\u00ebrdorni <a rel=\"nofollow\" href=\"https:\/\/go.dev\/doc\/godebug\">konfigurimit GODEBUG<\/a> randseednop=0. M\u00eb shum\u00eb kontekst n\u00eb <a rel=\"nofollow\" href=\"https:\/\/go.dev\/issue\/67273\">ofert\u00eb 67273<\/a>.<\/li>\n<li><a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/math\/rand\/v2\/\">math\/rand\/v2<\/a>: <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/math\/rand\/v2#ChaCha8\">ChaCha8<\/a> dhe <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/math\/rand\/v2#PCG\">PCG<\/a> tani implementojn\u00eb nd\u00ebrfaqen <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/encoding#BinaryAppender\">encoding.BinaryAppender<\/a>.<\/li>\n<\/ul>\n<h4><a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/net\/\">net<\/a><\/h4>\n<p> <noindex><\/p>\n<p><a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/net#ListenConfig\">ListenCondig<\/a> tani p\u00ebrdor MPTCP si parazgjedhje n\u00eb sistemet ku kjo mb\u00ebshtetet (deri tani vet\u00ebm Linux).<\/p>\n<p><\/noindex> <noindex><\/p>\n<p><a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/net#IP\">IP<\/a> tani implementon nd\u00ebrfaqen <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/encoding#TextAppender\">encoding.TextAppender<\/a>.<\/p>\n<p><\/noindex> <\/p>\n<h4><a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/net\/http\/\">net\/http<\/a><\/h4>\n<p> <noindex><\/p>\n<p>Kufiri \u00ebsht\u00eb ndryshuar <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/net\/http#Transport\">Transport<\/a> p\u00ebr p\u00ebrgjigjet informative 1xx n\u00eb p\u00ebrgjigje t\u00eb nj\u00eb k\u00ebrkese. M\u00eb par\u00eb, kjo ndalonte k\u00ebrkes\u00ebn dhe kthente nj\u00eb gabim pas marrjes s\u00eb m\u00eb shum\u00eb se 5 p\u00ebrgjigjeve 1xx. Tani kjo kthen nj\u00eb gabim vet\u00ebm n\u00ebse gjat\u00ebsia totale e t\u00eb gjitha p\u00ebrgjigjeve 1xx tejkalon konfigurimin e cil\u00ebsimeve <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/net\/http#Transport.MaxResponseHeaderBytes\">Transport.MaxResponseHeaderBytes<\/a>.<\/p>\n<p><\/noindex> <noindex><\/p>\n<p>P\u00ebr m\u00eb tep\u00ebr, kur k\u00ebrkesa ka nj\u00eb hook p\u00ebr ndjekjen <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/net\/http\/httptrace#ClientTrace.Got1xxResponse\">net\/http\/httptrace.ClientTrace.Got1xxResponse<\/a>, tani nuk ka kufizim n\u00eb numrin e p\u00ebrgjigjeve 1xx. Hook Got1xxResponse mund t\u00eb kthej\u00eb nj\u00eb gabim p\u00ebr t\u00eb ndaluar k\u00ebrkes\u00ebn.<\/p>\n<p><\/noindex> <noindex><\/p>\n<p><a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/net\/http#Transport\">Transport<\/a> dhe <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/net\/http#Server\">Server<\/a> tani kan\u00eb nj\u00eb fush\u00eb HTTP2, e cila lejon konfigurimin e cil\u00ebsimeve t\u00eb protokollit HTTP\/2.<\/p>\n<p><\/noindex> <noindex><\/p>\n<p>Fushat e reja <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/net\/http#Server.Protocols\">Server.Protocols<\/a> dhe <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/net\/http#Transport.Protocols\">Transport.Protocols<\/a> sigurojn\u00eb nj\u00eb m\u00ebnyr\u00eb t\u00eb thjesht\u00eb p\u00ebr t\u00eb konfiguruar se cilat protokolle p\u00ebrdor serveri ose klienti HTTP.<\/p>\n<p><\/noindex> <\/p>\n<p>Serveri dhe klienti mund t\u00eb konfigurohen p\u00ebr t\u00eb mb\u00ebshtetur lidhje t\u00eb paenktuara HTTP\/2.<\/p>\n<p> <noindex><\/p>\n<p>Kur <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/net\/http#Server.Protocols\">Server.Protocols<\/a> p\u00ebrmban UnencrypterHTTP2, serveri do t\u00eb pranoj\u00eb lidhje HTTP\/2 n\u00eb porte t\u00eb pa-enkriptuara. Serveri mund t\u00eb pranoj\u00eb nj\u00ebkoh\u00ebsisht HTTP\/1 dhe HTTP\/2 t\u00eb pa-enkriptuar n\u00eb t\u00eb nj\u00ebjtin port.<\/p>\n<p><\/noindex> <noindex><\/p>\n<p>Kur <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/net\/http#Transport.Protocols\">Transport.Protocols<\/a> p\u00ebrmban UnencryptedHTTP2 dhe nuk p\u00ebrmban HTTP1, transporti do t\u00eb p\u00ebrdor\u00eb HTTP\/2 t\u00eb pa-enkriptuar p\u00ebr adresat. <a rel=\"nofollow\" href=\"http:\/\/.\">http:\/\/.<\/a> N\u00ebse transporti \u00ebsht\u00eb konfiguruar p\u00ebr t\u00eb p\u00ebrdorur nj\u00ebkoh\u00ebsisht HTTP\/1 dhe HTTP\/2 t\u00eb pa-enkriptuar, do t\u00eb p\u00ebrdor\u00eb HTTP\/1.<\/p>\n<p><\/noindex> <\/p>\n<p>Mb\u00ebshtetje p\u00ebr HTTP\/2 t\u00eb pa-enkriptuar p\u00ebrdor \"HTTP\/2 me njohuri paraprake\" (RFC 9113, seksioni 3.3). Titulli i vjet\u00ebr \"Upgrade: h2c\" nuk mb\u00ebshtetet.<\/p>\n<h4><a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/net\/netip\/\">net\/netip<\/a><\/h4>\n<p> <noindex><\/p>\n<p><a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/net\/netip#Addr\">Addr<\/a>, <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/net\/netip#AddrPort\">AddrPort<\/a> dhe <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/net\/netip#Prefix\">Prefix<\/a> tani implementojn\u00eb nd\u00ebrfaqet <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/encoding#BinaryAppender\">encoding.BinaryAppender<\/a> dhe <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/encoding#TextAppender\">encoding.TextAppender<\/a>.<\/p>\n<p><\/noindex> <\/p>\n<h4><a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/net\/url\/\">net\/url<\/a><\/h4>\n<p> <noindex><\/p>\n<p><a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/net\/url#URL\">URL<\/a> tani gjithashtu realizon nd\u00ebrfaqen <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/encoding#BinaryAppender\">encoding.BinaryAppender<\/a>.<\/p>\n<p><\/noindex> <\/p>\n<h4><a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/os\/user\/\">os\/user<\/a><\/h4>\n<p> <noindex><\/p>\n<p>N\u00eb Windows <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/os\/user#Current\">Current<\/a> tani mund t\u00eb p\u00ebrdoret n\u00eb Windows Nano Server. Implementimi \u00ebsht\u00eb p\u00ebrdit\u00ebsuar p\u00ebr t\u00eb shmangur p\u00ebrdorimin e funksioneve nga biblioteka NetApi32, e cila nuk \u00ebsht\u00eb e pranishme n\u00eb Nano Server.<\/p>\n<p><\/noindex> <noindex><\/p>\n<p>N\u00eb Windows <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/os\/user#Current\">Current<\/a>, <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/os\/user#Lookup\">Lookup<\/a> dhe <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/os\/user#LookupId\">LookupId<\/a> tani mb\u00ebshtesin llogarit\u00eb e sh\u00ebrbimit t\u00eb integruar t\u00eb p\u00ebrdoruesit si m\u00eb posht\u00eb:<\/p>\n<p><\/noindex> <\/p>\n<ul>\n<li>NT AUTHORITYSYSTEM<\/li>\n<li>NT AUTHORITYLOCAL SERVICE<\/li>\n<li>NT AUTHORITYNETWORK SERVICE<\/li>\n<\/ul>\n<p> <noindex><\/p>\n<p>N\u00eb Windows <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/os\/user#Current\">Current<\/a> u p\u00ebrshpejtua ndjesh\u00ebm kur p\u00ebrdoruesi aktual \u00ebsht\u00eb i lidhur me nj\u00eb domain t\u00eb ngadalt\u00eb, q\u00eb \u00ebsht\u00eb nj\u00eb rast i zakonsh\u00ebm p\u00ebr shum\u00eb p\u00ebrdorues korporatash. Tani performanca e realizimit \u00ebsht\u00eb n\u00eb milisekonda, n\u00eb krahasim me realizimin e m\u00ebparsh\u00ebm, i cili mund t\u00eb merrte disa sekonda, madje minuta, p\u00ebr t'u p\u00ebrfunduar.<\/p>\n<p><\/noindex> <noindex><\/p>\n<p>N\u00eb Windows <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/os\/user#Current\">Current<\/a> tani kthen p\u00ebrdoruesin e pronarit t\u00eb procesit, kur rrjedha aktuale identifikohet si nj\u00eb p\u00ebrdorues tjet\u00ebr. M\u00eb par\u00eb, kjo ktheu nj\u00eb gabim.<\/p>\n<p><\/noindex> <\/p>\n<h4><a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/regexp\/\">regexp<\/a><\/h4>\n<p> <noindex><\/p>\n<p><a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/regexp#Regexp\">Regexp<\/a> tani implementon nd\u00ebrfaqen <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/encoding#TextAppender\">encoding.TextAdapter<\/a>.<\/p>\n<p><\/noindex> <\/p>\n<h4><a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/runtime\/\">runtime<\/a><\/h4>\n<p> <noindex><\/p>\n<p>Funksioni <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/runtime#GOROOT\">GOROOT<\/a> tani \u00ebsht\u00eb shpallur e vjetruar. N\u00eb kodin e ri, preferohet p\u00ebrdorimi i rrug\u00ebs s\u00eb sistemit p\u00ebr t\u00eb p\u00ebrcaktuar binarin 'go', dhe t\u00eb p\u00ebrdorim go env GOROOT p\u00ebr t\u00eb p\u00ebrcaktuar GOROOT.<\/p>\n<p><\/noindex> <\/p>\n<h4><a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/strings\/\">strings<\/a><\/h4>\n<p> <noindex><\/p>\n<p>Paketa <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/strings\">strings<\/a> shton disa funksione p\u00ebr t\u00eb punuar me iteraator\u00eb:<\/p>\n<p><\/noindex> <\/p>\n<ul>\n<li><a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/strings#Lines\">Lines<\/a> kthen nj\u00eb iteraator p\u00ebr rrjeshtat e ndara nga nj\u00eb linj\u00eb e re n\u00eb varg.<\/li>\n<li><a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/strings#SplitSeq\">SplitSeq<\/a> kthen nj\u00eb iteraator p\u00ebr t\u00eb gjitha n\u00ebnstringat e vargut, t\u00eb ndara nga separatori.<\/li>\n<li><a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/strings#SplitAfterSeq\">SplitAfterSeq<\/a> kthen nj\u00eb iteraator p\u00ebr n\u00ebnstringat e vargut, t\u00eb ndara pas \u00e7do apari t\u00eb separatori.<\/li>\n<li><a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/strings#FieldsSeq\">FieldsSeq<\/a> kthen nj\u00eb iteraator p\u00ebr n\u00ebnstringat e vargut p\u00ebrreth sekuencave t\u00eb karaktereve t\u00eb hap\u00ebsir\u00ebs, si\u00e7 \u00ebsht\u00eb p\u00ebrcaktuar<a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/unicode#IsSpace\">unicode.IsSpace<\/a><\/li>\n<li><a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/strings#FieldsFuncSeq\">FieldsFuncSeq<\/a> kthen iterues nj\u00eb iterator mbi substrat e nj\u00eb stringu rreth sekuencave t\u00eb kodit t\u00eb pikave t\u00eb unicode q\u00eb p\u00ebrputhen me nj\u00eb predikat.<\/li>\n<\/ul>\n<h4><a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/sync\/\">sync<\/a><\/h4>\n<p> <noindex><\/p>\n<p>Realizimi <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/sync#Map\">sync.Map<\/a> u p\u00ebrmir\u00ebsua, duke rritur performanc\u00ebn, ve\u00e7an\u00ebrisht p\u00ebr ndryshime n\u00eb hart\u00eb. P\u00ebr shembull, konkurrenca e ndryshimeve t\u00eb grupeve t\u00eb pap\u00ebrputhshme n\u00eb harta t\u00eb m\u00ebdha \u00ebsht\u00eb m\u00eb pak e mundshme dhe nuk ka m\u00eb nevoj\u00eb p\u00ebr koh\u00eb rritjeje p\u00ebr t\u00eb arritur nj\u00eb p\u00ebrputhje t\u00eb ul\u00ebt n\u00eb hart\u00eb.<\/p>\n<p><\/noindex> <noindex><\/p>\n<p>N\u00ebse hasni ndonj\u00eb problem, vendosni GOEXPERIMENT=nosynchashtriemap gjat\u00eb nd\u00ebrtimit p\u00ebr t\u00eb kthyer n\u00eb implementimin e vjet\u00ebr dhe, ju lutem, <a rel=\"nofollow\" href=\"https:\/\/go.dev\/issue\/new\">plot\u00ebsoni formularin e problemit<\/a>.<\/p>\n<p><\/noindex> <\/p>\n<h4><a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/testing\/\">testing<\/a><\/h4>\n<p> <noindex><\/p>\n<p>Metoda t\u00eb reja <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/testing#T.Context\">T.Context<\/a> dhe <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/testing#B.Context\">B.Context<\/a> kthen kontekstin q\u00eb anulohet pas p\u00ebrfundimit t\u00eb testit dhe para ekzekutimit t\u00eb funksioneve t\u00eb pastrimit t\u00eb testit.<\/p>\n<p><\/noindex> <noindex><\/p>\n<p>Metoda t\u00eb reja <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/testing#T.Chdir\">T.Chdir<\/a> dhe <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/testing#B.Chdir\">B.Chdir<\/a> mund t\u00eb p\u00ebrdoren p\u00ebr t\u00eb ndryshuar direktorin\u00eb e pun\u00ebs gjat\u00eb realizimit t\u00eb testit ose benchmarkut.<\/p>\n<p><\/noindex> <\/p>\n<h4><a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/text\/template\/\">text\/template<\/a><\/h4>\n<p>Shabllonet tani mb\u00ebshtesin range-over-func dhe range-over-int.<\/p>\n<h4><a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/time\/\">time<\/a><\/h4>\n<p> <noindex><\/p>\n<p><a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/time#Time\">Koha<\/a> tani implementon nd\u00ebrfaqet <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/encoding#BinaryAppender\">encoding.BinaryAppender<\/a> dhe <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/encoding#TextAppender\">encoding.TextAppender<\/a>.<\/p>\n<p><\/noindex> <\/p>\n<h2>Ports<\/h2>\n<h3>Linux<\/h3>\n<p> <noindex><\/p>\n<p>Si\u00e7 ishte <a rel=\"nofollow\" href=\"https:\/\/go.dev\/doc\/go1.23#linux\">njoftuar<\/a> n\u00eb sh\u00ebnimet e l\u00ebshimit t\u00eb Go 1.23, Go 1.24 k\u00ebrkon kernelin Linux version 3.2 ose m\u00eb von\u00eb.<\/p>\n<p><\/noindex> <\/p>\n<h3>Darwin<\/h3>\n<p>Go 1.24 \u00ebsht\u00eb l\u00ebshimi i fundit q\u00eb do t\u00eb funksionoj\u00eb n\u00eb macOS 11 Big Sur. Go 1.25 do t\u00eb k\u00ebrkoj\u00eb macOS 12 Monterey ose m\u00eb von\u00eb.<\/p>\n<h3>WebAssembly<\/h3>\n<p>Direktiva e kompilerit go:wasmexport \u00ebsht\u00eb shtuar n\u00eb programet Go p\u00ebr t\u00eb eksportuar funksione n\u00eb host WebAssembly.<\/p>\n<p> <noindex><\/p>\n<p>N\u00eb WebAssembly System Interface Preview 1 (GOOS=wasip1 GOARCH=wasm), Go 1.24 mb\u00ebshtet nd\u00ebrtimin e programeve Go si <a rel=\"nofollow\" href=\"https:\/\/github.com\/WebAssembly\/WASI\/blob\/63a46f61052a21bfab75a76558485cf097c0dbba\/legacy\/application-abi.md#current-unstable-abi\">reaktor\/librari<\/a> n\u00ebp\u00ebrmjet specifikimit t\u00eb flagut t\u00eb nd\u00ebrtimit -buildmode=c-shared.<\/p>\n<p><\/noindex> <noindex><\/p>\n<p>T\u00eb m\u00eb shum\u00eb tipeve tani lejohet si tip argumendi ose rezultati p\u00ebr funksionet go:wasmimport. N\u00eb ve\u00e7anti, bool, string, uintptr dhe pointer t\u00eb tipeve t\u00eb caktuara jan\u00eb t\u00eb lejuara (detaje mund t\u00eb shikohen n\u00eb <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/cmd\/compile#hdr-WebAssembly_Directives\">dokumentacion<\/a>), s\u00eb bashku me tipe t\u00eb numrave t\u00eb plot\u00eb 32-bit dhe 64-bit dhe tipeve me pik\u00eb fluturuese, dhe unsafe.Pointer, t\u00eb cilat jan\u00eb tashm\u00eb t\u00eb lejuara. K\u00ebto tipe gjithashtu lejohet si tipe argumendi ose rezultati p\u00ebr funksionet go:wasmexport.<\/p>\n<p><\/noindex> <\/p>\n<p>Skedar\u00ebt mb\u00ebshtet\u00ebs p\u00ebr WebAssembly jan\u00eb zhvendosur nga lib\/wasm n\u00eb misc\/wasm.<\/p>\n<p>K\u00ebndi origjinal i memories \u00ebsht\u00eb reduktuar ndjesh\u00ebm, sidomos p\u00ebr aplikacione t\u00eb vogla WebAssembly.<\/p>\n<h3>Windows<\/h3>\n<p> <noindex><\/p>\n<p>Porti 32-bit windows\/arm (GOOS=windows GOARCH=arm) \u00ebsht\u00eb sh\u00ebnuar si i prishur. Detaje n\u00eb <a rel=\"nofollow\" href=\"https:\/\/go.dev\/issue\/70705\">#70705<\/a><\/p>\n<p><\/noindex><\/p>\n<p>Burimi: <a \ncontent=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/www.linux.org.ru\/news\/development\/17884044\">linux.org.ru<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u041d\u043e\u0432\u044b\u0439 \u0432\u044b\u043f\u0443\u0441\u043a \u044f\u0437\u044b\u043a\u0430 Go, \u0432\u0435\u0440\u0441\u0438\u044f 1.24, \u0432\u044b\u0445\u043e\u0434\u0438\u0442 \u0441\u043f\u0443\u0441\u0442\u044f \u0448\u0435\u0441\u0442\u044c \u043c\u0435\u0441\u044f\u0446\u0435\u0432 \u043f\u043e\u0441\u043b\u0435 Go 1.23. \u0411\u043e\u043b\u044c\u0448\u0438\u043d\u0441\u0442\u0432\u043e \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0439 \u0432 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0442\u0443\u043b\u0447\u0435\u0439\u043d\u0430, \u0440\u0430\u043d\u0442\u0430\u0439\u043c\u0430 \u0438 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a. \u041a\u0430\u043a \u0432\u0441\u0435\u0433\u0434\u0430, \u0440\u0435\u043b\u0438\u0437 \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0438\u0432\u0430\u0435\u0442 \u043e\u0431\u0435\u0449\u0430\u043d\u0438\u0435 \u0441\u043e\u0432\u043c\u0435\u0441\u0442\u0438\u043c\u043e\u0441\u0442\u0438 Go 1. \u0420\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0438 \u044f\u0437\u044b\u043a\u0430 \u043e\u0436\u0438\u0434\u0430\u044e\u0442, \u0447\u0442\u043e \u043f\u043e\u0447\u0442\u0438 \u0432\u0441\u0435 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b Go \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0430\u0442 \u043a\u043e\u043c\u043f\u0438\u043b\u0438\u0440\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u0438 \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u043a\u0430\u043a \u043f\u0440\u0435\u0436\u0434\u0435. \u0418\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u0432 \u044f\u0437\u044b\u043a\u0435 Go 1.24 \u0442\u0435\u043f\u0435\u0440\u044c \u043f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442 \u043e\u0431\u043e\u0431\u0449\u0451\u043d\u043d\u044b\u0435 \u0430\u043b\u0438\u0430\u0441\u044b \u0442\u0438\u043f\u043e\u0432: \u0430\u043b\u0438\u0430\u0441 [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":121951,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[702],"tags":[],"class_list":["post-121950","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-novosti-interneta"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 4.9.10 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u041d\u043e\u0432\u044b\u0439 \u0432\u044b\u043f\u0443\u0441\u043a \u044f\u0437\u044b\u043a\u0430 Go, \u0432\u0435\u0440\u0441\u0438\u044f 1.24, \u0432\u044b\u0445\u043e\u0434\u0438\u0442 \u0441\u043f\u0443\u0441\u0442\u044f \u0448\u0435\u0441\u0442\u044c \u043c\u0435\u0441\u044f\u0446\u0435\u0432 \u043f\u043e\u0441\u043b\u0435 Go 1.23. \u0411\u043e\u043b\u044c\u0448\u0438\u043d\u0441\u0442\u0432\u043e \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0439 \u0432 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0442\u0443\u043b\u0447\u0435\u0439\u043d\u0430, \u0440\u0430\u043d\u0442\u0430\u0439\u043c\u0430 \u0438 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a. \u041a\u0430\u043a \u0432\u0441\u0435\u0433\u0434\u0430, \u0440\u0435\u043b\u0438\u0437 \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0438\u0432\u0430\u0435\u0442 \u043e\u0431\u0435\u0449\u0430\u043d\u0438\u0435 \u0441\u043e\u0432\u043c\u0435\u0441\u0442\u0438\u043c\u043e\u0441\u0442\u0438 Go 1. \u0420\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0438 \u044f\u0437\u044b\u043a\u0430 \u043e\u0436\u0438\u0434\u0430\u044e\u0442, \u0447\u0442\u043e \u043f\u043e\u0447\u0442\u0438 \u0432\u0441\u0435 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b Go \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0430\u0442 \u043a\u043e\u043c\u043f\u0438\u043b\u0438\u0440\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u0438 \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u043a\u0430\u043a \u043f\u0440\u0435\u0436\u0434\u0435. \u0418\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u0432 \u044f\u0437\u044b\u043a\u0435 Go 1.24 \u0442\u0435\u043f\u0435\u0440\u044c \u043f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442 \u043e\u0431\u043e\u0431\u0449\u0451\u043d\u043d\u044b\u0435 \u0430\u043b\u0438\u0430\u0441\u044b \u0442\u0438\u043f\u043e\u0432: \u0430\u043b\u0438\u0430\u0441\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/sq\/blog\/novosti-interneta\/go-1-24\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 4.9.10\" \/>\n\t\t<meta property=\"og:locale\" content=\"sq_AL\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47Go 1.24 | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u041d\u043e\u0432\u044b\u0439 \u0432\u044b\u043f\u0443\u0441\u043a \u044f\u0437\u044b\u043a\u0430 Go, \u0432\u0435\u0440\u0441\u0438\u044f 1.24, \u0432\u044b\u0445\u043e\u0434\u0438\u0442 \u0441\u043f\u0443\u0441\u0442\u044f \u0448\u0435\u0441\u0442\u044c \u043c\u0435\u0441\u044f\u0446\u0435\u0432 \u043f\u043e\u0441\u043b\u0435 Go 1.23. \u0411\u043e\u043b\u044c\u0448\u0438\u043d\u0441\u0442\u0432\u043e \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0439 \u0432 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0442\u0443\u043b\u0447\u0435\u0439\u043d\u0430, \u0440\u0430\u043d\u0442\u0430\u0439\u043c\u0430 \u0438 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a. \u041a\u0430\u043a \u0432\u0441\u0435\u0433\u0434\u0430, \u0440\u0435\u043b\u0438\u0437 \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0438\u0432\u0430\u0435\u0442 \u043e\u0431\u0435\u0449\u0430\u043d\u0438\u0435 \u0441\u043e\u0432\u043c\u0435\u0441\u0442\u0438\u043c\u043e\u0441\u0442\u0438 Go 1. \u0420\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0438 \u044f\u0437\u044b\u043a\u0430 \u043e\u0436\u0438\u0434\u0430\u044e\u0442, \u0447\u0442\u043e \u043f\u043e\u0447\u0442\u0438 \u0432\u0441\u0435 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b Go \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0430\u0442 \u043a\u043e\u043c\u043f\u0438\u043b\u0438\u0440\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u0438 \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u043a\u0430\u043a \u043f\u0440\u0435\u0436\u0434\u0435. \u0418\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u0432 \u044f\u0437\u044b\u043a\u0435 Go 1.24 \u0442\u0435\u043f\u0435\u0440\u044c \u043f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442 \u043e\u0431\u043e\u0431\u0449\u0451\u043d\u043d\u044b\u0435 \u0430\u043b\u0438\u0430\u0441\u044b \u0442\u0438\u043f\u043e\u0432: \u0430\u043b\u0438\u0430\u0441\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/sq\/blog\/novosti-interneta\/go-1-24\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2025-02-15T12:22:29+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2025-02-15T12:22:29+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47Go 1.24 | ProHoster","description":"\u00c7lirim i ri i gjuh\u00ebs Go, versioni 1.24, del pas gjasht muajve nga Go 1.23. Shumica e ndryshimeve prekin realizimin e mjetit, runtime dhe bibliotekave. Si gjithmon\u00eb, l\u00ebshimi p\u00ebrmbush premtimin e pajtueshm\u00ebris\u00eb me Go 1. Zhvilluesit e gjuh\u00ebs presin q\u00eb pothuajse t\u00eb gjitha programet Go t\u00eb vazhdojn\u00eb t\u00eb kompilohen dhe t\u00eb funksionojn\u00eb si m\u00eb par\u00eb. Ndryshimet n\u00eb gjuh\u00ebn Go 1.24 tani mb\u00ebshtesin plot\u00ebsisht aliaset e llojeve t\u00eb p\u00ebrgjithshme: aliased","canonical_url":"https:\/\/prohoster.info\/sq\/blog\/novosti-interneta\/go-1-24","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"sq_AL","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47Go 1.24 | ProHoster","og:description":"\u041d\u043e\u0432\u044b\u0439 \u0432\u044b\u043f\u0443\u0441\u043a \u044f\u0437\u044b\u043a\u0430 Go, \u0432\u0435\u0440\u0441\u0438\u044f 1.24, \u0432\u044b\u0445\u043e\u0434\u0438\u0442 \u0441\u043f\u0443\u0441\u0442\u044f \u0448\u0435\u0441\u0442\u044c \u043c\u0435\u0441\u044f\u0446\u0435\u0432 \u043f\u043e\u0441\u043b\u0435 Go 1.23. \u0411\u043e\u043b\u044c\u0448\u0438\u043d\u0441\u0442\u0432\u043e \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0439 \u0432 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0442\u0443\u043b\u0447\u0435\u0439\u043d\u0430, \u0440\u0430\u043d\u0442\u0430\u0439\u043c\u0430 \u0438 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a. \u041a\u0430\u043a \u0432\u0441\u0435\u0433\u0434\u0430, \u0440\u0435\u043b\u0438\u0437 \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0438\u0432\u0430\u0435\u0442 \u043e\u0431\u0435\u0449\u0430\u043d\u0438\u0435 \u0441\u043e\u0432\u043c\u0435\u0441\u0442\u0438\u043c\u043e\u0441\u0442\u0438 Go 1. \u0420\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0438 \u044f\u0437\u044b\u043a\u0430 \u043e\u0436\u0438\u0434\u0430\u044e\u0442, \u0447\u0442\u043e \u043f\u043e\u0447\u0442\u0438 \u0432\u0441\u0435 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b Go \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0430\u0442 \u043a\u043e\u043c\u043f\u0438\u043b\u0438\u0440\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u0438 \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u043a\u0430\u043a \u043f\u0440\u0435\u0436\u0434\u0435. \u0418\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u0432 \u044f\u0437\u044b\u043a\u0435 Go 1.24 \u0442\u0435\u043f\u0435\u0440\u044c \u043f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442 \u043e\u0431\u043e\u0431\u0449\u0451\u043d\u043d\u044b\u0435 \u0430\u043b\u0438\u0430\u0441\u044b \u0442\u0438\u043f\u043e\u0432: \u0430\u043b\u0438\u0430\u0441","og:url":"https:\/\/prohoster.info\/sq\/blog\/novosti-interneta\/go-1-24","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2025-02-15T12:22:29+00:00","article:modified_time":"2025-02-15T12:22:29+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"121950","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":"default","schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":"2026-01-23 10:38:20","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2026-01-23 10:38:20","updated":"2026-01-23 10:38:20"},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/posts\/121950","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/comments?post=121950"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/posts\/121950\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/media\/121951"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/media?parent=121950"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/categories?post=121950"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/tags?post=121950"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}