[{"data":1,"prerenderedAt":444},["ShallowReactive",2],{"page-\u002Fprojects\u002Fdarvaza-resolver":3,"categories":284,"go-packages":431},{"id":4,"title":5,"body":6,"category":269,"description":273,"extension":274,"go":5,"licence":275,"meta":276,"navigation":277,"npm":278,"path":279,"repo":280,"seo":281,"stem":282,"__hash__":283},"projects\u002Fprojects\u002Fdarvaza-resolver.md","darvaza.org\u002Fresolver",{"type":7,"value":8,"toc":261},"minimark",[9,32,53,58,121,124,128,195,199,239,243],[10,11,12,13,18,19,23,24,27,28,31],"p",{},"Pluggable DNS resolver library built on ",[14,15],"go-pkg",{"mod":16,"label":17},"github.com\u002Fmiekg\u002Fdns","miekg\u002Fdns",".\nDefines the ",[14,20],{"mod":5,"sym":21,":short":22},"Resolver","true",",\n",[14,25],{"mod":5,"sym":26,":short":22},"Lookuper",",\nand ",[14,29],{"mod":5,"sym":30,":short":22},"Exchanger","\ninterfaces that decouple DNS consumers from the transport and\nresolution strategy.",[10,33,34,35,39,40,23,43,46,47,27,49,52],{},"Three resolver constructors cover the common cases:\n",[36,37,38],"code",{},"SystemResolver"," wraps ",[14,41],{"mod":42,"sym":21},"net",[36,44,45],{},"NewResolver"," delegates to any ",[36,48,26],{},[36,50,51],{},"NewRootResolver"," performs iterative resolution from the\nroot servers.",[54,55,57],"h2",{"id":56},"lookuper-implementations","Lookuper implementations",[59,60,61,73],"table",{},[62,63,64],"thead",{},[65,66,67,70],"tr",{},[68,69,26],"th",{},[68,71,72],{},"Description",[74,75,76,91,101,111],"tbody",{},[65,77,78,84],{},[79,80,81],"td",{},[14,82],{"mod":5,"sym":83,":short":22},"SingleLookuper",[79,85,86,87],{},"Forwards queries to a single ",[14,88],{"mod":5,"sym":89,":short":22,"dir":90},"Client","pkg\u002Fclient",[65,92,93,98],{},[79,94,95],{},[14,96],{"mod":5,"sym":97,":short":22},"MultiLookuper",[79,99,100],{},"Fans out to multiple lookupers, returns the first response",[65,102,103,108],{},[79,104,105],{},[14,106],{"mod":5,"sym":107,":short":22},"RootLookuper",[79,109,110],{},"Iterative resolution from root nameservers",[65,112,113,118],{},[79,114,115],{},[14,116],{"mod":5,"sym":117,":short":22},"SingleFlight",[79,119,120],{},"Deduplicates identical concurrent queries",[10,122,123],{},"Well-known recursive resolvers (Google, Cloudflare, Quad9) are\navailable as one-liner constructors.",[54,125,127],{"id":126},"client-middleware","Client middleware",[59,129,130,139],{},[62,131,132],{},[65,133,134,137],{},[68,135,136],{},"Middleware",[68,138,72],{},[74,140,141,162,171,181],{},[65,142,143,148],{},[79,144,145],{},[14,146],{"mod":5,"sym":147,":short":22,"dir":90},"Auto",[79,149,150,151,154,155,154,158,161],{},"Selects protocol by server prefix (",[36,152,153],{},"udp:\u002F\u002F",", ",[36,156,157],{},"tcp:\u002F\u002F",[36,159,160],{},"tls:\u002F\u002F","), retries truncated UDP as TCP",[65,163,164,168],{},[79,165,166],{},[14,167],{"mod":5,"sym":117,":short":22,"dir":90},[79,169,170],{},"Per-server deduplication with short-lived caching",[65,172,173,178],{},[79,174,175],{},[14,176],{"mod":5,"sym":177,":short":22,"dir":90},"WorkerPool",[79,179,180],{},"Concurrency limiter for exchange calls",[65,182,183,188],{},[79,184,185],{},[14,186],{"mod":5,"sym":187,":short":22,"dir":90},"NoAAAA",[79,189,190,191,194],{},"Strips ",[36,192,193],{},"AAAA"," records for IPv4-only environments",[54,196,198],{"id":197},"additional-packages","Additional packages",[200,201,202,216,225],"ul",{},[203,204,205,206,209,210,212,213,215],"li",{},"The ",[14,207],{"mod":5,"dir":208},"pkg\u002Fserver"," package\nprovides a DNS server handler on top of any ",[36,211,26],{},"\nor ",[36,214,30],{},".",[203,217,205,218,221,222,215],{},[14,219],{"mod":5,"dir":220},"pkg\u002Freflect"," package\nprovides optional logging middleware\nusing ",[14,223],{"mod":224},"darvaza.org\u002Fslog",[203,226,205,227,230,231,234,235,238],{},[14,228],{"mod":5,"dir":229},"pkg\u002Ferrors"," package\nprovides standard ",[14,232],{"mod":42,"sym":233},"DNSError"," wrappers\nwith ",[14,236],{"mod":16,"sym":237},"Msg"," conversion.",[54,240,242],{"id":241},"see-also","See also",[200,244,245,251,256],{},[203,246,247,248],{},"Network helpers — ",[14,249],{"mod":250},"darvaza.org\u002Fx\u002Fnet",[203,252,253,254],{},"Structured logging — ",[14,255],{"mod":224},[203,257,258,259],{},"DNS library — ",[14,260],{"mod":16,"label":17},{"title":262,"searchDepth":263,"depth":263,"links":264},"",2,[265,266,267,268],{"id":56,"depth":263,"text":57},{"id":126,"depth":263,"text":127},{"id":197,"depth":263,"text":198},{"id":241,"depth":263,"text":242},[270,271,272],"darvaza","networking","go","Pluggable DNS resolver library with forwarding, iterative, and parallel lookup strategies built on miekg\u002Fdns.","md","MIT",{},true,null,"\u002Fprojects\u002Fdarvaza-resolver","github:darvaza-proxy\u002Fresolver",{"title":5,"description":273},"projects\u002Fdarvaza-resolver","og1_FOOfW4QdL3Wa8JriKQYoTyQV_tNmXM68AUHxR8s",[285,302,316,329,350,363,379,392,405,418],{"id":286,"title":287,"body":288,"description":295,"extension":274,"kind":296,"meta":297,"navigation":277,"path":298,"seo":299,"stem":300,"__hash__":301},"categories\u002Fcategories\u002Fdarvaza.md","Darvaza",{"type":7,"value":289,"toc":293},[290],[10,291,292],{},"A family of Go libraries for building proxies and networking\ninfrastructure. An open-source project by Apptly Software.",{"title":262,"searchDepth":263,"depth":263,"links":294},[],"Go proxy and networking libraries.","umbrella",{},"\u002Fcategories\u002Fdarvaza",{"title":287,"description":295},"categories\u002Fdarvaza","LsPVpZAnH3RQcxeTw_b2V7YftItUdHiv_U46ek7GiI0",{"id":303,"title":304,"body":305,"description":309,"extension":274,"kind":310,"meta":311,"navigation":277,"path":312,"seo":313,"stem":314,"__hash__":315},"categories\u002Fcategories\u002Fgo.md","Go",{"type":7,"value":306,"toc":307},[],{"title":262,"searchDepth":263,"depth":263,"links":308},[],"Projects written in Go.","language",{},"\u002Fcategories\u002Fgo",{"title":304,"description":309},"categories\u002Fgo","ULWwBCwYo0s0dltCZKbfhGL3VDGzmJrIYgPF0aD381E",{"id":317,"title":318,"body":319,"description":323,"extension":274,"kind":278,"meta":324,"navigation":277,"path":325,"seo":326,"stem":327,"__hash__":328},"categories\u002Fcategories\u002Finfrastructure.md","Infrastructure",{"type":7,"value":320,"toc":321},[],{"title":262,"searchDepth":263,"depth":263,"links":322},[],"Deployment, orchestration, and platform tooling.",{},"\u002Fcategories\u002Finfrastructure",{"title":318,"description":323},"categories\u002Finfrastructure","4zhV0rSeRtvnzmBjj4hYBqXGoRGJ-HXglMTzbbeNURY",{"id":330,"title":331,"body":332,"description":344,"extension":274,"kind":296,"meta":345,"navigation":277,"path":346,"seo":347,"stem":348,"__hash__":349},"categories\u002Fcategories\u002Fkagal.md","Kagal",{"type":7,"value":333,"toc":342},[334],[10,335,336,337,341],{},"Named after the Sumerian ",[338,339,340],"em",{},"Ká.Gal"," (𒆍𒃲, \"Great Gate\"), Kagal is a\ncollection of TypeScript libraries for Cloudflare edge infrastructure\nand related tooling. An open-source project by Apptly Software.",{"title":262,"searchDepth":263,"depth":263,"links":343},[],"TypeScript libraries for Cloudflare edge infrastructure.",{},"\u002Fcategories\u002Fkagal",{"title":331,"description":344},"categories\u002Fkagal","9lgG7kCfdjUFD8pusQnAwcVCHU0EFn1W_8C33k4-xH0",{"id":351,"title":352,"body":353,"description":357,"extension":274,"kind":278,"meta":358,"navigation":277,"path":359,"seo":360,"stem":361,"__hash__":362},"categories\u002Fcategories\u002Fnetworking.md","Networking",{"type":7,"value":354,"toc":355},[],{"title":262,"searchDepth":263,"depth":263,"links":356},[],"Protocols, transports, and connectivity.",{},"\u002Fcategories\u002Fnetworking",{"title":352,"description":357},"categories\u002Fnetworking","Z3wIzhHCRt3IO9IPRDGzAkEGtYm13UdbarFAC_j9R-E",{"id":364,"title":365,"body":366,"description":373,"extension":274,"kind":296,"meta":374,"navigation":277,"path":375,"seo":376,"stem":377,"__hash__":378},"categories\u002Fcategories\u002Fpoupe.md","Poupe",{"type":7,"value":367,"toc":371},[368],[10,369,370],{},"Material Design component library for Vue. An open-source project\nby Apptly Software.",{"title":262,"searchDepth":263,"depth":263,"links":372},[],"Material Design component library for Vue.",{},"\u002Fcategories\u002Fpoupe",{"title":365,"description":373},"categories\u002Fpoupe","3HdL090wyXtyiBZLconBhol5p15dj1LZIfdqk5VGGuA",{"id":380,"title":381,"body":382,"description":386,"extension":274,"kind":278,"meta":387,"navigation":277,"path":388,"seo":389,"stem":390,"__hash__":391},"categories\u002Fcategories\u002Fsecurity.md","Security",{"type":7,"value":383,"toc":384},[],{"title":262,"searchDepth":263,"depth":263,"links":385},[],"Cryptography, authentication, and PKI.",{},"\u002Fcategories\u002Fsecurity",{"title":381,"description":386},"categories\u002Fsecurity","-vhE3ktjZGJKeNDg9ZbKoF6sRqhmnbaH8fZZYlCvdRc",{"id":393,"title":394,"body":395,"description":399,"extension":274,"kind":278,"meta":400,"navigation":277,"path":401,"seo":402,"stem":403,"__hash__":404},"categories\u002Fcategories\u002Ftooling.md","Tooling",{"type":7,"value":396,"toc":397},[],{"title":262,"searchDepth":263,"depth":263,"links":398},[],"Developer tools, build utilities, and CLI helpers.",{},"\u002Fcategories\u002Ftooling",{"title":394,"description":399},"categories\u002Ftooling","5syL8Jir-4gLAe_4IimZ6zP9SKf-N5XcWHE1-He2YbU",{"id":406,"title":407,"body":408,"description":412,"extension":274,"kind":310,"meta":413,"navigation":277,"path":414,"seo":415,"stem":416,"__hash__":417},"categories\u002Fcategories\u002Ftypescript.md","TypeScript",{"type":7,"value":409,"toc":410},[],{"title":262,"searchDepth":263,"depth":263,"links":411},[],"Projects written in TypeScript.",{},"\u002Fcategories\u002Ftypescript",{"title":407,"description":412},"categories\u002Ftypescript","ZvMEwtpsv0uX1pC0zKQ55ZHChbxJHDqfJXP3XS138pE",{"id":419,"title":420,"body":421,"description":425,"extension":274,"kind":278,"meta":426,"navigation":277,"path":427,"seo":428,"stem":429,"__hash__":430},"categories\u002Fcategories\u002Fui.md","UI",{"type":7,"value":422,"toc":423},[],{"title":262,"searchDepth":263,"depth":263,"links":424},[],"User interface components and design systems.",{},"\u002Fcategories\u002Fui",{"title":420,"description":425},"categories\u002Fui","9pERIpNBwMqn40vshxSDv8QA4NeK9JZrH-ysMGHUzP8",{"darvaza.org\u002Fcache":432,"darvaza.org\u002Fcore":433,"darvaza.org\u002Fpenne":434,"darvaza.org\u002Fresolver":279,"darvaza.org\u002Fslog":435,"darvaza.org\u002Fx\u002Fcmp":436,"darvaza.org\u002Fx\u002Fconfig":437,"darvaza.org\u002Fx\u002Fcontainer":438,"darvaza.org\u002Fx\u002Ffs":439,"darvaza.org\u002Fx\u002Fnet":440,"darvaza.org\u002Fx\u002Fsync":441,"darvaza.org\u002Fx\u002Ftls":442,"darvaza.org\u002Fx\u002Fweb":443},"\u002Fprojects\u002Fdarvaza-cache","\u002Fprojects\u002Fdarvaza-core","\u002Fprojects\u002Fdarvaza-penne","\u002Fprojects\u002Fdarvaza-slog","\u002Fprojects\u002Fdarvaza-x-cmp","\u002Fprojects\u002Fdarvaza-x-config","\u002Fprojects\u002Fdarvaza-x-container","\u002Fprojects\u002Fdarvaza-x-fs","\u002Fprojects\u002Fdarvaza-x-net","\u002Fprojects\u002Fdarvaza-x-sync","\u002Fprojects\u002Fdarvaza-x-tls","\u002Fprojects\u002Fdarvaza-x-web",1775810536777]