CINXE.COM
Tools and Libraries | GraphQL
<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta name="theme-color" content="#111" media="(prefers-color-scheme: dark)"/><meta name="viewport" content="width=device-width, initial-scale=1.0, viewport-fit=cover"/><style>:root{--nextra-primary-hue:319deg;--nextra-primary-saturation:100%;--nextra-navbar-height:4rem;--nextra-menu-height:3.75rem;--nextra-banner-height:2.5rem;--nextra-bg:250,250,250;}.dark{--nextra-primary-hue:319deg;--nextra-primary-saturation:100%;--nextra-bg:27,27,27;}</style><title>Tools and Libraries | GraphQL</title><meta property="og:title" content="Tools and Libraries | GraphQL"/><meta property="og:image" content="/img/og-image.png"/><meta property="twitter:site" content="@graphql"/><meta name="next-head-count" content="8"/><link rel="preload" href="/_next/static/media/83d7d13e2307bc53-s.p.woff2" as="font" type="font/woff2" crossorigin="anonymous" data-next-font="size-adjust"/><link rel="preload" href="/_next/static/media/92f44bb82993d879-s.p.woff2" as="font" type="font/woff2" crossorigin="anonymous" data-next-font="size-adjust"/><link rel="preload" href="/_next/static/css/7c5bc1db88b085f4.css" as="style"/><link rel="stylesheet" href="/_next/static/css/7c5bc1db88b085f4.css" data-n-g=""/><noscript data-n-css=""></noscript><script defer="" nomodule="" src="/_next/static/chunks/polyfills-78c92fac7aa8fdd8.js"></script><script src="/_next/static/chunks/webpack-431ca528a6392c6a.js" defer=""></script><script src="/_next/static/chunks/framework-66a3842b975d4c52.js" defer=""></script><script src="/_next/static/chunks/main-673357edd7232b24.js" defer=""></script><script src="/_next/static/chunks/pages/_app-97f7c54e0ee7d59a.js" defer=""></script><script src="/_next/static/chunks/7487-91cae87c9f405cbe.js" defer=""></script><script src="/_next/static/chunks/5245-f4519d2939f14ae1.js" defer=""></script><script src="/_next/static/chunks/4692-0821ed55f70c918b.js" defer=""></script><script src="/_next/static/chunks/pages/community/tools-and-libraries-798173707251d06c.js" defer=""></script><script src="/_next/static/ANYoRcQUjMjxlujFCfpei/_buildManifest.js" defer=""></script><script src="/_next/static/ANYoRcQUjMjxlujFCfpei/_ssgManifest.js" defer=""></script><style id="__jsx-3927496071">html{font-family:'__Roboto_Flex_d05349', '__Roboto_Flex_Fallback_d05349'}.roboto-mono{font-family:'__Roboto_Mono_c9cbed', '__Roboto_Mono_Fallback_c9cbed'}</style></head><body><div id="__next"><script>!function(){try{var d=document.documentElement,c=d.classList;c.remove('light','dark');var e=localStorage.getItem('theme');if('system'===e||(!e&&true)){var t='(prefers-color-scheme: dark)',m=window.matchMedia(t);if(m.media!==t||m.matches){d.style.colorScheme = 'dark';c.add('dark')}else{d.style.colorScheme = 'light';c.add('light')}}else if(e){c.add(e|| '')}if(e==='light'||e==='dark')d.style.colorScheme=e}catch(e){}}()</script><div dir="ltr"><script>document.documentElement.setAttribute('dir','ltr')</script><script>try{if(localStorage.getItem("graphqlconf-2024")==='0'){document.body.classList.add('nextra-banner-hidden')}}catch(e){}</script><div class="nextra-banner-container max-md:_sticky _top-0 _z-20 _flex _items-center _h-[var(--nextra-banner-height)] [body.nextra-banner-hidden_&]:_hidden _text-slate-50 dark:_text-white _bg-neutral-900 dark:_bg-[linear-gradient(1deg,#383838,#212121)] _px-2 _ps-10 print:_hidden"><div class="_w-full _truncate _text-center _font-medium _text-sm">🎬 That's a Wrap for GraphQLConf 2024! • Watch the Videos •<!-- --> <a class="underline after:content-['_→'] after:font-sans" href="/conf/2024/">Check out the recorded talks and workshops</a></div><button type="button" aria-label="Dismiss banner" class="_w-8 _h-8 _opacity-80 hover:_opacity-100"><svg width="20" height="20" viewBox="0 0 20 20" fill="currentColor" class="_mx-auto _h-4 _w-4"><path fill-rule="evenodd" d="M4.293 4.293a1 1 0 011.414 0L10 8.586l4.293-4.293a1 1 0 111.414 1.414L11.414 10l4.293 4.293a1 1 0 01-1.414 1.414L10 11.414l-4.293 4.293a1 1 0 01-1.414-1.414L8.586 10 4.293 5.707a1 1 0 010-1.414z" clip-rule="evenodd"></path></svg></button></div><div class="nextra-nav-container _sticky _top-0 _z-20 _w-full _bg-transparent print:_hidden"><div class="nextra-nav-container-blur"></div><nav class="_mx-auto _flex _h-[var(--nextra-navbar-height)] _max-w-[90rem] _items-center _justify-end _gap-4 _pl-[max(env(safe-area-inset-left),1.5rem)] _pr-[max(env(safe-area-inset-right),1.5rem)]"><a class="_flex _items-center hover:_opacity-75 ltr:_mr-auto rtl:_ml-auto" href="/"><svg xmlns="http://www.w3.org/2000/svg" style="fill:color(display-p3 .8824 0 .5961)" viewBox="0 0 367 100" class="h-8 nextra-logo" title="GraphQL"><path fill-rule="evenodd" d="m50 6.468 37.7 21.766v43.532L50 93.532 12.3 71.766V28.234zM16.53 30.676v31.976l27.692-47.964zM50 13.14 18.078 68.43h63.844zm27.692 59.52H22.308L50 88.648zm5.778-10.008L55.778 14.688 83.47 30.676z" clip-rule="evenodd"></path><circle cx="14.41" cy="29.45" r="8.91"></circle><circle cx="14.41" cy="70.545" r="8.91"></circle><circle cx="50" cy="91.09" r="8.91"></circle><circle cx="85.585" cy="70.545" r="8.91"></circle><circle cx="85.585" cy="29.455" r="8.91"></circle><circle cx="50" cy="8.91" r="8.91"></circle><path d="M138.875 71.625q-7.812 0-12.125-4.5t-4.562-12.062q-.063-1.876-.063-5.938t.063-5.937q.25-7.563 4.562-12.063t12.125-4.5q5.313 0 8.938 2 3.624 2 5.375 4.75 1.812 2.688 1.937 4.813v.124q0 .501-.375.813-.375.313-.938.313h-1.374q-.562 0-.813-.25t-.5-1q-1.062-3.313-4.125-5.563-3-2.25-8.125-2.25-5.812 0-9.187 3.188-3.313 3.187-3.563 9.937-.062 1.875-.062 5.625t.062 5.625q.25 6.75 3.563 9.938 3.375 3.186 9.187 3.187 5.813 0 9.375-3.312 3.562-3.314 3.562-9.813v-3.187h-10.874q-.625 0-1-.376a1.58 1.58 0 0 1-.375-1.062v-.875q0-.625.375-1 .375-.437 1-.437h13.374q.688 0 1.063.374.375.376.375 1.063v5.5q0 4.999-2 8.813-2 3.811-5.812 5.937-3.813 2.125-9.063 2.125M165.941 71q-.625 0-1-.375t-.375-1V39.938q0-.625.375-1 .375-.438 1-.438h1q.625 0 1 .438.438.375.438 1v2.874q2.25-4.312 8.5-4.312h2.312q.625 0 1 .375t.375 1v.875q0 .625-.375 1t-1 .375h-2.687q-3.75 0-5.938 2.188-2.187 2.187-2.187 5.937v19.375q0 .625-.438 1-.375.375-1 .375zM194.557 71.625q-3 0-5.563-1.25T184.869 67q-1.5-2.126-1.5-4.687 0-4.125 3.313-6.75 3.374-2.625 9.062-3.376l9.875-1.374v-2.188q0-3.438-2.125-5.25-2.063-1.875-6.375-1.875-3.188 0-5.25 1.25-2 1.25-2.562 3-.25.75-.625 1.063-.313.25-.875.25h-.875q-.563 0-1-.376a1.5 1.5 0 0 1-.375-1q0-1.374 1.25-3.187 1.25-1.875 3.875-3.25t6.437-1.375q6.687 0 9.5 3.188 2.813 3.187 2.813 7.75v20.812q0 .625-.375 1-.376.375-1 .375h-1.063q-.625 0-1-.375t-.375-1v-2.937q-1.375 2.061-4.062 3.5-2.626 1.437-7 1.437m.625-3.625q4.561 0 7.5-3 2.937-3 2.937-8.625V54.25l-8.062 1.125q-5.125.687-7.75 2.375T187.182 62q0 2.875 2.375 4.438Q191.994 68 195.182 68M220.752 82.875q-.624 0-1-.375-.375-.375-.375-1V39.875q0-.625.375-1 .376-.375 1-.375h1.063q.625 0 1 .375t.375 1v2.938q3.626-4.938 10.5-4.938 6.75 0 9.937 4.313 3.25 4.25 3.438 10.5.063.624.062 2.062 0 1.437-.062 2.063-.187 6.25-3.438 10.562-3.187 4.25-9.937 4.25-6.813 0-10.5-4.937V81.5q0 .625-.375 1t-1 .375zM233.315 68q5.062 0 7.375-3.187 2.375-3.25 2.562-8.313.063-.625.063-1.75 0-5.813-2.25-9.5-2.25-3.75-7.75-3.75-4.938 0-7.438 3.313-2.5 3.25-2.687 7.687l-.063 2.438.063 2.437a12.8 12.8 0 0 0 1.187 5.125q1.125 2.375 3.375 3.938Q230.002 68 233.315 68M257.068 71q-.625 0-1-.375t-.375-1V28q0-.625.375-1t1-.375h1.063q.625 0 1 .375t.375 1v14.813q1.875-2.439 4.25-3.688 2.437-1.25 6.25-1.25 6.125 0 9.437 3.938 3.313 3.874 3.313 10.062v17.75q0 .625-.375 1t-1 .375h-1.063q-.625 0-1-.375t-.375-1V52.188q0-5.063-2.5-7.876-2.437-2.812-7.062-2.812-4.5 0-7.188 2.875-2.687 2.813-2.687 7.813v17.437q0 .625-.375 1t-1 .375zM321.682 75.063q-.938 0-2-1.438l-2.75-3.812q-3.75 1.812-8.75 1.812-16.062 0-16.5-17.25-.062-1.875-.062-5.25t.062-5.25q.25-8.5 4.625-12.875t11.875-4.375T320.057 31t4.625 12.875q.125 3.75.125 5.25t-.125 5.25q-.312 8.937-4.562 13.125l4 5.625q.187.376.187.688a1.2 1.2 0 0 1-.375.874 1.2 1.2 0 0 1-.875.376zm-13.5-7.188q5.625 0 8.938-3.375 3.375-3.437 3.625-10.437.125-3.75.125-4.938t-.125-4.937q-.25-7-3.625-10.376-3.375-3.437-8.938-3.437-5.562 0-8.937 3.438-3.375 3.375-3.625 10.374-.063 1.875-.063 4.938t.063 4.938q.25 6.999 3.562 10.437 3.375 3.375 9 3.375M336.126 71q-.625 0-1-.375t-.375-1v-41q0-.625.375-1t1-.375h1.188q.625 0 1 .375t.375 1V67.25h21.562q.688 0 1.063.375t.375 1.063v.937q0 .625-.438 1-.375.375-1 .375z"></path></svg></a><a class="_text-sm contrast-more:_text-gray-700 contrast-more:dark:_text-gray-100 max-md:_hidden _whitespace-nowrap _text-gray-600 hover:_text-gray-800 dark:_text-gray-400 dark:hover:_text-gray-200" aria-current="false" href="/learn/">Learn</a><div class="_relative" data-headlessui-state=""><button class="_text-sm contrast-more:_text-gray-700 contrast-more:dark:_text-gray-100 _text-gray-600 hover:_text-gray-800 dark:_text-gray-400 dark:hover:_text-gray-200 max-md:_hidden _items-center _whitespace-nowrap _rounded _flex _gap-1" id="headlessui-menu-button-:Rkl56:" type="button" aria-haspopup="menu" aria-expanded="false" data-headlessui-state="">Community<svg fill="none" viewBox="0 0 24 24" stroke="currentColor" class="_h-[18px] _min-w-[18px] _rounded-sm _p-0.5"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9 5l7 7-7 7" class="_origin-center _transition-transform _rotate-90"></path></svg></button></div><a class="_text-sm contrast-more:_text-gray-700 contrast-more:dark:_text-gray-100 max-md:_hidden _whitespace-nowrap _text-gray-600 hover:_text-gray-800 dark:_text-gray-400 dark:hover:_text-gray-200" aria-current="false" href="/faq/">FAQ</a><a href="https://spec.graphql.org" target="_blank" rel="noreferrer" class="_text-sm contrast-more:_text-gray-700 contrast-more:dark:_text-gray-100 max-md:_hidden _whitespace-nowrap _text-gray-600 hover:_text-gray-800 dark:_text-gray-400 dark:hover:_text-gray-200" aria-current="false"><span class="after:content-['_↗'] after:font-sans">Spec</span></a><a class="_text-sm contrast-more:_text-gray-700 contrast-more:dark:_text-gray-100 max-md:_hidden _whitespace-nowrap _text-gray-600 hover:_text-gray-800 dark:_text-gray-400 dark:hover:_text-gray-200" aria-current="false" href="/blog/">Blog</a><a class="_text-sm contrast-more:_text-gray-700 contrast-more:dark:_text-gray-100 max-md:_hidden _whitespace-nowrap _text-gray-600 hover:_text-gray-800 dark:_text-gray-400 dark:hover:_text-gray-200" aria-current="false" href="/conf/2024/">GraphQLConf</a><a class="_text-sm contrast-more:_text-gray-700 contrast-more:dark:_text-gray-100 max-md:_hidden _whitespace-nowrap _text-gray-600 hover:_text-gray-800 dark:_text-gray-400 dark:hover:_text-gray-200" aria-current="false" href="/graphql-js/">GraphQL.JS Tutorial</a><div class="nextra-search _relative md:_w-64 max-md:_hidden"><div class="_relative _flex _items-center _text-gray-900 contrast-more:_text-gray-800 dark:_text-gray-300 contrast-more:dark:_text-gray-300"><input spellcheck="false" class="_w-full _appearance-none _rounded-lg _px-3 _py-2 _transition-colors _text-base _leading-tight md:_text-sm _bg-black/[.05] dark:_bg-gray-50/10 focus:!_bg-transparent placeholder:_text-gray-500 dark:placeholder:_text-gray-400 contrast-more:_border contrast-more:_border-current" type="search" placeholder="Search…" value=""/></div></div><button title="Change theme" class="_h-7 _rounded-md _px-2 _text-left _text-xs _font-medium _text-gray-600 _transition-colors dark:_text-gray-400 hover:_bg-gray-100 hover:_text-gray-900 dark:hover:_bg-primary-100/5 dark:hover:_text-gray-50 [&_span]:hidden" id="headlessui-listbox-button-:R5l56:" type="button" aria-haspopup="listbox" aria-expanded="false" data-headlessui-state=""><div class="_flex _items-center _gap-2 _capitalize"><svg fill="none" viewBox="3 3 18 18" width="12" height="12" stroke="currentColor"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" fill="currentColor" d="M12 3v1m0 16v1m9-9h-1M4 12H3m15.364 6.364l-.707-.707M6.343 6.343l-.707-.707m12.728 0l-.707.707M6.343 17.657l-.707.707M16 12a4 4 0 11-8 0 4 4 0 018 0z"></path></svg><span class="md:_hidden">Light</span></div></button><button type="button" aria-label="Menu" class="nextra-hamburger _rounded active:_bg-gray-400/20 md:_hidden"><svg fill="none" width="24" height="24" viewBox="0 0 24 24" stroke="currentColor" class=""><g><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M4 6h16"></path></g><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M4 12h16"></path><g><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M4 18h16"></path></g></svg></button></nav></div><div class="_mx-auto _flex"><div class="motion-reduce:_transition-none [transition:background-color_1.5s_ease] _bg-transparent"></div><aside class="nextra-sidebar-container _flex _flex-col md:_top-16 md:_shrink-0 motion-reduce:_transform-none _transform-gpu _transition-all _ease-in-out print:_hidden md:_w-64 md:_hidden max-md:[transform:translate3d(0,-100%,0)]"><div class="_px-4 _pt-4 md:_hidden"><div class="nextra-search _relative md:_w-64"><div class="_relative _flex _items-center _text-gray-900 contrast-more:_text-gray-800 dark:_text-gray-300 contrast-more:dark:_text-gray-300"><input spellcheck="false" class="_w-full _appearance-none _rounded-lg _px-3 _py-2 _transition-colors _text-base _leading-tight md:_text-sm _bg-black/[.05] dark:_bg-gray-50/10 focus:!_bg-transparent placeholder:_text-gray-500 dark:placeholder:_text-gray-400 contrast-more:_border contrast-more:_border-current" type="search" placeholder="Search…" value=""/></div></div></div><div class="_overflow-y-auto _overflow-x-hidden _p-4 _grow md:_h-[calc(100vh-var(--nextra-navbar-height)-var(--nextra-menu-height))] nextra-scrollbar"></div><div class="nextra-sidebar-footer _sticky _bottom-0 _flex _items-center _gap-2 _mx-4 _py-4" data-toggle-animation="off"><div class="_grow _flex _flex-col"><button title="Change theme" class="_h-7 _rounded-md _px-2 _text-left _text-xs _font-medium _text-gray-600 _transition-colors dark:_text-gray-400 hover:_bg-gray-100 hover:_text-gray-900 dark:hover:_bg-primary-100/5 dark:hover:_text-gray-50" id="headlessui-listbox-button-:R2njd6:" type="button" aria-haspopup="listbox" aria-expanded="false" data-headlessui-state=""><div class="_flex _items-center _gap-2 _capitalize"><svg fill="none" viewBox="3 3 18 18" width="12" height="12" stroke="currentColor"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" fill="currentColor" d="M12 3v1m0 16v1m9-9h-1M4 12H3m15.364 6.364l-.707-.707M6.343 6.343l-.707-.707m12.728 0l-.707.707M6.343 17.657l-.707.707M16 12a4 4 0 11-8 0 4 4 0 018 0z"></path></svg><span class="">Light</span></div></button></div><button title="Hide sidebar" class="max-md:_hidden _h-7 _rounded-md _transition-colors _text-gray-600 dark:_text-gray-400 _px-2 hover:_bg-gray-100 hover:_text-gray-900 dark:hover:_bg-primary-100/5 dark:hover:_text-gray-50"><svg height="12" width="12" viewBox="0 0 16 16" fill="currentColor"><path fill-rule="evenodd" d="M4.177 7.823l2.396-2.396A.25.25 0 017 5.604v4.792a.25.25 0 01-.427.177L4.177 8.177a.25.25 0 010-.354z" class=""></path><path fill-rule="evenodd" d="M0 1.75C0 .784.784 0 1.75 0h12.5C15.216 0 16 .784 16 1.75v12.5A1.75 1.75 0 0114.25 16H1.75A1.75 1.75 0 010 14.25V1.75zm1.75-.25a.25.25 0 00-.25.25v12.5c0 .138.112.25.25.25H9.5v-13H1.75zm12.5 13H11v-13h3.25a.25.25 0 01.25.25v12.5a.25.25 0 01-.25.25z"></path></svg></button></div></aside><div id="reach-skip-nav"></div><div class="_w-full _break-words"><div class="container py-10 md:py-20"><h1 class="text-4xl md:text-7xl font-extrabold">Code Using GraphQL</h1><div class="flex my-10 items-center border-b border-current max-w-[700px] font-extrabold text-2xl pb-2.5"><div class="flex shrink-0"></div><input placeholder="Search..." class="grow bg-transparent block focus-visible:ring-0 focus-visible:ring-offset-0 focus-visible:border-b-primary" value=""/><svg xmlns="http://www.w3.org/2000/svg" width="23" height="24" fill="currentColor" class="shrink-0"><path fill-rule="evenodd" d="M2.322 10.383a7.5 7.5 0 1 1 15 0 7.5 7.5 0 0 1-15 0m7.5-9.5a9.5 9.5 0 0 0 0 19 9.46 9.46 0 0 0 6.003-2.137l5.819 5.371L23 21.647l-5.766-5.322a9.46 9.46 0 0 0 2.088-5.942 9.5 9.5 0 0 0-9.5-9.5" clip-rule="evenodd"></path></svg></div><div class="flex flex-wrap gap-3 md:gap-5 roboto-mono"><button data-tag="services" class="tag" title="Add tag "Services"">Services<!-- --> (<!-- -->25<!-- -->)</button><button data-tag="javascript" class="tag" title="Add tag "JavaScript"">JavaScript<!-- --> (<!-- -->47<!-- -->)</button><button data-tag="server" class="tag" title="Add tag "Server"">Server<!-- --> (<!-- -->74<!-- -->)</button><button data-tag="client" class="tag" title="Add tag "Client"">Client<!-- --> (<!-- -->54<!-- -->)</button><button data-tag="tools" class="tag" title="Add tag "Tools"">Tools<!-- --> (<!-- -->32<!-- -->)</button><button data-tag="general" class="tag" title="Add tag "General"">General<!-- --> (<!-- -->6<!-- -->)</button><button data-tag="go" class="tag" title="Add tag "Go"">Go<!-- --> (<!-- -->13<!-- -->)</button><button data-tag="php" class="tag" title="Add tag "PHP"">PHP<!-- --> (<!-- -->12<!-- -->)</button><button data-tag="python" class="tag" title="Add tag "Python"">Python<!-- --> (<!-- -->13<!-- -->)</button><button data-tag="java-kotlin-android" class="tag" title="Add tag "Java / Kotlin"">Java / Kotlin<!-- --> (<!-- -->13<!-- -->)</button><button data-tag="c-net" class="tag" title="Add tag "C# / .NET"">C# / .NET<!-- --> (<!-- -->10<!-- -->)</button><button data-tag="rust" class="tag" title="Add tag "Rust"">Rust<!-- --> (<!-- -->4<!-- -->)</button><button data-tag="ruby" class="tag" title="Add tag "Ruby"">Ruby<!-- --> (<!-- -->3<!-- -->)</button><button data-tag="elixir" class="tag" title="Add tag "Elixir"">Elixir<!-- --> (<!-- -->4<!-- -->)</button><button data-tag="swift-objective-c-ios" class="tag" title="Add tag "Swift / Objective-C"">Swift / Objective-C<!-- --> (<!-- -->7<!-- -->)</button><button data-tag="flutter" class="tag" title="Add tag "Flutter"">Flutter<!-- --> (<!-- -->2<!-- -->)</button><button data-tag="gateways-supergraphs" class="tag" title="Add tag "Gateways And Supergraphs"">Gateways And Supergraphs<!-- --> (<!-- -->2<!-- -->)</button><button data-tag="scala" class="tag" title="Add tag "Scala"">Scala<!-- --> (<!-- -->3<!-- -->)</button><button data-tag="clojure" class="tag" title="Add tag "Clojure"">Clojure<!-- --> (<!-- -->4<!-- -->)</button><button data-tag="c-c" class="tag" title="Add tag "C / C++"">C / C++<!-- --> (<!-- -->1<!-- -->)</button><button data-tag="elm" class="tag" title="Add tag "Elm"">Elm<!-- --> (<!-- -->1<!-- -->)</button><button data-tag="ocaml-reason" class="tag" title="Add tag "OCaml / Reason"">OCaml / Reason<!-- --> (<!-- -->1<!-- -->)</button><button data-tag="haskell" class="tag" title="Add tag "Haskell"">Haskell<!-- --> (<!-- -->4<!-- -->)</button><button data-tag="erlang" class="tag" title="Add tag "Erlang"">Erlang<!-- --> (<!-- -->1<!-- -->)</button><button data-tag="r" class="tag" title="Add tag "R"">R<!-- --> (<!-- -->1<!-- -->)</button><button data-tag="ballerina" class="tag" title="Add tag "Ballerina"">Ballerina<!-- --> (<!-- -->2<!-- -->)</button><button data-tag="julia" class="tag" title="Add tag "Julia"">Julia<!-- --> (<!-- -->2<!-- -->)</button><button data-tag="groovy" class="tag" title="Add tag "Groovy"">Groovy<!-- --> (<!-- -->2<!-- -->)</button><button data-tag="perl" class="tag" title="Add tag "Perl"">Perl<!-- --> (<!-- -->1<!-- -->)</button><button data-tag="d" class="tag" title="Add tag "D"">D<!-- --> (<!-- -->1<!-- -->)</button></div></div><div role="radiogroup" aria-required="false" dir="ltr" class="container flex gap-2" tabindex="-1" style="outline:none"><div class="mr-4">Sort by:</div><div class="flex items-center"><button type="button" role="radio" aria-checked="true" data-state="checked" value="popularity" class="aspect-square h-4 w-4 rounded-full border border-primary text-primary shadow focus:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50" id="r1" tabindex="-1" data-radix-collection-item=""><span data-state="checked" class="flex items-center justify-center"><div class="bg-primary size-2 rounded-full"></div></span></button><input type="radio" aria-hidden="true" style="transform:translateX(-100%);position:absolute;pointer-events:none;opacity:0;margin:0" tabindex="-1" checked="" value="popularity"/><label for="r1" class="cursor-pointer pl-2">Popularity</label></div><div class="flex items-center"><button type="button" role="radio" aria-checked="false" data-state="unchecked" value="alphabetical" class="aspect-square h-4 w-4 rounded-full border border-primary text-primary shadow focus:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50" id="r2" tabindex="-1" data-radix-collection-item=""></button><input type="radio" aria-hidden="true" style="transform:translateX(-100%);position:absolute;pointer-events:none;opacity:0;margin:0" tabindex="-1" value="alphabetical"/><label for="r2" class="cursor-pointer pl-2">Alphabetical</label></div></div><div class="container grid md:grid-cols-2 gap-10 py-20"><div class="border border-zinc-200 dark:border-[#414141] p-8 lg:p-12 bg-white dark:bg-neutral-800 rounded-none !p-0 h-max min-w-0"><div class="p-8 lg:p-12 flex flex-col gap-7 grow"><div class="flex items-center gap-6 [&_a:hover]:text-primary [&_a]:transition-colors"><span class="text-3xl font-extrabold grow break-all">Insomnia</span><a href="https://docs.insomnia.rest/insomnia/graphql-queries" target="_blank" rel="noreferrer"><svg xmlns="http://www.w3.org/2000/svg" fill="currentColor" viewBox="0 0 24 24"><path d="M23.332 15.948C23.764 14.711 24 13.383 24 12a12 12 0 0 0-.706-4.056C21.627 3.317 17.194 0 12 0S2.373 3.317.706 7.944A11.949 11.949 0 0 0 0 12a12 12 0 0 0 .706 4.056C2.373 20.683 6.806 24 12 24s9.627-3.317 11.294-7.944a1 1 0 0 0 .038-.108M12 22.28c-.457 0-1.194-.827-1.81-2.675a19 19 0 0 1-.708-3.031h5.036a19 19 0 0 1-.708 3.031c-.616 1.848-1.353 2.675-1.81 2.675m-2.727-7.427A32 32 0 0 1 9.147 12c0-.98.043-1.936.126-2.853h5.454c.083.917.126 1.874.126 2.853s-.043 1.936-.126 2.854zM1.72 12c0-.99.141-1.947.403-2.853h5.425a33.5 33.5 0 0 0 0 5.707H2.123A10.3 10.3 0 0 1 1.72 12M12 1.72c.457 0 1.194.827 1.81 2.675.297.892.535 1.917.708 3.032H9.482c.173-1.115.411-2.14.708-3.032.616-1.848 1.353-2.675 1.81-2.675m4.452 7.427h5.425c.262.906.403 1.864.403 2.853s-.141 1.947-.403 2.854h-5.425a33.5 33.5 0 0 0 0-5.707m4.752-1.72h-4.95c-.305-2.11-.83-4.003-1.566-5.35 2.855.775 5.22 2.75 6.516 5.35M9.313 2.077c-.736 1.347-1.261 3.24-1.567 5.35h-4.95a10.33 10.33 0 0 1 6.517-5.35M2.795 16.574h4.95c.306 2.11.83 4.002 1.567 5.349a10.33 10.33 0 0 1-6.517-5.35m11.893 5.349c.736-1.347 1.261-3.24 1.567-5.35h4.95a10.33 10.33 0 0 1-6.517 5.35"></path></svg></a><a href="https://github.com/Kong/insomnia" target="_blank" rel="noreferrer"><svg xmlns="http://www.w3.org/2000/svg" width="30" fill="currentColor" viewBox="0 0 30 30"><path fill-rule="evenodd" d="M15.1.413a14.81 14.81 0 0 0-4.684 28.862c.742.138 1.012-.32 1.012-.712 0-.35-.013-1.283-.02-2.518-4.12.893-4.99-1.987-4.99-1.987-.675-1.71-1.643-2.165-1.643-2.165-1.345-.918.1-.9.1-.9 1.488.105 2.27 1.525 2.27 1.525 1.32 2.265 3.466 1.61 4.31 1.23.133-.955.515-1.608.94-1.978-3.29-.375-6.747-1.645-6.747-7.32 0-1.615.577-2.937 1.525-3.975-.15-.372-.66-1.88.145-3.917 0 0 1.242-.4 4.075 1.517a14.3 14.3 0 0 1 3.705-.5 14.2 14.2 0 0 1 3.707.5c2.826-1.915 4.068-1.517 4.068-1.517.807 2.037.3 3.545.15 3.92.95 1.035 1.52 2.357 1.52 3.975 0 5.687-3.462 6.94-6.76 7.305.53.457 1.005 1.36 1.005 2.742 0 1.98-.02 3.575-.02 4.063 0 .395.267.857 1.02.712A14.816 14.816 0 0 0 15.101.413" clip-rule="evenodd"></path></svg></a></div><div class="gap-2 flex roboto-mono"><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=services">Services</a></div><span class="[&_a]:text-primary grow line-clamp-4 lg:text-lg">Insomnia is an open-source, cross-platform API Client for GraphQL, REST, and gRPC. Insomnia combines an easy-to-use interface with advanced functionality like authentication helpers, code generation, and environment variables.</span><div class="flex items-center gap-5 max-md:text-xs [&>:not(:last-child)]:border-r [&>:not(:last-child)]:border-gray-500 [&>:not(:last-child)]:pr-5"><span>Last release <!-- -->7 hours ago</span><span class="flex items-center gap-1"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="19" fill="currentColor" class="text-primary"><path d="m10 .5 2.997 5.874L19.51 7.41l-4.66 4.666 1.027 6.514L10 15.6l-5.878 2.99 1.028-6.514L.489 7.41l6.513-1.036z"></path></svg>35k</span><span>Apache License 2.0</span></div></div></div><div class="border border-zinc-200 dark:border-[#414141] p-8 lg:p-12 bg-white dark:bg-neutral-800 rounded-none !p-0 h-max min-w-0"><div class="p-8 lg:p-12 flex flex-col gap-7 grow"><div class="flex items-center gap-6 [&_a:hover]:text-primary [&_a]:transition-colors"><span class="text-3xl font-extrabold grow break-all">Hasura</span><a href="https://hasura.io" target="_blank" rel="noreferrer"><svg xmlns="http://www.w3.org/2000/svg" fill="currentColor" viewBox="0 0 24 24"><path d="M23.332 15.948C23.764 14.711 24 13.383 24 12a12 12 0 0 0-.706-4.056C21.627 3.317 17.194 0 12 0S2.373 3.317.706 7.944A11.949 11.949 0 0 0 0 12a12 12 0 0 0 .706 4.056C2.373 20.683 6.806 24 12 24s9.627-3.317 11.294-7.944a1 1 0 0 0 .038-.108M12 22.28c-.457 0-1.194-.827-1.81-2.675a19 19 0 0 1-.708-3.031h5.036a19 19 0 0 1-.708 3.031c-.616 1.848-1.353 2.675-1.81 2.675m-2.727-7.427A32 32 0 0 1 9.147 12c0-.98.043-1.936.126-2.853h5.454c.083.917.126 1.874.126 2.853s-.043 1.936-.126 2.854zM1.72 12c0-.99.141-1.947.403-2.853h5.425a33.5 33.5 0 0 0 0 5.707H2.123A10.3 10.3 0 0 1 1.72 12M12 1.72c.457 0 1.194.827 1.81 2.675.297.892.535 1.917.708 3.032H9.482c.173-1.115.411-2.14.708-3.032.616-1.848 1.353-2.675 1.81-2.675m4.452 7.427h5.425c.262.906.403 1.864.403 2.853s-.141 1.947-.403 2.854h-5.425a33.5 33.5 0 0 0 0-5.707m4.752-1.72h-4.95c-.305-2.11-.83-4.003-1.566-5.35 2.855.775 5.22 2.75 6.516 5.35M9.313 2.077c-.736 1.347-1.261 3.24-1.567 5.35h-4.95a10.33 10.33 0 0 1 6.517-5.35M2.795 16.574h4.95c.306 2.11.83 4.002 1.567 5.349a10.33 10.33 0 0 1-6.517-5.35m11.893 5.349c.736-1.347 1.261-3.24 1.567-5.35h4.95a10.33 10.33 0 0 1-6.517 5.35"></path></svg></a><a href="https://github.com/hasura/graphql-engine" target="_blank" rel="noreferrer"><svg xmlns="http://www.w3.org/2000/svg" width="30" fill="currentColor" viewBox="0 0 30 30"><path fill-rule="evenodd" d="M15.1.413a14.81 14.81 0 0 0-4.684 28.862c.742.138 1.012-.32 1.012-.712 0-.35-.013-1.283-.02-2.518-4.12.893-4.99-1.987-4.99-1.987-.675-1.71-1.643-2.165-1.643-2.165-1.345-.918.1-.9.1-.9 1.488.105 2.27 1.525 2.27 1.525 1.32 2.265 3.466 1.61 4.31 1.23.133-.955.515-1.608.94-1.978-3.29-.375-6.747-1.645-6.747-7.32 0-1.615.577-2.937 1.525-3.975-.15-.372-.66-1.88.145-3.917 0 0 1.242-.4 4.075 1.517a14.3 14.3 0 0 1 3.705-.5 14.2 14.2 0 0 1 3.707.5c2.826-1.915 4.068-1.517 4.068-1.517.807 2.037.3 3.545.15 3.92.95 1.035 1.52 2.357 1.52 3.975 0 5.687-3.462 6.94-6.76 7.305.53.457 1.005 1.36 1.005 2.742 0 1.98-.02 3.575-.02 4.063 0 .395.267.857 1.02.712A14.816 14.816 0 0 0 15.101.413" clip-rule="evenodd"></path></svg></a></div><div class="gap-2 flex roboto-mono"><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=services">Services</a></div><span class="[&_a]:text-primary grow line-clamp-4 lg:text-lg">Hasura connects to your databases & microservices and instantly gives you a production-ready GraphQL API.</span><div class="flex items-center gap-5 max-md:text-xs [&>:not(:last-child)]:border-r [&>:not(:last-child)]:border-gray-500 [&>:not(:last-child)]:pr-5"><span>Last release <!-- -->16 hours ago</span><span class="flex items-center gap-1"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="19" fill="currentColor" class="text-primary"><path d="m10 .5 2.997 5.874L19.51 7.41l-4.66 4.666 1.027 6.514L10 15.6l-5.878 2.99 1.028-6.514L.489 7.41l6.513-1.036z"></path></svg>31k</span><span>Apache License 2.0</span></div></div></div><div class="border border-zinc-200 dark:border-[#414141] p-8 lg:p-12 bg-white dark:bg-neutral-800 rounded-none !p-0 h-max min-w-0"><div class="p-8 lg:p-12 flex flex-col gap-7 grow"><div class="flex items-center gap-6 [&_a:hover]:text-primary [&_a]:transition-colors"><span class="text-3xl font-extrabold grow break-all">Dgraph</span><a href="https://dgraph.io/graphql" target="_blank" rel="noreferrer"><svg xmlns="http://www.w3.org/2000/svg" fill="currentColor" viewBox="0 0 24 24"><path d="M23.332 15.948C23.764 14.711 24 13.383 24 12a12 12 0 0 0-.706-4.056C21.627 3.317 17.194 0 12 0S2.373 3.317.706 7.944A11.949 11.949 0 0 0 0 12a12 12 0 0 0 .706 4.056C2.373 20.683 6.806 24 12 24s9.627-3.317 11.294-7.944a1 1 0 0 0 .038-.108M12 22.28c-.457 0-1.194-.827-1.81-2.675a19 19 0 0 1-.708-3.031h5.036a19 19 0 0 1-.708 3.031c-.616 1.848-1.353 2.675-1.81 2.675m-2.727-7.427A32 32 0 0 1 9.147 12c0-.98.043-1.936.126-2.853h5.454c.083.917.126 1.874.126 2.853s-.043 1.936-.126 2.854zM1.72 12c0-.99.141-1.947.403-2.853h5.425a33.5 33.5 0 0 0 0 5.707H2.123A10.3 10.3 0 0 1 1.72 12M12 1.72c.457 0 1.194.827 1.81 2.675.297.892.535 1.917.708 3.032H9.482c.173-1.115.411-2.14.708-3.032.616-1.848 1.353-2.675 1.81-2.675m4.452 7.427h5.425c.262.906.403 1.864.403 2.853s-.141 1.947-.403 2.854h-5.425a33.5 33.5 0 0 0 0-5.707m4.752-1.72h-4.95c-.305-2.11-.83-4.003-1.566-5.35 2.855.775 5.22 2.75 6.516 5.35M9.313 2.077c-.736 1.347-1.261 3.24-1.567 5.35h-4.95a10.33 10.33 0 0 1 6.517-5.35M2.795 16.574h4.95c.306 2.11.83 4.002 1.567 5.349a10.33 10.33 0 0 1-6.517-5.35m11.893 5.349c.736-1.347 1.261-3.24 1.567-5.35h4.95a10.33 10.33 0 0 1-6.517 5.35"></path></svg></a><a href="https://github.com/dgraph-io/dgraph" target="_blank" rel="noreferrer"><svg xmlns="http://www.w3.org/2000/svg" width="30" fill="currentColor" viewBox="0 0 30 30"><path fill-rule="evenodd" d="M15.1.413a14.81 14.81 0 0 0-4.684 28.862c.742.138 1.012-.32 1.012-.712 0-.35-.013-1.283-.02-2.518-4.12.893-4.99-1.987-4.99-1.987-.675-1.71-1.643-2.165-1.643-2.165-1.345-.918.1-.9.1-.9 1.488.105 2.27 1.525 2.27 1.525 1.32 2.265 3.466 1.61 4.31 1.23.133-.955.515-1.608.94-1.978-3.29-.375-6.747-1.645-6.747-7.32 0-1.615.577-2.937 1.525-3.975-.15-.372-.66-1.88.145-3.917 0 0 1.242-.4 4.075 1.517a14.3 14.3 0 0 1 3.705-.5 14.2 14.2 0 0 1 3.707.5c2.826-1.915 4.068-1.517 4.068-1.517.807 2.037.3 3.545.15 3.92.95 1.035 1.52 2.357 1.52 3.975 0 5.687-3.462 6.94-6.76 7.305.53.457 1.005 1.36 1.005 2.742 0 1.98-.02 3.575-.02 4.063 0 .395.267.857 1.02.712A14.816 14.816 0 0 0 15.101.413" clip-rule="evenodd"></path></svg></a></div><div class="gap-2 flex roboto-mono"><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=services">Services</a></div><span class="[&_a]:text-primary grow line-clamp-4 lg:text-lg">Dgraph is a native GraphQL database with a graph backend. This means Dgraph is not an interface on top of an existing database like Postgres but is actually designed from the ground-up for GraphQL. It is optimized for speed and performance, depending on multiple computer science breakthroughs to get the best result. Dgraph Cloud is a fully managed GraphQL backend service that lets you iterate faster, without worrying about your infrastructure.</span><div class="flex items-center gap-5 max-md:text-xs [&>:not(:last-child)]:border-r [&>:not(:last-child)]:border-gray-500 [&>:not(:last-child)]:pr-5"><span>Last release <!-- -->2 weeks ago</span><span class="flex items-center gap-1"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="19" fill="currentColor" class="text-primary"><path d="m10 .5 2.997 5.874L19.51 7.41l-4.66 4.666 1.027 6.514L10 15.6l-5.878 2.99 1.028-6.514L.489 7.41l6.513-1.036z"></path></svg>20k</span><span>Other</span></div></div><details class="bg-[#f0f0f0] dark:bg-[#2f2f2f]"><summary class="flex justify-between font-bold text-primary px-8 lg:px-12 py-5 dark:[[open]>&]:shadow-[-5px_10px_30px_20px_#1b1b1b4d] [[open]>&]:shadow-[0_6px_21px_0_#1b1b1b33] cursor-pointer">README<svg xmlns="http://www.w3.org/2000/svg" fill="currentColor" viewBox="0 0 15 15" class="size-5 -rotate-90 [[open]>*>&]:rotate-90 transition-transform"><path fill-rule="evenodd" d="M8.842 3.135a.5.5 0 0 1 .023.707L5.435 7.5l3.43 3.658a.5.5 0 0 1-.73.684l-3.75-4a.5.5 0 0 1 0-.684l3.75-4a.5.5 0 0 1 .707-.023" clip-rule="evenodd"></path></svg></summary><div class="px-8 lg:px-12 py-5"><p class="[&:not(:first-child)]:_mt-6 _leading-7">Install Steps if running locally on linux not on Dgraph Cloud:</p> <div class="nextra-code _relative [&:not(:first-child)]:_mt-6"><pre class="_overflow-x-auto _subpixel-antialiased _text-[.9em] _bg-white dark:_bg-black _py-4 _ring-1 _ring-inset _ring-gray-300 dark:_ring-neutral-700 contrast-more:_ring-gray-900 contrast-more:dark:_ring-gray-50 contrast-more:_contrast-150 _rounded-md" tabindex="0"><code class="nextra-code" dir="ltr"><span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">docker</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> pull</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> dgraph/standalone</span></span> <span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">mkdir</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> -p</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> ~/dgraph</span></span> <span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">docker</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> run</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> -it</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> -p</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> 5080:5080</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> -p</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> 6080:6080</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> -p</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> 8080:8080</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> \</span></span> <span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> -p</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> 9080:9080</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> -p</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> 8000:8000</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> -v</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> ~/dgraph:/dgraph</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> --name</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> dgraph</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> \</span></span> <span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> dgraph/standalone:master</span></span></code></pre><div class="_opacity-0 _transition [div:hover>&]:_opacity-100 focus-within:_opacity-100 _flex _gap-1 _absolute _right-4 _top-2"><button class="_transition _rounded-md _p-1.5 _border _border-gray-300 dark:_border-neutral-700 contrast-more:_border-gray-900 contrast-more:dark:_border-gray-50 md:_hidden" title="Toggle word wrap"><svg viewBox="0 0 24 24" width="24" height="24" class="_h-4 _w-auto"><path fill="currentColor" d="M4 19h6v-2H4v2zM20 5H4v2h16V5zm-3 6H4v2h13.25c1.1 0 2 .9 2 2s-.9 2-2 2H15v-2l-3 3l3 3v-2h2c2.21 0 4-1.79 4-4s-1.79-4-4-4z"></path></svg></button></div></div> <p class="[&:not(:first-child)]:_mt-6 _leading-7">Set your GraphQL Schema:</p> <div class="nextra-code _relative [&:not(:first-child)]:_mt-6"><pre class="_overflow-x-auto _subpixel-antialiased _text-[.9em] _bg-white dark:_bg-black _py-4 _ring-1 _ring-inset _ring-gray-300 dark:_ring-neutral-700 contrast-more:_ring-gray-900 contrast-more:dark:_ring-gray-50 contrast-more:_contrast-150 _rounded-md" tabindex="0"><code class="nextra-code" dir="ltr"><span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">touch</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> schema.graphql</span></span> <span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">nano</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> schema.graphql</span></span></code></pre><div class="_opacity-0 _transition [div:hover>&]:_opacity-100 focus-within:_opacity-100 _flex _gap-1 _absolute _right-4 _top-2"><button class="_transition _rounded-md _p-1.5 _border _border-gray-300 dark:_border-neutral-700 contrast-more:_border-gray-900 contrast-more:dark:_border-gray-50 md:_hidden" title="Toggle word wrap"><svg viewBox="0 0 24 24" width="24" height="24" class="_h-4 _w-auto"><path fill="currentColor" d="M4 19h6v-2H4v2zM20 5H4v2h16V5zm-3 6H4v2h13.25c1.1 0 2 .9 2 2s-.9 2-2 2H15v-2l-3 3l3 3v-2h2c2.21 0 4-1.79 4-4s-1.79-4-4-4z"></path></svg></button></div></div> <div class="nextra-code _relative [&:not(:first-child)]:_mt-6"><pre class="_overflow-x-auto _subpixel-antialiased _text-[.9em] _bg-white dark:_bg-black _py-4 _ring-1 _ring-inset _ring-gray-300 dark:_ring-neutral-700 contrast-more:_ring-gray-900 contrast-more:dark:_ring-gray-50 contrast-more:_contrast-150 _rounded-md" tabindex="0"><code class="nextra-code" dir="ltr"><span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">type</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> Product</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> {</span></span> <span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70"> id</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">: </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">ID</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">!</span></span> <span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70"> name</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">: </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">String</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">!</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> @id</span></span> <span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70"> reviews</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">: [</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">Review</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">] </span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">@hasInverse</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(</span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70">field</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">:</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> about</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">)</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">}</span></span> <span> </span> <span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">type</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> Customer</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> {</span></span> <span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70"> username</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">: </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">String</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">!</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> @id</span></span> <span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70"> reviews</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">: [</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">Review</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">] </span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">@hasInverse</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(</span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70">field</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">:</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> by</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">)</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">}</span></span> <span> </span> <span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">type</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> Review</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> {</span></span> <span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70"> id</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">: </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">ID</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">!</span></span> <span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70"> about</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">: </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">Product</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">!</span></span> <span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70"> by</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">: </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">Customer</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">!</span></span> <span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70"> comment</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">: </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">String</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> @search</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(</span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70">by</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">: [</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">fulltext</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">])</span></span> <span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70"> rating</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">: </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">Int</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> @search</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">}</span></span></code></pre><div class="_opacity-0 _transition [div:hover>&]:_opacity-100 focus-within:_opacity-100 _flex _gap-1 _absolute _right-4 _top-2"><button class="_transition _rounded-md _p-1.5 _border _border-gray-300 dark:_border-neutral-700 contrast-more:_border-gray-900 contrast-more:dark:_border-gray-50 md:_hidden" title="Toggle word wrap"><svg viewBox="0 0 24 24" width="24" height="24" class="_h-4 _w-auto"><path fill="currentColor" d="M4 19h6v-2H4v2zM20 5H4v2h16V5zm-3 6H4v2h13.25c1.1 0 2 .9 2 2s-.9 2-2 2H15v-2l-3 3l3 3v-2h2c2.21 0 4-1.79 4-4s-1.79-4-4-4z"></path></svg></button></div></div> <div class="nextra-code _relative [&:not(:first-child)]:_mt-6"><pre class="_overflow-x-auto _subpixel-antialiased _text-[.9em] _bg-white dark:_bg-black _py-4 _ring-1 _ring-inset _ring-gray-300 dark:_ring-neutral-700 contrast-more:_ring-gray-900 contrast-more:dark:_ring-gray-50 contrast-more:_contrast-150 _rounded-md" tabindex="0"><code class="nextra-code" dir="ltr"><span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">curl</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> -X</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> POST</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> localhost:8080/admin/schema</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> --data-binary</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> '@schema.graphql'</span></span></code></pre><div class="_opacity-0 _transition [div:hover>&]:_opacity-100 focus-within:_opacity-100 _flex _gap-1 _absolute _right-4 _top-2"><button class="_transition _rounded-md _p-1.5 _border _border-gray-300 dark:_border-neutral-700 contrast-more:_border-gray-900 contrast-more:dark:_border-gray-50 md:_hidden" title="Toggle word wrap"><svg viewBox="0 0 24 24" width="24" height="24" class="_h-4 _w-auto"><path fill="currentColor" d="M4 19h6v-2H4v2zM20 5H4v2h16V5zm-3 6H4v2h13.25c1.1 0 2 .9 2 2s-.9 2-2 2H15v-2l-3 3l3 3v-2h2c2.21 0 4-1.79 4-4s-1.79-4-4-4z"></path></svg></button></div></div> <p class="[&:not(:first-child)]:_mt-6 _leading-7">Fire up your favorite GraphQL Client pointed at <code class="nextra-code" dir="ltr">http://localhost:8080/graphql</code> and run mutations and queries</p> <div class="nextra-code _relative [&:not(:first-child)]:_mt-6"><pre class="_overflow-x-auto _subpixel-antialiased _text-[.9em] _bg-white dark:_bg-black _py-4 _ring-1 _ring-inset _ring-gray-300 dark:_ring-neutral-700 contrast-more:_ring-gray-900 contrast-more:dark:_ring-gray-50 contrast-more:_contrast-150 _rounded-md" tabindex="0"><code class="nextra-code" dir="ltr"><span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">mutation</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> {</span></span> <span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70"> addProduct</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(</span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70">input</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">: [{ </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">name</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">"Dgraph"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> }, { </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">name</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">"Dgraph Cloud"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> }]) {</span></span> <span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70"> product</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> {</span></span> <span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70"> id</span></span> <span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70"> name</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> }</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> }</span></span> <span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70"> addCustomer</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(</span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70">input</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">: [{ </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">username</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">"TonyStark"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> }]) {</span></span> <span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70"> customer</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> {</span></span> <span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70"> username</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> }</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> }</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">}</span></span></code></pre><div class="_opacity-0 _transition [div:hover>&]:_opacity-100 focus-within:_opacity-100 _flex _gap-1 _absolute _right-4 _top-2"><button class="_transition _rounded-md _p-1.5 _border _border-gray-300 dark:_border-neutral-700 contrast-more:_border-gray-900 contrast-more:dark:_border-gray-50 md:_hidden" title="Toggle word wrap"><svg viewBox="0 0 24 24" width="24" height="24" class="_h-4 _w-auto"><path fill="currentColor" d="M4 19h6v-2H4v2zM20 5H4v2h16V5zm-3 6H4v2h13.25c1.1 0 2 .9 2 2s-.9 2-2 2H15v-2l-3 3l3 3v-2h2c2.21 0 4-1.79 4-4s-1.79-4-4-4z"></path></svg></button></div></div> <div class="nextra-code _relative [&:not(:first-child)]:_mt-6"><pre class="_overflow-x-auto _subpixel-antialiased _text-[.9em] _bg-white dark:_bg-black _py-4 _ring-1 _ring-inset _ring-gray-300 dark:_ring-neutral-700 contrast-more:_ring-gray-900 contrast-more:dark:_ring-gray-50 contrast-more:_contrast-150 _rounded-md" tabindex="0"><code class="nextra-code" dir="ltr"><span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">mutation</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> {</span></span> <span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70"> addReview</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(</span></span> <span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70"> input</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">: [</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> {</span></span> <span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> by</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">: { </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">username</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">"TonyStark"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> }</span></span> <span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> about</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">: { </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">name</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">"Dgraph"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> }</span></span> <span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> comment</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">"Fantastic, easy to install, worked great. Best GraphQL server available"</span></span> <span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> rating</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">: </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">10</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> }</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> ]</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> ) {</span></span> <span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70"> review</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> {</span></span> <span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70"> id</span></span> <span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70"> comment</span></span> <span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70"> rating</span></span> <span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70"> by</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> {</span></span> <span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70"> username</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> }</span></span> <span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70"> about</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> {</span></span> <span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70"> id</span></span> <span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70"> name</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> }</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> }</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> }</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">}</span></span></code></pre><div class="_opacity-0 _transition [div:hover>&]:_opacity-100 focus-within:_opacity-100 _flex _gap-1 _absolute _right-4 _top-2"><button class="_transition _rounded-md _p-1.5 _border _border-gray-300 dark:_border-neutral-700 contrast-more:_border-gray-900 contrast-more:dark:_border-gray-50 md:_hidden" title="Toggle word wrap"><svg viewBox="0 0 24 24" width="24" height="24" class="_h-4 _w-auto"><path fill="currentColor" d="M4 19h6v-2H4v2zM20 5H4v2h16V5zm-3 6H4v2h13.25c1.1 0 2 .9 2 2s-.9 2-2 2H15v-2l-3 3l3 3v-2h2c2.21 0 4-1.79 4-4s-1.79-4-4-4z"></path></svg></button></div></div> <div class="nextra-code _relative [&:not(:first-child)]:_mt-6"><pre class="_overflow-x-auto _subpixel-antialiased _text-[.9em] _bg-white dark:_bg-black _py-4 _ring-1 _ring-inset _ring-gray-300 dark:_ring-neutral-700 contrast-more:_ring-gray-900 contrast-more:dark:_ring-gray-50 contrast-more:_contrast-150 _rounded-md" tabindex="0"><code class="nextra-code" dir="ltr"><span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">query</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> {</span></span> <span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70"> queryReview</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(</span></span> <span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70"> filter</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">: { </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">comment</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">: { </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">alloftext</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">"server easy install"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> }, </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">rating</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">: { </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">gt</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">: </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">5</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> } }</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> ) {</span></span> <span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70"> comment</span></span> <span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70"> by</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> {</span></span> <span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70"> username</span></span> <span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70"> reviews</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(</span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70">order</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">: { </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">desc</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">:</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> rating</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> }, </span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70">first</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">: </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">10</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">) {</span></span> <span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70"> about</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> {</span></span> <span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70"> name</span></span> <span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70"> reviews</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(</span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70">order</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">: { </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">asc</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">:</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> rating</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">, </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">first</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">: </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">5</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> }) {</span></span> <span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70"> by</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> {</span></span> <span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70"> username</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> }</span></span> <span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70"> comment</span></span> <span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70"> rating</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> }</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> }</span></span> <span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70"> rating</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> }</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> }</span></span> <span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70"> about</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> {</span></span> <span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70"> name</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> }</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> }</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">}</span></span></code></pre><div class="_opacity-0 _transition [div:hover>&]:_opacity-100 focus-within:_opacity-100 _flex _gap-1 _absolute _right-4 _top-2"><button class="_transition _rounded-md _p-1.5 _border _border-gray-300 dark:_border-neutral-700 contrast-more:_border-gray-900 contrast-more:dark:_border-gray-50 md:_hidden" title="Toggle word wrap"><svg viewBox="0 0 24 24" width="24" height="24" class="_h-4 _w-auto"><path fill="currentColor" d="M4 19h6v-2H4v2zM20 5H4v2h16V5zm-3 6H4v2h13.25c1.1 0 2 .9 2 2s-.9 2-2 2H15v-2l-3 3l3 3v-2h2c2.21 0 4-1.79 4-4s-1.79-4-4-4z"></path></svg></button></div></div></div></details></div><div class="border border-zinc-200 dark:border-[#414141] p-8 lg:p-12 bg-white dark:bg-neutral-800 rounded-none !p-0 h-max min-w-0"><div class="p-8 lg:p-12 flex flex-col gap-7 grow"><div class="flex items-center gap-6 [&_a:hover]:text-primary [&_a]:transition-colors"><span class="text-3xl font-extrabold grow break-all">GraphQL.js</span><a href="/graphql-js/" target="_blank" rel="noreferrer"><svg xmlns="http://www.w3.org/2000/svg" fill="currentColor" viewBox="0 0 24 24"><path d="M23.332 15.948C23.764 14.711 24 13.383 24 12a12 12 0 0 0-.706-4.056C21.627 3.317 17.194 0 12 0S2.373 3.317.706 7.944A11.949 11.949 0 0 0 0 12a12 12 0 0 0 .706 4.056C2.373 20.683 6.806 24 12 24s9.627-3.317 11.294-7.944a1 1 0 0 0 .038-.108M12 22.28c-.457 0-1.194-.827-1.81-2.675a19 19 0 0 1-.708-3.031h5.036a19 19 0 0 1-.708 3.031c-.616 1.848-1.353 2.675-1.81 2.675m-2.727-7.427A32 32 0 0 1 9.147 12c0-.98.043-1.936.126-2.853h5.454c.083.917.126 1.874.126 2.853s-.043 1.936-.126 2.854zM1.72 12c0-.99.141-1.947.403-2.853h5.425a33.5 33.5 0 0 0 0 5.707H2.123A10.3 10.3 0 0 1 1.72 12M12 1.72c.457 0 1.194.827 1.81 2.675.297.892.535 1.917.708 3.032H9.482c.173-1.115.411-2.14.708-3.032.616-1.848 1.353-2.675 1.81-2.675m4.452 7.427h5.425c.262.906.403 1.864.403 2.853s-.141 1.947-.403 2.854h-5.425a33.5 33.5 0 0 0 0-5.707m4.752-1.72h-4.95c-.305-2.11-.83-4.003-1.566-5.35 2.855.775 5.22 2.75 6.516 5.35M9.313 2.077c-.736 1.347-1.261 3.24-1.567 5.35h-4.95a10.33 10.33 0 0 1 6.517-5.35M2.795 16.574h4.95c.306 2.11.83 4.002 1.567 5.349a10.33 10.33 0 0 1-6.517-5.35m11.893 5.349c.736-1.347 1.261-3.24 1.567-5.35h4.95a10.33 10.33 0 0 1-6.517 5.35"></path></svg></a><a href="https://github.com/graphql/graphql-js" target="_blank" rel="noreferrer"><svg xmlns="http://www.w3.org/2000/svg" width="30" fill="currentColor" viewBox="0 0 30 30"><path fill-rule="evenodd" d="M15.1.413a14.81 14.81 0 0 0-4.684 28.862c.742.138 1.012-.32 1.012-.712 0-.35-.013-1.283-.02-2.518-4.12.893-4.99-1.987-4.99-1.987-.675-1.71-1.643-2.165-1.643-2.165-1.345-.918.1-.9.1-.9 1.488.105 2.27 1.525 2.27 1.525 1.32 2.265 3.466 1.61 4.31 1.23.133-.955.515-1.608.94-1.978-3.29-.375-6.747-1.645-6.747-7.32 0-1.615.577-2.937 1.525-3.975-.15-.372-.66-1.88.145-3.917 0 0 1.242-.4 4.075 1.517a14.3 14.3 0 0 1 3.705-.5 14.2 14.2 0 0 1 3.707.5c2.826-1.915 4.068-1.517 4.068-1.517.807 2.037.3 3.545.15 3.92.95 1.035 1.52 2.357 1.52 3.975 0 5.687-3.462 6.94-6.76 7.305.53.457 1.005 1.36 1.005 2.742 0 1.98-.02 3.575-.02 4.063 0 .395.267.857 1.02.712A14.816 14.816 0 0 0 15.101.413" clip-rule="evenodd"></path></svg></a><a href="https://npmjs.com/package/graphql" target="_blank" rel="noreferrer"><svg xmlns="http://www.w3.org/2000/svg" width="30" height="30" fill="currentColor"><path fill-rule="evenodd" d="M0 0v30h30V0zm24.375 5.625H5.625v18.75H15v-15h5.625v15h3.75z" clip-rule="evenodd"></path></svg></a></div><div class="gap-2 flex roboto-mono"><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=javascript">JavaScript</a><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=server">Server</a></div><span class="[&_a]:text-primary grow line-clamp-4 lg:text-lg">The reference implementation of the GraphQL specification, designed for running GraphQL in a Node.js environment.</span><div class="flex items-center gap-5 max-md:text-xs [&>:not(:last-child)]:border-r [&>:not(:last-child)]:border-gray-500 [&>:not(:last-child)]:pr-5"><span>Last release <!-- -->3 months ago</span><span class="flex items-center gap-1"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="19" fill="currentColor" class="text-primary"><path d="m10 .5 2.997 5.874L19.51 7.41l-4.66 4.666 1.027 6.514L10 15.6l-5.878 2.99 1.028-6.514L.489 7.41l6.513-1.036z"></path></svg>20k</span><span>MIT License</span></div></div><details class="bg-[#f0f0f0] dark:bg-[#2f2f2f]"><summary class="flex justify-between font-bold text-primary px-8 lg:px-12 py-5 dark:[[open]>&]:shadow-[-5px_10px_30px_20px_#1b1b1b4d] [[open]>&]:shadow-[0_6px_21px_0_#1b1b1b33] cursor-pointer">README<svg xmlns="http://www.w3.org/2000/svg" fill="currentColor" viewBox="0 0 15 15" class="size-5 -rotate-90 [[open]>*>&]:rotate-90 transition-transform"><path fill-rule="evenodd" d="M8.842 3.135a.5.5 0 0 1 .023.707L5.435 7.5l3.43 3.658a.5.5 0 0 1-.73.684l-3.75-4a.5.5 0 0 1 0-.684l3.75-4a.5.5 0 0 1 .707-.023" clip-rule="evenodd"></path></svg></summary><div class="px-8 lg:px-12 py-5"><p class="[&:not(:first-child)]:_mt-6 _leading-7">To run a <code class="nextra-code" dir="ltr">GraphQL.js</code> hello world script from the command line:</p> <div class="nextra-code _relative [&:not(:first-child)]:_mt-6"><pre class="_overflow-x-auto _subpixel-antialiased _text-[.9em] _bg-white dark:_bg-black _py-4 _ring-1 _ring-inset _ring-gray-300 dark:_ring-neutral-700 contrast-more:_ring-gray-900 contrast-more:dark:_ring-gray-50 contrast-more:_contrast-150 _rounded-md" tabindex="0"><code class="nextra-code" dir="ltr"><span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">npm</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> install</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> graphql</span></span></code></pre><div class="_opacity-0 _transition [div:hover>&]:_opacity-100 focus-within:_opacity-100 _flex _gap-1 _absolute _right-4 _top-2"><button class="_transition _rounded-md _p-1.5 _border _border-gray-300 dark:_border-neutral-700 contrast-more:_border-gray-900 contrast-more:dark:_border-gray-50 md:_hidden" title="Toggle word wrap"><svg viewBox="0 0 24 24" width="24" height="24" class="_h-4 _w-auto"><path fill="currentColor" d="M4 19h6v-2H4v2zM20 5H4v2h16V5zm-3 6H4v2h13.25c1.1 0 2 .9 2 2s-.9 2-2 2H15v-2l-3 3l3 3v-2h2c2.21 0 4-1.79 4-4s-1.79-4-4-4z"></path></svg></button></div></div> <p class="[&:not(:first-child)]:_mt-6 _leading-7">Then run <code class="nextra-code" dir="ltr">node hello.js</code> with this code in <code class="nextra-code" dir="ltr">hello.js</code>:</p> <div class="nextra-code _relative [&:not(:first-child)]:_mt-6"><pre class="_overflow-x-auto _subpixel-antialiased _text-[.9em] _bg-white dark:_bg-black _py-4 _ring-1 _ring-inset _ring-gray-300 dark:_ring-neutral-700 contrast-more:_ring-gray-900 contrast-more:dark:_ring-gray-50 contrast-more:_contrast-150 _rounded-md" tabindex="0"><code class="nextra-code" dir="ltr"><span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">var</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> { graphql, buildSchema } </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> require</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">"graphql"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">)</span></span> <span> </span> <span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">var</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> schema </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> buildSchema</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">`</span></span> <span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> type Query {</span></span> <span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> hello: String</span></span> <span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> }</span></span> <span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">`</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">)</span></span> <span> </span> <span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">var</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> rootValue </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> { </span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">hello</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">: () </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=></span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> "Hello world!"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> }</span></span> <span> </span> <span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">var</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> source </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> "{ hello }"</span></span> <span> </span> <span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">graphql</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">({ schema, source, rootValue }).</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">then</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(</span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70">response</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> =></span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> {</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> console.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">log</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(response)</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">})</span></span></code></pre><div class="_opacity-0 _transition [div:hover>&]:_opacity-100 focus-within:_opacity-100 _flex _gap-1 _absolute _right-4 _top-2"><button class="_transition _rounded-md _p-1.5 _border _border-gray-300 dark:_border-neutral-700 contrast-more:_border-gray-900 contrast-more:dark:_border-gray-50 md:_hidden" title="Toggle word wrap"><svg viewBox="0 0 24 24" width="24" height="24" class="_h-4 _w-auto"><path fill="currentColor" d="M4 19h6v-2H4v2zM20 5H4v2h16V5zm-3 6H4v2h13.25c1.1 0 2 .9 2 2s-.9 2-2 2H15v-2l-3 3l3 3v-2h2c2.21 0 4-1.79 4-4s-1.79-4-4-4z"></path></svg></button></div></div></div></details></div><div class="border border-zinc-200 dark:border-[#414141] p-8 lg:p-12 bg-white dark:bg-neutral-800 rounded-none !p-0 h-max min-w-0"><div class="p-8 lg:p-12 flex flex-col gap-7 grow"><div class="flex items-center gap-6 [&_a:hover]:text-primary [&_a]:transition-colors"><span class="text-3xl font-extrabold grow break-all">Apollo Client</span><a href="http://apollographql.com/client/" target="_blank" rel="noreferrer"><svg xmlns="http://www.w3.org/2000/svg" fill="currentColor" viewBox="0 0 24 24"><path d="M23.332 15.948C23.764 14.711 24 13.383 24 12a12 12 0 0 0-.706-4.056C21.627 3.317 17.194 0 12 0S2.373 3.317.706 7.944A11.949 11.949 0 0 0 0 12a12 12 0 0 0 .706 4.056C2.373 20.683 6.806 24 12 24s9.627-3.317 11.294-7.944a1 1 0 0 0 .038-.108M12 22.28c-.457 0-1.194-.827-1.81-2.675a19 19 0 0 1-.708-3.031h5.036a19 19 0 0 1-.708 3.031c-.616 1.848-1.353 2.675-1.81 2.675m-2.727-7.427A32 32 0 0 1 9.147 12c0-.98.043-1.936.126-2.853h5.454c.083.917.126 1.874.126 2.853s-.043 1.936-.126 2.854zM1.72 12c0-.99.141-1.947.403-2.853h5.425a33.5 33.5 0 0 0 0 5.707H2.123A10.3 10.3 0 0 1 1.72 12M12 1.72c.457 0 1.194.827 1.81 2.675.297.892.535 1.917.708 3.032H9.482c.173-1.115.411-2.14.708-3.032.616-1.848 1.353-2.675 1.81-2.675m4.452 7.427h5.425c.262.906.403 1.864.403 2.853s-.141 1.947-.403 2.854h-5.425a33.5 33.5 0 0 0 0-5.707m4.752-1.72h-4.95c-.305-2.11-.83-4.003-1.566-5.35 2.855.775 5.22 2.75 6.516 5.35M9.313 2.077c-.736 1.347-1.261 3.24-1.567 5.35h-4.95a10.33 10.33 0 0 1 6.517-5.35M2.795 16.574h4.95c.306 2.11.83 4.002 1.567 5.349a10.33 10.33 0 0 1-6.517-5.35m11.893 5.349c.736-1.347 1.261-3.24 1.567-5.35h4.95a10.33 10.33 0 0 1-6.517 5.35"></path></svg></a><a href="https://github.com/apollographql/apollo-client" target="_blank" rel="noreferrer"><svg xmlns="http://www.w3.org/2000/svg" width="30" fill="currentColor" viewBox="0 0 30 30"><path fill-rule="evenodd" d="M15.1.413a14.81 14.81 0 0 0-4.684 28.862c.742.138 1.012-.32 1.012-.712 0-.35-.013-1.283-.02-2.518-4.12.893-4.99-1.987-4.99-1.987-.675-1.71-1.643-2.165-1.643-2.165-1.345-.918.1-.9.1-.9 1.488.105 2.27 1.525 2.27 1.525 1.32 2.265 3.466 1.61 4.31 1.23.133-.955.515-1.608.94-1.978-3.29-.375-6.747-1.645-6.747-7.32 0-1.615.577-2.937 1.525-3.975-.15-.372-.66-1.88.145-3.917 0 0 1.242-.4 4.075 1.517a14.3 14.3 0 0 1 3.705-.5 14.2 14.2 0 0 1 3.707.5c2.826-1.915 4.068-1.517 4.068-1.517.807 2.037.3 3.545.15 3.92.95 1.035 1.52 2.357 1.52 3.975 0 5.687-3.462 6.94-6.76 7.305.53.457 1.005 1.36 1.005 2.742 0 1.98-.02 3.575-.02 4.063 0 .395.267.857 1.02.712A14.816 14.816 0 0 0 15.101.413" clip-rule="evenodd"></path></svg></a><a href="https://npmjs.com/package/@apollo/client" target="_blank" rel="noreferrer"><svg xmlns="http://www.w3.org/2000/svg" width="30" height="30" fill="currentColor"><path fill-rule="evenodd" d="M0 0v30h30V0zm24.375 5.625H5.625v18.75H15v-15h5.625v15h3.75z" clip-rule="evenodd"></path></svg></a></div><div class="gap-2 flex roboto-mono"><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=javascript">JavaScript</a><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=client">Client</a></div><span class="[&_a]:text-primary grow line-clamp-4 lg:text-lg">A powerful JavaScript GraphQL client, designed to work well with React, React Native, Angular 2, or just plain JavaScript.</span><div class="flex items-center gap-5 max-md:text-xs [&>:not(:last-child)]:border-r [&>:not(:last-child)]:border-gray-500 [&>:not(:last-child)]:pr-5"><span>Last release <!-- -->5 days ago</span><span class="flex items-center gap-1"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="19" fill="currentColor" class="text-primary"><path d="m10 .5 2.997 5.874L19.51 7.41l-4.66 4.666 1.027 6.514L10 15.6l-5.878 2.99 1.028-6.514L.489 7.41l6.513-1.036z"></path></svg>19k</span><span>MIT License</span></div></div></div><div class="border border-zinc-200 dark:border-[#414141] p-8 lg:p-12 bg-white dark:bg-neutral-800 rounded-none !p-0 h-max min-w-0"><div class="p-8 lg:p-12 flex flex-col gap-7 grow"><div class="flex items-center gap-6 [&_a:hover]:text-primary [&_a]:transition-colors"><span class="text-3xl font-extrabold grow break-all">Relay</span><a href="https://facebook.github.io/relay/" target="_blank" rel="noreferrer"><svg xmlns="http://www.w3.org/2000/svg" fill="currentColor" viewBox="0 0 24 24"><path d="M23.332 15.948C23.764 14.711 24 13.383 24 12a12 12 0 0 0-.706-4.056C21.627 3.317 17.194 0 12 0S2.373 3.317.706 7.944A11.949 11.949 0 0 0 0 12a12 12 0 0 0 .706 4.056C2.373 20.683 6.806 24 12 24s9.627-3.317 11.294-7.944a1 1 0 0 0 .038-.108M12 22.28c-.457 0-1.194-.827-1.81-2.675a19 19 0 0 1-.708-3.031h5.036a19 19 0 0 1-.708 3.031c-.616 1.848-1.353 2.675-1.81 2.675m-2.727-7.427A32 32 0 0 1 9.147 12c0-.98.043-1.936.126-2.853h5.454c.083.917.126 1.874.126 2.853s-.043 1.936-.126 2.854zM1.72 12c0-.99.141-1.947.403-2.853h5.425a33.5 33.5 0 0 0 0 5.707H2.123A10.3 10.3 0 0 1 1.72 12M12 1.72c.457 0 1.194.827 1.81 2.675.297.892.535 1.917.708 3.032H9.482c.173-1.115.411-2.14.708-3.032.616-1.848 1.353-2.675 1.81-2.675m4.452 7.427h5.425c.262.906.403 1.864.403 2.853s-.141 1.947-.403 2.854h-5.425a33.5 33.5 0 0 0 0-5.707m4.752-1.72h-4.95c-.305-2.11-.83-4.003-1.566-5.35 2.855.775 5.22 2.75 6.516 5.35M9.313 2.077c-.736 1.347-1.261 3.24-1.567 5.35h-4.95a10.33 10.33 0 0 1 6.517-5.35M2.795 16.574h4.95c.306 2.11.83 4.002 1.567 5.349a10.33 10.33 0 0 1-6.517-5.35m11.893 5.349c.736-1.347 1.261-3.24 1.567-5.35h4.95a10.33 10.33 0 0 1-6.517 5.35"></path></svg></a><a href="https://github.com/facebook/relay" target="_blank" rel="noreferrer"><svg xmlns="http://www.w3.org/2000/svg" width="30" fill="currentColor" viewBox="0 0 30 30"><path fill-rule="evenodd" d="M15.1.413a14.81 14.81 0 0 0-4.684 28.862c.742.138 1.012-.32 1.012-.712 0-.35-.013-1.283-.02-2.518-4.12.893-4.99-1.987-4.99-1.987-.675-1.71-1.643-2.165-1.643-2.165-1.345-.918.1-.9.1-.9 1.488.105 2.27 1.525 2.27 1.525 1.32 2.265 3.466 1.61 4.31 1.23.133-.955.515-1.608.94-1.978-3.29-.375-6.747-1.645-6.747-7.32 0-1.615.577-2.937 1.525-3.975-.15-.372-.66-1.88.145-3.917 0 0 1.242-.4 4.075 1.517a14.3 14.3 0 0 1 3.705-.5 14.2 14.2 0 0 1 3.707.5c2.826-1.915 4.068-1.517 4.068-1.517.807 2.037.3 3.545.15 3.92.95 1.035 1.52 2.357 1.52 3.975 0 5.687-3.462 6.94-6.76 7.305.53.457 1.005 1.36 1.005 2.742 0 1.98-.02 3.575-.02 4.063 0 .395.267.857 1.02.712A14.816 14.816 0 0 0 15.101.413" clip-rule="evenodd"></path></svg></a><a href="https://npmjs.com/package/react-relay" target="_blank" rel="noreferrer"><svg xmlns="http://www.w3.org/2000/svg" width="30" height="30" fill="currentColor"><path fill-rule="evenodd" d="M0 0v30h30V0zm24.375 5.625H5.625v18.75H15v-15h5.625v15h3.75z" clip-rule="evenodd"></path></svg></a></div><div class="gap-2 flex roboto-mono"><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=javascript">JavaScript</a><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=client">Client</a></div><span class="[&_a]:text-primary grow line-clamp-4 lg:text-lg">Facebook's framework for building React applications that talk to a GraphQL backend.</span><div class="flex items-center gap-5 max-md:text-xs [&>:not(:last-child)]:border-r [&>:not(:last-child)]:border-gray-500 [&>:not(:last-child)]:pr-5"><span>Last release <!-- -->5 days ago</span><span class="flex items-center gap-1"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="19" fill="currentColor" class="text-primary"><path d="m10 .5 2.997 5.874L19.51 7.41l-4.66 4.666 1.027 6.514L10 15.6l-5.878 2.99 1.028-6.514L.489 7.41l6.513-1.036z"></path></svg>18k</span><span>MIT License</span></div></div><details class="bg-[#f0f0f0] dark:bg-[#2f2f2f]"><summary class="flex justify-between font-bold text-primary px-8 lg:px-12 py-5 dark:[[open]>&]:shadow-[-5px_10px_30px_20px_#1b1b1b4d] [[open]>&]:shadow-[0_6px_21px_0_#1b1b1b33] cursor-pointer">README<svg xmlns="http://www.w3.org/2000/svg" fill="currentColor" viewBox="0 0 15 15" class="size-5 -rotate-90 [[open]>*>&]:rotate-90 transition-transform"><path fill-rule="evenodd" d="M8.842 3.135a.5.5 0 0 1 .023.707L5.435 7.5l3.43 3.658a.5.5 0 0 1-.73.684l-3.75-4a.5.5 0 0 1 0-.684l3.75-4a.5.5 0 0 1 .707-.023" clip-rule="evenodd"></path></svg></summary><div class="px-8 lg:px-12 py-5"><p class="[&:not(:first-child)]:_mt-6 _leading-7">Relay is a JavaScript framework for building data-driven React applications.</p> <ul class="[:is(ol,ul)_&]:_my-3 [&:not(:first-child)]:_mt-6 _list-disc ltr:_ml-6 rtl:_mr-6"> <li class="_my-2"><strong>Declarative:</strong> Never again communicate with your data store using an imperative API. Simply declare your data requirements using GraphQL and let Relay figure out how and when to fetch your data.</li> <li class="_my-2"><strong>Colocation:</strong> Queries live next to the views that rely on them, so you can easily reason about your app. Relay aggregates queries into efficient network requests to fetch only what you need.</li> <li class="_my-2"><strong>Mutations:</strong> Relay lets you mutate data on the client and server using GraphQL mutations, and offers automatic data consistency, optimistic updates, and error handling.</li> </ul> <p class="[&:not(:first-child)]:_mt-6 _leading-7"><a href="https://relay.dev/docs/en/introduction-to-relay" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">See how to use Relay in your own project</a>.</p></div></details></div><div class="border border-zinc-200 dark:border-[#414141] p-8 lg:p-12 bg-white dark:bg-neutral-800 rounded-none !p-0 h-max min-w-0"><div class="p-8 lg:p-12 flex flex-col gap-7 grow"><div class="flex items-center gap-6 [&_a:hover]:text-primary [&_a]:transition-colors"><span class="text-3xl font-extrabold grow break-all">GraphiQL</span><a href="https://github.com/graphql/graphiql" target="_blank" rel="noreferrer"><svg xmlns="http://www.w3.org/2000/svg" width="30" fill="currentColor" viewBox="0 0 30 30"><path fill-rule="evenodd" d="M15.1.413a14.81 14.81 0 0 0-4.684 28.862c.742.138 1.012-.32 1.012-.712 0-.35-.013-1.283-.02-2.518-4.12.893-4.99-1.987-4.99-1.987-.675-1.71-1.643-2.165-1.643-2.165-1.345-.918.1-.9.1-.9 1.488.105 2.27 1.525 2.27 1.525 1.32 2.265 3.466 1.61 4.31 1.23.133-.955.515-1.608.94-1.978-3.29-.375-6.747-1.645-6.747-7.32 0-1.615.577-2.937 1.525-3.975-.15-.372-.66-1.88.145-3.917 0 0 1.242-.4 4.075 1.517a14.3 14.3 0 0 1 3.705-.5 14.2 14.2 0 0 1 3.707.5c2.826-1.915 4.068-1.517 4.068-1.517.807 2.037.3 3.545.15 3.92.95 1.035 1.52 2.357 1.52 3.975 0 5.687-3.462 6.94-6.76 7.305.53.457 1.005 1.36 1.005 2.742 0 1.98-.02 3.575-.02 4.063 0 .395.267.857 1.02.712A14.816 14.816 0 0 0 15.101.413" clip-rule="evenodd"></path></svg></a><a href="https://npmjs.com/package/graphiql" target="_blank" rel="noreferrer"><svg xmlns="http://www.w3.org/2000/svg" width="30" height="30" fill="currentColor"><path fill-rule="evenodd" d="M0 0v30h30V0zm24.375 5.625H5.625v18.75H15v-15h5.625v15h3.75z" clip-rule="evenodd"></path></svg></a></div><div class="gap-2 flex roboto-mono"><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=javascript">JavaScript</a><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=tools">Tools</a></div><span class="[&_a]:text-primary grow line-clamp-4 lg:text-lg">An interactive in-browser GraphQL IDE.</span><div class="flex items-center gap-5 max-md:text-xs [&>:not(:last-child)]:border-r [&>:not(:last-child)]:border-gray-500 [&>:not(:last-child)]:pr-5"><span>Last release <!-- -->4 days ago</span><span class="flex items-center gap-1"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="19" fill="currentColor" class="text-primary"><path d="m10 .5 2.997 5.874L19.51 7.41l-4.66 4.666 1.027 6.514L10 15.6l-5.878 2.99 1.028-6.514L.489 7.41l6.513-1.036z"></path></svg>16k</span><span>MIT License</span></div></div></div><div class="border border-zinc-200 dark:border-[#414141] p-8 lg:p-12 bg-white dark:bg-neutral-800 rounded-none !p-0 h-max min-w-0"><div class="p-8 lg:p-12 flex flex-col gap-7 grow"><div class="flex items-center gap-6 [&_a:hover]:text-primary [&_a]:transition-colors"><span class="text-3xl font-extrabold grow break-all">Apache APISIX</span><a href="https://apisix.apache.org/" target="_blank" rel="noreferrer"><svg xmlns="http://www.w3.org/2000/svg" fill="currentColor" viewBox="0 0 24 24"><path d="M23.332 15.948C23.764 14.711 24 13.383 24 12a12 12 0 0 0-.706-4.056C21.627 3.317 17.194 0 12 0S2.373 3.317.706 7.944A11.949 11.949 0 0 0 0 12a12 12 0 0 0 .706 4.056C2.373 20.683 6.806 24 12 24s9.627-3.317 11.294-7.944a1 1 0 0 0 .038-.108M12 22.28c-.457 0-1.194-.827-1.81-2.675a19 19 0 0 1-.708-3.031h5.036a19 19 0 0 1-.708 3.031c-.616 1.848-1.353 2.675-1.81 2.675m-2.727-7.427A32 32 0 0 1 9.147 12c0-.98.043-1.936.126-2.853h5.454c.083.917.126 1.874.126 2.853s-.043 1.936-.126 2.854zM1.72 12c0-.99.141-1.947.403-2.853h5.425a33.5 33.5 0 0 0 0 5.707H2.123A10.3 10.3 0 0 1 1.72 12M12 1.72c.457 0 1.194.827 1.81 2.675.297.892.535 1.917.708 3.032H9.482c.173-1.115.411-2.14.708-3.032.616-1.848 1.353-2.675 1.81-2.675m4.452 7.427h5.425c.262.906.403 1.864.403 2.853s-.141 1.947-.403 2.854h-5.425a33.5 33.5 0 0 0 0-5.707m4.752-1.72h-4.95c-.305-2.11-.83-4.003-1.566-5.35 2.855.775 5.22 2.75 6.516 5.35M9.313 2.077c-.736 1.347-1.261 3.24-1.567 5.35h-4.95a10.33 10.33 0 0 1 6.517-5.35M2.795 16.574h4.95c.306 2.11.83 4.002 1.567 5.349a10.33 10.33 0 0 1-6.517-5.35m11.893 5.349c.736-1.347 1.261-3.24 1.567-5.35h4.95a10.33 10.33 0 0 1-6.517 5.35"></path></svg></a><a href="https://github.com/apache/apisix" target="_blank" rel="noreferrer"><svg xmlns="http://www.w3.org/2000/svg" width="30" fill="currentColor" viewBox="0 0 30 30"><path fill-rule="evenodd" d="M15.1.413a14.81 14.81 0 0 0-4.684 28.862c.742.138 1.012-.32 1.012-.712 0-.35-.013-1.283-.02-2.518-4.12.893-4.99-1.987-4.99-1.987-.675-1.71-1.643-2.165-1.643-2.165-1.345-.918.1-.9.1-.9 1.488.105 2.27 1.525 2.27 1.525 1.32 2.265 3.466 1.61 4.31 1.23.133-.955.515-1.608.94-1.978-3.29-.375-6.747-1.645-6.747-7.32 0-1.615.577-2.937 1.525-3.975-.15-.372-.66-1.88.145-3.917 0 0 1.242-.4 4.075 1.517a14.3 14.3 0 0 1 3.705-.5 14.2 14.2 0 0 1 3.707.5c2.826-1.915 4.068-1.517 4.068-1.517.807 2.037.3 3.545.15 3.92.95 1.035 1.52 2.357 1.52 3.975 0 5.687-3.462 6.94-6.76 7.305.53.457 1.005 1.36 1.005 2.742 0 1.98-.02 3.575-.02 4.063 0 .395.267.857 1.02.712A14.816 14.816 0 0 0 15.101.413" clip-rule="evenodd"></path></svg></a></div><div class="gap-2 flex roboto-mono"><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=services">Services</a></div><span class="[&_a]:text-primary grow line-clamp-4 lg:text-lg">Apache APISIX is a dynamic, real-time, high-performance API gateway providing rich traffic management features such as load balancing, dynamic upstream, canary release, observability, etc. As a cloud-native API gateway, Apache APISIX already can support GraphQL syntax at the beginning of its design. Efficiently matching GraphQL statements carried in requests can filter out abnormal traffic to further ensure security. For more information, please visit <a href="https://apisix.apache.org/blog/2022/03/02/apisix-integration-graphql-plugin/">How to Use GraphQL with API Gateway Apache APISIX</a></span><div class="flex items-center gap-5 max-md:text-xs [&>:not(:last-child)]:border-r [&>:not(:last-child)]:border-gray-500 [&>:not(:last-child)]:pr-5"><span>Last release <!-- -->1 month ago</span><span class="flex items-center gap-1"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="19" fill="currentColor" class="text-primary"><path d="m10 .5 2.997 5.874L19.51 7.41l-4.66 4.666 1.027 6.514L10 15.6l-5.878 2.99 1.028-6.514L.489 7.41l6.513-1.036z"></path></svg>15k</span><span>Apache License 2.0</span></div></div></div><div class="border border-zinc-200 dark:border-[#414141] p-8 lg:p-12 bg-white dark:bg-neutral-800 rounded-none !p-0 h-max min-w-0"><div class="p-8 lg:p-12 flex flex-col gap-7 grow"><div class="flex items-center gap-6 [&_a:hover]:text-primary [&_a]:transition-colors"><span class="text-3xl font-extrabold grow break-all">Apollo Server</span><a href="https://www.apollographql.com/docs/apollo-server/" target="_blank" rel="noreferrer"><svg xmlns="http://www.w3.org/2000/svg" fill="currentColor" viewBox="0 0 24 24"><path d="M23.332 15.948C23.764 14.711 24 13.383 24 12a12 12 0 0 0-.706-4.056C21.627 3.317 17.194 0 12 0S2.373 3.317.706 7.944A11.949 11.949 0 0 0 0 12a12 12 0 0 0 .706 4.056C2.373 20.683 6.806 24 12 24s9.627-3.317 11.294-7.944a1 1 0 0 0 .038-.108M12 22.28c-.457 0-1.194-.827-1.81-2.675a19 19 0 0 1-.708-3.031h5.036a19 19 0 0 1-.708 3.031c-.616 1.848-1.353 2.675-1.81 2.675m-2.727-7.427A32 32 0 0 1 9.147 12c0-.98.043-1.936.126-2.853h5.454c.083.917.126 1.874.126 2.853s-.043 1.936-.126 2.854zM1.72 12c0-.99.141-1.947.403-2.853h5.425a33.5 33.5 0 0 0 0 5.707H2.123A10.3 10.3 0 0 1 1.72 12M12 1.72c.457 0 1.194.827 1.81 2.675.297.892.535 1.917.708 3.032H9.482c.173-1.115.411-2.14.708-3.032.616-1.848 1.353-2.675 1.81-2.675m4.452 7.427h5.425c.262.906.403 1.864.403 2.853s-.141 1.947-.403 2.854h-5.425a33.5 33.5 0 0 0 0-5.707m4.752-1.72h-4.95c-.305-2.11-.83-4.003-1.566-5.35 2.855.775 5.22 2.75 6.516 5.35M9.313 2.077c-.736 1.347-1.261 3.24-1.567 5.35h-4.95a10.33 10.33 0 0 1 6.517-5.35M2.795 16.574h4.95c.306 2.11.83 4.002 1.567 5.349a10.33 10.33 0 0 1-6.517-5.35m11.893 5.349c.736-1.347 1.261-3.24 1.567-5.35h4.95a10.33 10.33 0 0 1-6.517 5.35"></path></svg></a><a href="https://github.com/apollographql/apollo-server" target="_blank" rel="noreferrer"><svg xmlns="http://www.w3.org/2000/svg" width="30" fill="currentColor" viewBox="0 0 30 30"><path fill-rule="evenodd" d="M15.1.413a14.81 14.81 0 0 0-4.684 28.862c.742.138 1.012-.32 1.012-.712 0-.35-.013-1.283-.02-2.518-4.12.893-4.99-1.987-4.99-1.987-.675-1.71-1.643-2.165-1.643-2.165-1.345-.918.1-.9.1-.9 1.488.105 2.27 1.525 2.27 1.525 1.32 2.265 3.466 1.61 4.31 1.23.133-.955.515-1.608.94-1.978-3.29-.375-6.747-1.645-6.747-7.32 0-1.615.577-2.937 1.525-3.975-.15-.372-.66-1.88.145-3.917 0 0 1.242-.4 4.075 1.517a14.3 14.3 0 0 1 3.705-.5 14.2 14.2 0 0 1 3.707.5c2.826-1.915 4.068-1.517 4.068-1.517.807 2.037.3 3.545.15 3.92.95 1.035 1.52 2.357 1.52 3.975 0 5.687-3.462 6.94-6.76 7.305.53.457 1.005 1.36 1.005 2.742 0 1.98-.02 3.575-.02 4.063 0 .395.267.857 1.02.712A14.816 14.816 0 0 0 15.101.413" clip-rule="evenodd"></path></svg></a><a href="https://npmjs.com/package/@apollo/server" target="_blank" rel="noreferrer"><svg xmlns="http://www.w3.org/2000/svg" width="30" height="30" fill="currentColor"><path fill-rule="evenodd" d="M0 0v30h30V0zm24.375 5.625H5.625v18.75H15v-15h5.625v15h3.75z" clip-rule="evenodd"></path></svg></a></div><div class="gap-2 flex roboto-mono"><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=javascript">JavaScript</a><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=server">Server</a></div><span class="[&_a]:text-primary grow line-clamp-4 lg:text-lg">A GraphQL server from Apollo that works with any Node.js HTTP framework</span><div class="flex items-center gap-5 max-md:text-xs [&>:not(:last-child)]:border-r [&>:not(:last-child)]:border-gray-500 [&>:not(:last-child)]:pr-5"><span>Last release <!-- -->3 weeks ago</span><span class="flex items-center gap-1"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="19" fill="currentColor" class="text-primary"><path d="m10 .5 2.997 5.874L19.51 7.41l-4.66 4.666 1.027 6.514L10 15.6l-5.878 2.99 1.028-6.514L.489 7.41l6.513-1.036z"></path></svg>14k</span><span>MIT License</span></div></div><details class="bg-[#f0f0f0] dark:bg-[#2f2f2f]"><summary class="flex justify-between font-bold text-primary px-8 lg:px-12 py-5 dark:[[open]>&]:shadow-[-5px_10px_30px_20px_#1b1b1b4d] [[open]>&]:shadow-[0_6px_21px_0_#1b1b1b33] cursor-pointer">README<svg xmlns="http://www.w3.org/2000/svg" fill="currentColor" viewBox="0 0 15 15" class="size-5 -rotate-90 [[open]>*>&]:rotate-90 transition-transform"><path fill-rule="evenodd" d="M8.842 3.135a.5.5 0 0 1 .023.707L5.435 7.5l3.43 3.658a.5.5 0 0 1-.73.684l-3.75-4a.5.5 0 0 1 0-.684l3.75-4a.5.5 0 0 1 .707-.023" clip-rule="evenodd"></path></svg></summary><div class="px-8 lg:px-12 py-5"><p class="[&:not(:first-child)]:_mt-6 _leading-7">To run a hello world server with Apollo Server:</p> <div class="nextra-code _relative [&:not(:first-child)]:_mt-6"><pre class="_overflow-x-auto _subpixel-antialiased _text-[.9em] _bg-white dark:_bg-black _py-4 _ring-1 _ring-inset _ring-gray-300 dark:_ring-neutral-700 contrast-more:_ring-gray-900 contrast-more:dark:_ring-gray-50 contrast-more:_contrast-150 _rounded-md" tabindex="0"><code class="nextra-code" dir="ltr"><span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">npm</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> install</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> @apollo/server</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> graphql</span></span></code></pre><div class="_opacity-0 _transition [div:hover>&]:_opacity-100 focus-within:_opacity-100 _flex _gap-1 _absolute _right-4 _top-2"><button class="_transition _rounded-md _p-1.5 _border _border-gray-300 dark:_border-neutral-700 contrast-more:_border-gray-900 contrast-more:dark:_border-gray-50 md:_hidden" title="Toggle word wrap"><svg viewBox="0 0 24 24" width="24" height="24" class="_h-4 _w-auto"><path fill="currentColor" d="M4 19h6v-2H4v2zM20 5H4v2h16V5zm-3 6H4v2h13.25c1.1 0 2 .9 2 2s-.9 2-2 2H15v-2l-3 3l3 3v-2h2c2.21 0 4-1.79 4-4s-1.79-4-4-4z"></path></svg></button></div></div> <p class="[&:not(:first-child)]:_mt-6 _leading-7">Then run <code class="nextra-code" dir="ltr">node server.js</code> with this code in <code class="nextra-code" dir="ltr">server.js</code>:</p> <div class="nextra-code _relative [&:not(:first-child)]:_mt-6"><pre class="_overflow-x-auto _subpixel-antialiased _text-[.9em] _bg-white dark:_bg-black _py-4 _ring-1 _ring-inset _ring-gray-300 dark:_ring-neutral-700 contrast-more:_ring-gray-900 contrast-more:dark:_ring-gray-50 contrast-more:_contrast-150 _rounded-md" tabindex="0"><code class="nextra-code" dir="ltr"><span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">import</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> { ApolloServer } </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">from</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> "@apollo/server"</span></span> <span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">import</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> { startStandaloneServer } </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">from</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> "@apollo/server/standalone"</span></span> <span> </span> <span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">const</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> server</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> =</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> new</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> ApolloServer</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">({</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> typeDefs,</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> resolvers,</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">})</span></span> <span> </span> <span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">const</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> { </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">url</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> } </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> await</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> startStandaloneServer</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(server)</span></span> <span> </span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">console.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">log</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">`🚀 Server ready at ${</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">url</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">}`</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">)</span></span></code></pre><div class="_opacity-0 _transition [div:hover>&]:_opacity-100 focus-within:_opacity-100 _flex _gap-1 _absolute _right-4 _top-2"><button class="_transition _rounded-md _p-1.5 _border _border-gray-300 dark:_border-neutral-700 contrast-more:_border-gray-900 contrast-more:dark:_border-gray-50 md:_hidden" title="Toggle word wrap"><svg viewBox="0 0 24 24" width="24" height="24" class="_h-4 _w-auto"><path fill="currentColor" d="M4 19h6v-2H4v2zM20 5H4v2h16V5zm-3 6H4v2h13.25c1.1 0 2 .9 2 2s-.9 2-2 2H15v-2l-3 3l3 3v-2h2c2.21 0 4-1.79 4-4s-1.79-4-4-4z"></path></svg></button></div></div> <p class="[&:not(:first-child)]:_mt-6 _leading-7">Apollo Server has a built in standalone HTTP server and middleware for Express, and has an framework integration API that supports all <a href="https://www.apollographql.com/docs/apollo-server/integrations/integration-index" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">Node.js HTTP server frameworks and serverless environments</a> via community integrations.</p> <p class="[&:not(:first-child)]:_mt-6 _leading-7">Apollo Server has a <a href="https://www.apollographql.com/docs/apollo-server/integrations/plugins" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">plugin API</a>, integration with Apollo Studio, and performance and security features such as <a href="https://www.apollographql.com/docs/apollo-server/performance/caching/" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">caching</a>, <a href="https://www.apollographql.com/docs/apollo-server/performance/apq/" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">automatic persisted queries</a>, and <a href="https://www.apollographql.com/docs/apollo-server/security/cors#preventing-cross-site-request-forgery-csrf" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">CSRF prevention</a>.</p></div></details></div><div class="border border-zinc-200 dark:border-[#414141] p-8 lg:p-12 bg-white dark:bg-neutral-800 rounded-none !p-0 h-max min-w-0"><div class="p-8 lg:p-12 flex flex-col gap-7 grow"><div class="flex items-center gap-6 [&_a:hover]:text-primary [&_a]:transition-colors"><span class="text-3xl font-extrabold grow break-all">Postgraphile</span><a href="https://www.graphile.org/postgraphile" target="_blank" rel="noreferrer"><svg xmlns="http://www.w3.org/2000/svg" fill="currentColor" viewBox="0 0 24 24"><path d="M23.332 15.948C23.764 14.711 24 13.383 24 12a12 12 0 0 0-.706-4.056C21.627 3.317 17.194 0 12 0S2.373 3.317.706 7.944A11.949 11.949 0 0 0 0 12a12 12 0 0 0 .706 4.056C2.373 20.683 6.806 24 12 24s9.627-3.317 11.294-7.944a1 1 0 0 0 .038-.108M12 22.28c-.457 0-1.194-.827-1.81-2.675a19 19 0 0 1-.708-3.031h5.036a19 19 0 0 1-.708 3.031c-.616 1.848-1.353 2.675-1.81 2.675m-2.727-7.427A32 32 0 0 1 9.147 12c0-.98.043-1.936.126-2.853h5.454c.083.917.126 1.874.126 2.853s-.043 1.936-.126 2.854zM1.72 12c0-.99.141-1.947.403-2.853h5.425a33.5 33.5 0 0 0 0 5.707H2.123A10.3 10.3 0 0 1 1.72 12M12 1.72c.457 0 1.194.827 1.81 2.675.297.892.535 1.917.708 3.032H9.482c.173-1.115.411-2.14.708-3.032.616-1.848 1.353-2.675 1.81-2.675m4.452 7.427h5.425c.262.906.403 1.864.403 2.853s-.141 1.947-.403 2.854h-5.425a33.5 33.5 0 0 0 0-5.707m4.752-1.72h-4.95c-.305-2.11-.83-4.003-1.566-5.35 2.855.775 5.22 2.75 6.516 5.35M9.313 2.077c-.736 1.347-1.261 3.24-1.567 5.35h-4.95a10.33 10.33 0 0 1 6.517-5.35M2.795 16.574h4.95c.306 2.11.83 4.002 1.567 5.349a10.33 10.33 0 0 1-6.517-5.35m11.893 5.349c.736-1.347 1.261-3.24 1.567-5.35h4.95a10.33 10.33 0 0 1-6.517 5.35"></path></svg></a><a href="https://github.com/graphile/postgraphile" target="_blank" rel="noreferrer"><svg xmlns="http://www.w3.org/2000/svg" width="30" fill="currentColor" viewBox="0 0 30 30"><path fill-rule="evenodd" d="M15.1.413a14.81 14.81 0 0 0-4.684 28.862c.742.138 1.012-.32 1.012-.712 0-.35-.013-1.283-.02-2.518-4.12.893-4.99-1.987-4.99-1.987-.675-1.71-1.643-2.165-1.643-2.165-1.345-.918.1-.9.1-.9 1.488.105 2.27 1.525 2.27 1.525 1.32 2.265 3.466 1.61 4.31 1.23.133-.955.515-1.608.94-1.978-3.29-.375-6.747-1.645-6.747-7.32 0-1.615.577-2.937 1.525-3.975-.15-.372-.66-1.88.145-3.917 0 0 1.242-.4 4.075 1.517a14.3 14.3 0 0 1 3.705-.5 14.2 14.2 0 0 1 3.707.5c2.826-1.915 4.068-1.517 4.068-1.517.807 2.037.3 3.545.15 3.92.95 1.035 1.52 2.357 1.52 3.975 0 5.687-3.462 6.94-6.76 7.305.53.457 1.005 1.36 1.005 2.742 0 1.98-.02 3.575-.02 4.063 0 .395.267.857 1.02.712A14.816 14.816 0 0 0 15.101.413" clip-rule="evenodd"></path></svg></a><a href="https://npmjs.com/package/postgraphile" target="_blank" rel="noreferrer"><svg xmlns="http://www.w3.org/2000/svg" width="30" height="30" fill="currentColor"><path fill-rule="evenodd" d="M0 0v30h30V0zm24.375 5.625H5.625v18.75H15v-15h5.625v15h3.75z" clip-rule="evenodd"></path></svg></a></div><div class="gap-2 flex roboto-mono"><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=javascript">JavaScript</a><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=tools">Tools</a></div><span class="[&_a]:text-primary grow line-clamp-4 lg:text-lg">builds a powerful, extensible and performant GraphQL API from a PostgreSQL schema in seconds; saving you weeks if not months of development time.</span><div class="flex items-center gap-5 max-md:text-xs [&>:not(:last-child)]:border-r [&>:not(:last-child)]:border-gray-500 [&>:not(:last-child)]:pr-5"><span>Last release <!-- -->1 year ago</span><span class="flex items-center gap-1"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="19" fill="currentColor" class="text-primary"><path d="m10 .5 2.997 5.874L19.51 7.41l-4.66 4.666 1.027 6.514L10 15.6l-5.878 2.99 1.028-6.514L.489 7.41l6.513-1.036z"></path></svg>13k</span><span>Other</span></div></div></div><div class="border border-zinc-200 dark:border-[#414141] p-8 lg:p-12 bg-white dark:bg-neutral-800 rounded-none !p-0 h-max min-w-0"><div class="p-8 lg:p-12 flex flex-col gap-7 grow"><div class="flex items-center gap-6 [&_a:hover]:text-primary [&_a]:transition-colors"><span class="text-3xl font-extrabold grow break-all">quicktype</span><a href="https://quicktype.io/" target="_blank" rel="noreferrer"><svg xmlns="http://www.w3.org/2000/svg" fill="currentColor" viewBox="0 0 24 24"><path d="M23.332 15.948C23.764 14.711 24 13.383 24 12a12 12 0 0 0-.706-4.056C21.627 3.317 17.194 0 12 0S2.373 3.317.706 7.944A11.949 11.949 0 0 0 0 12a12 12 0 0 0 .706 4.056C2.373 20.683 6.806 24 12 24s9.627-3.317 11.294-7.944a1 1 0 0 0 .038-.108M12 22.28c-.457 0-1.194-.827-1.81-2.675a19 19 0 0 1-.708-3.031h5.036a19 19 0 0 1-.708 3.031c-.616 1.848-1.353 2.675-1.81 2.675m-2.727-7.427A32 32 0 0 1 9.147 12c0-.98.043-1.936.126-2.853h5.454c.083.917.126 1.874.126 2.853s-.043 1.936-.126 2.854zM1.72 12c0-.99.141-1.947.403-2.853h5.425a33.5 33.5 0 0 0 0 5.707H2.123A10.3 10.3 0 0 1 1.72 12M12 1.72c.457 0 1.194.827 1.81 2.675.297.892.535 1.917.708 3.032H9.482c.173-1.115.411-2.14.708-3.032.616-1.848 1.353-2.675 1.81-2.675m4.452 7.427h5.425c.262.906.403 1.864.403 2.853s-.141 1.947-.403 2.854h-5.425a33.5 33.5 0 0 0 0-5.707m4.752-1.72h-4.95c-.305-2.11-.83-4.003-1.566-5.35 2.855.775 5.22 2.75 6.516 5.35M9.313 2.077c-.736 1.347-1.261 3.24-1.567 5.35h-4.95a10.33 10.33 0 0 1 6.517-5.35M2.795 16.574h4.95c.306 2.11.83 4.002 1.567 5.349a10.33 10.33 0 0 1-6.517-5.35m11.893 5.349c.736-1.347 1.261-3.24 1.567-5.35h4.95a10.33 10.33 0 0 1-6.517 5.35"></path></svg></a><a href="https://github.com/glideapps/quicktype" target="_blank" rel="noreferrer"><svg xmlns="http://www.w3.org/2000/svg" width="30" fill="currentColor" viewBox="0 0 30 30"><path fill-rule="evenodd" d="M15.1.413a14.81 14.81 0 0 0-4.684 28.862c.742.138 1.012-.32 1.012-.712 0-.35-.013-1.283-.02-2.518-4.12.893-4.99-1.987-4.99-1.987-.675-1.71-1.643-2.165-1.643-2.165-1.345-.918.1-.9.1-.9 1.488.105 2.27 1.525 2.27 1.525 1.32 2.265 3.466 1.61 4.31 1.23.133-.955.515-1.608.94-1.978-3.29-.375-6.747-1.645-6.747-7.32 0-1.615.577-2.937 1.525-3.975-.15-.372-.66-1.88.145-3.917 0 0 1.242-.4 4.075 1.517a14.3 14.3 0 0 1 3.705-.5 14.2 14.2 0 0 1 3.707.5c2.826-1.915 4.068-1.517 4.068-1.517.807 2.037.3 3.545.15 3.92.95 1.035 1.52 2.357 1.52 3.975 0 5.687-3.462 6.94-6.76 7.305.53.457 1.005 1.36 1.005 2.742 0 1.98-.02 3.575-.02 4.063 0 .395.267.857 1.02.712A14.816 14.816 0 0 0 15.101.413" clip-rule="evenodd"></path></svg></a><a href="https://npmjs.com/package/quicktype" target="_blank" rel="noreferrer"><svg xmlns="http://www.w3.org/2000/svg" width="30" height="30" fill="currentColor"><path fill-rule="evenodd" d="M0 0v30h30V0zm24.375 5.625H5.625v18.75H15v-15h5.625v15h3.75z" clip-rule="evenodd"></path></svg></a></div><div class="gap-2 flex roboto-mono"><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=tools">Tools</a><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=general">General</a></div><span class="[&_a]:text-primary grow line-clamp-4 lg:text-lg">Generate types for GraphQL queries in TypeScript, Swift, golang, C#, C++, and more.</span><div class="flex items-center gap-5 max-md:text-xs [&>:not(:last-child)]:border-r [&>:not(:last-child)]:border-gray-500 [&>:not(:last-child)]:pr-5"><span class="flex items-center gap-1"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="19" fill="currentColor" class="text-primary"><path d="m10 .5 2.997 5.874L19.51 7.41l-4.66 4.666 1.027 6.514L10 15.6l-5.878 2.99 1.028-6.514L.489 7.41l6.513-1.036z"></path></svg>12k</span><span>Apache License 2.0</span></div></div></div><div class="border border-zinc-200 dark:border-[#414141] p-8 lg:p-12 bg-white dark:bg-neutral-800 rounded-none !p-0 h-max min-w-0"><div class="p-8 lg:p-12 flex flex-col gap-7 grow"><div class="flex items-center gap-6 [&_a:hover]:text-primary [&_a]:transition-colors"><span class="text-3xl font-extrabold grow break-all">GraphQL Code Generator</span><a href="https://graphql-code-generator.com" target="_blank" rel="noreferrer"><svg xmlns="http://www.w3.org/2000/svg" fill="currentColor" viewBox="0 0 24 24"><path d="M23.332 15.948C23.764 14.711 24 13.383 24 12a12 12 0 0 0-.706-4.056C21.627 3.317 17.194 0 12 0S2.373 3.317.706 7.944A11.949 11.949 0 0 0 0 12a12 12 0 0 0 .706 4.056C2.373 20.683 6.806 24 12 24s9.627-3.317 11.294-7.944a1 1 0 0 0 .038-.108M12 22.28c-.457 0-1.194-.827-1.81-2.675a19 19 0 0 1-.708-3.031h5.036a19 19 0 0 1-.708 3.031c-.616 1.848-1.353 2.675-1.81 2.675m-2.727-7.427A32 32 0 0 1 9.147 12c0-.98.043-1.936.126-2.853h5.454c.083.917.126 1.874.126 2.853s-.043 1.936-.126 2.854zM1.72 12c0-.99.141-1.947.403-2.853h5.425a33.5 33.5 0 0 0 0 5.707H2.123A10.3 10.3 0 0 1 1.72 12M12 1.72c.457 0 1.194.827 1.81 2.675.297.892.535 1.917.708 3.032H9.482c.173-1.115.411-2.14.708-3.032.616-1.848 1.353-2.675 1.81-2.675m4.452 7.427h5.425c.262.906.403 1.864.403 2.853s-.141 1.947-.403 2.854h-5.425a33.5 33.5 0 0 0 0-5.707m4.752-1.72h-4.95c-.305-2.11-.83-4.003-1.566-5.35 2.855.775 5.22 2.75 6.516 5.35M9.313 2.077c-.736 1.347-1.261 3.24-1.567 5.35h-4.95a10.33 10.33 0 0 1 6.517-5.35M2.795 16.574h4.95c.306 2.11.83 4.002 1.567 5.349a10.33 10.33 0 0 1-6.517-5.35m11.893 5.349c.736-1.347 1.261-3.24 1.567-5.35h4.95a10.33 10.33 0 0 1-6.517 5.35"></path></svg></a><a href="https://github.com/dotansimha/graphql-code-generator" target="_blank" rel="noreferrer"><svg xmlns="http://www.w3.org/2000/svg" width="30" fill="currentColor" viewBox="0 0 30 30"><path fill-rule="evenodd" d="M15.1.413a14.81 14.81 0 0 0-4.684 28.862c.742.138 1.012-.32 1.012-.712 0-.35-.013-1.283-.02-2.518-4.12.893-4.99-1.987-4.99-1.987-.675-1.71-1.643-2.165-1.643-2.165-1.345-.918.1-.9.1-.9 1.488.105 2.27 1.525 2.27 1.525 1.32 2.265 3.466 1.61 4.31 1.23.133-.955.515-1.608.94-1.978-3.29-.375-6.747-1.645-6.747-7.32 0-1.615.577-2.937 1.525-3.975-.15-.372-.66-1.88.145-3.917 0 0 1.242-.4 4.075 1.517a14.3 14.3 0 0 1 3.705-.5 14.2 14.2 0 0 1 3.707.5c2.826-1.915 4.068-1.517 4.068-1.517.807 2.037.3 3.545.15 3.92.95 1.035 1.52 2.357 1.52 3.975 0 5.687-3.462 6.94-6.76 7.305.53.457 1.005 1.36 1.005 2.742 0 1.98-.02 3.575-.02 4.063 0 .395.267.857 1.02.712A14.816 14.816 0 0 0 15.101.413" clip-rule="evenodd"></path></svg></a><a href="https://npmjs.com/package/@graphql-codegen/cli" target="_blank" rel="noreferrer"><svg xmlns="http://www.w3.org/2000/svg" width="30" height="30" fill="currentColor"><path fill-rule="evenodd" d="M0 0v30h30V0zm24.375 5.625H5.625v18.75H15v-15h5.625v15h3.75z" clip-rule="evenodd"></path></svg></a></div><div class="gap-2 flex roboto-mono"><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=javascript">JavaScript</a><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=tools">Tools</a></div><span class="[&_a]:text-primary grow line-clamp-4 lg:text-lg">GraphQL code generator with flexible support for custom plugins and templates like Typescript (frontend and backend), React Hooks, resolvers signatures and more.</span><div class="flex items-center gap-5 max-md:text-xs [&>:not(:last-child)]:border-r [&>:not(:last-child)]:border-gray-500 [&>:not(:last-child)]:pr-5"><span>Last release <!-- -->3 days ago</span><span class="flex items-center gap-1"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="19" fill="currentColor" class="text-primary"><path d="m10 .5 2.997 5.874L19.51 7.41l-4.66 4.666 1.027 6.514L10 15.6l-5.878 2.99 1.028-6.514L.489 7.41l6.513-1.036z"></path></svg>11k</span><span>MIT License</span></div></div></div><div class="border border-zinc-200 dark:border-[#414141] p-8 lg:p-12 bg-white dark:bg-neutral-800 rounded-none !p-0 h-max min-w-0"><div class="p-8 lg:p-12 flex flex-col gap-7 grow"><div class="flex items-center gap-6 [&_a:hover]:text-primary [&_a]:transition-colors"><span class="text-3xl font-extrabold grow break-all">GraphQL Code Generator</span><a href="https://graphql-code-generator.com" target="_blank" rel="noreferrer"><svg xmlns="http://www.w3.org/2000/svg" fill="currentColor" viewBox="0 0 24 24"><path d="M23.332 15.948C23.764 14.711 24 13.383 24 12a12 12 0 0 0-.706-4.056C21.627 3.317 17.194 0 12 0S2.373 3.317.706 7.944A11.949 11.949 0 0 0 0 12a12 12 0 0 0 .706 4.056C2.373 20.683 6.806 24 12 24s9.627-3.317 11.294-7.944a1 1 0 0 0 .038-.108M12 22.28c-.457 0-1.194-.827-1.81-2.675a19 19 0 0 1-.708-3.031h5.036a19 19 0 0 1-.708 3.031c-.616 1.848-1.353 2.675-1.81 2.675m-2.727-7.427A32 32 0 0 1 9.147 12c0-.98.043-1.936.126-2.853h5.454c.083.917.126 1.874.126 2.853s-.043 1.936-.126 2.854zM1.72 12c0-.99.141-1.947.403-2.853h5.425a33.5 33.5 0 0 0 0 5.707H2.123A10.3 10.3 0 0 1 1.72 12M12 1.72c.457 0 1.194.827 1.81 2.675.297.892.535 1.917.708 3.032H9.482c.173-1.115.411-2.14.708-3.032.616-1.848 1.353-2.675 1.81-2.675m4.452 7.427h5.425c.262.906.403 1.864.403 2.853s-.141 1.947-.403 2.854h-5.425a33.5 33.5 0 0 0 0-5.707m4.752-1.72h-4.95c-.305-2.11-.83-4.003-1.566-5.35 2.855.775 5.22 2.75 6.516 5.35M9.313 2.077c-.736 1.347-1.261 3.24-1.567 5.35h-4.95a10.33 10.33 0 0 1 6.517-5.35M2.795 16.574h4.95c.306 2.11.83 4.002 1.567 5.349a10.33 10.33 0 0 1-6.517-5.35m11.893 5.349c.736-1.347 1.261-3.24 1.567-5.35h4.95a10.33 10.33 0 0 1-6.517 5.35"></path></svg></a><a href="https://github.com/dotansimha/graphql-code-generator" target="_blank" rel="noreferrer"><svg xmlns="http://www.w3.org/2000/svg" width="30" fill="currentColor" viewBox="0 0 30 30"><path fill-rule="evenodd" d="M15.1.413a14.81 14.81 0 0 0-4.684 28.862c.742.138 1.012-.32 1.012-.712 0-.35-.013-1.283-.02-2.518-4.12.893-4.99-1.987-4.99-1.987-.675-1.71-1.643-2.165-1.643-2.165-1.345-.918.1-.9.1-.9 1.488.105 2.27 1.525 2.27 1.525 1.32 2.265 3.466 1.61 4.31 1.23.133-.955.515-1.608.94-1.978-3.29-.375-6.747-1.645-6.747-7.32 0-1.615.577-2.937 1.525-3.975-.15-.372-.66-1.88.145-3.917 0 0 1.242-.4 4.075 1.517a14.3 14.3 0 0 1 3.705-.5 14.2 14.2 0 0 1 3.707.5c2.826-1.915 4.068-1.517 4.068-1.517.807 2.037.3 3.545.15 3.92.95 1.035 1.52 2.357 1.52 3.975 0 5.687-3.462 6.94-6.76 7.305.53.457 1.005 1.36 1.005 2.742 0 1.98-.02 3.575-.02 4.063 0 .395.267.857 1.02.712A14.816 14.816 0 0 0 15.101.413" clip-rule="evenodd"></path></svg></a><a href="https://npmjs.com/package/@graphql-codegen/cli" target="_blank" rel="noreferrer"><svg xmlns="http://www.w3.org/2000/svg" width="30" height="30" fill="currentColor"><path fill-rule="evenodd" d="M0 0v30h30V0zm24.375 5.625H5.625v18.75H15v-15h5.625v15h3.75z" clip-rule="evenodd"></path></svg></a></div><div class="gap-2 flex roboto-mono"><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=tools">Tools</a><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=general">General</a></div><span class="[&_a]:text-primary grow line-clamp-4 lg:text-lg">GraphQL code generator with flexible support for custom plugins and templates like Typescript (frontend and backend), React Hooks, resolvers signatures and more.</span><div class="flex items-center gap-5 max-md:text-xs [&>:not(:last-child)]:border-r [&>:not(:last-child)]:border-gray-500 [&>:not(:last-child)]:pr-5"><span>Last release <!-- -->3 days ago</span><span class="flex items-center gap-1"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="19" fill="currentColor" class="text-primary"><path d="m10 .5 2.997 5.874L19.51 7.41l-4.66 4.666 1.027 6.514L10 15.6l-5.878 2.99 1.028-6.514L.489 7.41l6.513-1.036z"></path></svg>11k</span><span>MIT License</span></div></div></div><div class="border border-zinc-200 dark:border-[#414141] p-8 lg:p-12 bg-white dark:bg-neutral-800 rounded-none !p-0 h-max min-w-0"><div class="p-8 lg:p-12 flex flex-col gap-7 grow"><div class="flex items-center gap-6 [&_a:hover]:text-primary [&_a]:transition-colors"><span class="text-3xl font-extrabold grow break-all">99designs/gqlgen</span><a href="https://github.com/99designs/gqlgen" target="_blank" rel="noreferrer"><svg xmlns="http://www.w3.org/2000/svg" width="30" fill="currentColor" viewBox="0 0 30 30"><path fill-rule="evenodd" d="M15.1.413a14.81 14.81 0 0 0-4.684 28.862c.742.138 1.012-.32 1.012-.712 0-.35-.013-1.283-.02-2.518-4.12.893-4.99-1.987-4.99-1.987-.675-1.71-1.643-2.165-1.643-2.165-1.345-.918.1-.9.1-.9 1.488.105 2.27 1.525 2.27 1.525 1.32 2.265 3.466 1.61 4.31 1.23.133-.955.515-1.608.94-1.978-3.29-.375-6.747-1.645-6.747-7.32 0-1.615.577-2.937 1.525-3.975-.15-.372-.66-1.88.145-3.917 0 0 1.242-.4 4.075 1.517a14.3 14.3 0 0 1 3.705-.5 14.2 14.2 0 0 1 3.707.5c2.826-1.915 4.068-1.517 4.068-1.517.807 2.037.3 3.545.15 3.92.95 1.035 1.52 2.357 1.52 3.975 0 5.687-3.462 6.94-6.76 7.305.53.457 1.005 1.36 1.005 2.742 0 1.98-.02 3.575-.02 4.063 0 .395.267.857 1.02.712A14.816 14.816 0 0 0 15.101.413" clip-rule="evenodd"></path></svg></a></div><div class="gap-2 flex roboto-mono"><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=go">Go</a><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=server">Server</a></div><span class="[&_a]:text-primary grow line-clamp-4 lg:text-lg">Go generate based graphql server library.</span><div class="flex items-center gap-5 max-md:text-xs [&>:not(:last-child)]:border-r [&>:not(:last-child)]:border-gray-500 [&>:not(:last-child)]:pr-5"><span>Last release <!-- -->2 days ago</span><span class="flex items-center gap-1"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="19" fill="currentColor" class="text-primary"><path d="m10 .5 2.997 5.874L19.51 7.41l-4.66 4.666 1.027 6.514L10 15.6l-5.878 2.99 1.028-6.514L.489 7.41l6.513-1.036z"></path></svg>10k</span><span>MIT License</span></div></div></div><div class="border border-zinc-200 dark:border-[#414141] p-8 lg:p-12 bg-white dark:bg-neutral-800 rounded-none !p-0 h-max min-w-0"><div class="p-8 lg:p-12 flex flex-col gap-7 grow"><div class="flex items-center gap-6 [&_a:hover]:text-primary [&_a]:transition-colors"><span class="text-3xl font-extrabold grow break-all">graphql-go</span><a href="https://github.com/graphql-go/graphql" target="_blank" rel="noreferrer"><svg xmlns="http://www.w3.org/2000/svg" width="30" fill="currentColor" viewBox="0 0 30 30"><path fill-rule="evenodd" d="M15.1.413a14.81 14.81 0 0 0-4.684 28.862c.742.138 1.012-.32 1.012-.712 0-.35-.013-1.283-.02-2.518-4.12.893-4.99-1.987-4.99-1.987-.675-1.71-1.643-2.165-1.643-2.165-1.345-.918.1-.9.1-.9 1.488.105 2.27 1.525 2.27 1.525 1.32 2.265 3.466 1.61 4.31 1.23.133-.955.515-1.608.94-1.978-3.29-.375-6.747-1.645-6.747-7.32 0-1.615.577-2.937 1.525-3.975-.15-.372-.66-1.88.145-3.917 0 0 1.242-.4 4.075 1.517a14.3 14.3 0 0 1 3.705-.5 14.2 14.2 0 0 1 3.707.5c2.826-1.915 4.068-1.517 4.068-1.517.807 2.037.3 3.545.15 3.92.95 1.035 1.52 2.357 1.52 3.975 0 5.687-3.462 6.94-6.76 7.305.53.457 1.005 1.36 1.005 2.742 0 1.98-.02 3.575-.02 4.063 0 .395.267.857 1.02.712A14.816 14.816 0 0 0 15.101.413" clip-rule="evenodd"></path></svg></a></div><div class="gap-2 flex roboto-mono"><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=go">Go</a><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=server">Server</a></div><span class="[&_a]:text-primary grow line-clamp-4 lg:text-lg">An implementation of GraphQL for Go / Golang.</span><div class="flex items-center gap-5 max-md:text-xs [&>:not(:last-child)]:border-r [&>:not(:last-child)]:border-gray-500 [&>:not(:last-child)]:pr-5"><span>Last release <!-- -->1 year ago</span><span class="flex items-center gap-1"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="19" fill="currentColor" class="text-primary"><path d="m10 .5 2.997 5.874L19.51 7.41l-4.66 4.666 1.027 6.514L10 15.6l-5.878 2.99 1.028-6.514L.489 7.41l6.513-1.036z"></path></svg>10k</span><span>MIT License</span></div></div></div><div class="border border-zinc-200 dark:border-[#414141] p-8 lg:p-12 bg-white dark:bg-neutral-800 rounded-none !p-0 h-max min-w-0"><div class="p-8 lg:p-12 flex flex-col gap-7 grow"><div class="flex items-center gap-6 [&_a:hover]:text-primary [&_a]:transition-colors"><span class="text-3xl font-extrabold grow break-all">Tyk</span><a href="https://tyk.io/" target="_blank" rel="noreferrer"><svg xmlns="http://www.w3.org/2000/svg" fill="currentColor" viewBox="0 0 24 24"><path d="M23.332 15.948C23.764 14.711 24 13.383 24 12a12 12 0 0 0-.706-4.056C21.627 3.317 17.194 0 12 0S2.373 3.317.706 7.944A11.949 11.949 0 0 0 0 12a12 12 0 0 0 .706 4.056C2.373 20.683 6.806 24 12 24s9.627-3.317 11.294-7.944a1 1 0 0 0 .038-.108M12 22.28c-.457 0-1.194-.827-1.81-2.675a19 19 0 0 1-.708-3.031h5.036a19 19 0 0 1-.708 3.031c-.616 1.848-1.353 2.675-1.81 2.675m-2.727-7.427A32 32 0 0 1 9.147 12c0-.98.043-1.936.126-2.853h5.454c.083.917.126 1.874.126 2.853s-.043 1.936-.126 2.854zM1.72 12c0-.99.141-1.947.403-2.853h5.425a33.5 33.5 0 0 0 0 5.707H2.123A10.3 10.3 0 0 1 1.72 12M12 1.72c.457 0 1.194.827 1.81 2.675.297.892.535 1.917.708 3.032H9.482c.173-1.115.411-2.14.708-3.032.616-1.848 1.353-2.675 1.81-2.675m4.452 7.427h5.425c.262.906.403 1.864.403 2.853s-.141 1.947-.403 2.854h-5.425a33.5 33.5 0 0 0 0-5.707m4.752-1.72h-4.95c-.305-2.11-.83-4.003-1.566-5.35 2.855.775 5.22 2.75 6.516 5.35M9.313 2.077c-.736 1.347-1.261 3.24-1.567 5.35h-4.95a10.33 10.33 0 0 1 6.517-5.35M2.795 16.574h4.95c.306 2.11.83 4.002 1.567 5.349a10.33 10.33 0 0 1-6.517-5.35m11.893 5.349c.736-1.347 1.261-3.24 1.567-5.35h4.95a10.33 10.33 0 0 1-6.517 5.35"></path></svg></a><a href="https://github.com/TykTechnologies/tyk" target="_blank" rel="noreferrer"><svg xmlns="http://www.w3.org/2000/svg" width="30" fill="currentColor" viewBox="0 0 30 30"><path fill-rule="evenodd" d="M15.1.413a14.81 14.81 0 0 0-4.684 28.862c.742.138 1.012-.32 1.012-.712 0-.35-.013-1.283-.02-2.518-4.12.893-4.99-1.987-4.99-1.987-.675-1.71-1.643-2.165-1.643-2.165-1.345-.918.1-.9.1-.9 1.488.105 2.27 1.525 2.27 1.525 1.32 2.265 3.466 1.61 4.31 1.23.133-.955.515-1.608.94-1.978-3.29-.375-6.747-1.645-6.747-7.32 0-1.615.577-2.937 1.525-3.975-.15-.372-.66-1.88.145-3.917 0 0 1.242-.4 4.075 1.517a14.3 14.3 0 0 1 3.705-.5 14.2 14.2 0 0 1 3.707.5c2.826-1.915 4.068-1.517 4.068-1.517.807 2.037.3 3.545.15 3.92.95 1.035 1.52 2.357 1.52 3.975 0 5.687-3.462 6.94-6.76 7.305.53.457 1.005 1.36 1.005 2.742 0 1.98-.02 3.575-.02 4.063 0 .395.267.857 1.02.712A14.816 14.816 0 0 0 15.101.413" clip-rule="evenodd"></path></svg></a></div><div class="gap-2 flex roboto-mono"><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=services">Services</a></div><span class="[&_a]:text-primary grow line-clamp-4 lg:text-lg">Tyk is a lightweight Open Source API Management Gateway that has built a Full API Life-Cycle Management around GraphQL with its own GraphQL engine that is written in Golang. Tyk supports schema stitching of multiple GraphQL and/or REST APIs through <a href="https://tyk.io/docs/universal-data-graph/">Universal Data Graph (UDG)</a> as well as <a href="https://tyk.io/docs/getting-started/key-concepts/graphql-federation/">GraphQL Federation</a> and <a href="https://tyk.io/docs/getting-started/key-concepts/graphql-subscriptions/">GraphQL Subscription</a>.</span><div class="flex items-center gap-5 max-md:text-xs [&>:not(:last-child)]:border-r [&>:not(:last-child)]:border-gray-500 [&>:not(:last-child)]:pr-5"><span>Last release <!-- -->5 days ago</span><span class="flex items-center gap-1"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="19" fill="currentColor" class="text-primary"><path d="m10 .5 2.997 5.874L19.51 7.41l-4.66 4.666 1.027 6.514L10 15.6l-5.878 2.99 1.028-6.514L.489 7.41l6.513-1.036z"></path></svg>10k</span><span>Other</span></div></div></div><div class="border border-zinc-200 dark:border-[#414141] p-8 lg:p-12 bg-white dark:bg-neutral-800 rounded-none !p-0 h-max min-w-0"><div class="p-8 lg:p-12 flex flex-col gap-7 grow"><div class="flex items-center gap-6 [&_a:hover]:text-primary [&_a]:transition-colors"><span class="text-3xl font-extrabold grow break-all">AWS Amplify</span><a href="https://docs.amplify.aws/" target="_blank" rel="noreferrer"><svg xmlns="http://www.w3.org/2000/svg" fill="currentColor" viewBox="0 0 24 24"><path d="M23.332 15.948C23.764 14.711 24 13.383 24 12a12 12 0 0 0-.706-4.056C21.627 3.317 17.194 0 12 0S2.373 3.317.706 7.944A11.949 11.949 0 0 0 0 12a12 12 0 0 0 .706 4.056C2.373 20.683 6.806 24 12 24s9.627-3.317 11.294-7.944a1 1 0 0 0 .038-.108M12 22.28c-.457 0-1.194-.827-1.81-2.675a19 19 0 0 1-.708-3.031h5.036a19 19 0 0 1-.708 3.031c-.616 1.848-1.353 2.675-1.81 2.675m-2.727-7.427A32 32 0 0 1 9.147 12c0-.98.043-1.936.126-2.853h5.454c.083.917.126 1.874.126 2.853s-.043 1.936-.126 2.854zM1.72 12c0-.99.141-1.947.403-2.853h5.425a33.5 33.5 0 0 0 0 5.707H2.123A10.3 10.3 0 0 1 1.72 12M12 1.72c.457 0 1.194.827 1.81 2.675.297.892.535 1.917.708 3.032H9.482c.173-1.115.411-2.14.708-3.032.616-1.848 1.353-2.675 1.81-2.675m4.452 7.427h5.425c.262.906.403 1.864.403 2.853s-.141 1.947-.403 2.854h-5.425a33.5 33.5 0 0 0 0-5.707m4.752-1.72h-4.95c-.305-2.11-.83-4.003-1.566-5.35 2.855.775 5.22 2.75 6.516 5.35M9.313 2.077c-.736 1.347-1.261 3.24-1.567 5.35h-4.95a10.33 10.33 0 0 1 6.517-5.35M2.795 16.574h4.95c.306 2.11.83 4.002 1.567 5.349a10.33 10.33 0 0 1-6.517-5.35m11.893 5.349c.736-1.347 1.261-3.24 1.567-5.35h4.95a10.33 10.33 0 0 1-6.517 5.35"></path></svg></a><a href="https://github.com/aws-amplify/amplify-js" target="_blank" rel="noreferrer"><svg xmlns="http://www.w3.org/2000/svg" width="30" fill="currentColor" viewBox="0 0 30 30"><path fill-rule="evenodd" d="M15.1.413a14.81 14.81 0 0 0-4.684 28.862c.742.138 1.012-.32 1.012-.712 0-.35-.013-1.283-.02-2.518-4.12.893-4.99-1.987-4.99-1.987-.675-1.71-1.643-2.165-1.643-2.165-1.345-.918.1-.9.1-.9 1.488.105 2.27 1.525 2.27 1.525 1.32 2.265 3.466 1.61 4.31 1.23.133-.955.515-1.608.94-1.978-3.29-.375-6.747-1.645-6.747-7.32 0-1.615.577-2.937 1.525-3.975-.15-.372-.66-1.88.145-3.917 0 0 1.242-.4 4.075 1.517a14.3 14.3 0 0 1 3.705-.5 14.2 14.2 0 0 1 3.707.5c2.826-1.915 4.068-1.517 4.068-1.517.807 2.037.3 3.545.15 3.92.95 1.035 1.52 2.357 1.52 3.975 0 5.687-3.462 6.94-6.76 7.305.53.457 1.005 1.36 1.005 2.742 0 1.98-.02 3.575-.02 4.063 0 .395.267.857 1.02.712A14.816 14.816 0 0 0 15.101.413" clip-rule="evenodd"></path></svg></a><a href="https://npmjs.com/package/aws-amplify" target="_blank" rel="noreferrer"><svg xmlns="http://www.w3.org/2000/svg" width="30" height="30" fill="currentColor"><path fill-rule="evenodd" d="M0 0v30h30V0zm24.375 5.625H5.625v18.75H15v-15h5.625v15h3.75z" clip-rule="evenodd"></path></svg></a></div><div class="gap-2 flex roboto-mono"><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=javascript">JavaScript</a><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=client">Client</a></div><span class="[&_a]:text-primary grow line-clamp-4 lg:text-lg">A JavaScript library for application development using cloud services, which supports GraphQL backend and React components for working with GraphQL data.</span><div class="flex items-center gap-5 max-md:text-xs [&>:not(:last-child)]:border-r [&>:not(:last-child)]:border-gray-500 [&>:not(:last-child)]:pr-5"><span>Last release <!-- -->20 hours ago</span><span class="flex items-center gap-1"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="19" fill="currentColor" class="text-primary"><path d="m10 .5 2.997 5.874L19.51 7.41l-4.66 4.666 1.027 6.514L10 15.6l-5.878 2.99 1.028-6.514L.489 7.41l6.513-1.036z"></path></svg>9k</span><span>Apache License 2.0</span></div></div></div><div class="border border-zinc-200 dark:border-[#414141] p-8 lg:p-12 bg-white dark:bg-neutral-800 rounded-none !p-0 h-max min-w-0"><div class="p-8 lg:p-12 flex flex-col gap-7 grow"><div class="flex items-center gap-6 [&_a:hover]:text-primary [&_a]:transition-colors"><span class="text-3xl font-extrabold grow break-all">API Platform</span><a href="https://api-platform.com" target="_blank" rel="noreferrer"><svg xmlns="http://www.w3.org/2000/svg" fill="currentColor" viewBox="0 0 24 24"><path d="M23.332 15.948C23.764 14.711 24 13.383 24 12a12 12 0 0 0-.706-4.056C21.627 3.317 17.194 0 12 0S2.373 3.317.706 7.944A11.949 11.949 0 0 0 0 12a12 12 0 0 0 .706 4.056C2.373 20.683 6.806 24 12 24s9.627-3.317 11.294-7.944a1 1 0 0 0 .038-.108M12 22.28c-.457 0-1.194-.827-1.81-2.675a19 19 0 0 1-.708-3.031h5.036a19 19 0 0 1-.708 3.031c-.616 1.848-1.353 2.675-1.81 2.675m-2.727-7.427A32 32 0 0 1 9.147 12c0-.98.043-1.936.126-2.853h5.454c.083.917.126 1.874.126 2.853s-.043 1.936-.126 2.854zM1.72 12c0-.99.141-1.947.403-2.853h5.425a33.5 33.5 0 0 0 0 5.707H2.123A10.3 10.3 0 0 1 1.72 12M12 1.72c.457 0 1.194.827 1.81 2.675.297.892.535 1.917.708 3.032H9.482c.173-1.115.411-2.14.708-3.032.616-1.848 1.353-2.675 1.81-2.675m4.452 7.427h5.425c.262.906.403 1.864.403 2.853s-.141 1.947-.403 2.854h-5.425a33.5 33.5 0 0 0 0-5.707m4.752-1.72h-4.95c-.305-2.11-.83-4.003-1.566-5.35 2.855.775 5.22 2.75 6.516 5.35M9.313 2.077c-.736 1.347-1.261 3.24-1.567 5.35h-4.95a10.33 10.33 0 0 1 6.517-5.35M2.795 16.574h4.95c.306 2.11.83 4.002 1.567 5.349a10.33 10.33 0 0 1-6.517-5.35m11.893 5.349c.736-1.347 1.261-3.24 1.567-5.35h4.95a10.33 10.33 0 0 1-6.517 5.35"></path></svg></a><a href="https://github.com/api-platform/api-platform" target="_blank" rel="noreferrer"><svg xmlns="http://www.w3.org/2000/svg" width="30" fill="currentColor" viewBox="0 0 30 30"><path fill-rule="evenodd" d="M15.1.413a14.81 14.81 0 0 0-4.684 28.862c.742.138 1.012-.32 1.012-.712 0-.35-.013-1.283-.02-2.518-4.12.893-4.99-1.987-4.99-1.987-.675-1.71-1.643-2.165-1.643-2.165-1.345-.918.1-.9.1-.9 1.488.105 2.27 1.525 2.27 1.525 1.32 2.265 3.466 1.61 4.31 1.23.133-.955.515-1.608.94-1.978-3.29-.375-6.747-1.645-6.747-7.32 0-1.615.577-2.937 1.525-3.975-.15-.372-.66-1.88.145-3.917 0 0 1.242-.4 4.075 1.517a14.3 14.3 0 0 1 3.705-.5 14.2 14.2 0 0 1 3.707.5c2.826-1.915 4.068-1.517 4.068-1.517.807 2.037.3 3.545.15 3.92.95 1.035 1.52 2.357 1.52 3.975 0 5.687-3.462 6.94-6.76 7.305.53.457 1.005 1.36 1.005 2.742 0 1.98-.02 3.575-.02 4.063 0 .395.267.857 1.02.712A14.816 14.816 0 0 0 15.101.413" clip-rule="evenodd"></path></svg></a></div><div class="gap-2 flex roboto-mono"><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=php">PHP</a><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=server">Server</a></div><span class="[&_a]:text-primary grow line-clamp-4 lg:text-lg">API Platform is a fully-featured, flexible and extensible API framework built on top of Symfony.</span><div class="flex items-center gap-5 max-md:text-xs [&>:not(:last-child)]:border-r [&>:not(:last-child)]:border-gray-500 [&>:not(:last-child)]:pr-5"><span>Last release <!-- -->1 day ago</span><span class="flex items-center gap-1"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="19" fill="currentColor" class="text-primary"><path d="m10 .5 2.997 5.874L19.51 7.41l-4.66 4.666 1.027 6.514L10 15.6l-5.878 2.99 1.028-6.514L.489 7.41l6.513-1.036z"></path></svg>9k</span><span>MIT License</span></div></div><details class="bg-[#f0f0f0] dark:bg-[#2f2f2f]"><summary class="flex justify-between font-bold text-primary px-8 lg:px-12 py-5 dark:[[open]>&]:shadow-[-5px_10px_30px_20px_#1b1b1b4d] [[open]>&]:shadow-[0_6px_21px_0_#1b1b1b33] cursor-pointer">README<svg xmlns="http://www.w3.org/2000/svg" fill="currentColor" viewBox="0 0 15 15" class="size-5 -rotate-90 [[open]>*>&]:rotate-90 transition-transform"><path fill-rule="evenodd" d="M8.842 3.135a.5.5 0 0 1 .023.707L5.435 7.5l3.43 3.658a.5.5 0 0 1-.73.684l-3.75-4a.5.5 0 0 1 0-.684l3.75-4a.5.5 0 0 1 .707-.023" clip-rule="evenodd"></path></svg></summary><div class="px-8 lg:px-12 py-5"><p class="[&:not(:first-child)]:_mt-6 _leading-7">The following class is enough to create both a Relay-compatible GraphQL server and a hypermedia API supporting modern REST formats (JSON-LD, JSONAPI…):</p> <div class="nextra-code _relative [&:not(:first-child)]:_mt-6"><pre class="_overflow-x-auto _subpixel-antialiased _text-[.9em] _bg-white dark:_bg-black _py-4 _ring-1 _ring-inset _ring-gray-300 dark:_ring-neutral-700 contrast-more:_ring-gray-900 contrast-more:dark:_ring-gray-50 contrast-more:_contrast-150 _rounded-md" tabindex="0"><code class="nextra-code" dir="ltr"><span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"><?</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">php</span></span> <span> </span> <span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">namespace</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> AppEntity</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">;</span></span> <span> </span> <span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">use</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> ApiPlatformCoreAnnotationApiResource</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">;</span></span> <span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">use</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> DoctrineORMMapping</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> as</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> ORM</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">;</span></span> <span> </span> <span><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D">/**</span></span> <span><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D"> * Greet someone!</span></span> <span><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D"> *</span></span> <span><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D"> * @ApiResource</span></span> <span><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D"> * @ORMEntity</span></span> <span><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D"> */</span></span> <span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">class</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> Greeting</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">{</span></span> <span><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D"> /**</span></span> <span><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D"> * @ORMId</span></span> <span><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D"> * @ORMColumn(type="guid")</span></span> <span><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D"> */</span></span> <span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> public</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> $id;</span></span> <span> </span> <span><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D"> /**</span></span> <span><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D"> * </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">@var</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> string</span><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D"> Your nice message</span></span> <span><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D"> *</span></span> <span><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D"> * @ORMColumn</span></span> <span><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D"> */</span></span> <span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> public</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> $hello;</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">}</span></span></code></pre><div class="_opacity-0 _transition [div:hover>&]:_opacity-100 focus-within:_opacity-100 _flex _gap-1 _absolute _right-4 _top-2"><button class="_transition _rounded-md _p-1.5 _border _border-gray-300 dark:_border-neutral-700 contrast-more:_border-gray-900 contrast-more:dark:_border-gray-50 md:_hidden" title="Toggle word wrap"><svg viewBox="0 0 24 24" width="24" height="24" class="_h-4 _w-auto"><path fill="currentColor" d="M4 19h6v-2H4v2zM20 5H4v2h16V5zm-3 6H4v2h13.25c1.1 0 2 .9 2 2s-.9 2-2 2H15v-2l-3 3l3 3v-2h2c2.21 0 4-1.79 4-4s-1.79-4-4-4z"></path></svg></button></div></div> <p class="[&:not(:first-child)]:_mt-6 _leading-7">Other API Platform features include data validation, authentication, authorization, deprecations, cache and GraphiQL integration.</p></div></details></div><div class="border border-zinc-200 dark:border-[#414141] p-8 lg:p-12 bg-white dark:bg-neutral-800 rounded-none !p-0 h-max min-w-0"><div class="p-8 lg:p-12 flex flex-col gap-7 grow"><div class="flex items-center gap-6 [&_a:hover]:text-primary [&_a]:transition-colors"><span class="text-3xl font-extrabold grow break-all">urql</span><a href="https://formidable.com/open-source/urql/docs/" target="_blank" rel="noreferrer"><svg xmlns="http://www.w3.org/2000/svg" fill="currentColor" viewBox="0 0 24 24"><path d="M23.332 15.948C23.764 14.711 24 13.383 24 12a12 12 0 0 0-.706-4.056C21.627 3.317 17.194 0 12 0S2.373 3.317.706 7.944A11.949 11.949 0 0 0 0 12a12 12 0 0 0 .706 4.056C2.373 20.683 6.806 24 12 24s9.627-3.317 11.294-7.944a1 1 0 0 0 .038-.108M12 22.28c-.457 0-1.194-.827-1.81-2.675a19 19 0 0 1-.708-3.031h5.036a19 19 0 0 1-.708 3.031c-.616 1.848-1.353 2.675-1.81 2.675m-2.727-7.427A32 32 0 0 1 9.147 12c0-.98.043-1.936.126-2.853h5.454c.083.917.126 1.874.126 2.853s-.043 1.936-.126 2.854zM1.72 12c0-.99.141-1.947.403-2.853h5.425a33.5 33.5 0 0 0 0 5.707H2.123A10.3 10.3 0 0 1 1.72 12M12 1.72c.457 0 1.194.827 1.81 2.675.297.892.535 1.917.708 3.032H9.482c.173-1.115.411-2.14.708-3.032.616-1.848 1.353-2.675 1.81-2.675m4.452 7.427h5.425c.262.906.403 1.864.403 2.853s-.141 1.947-.403 2.854h-5.425a33.5 33.5 0 0 0 0-5.707m4.752-1.72h-4.95c-.305-2.11-.83-4.003-1.566-5.35 2.855.775 5.22 2.75 6.516 5.35M9.313 2.077c-.736 1.347-1.261 3.24-1.567 5.35h-4.95a10.33 10.33 0 0 1 6.517-5.35M2.795 16.574h4.95c.306 2.11.83 4.002 1.567 5.349a10.33 10.33 0 0 1-6.517-5.35m11.893 5.349c.736-1.347 1.261-3.24 1.567-5.35h4.95a10.33 10.33 0 0 1-6.517 5.35"></path></svg></a><a href="https://github.com/FormidableLabs/urql" target="_blank" rel="noreferrer"><svg xmlns="http://www.w3.org/2000/svg" width="30" fill="currentColor" viewBox="0 0 30 30"><path fill-rule="evenodd" d="M15.1.413a14.81 14.81 0 0 0-4.684 28.862c.742.138 1.012-.32 1.012-.712 0-.35-.013-1.283-.02-2.518-4.12.893-4.99-1.987-4.99-1.987-.675-1.71-1.643-2.165-1.643-2.165-1.345-.918.1-.9.1-.9 1.488.105 2.27 1.525 2.27 1.525 1.32 2.265 3.466 1.61 4.31 1.23.133-.955.515-1.608.94-1.978-3.29-.375-6.747-1.645-6.747-7.32 0-1.615.577-2.937 1.525-3.975-.15-.372-.66-1.88.145-3.917 0 0 1.242-.4 4.075 1.517a14.3 14.3 0 0 1 3.705-.5 14.2 14.2 0 0 1 3.707.5c2.826-1.915 4.068-1.517 4.068-1.517.807 2.037.3 3.545.15 3.92.95 1.035 1.52 2.357 1.52 3.975 0 5.687-3.462 6.94-6.76 7.305.53.457 1.005 1.36 1.005 2.742 0 1.98-.02 3.575-.02 4.063 0 .395.267.857 1.02.712A14.816 14.816 0 0 0 15.101.413" clip-rule="evenodd"></path></svg></a><a href="https://npmjs.com/package/@urql/core" target="_blank" rel="noreferrer"><svg xmlns="http://www.w3.org/2000/svg" width="30" height="30" fill="currentColor"><path fill-rule="evenodd" d="M0 0v30h30V0zm24.375 5.625H5.625v18.75H15v-15h5.625v15h3.75z" clip-rule="evenodd"></path></svg></a></div><div class="gap-2 flex roboto-mono"><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=javascript">JavaScript</a><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=client">Client</a></div><span class="[&_a]:text-primary grow line-clamp-4 lg:text-lg">A highly customizable and versatile GraphQL client with which you add on features like normalized caching as you grow.</span><div class="flex items-center gap-5 max-md:text-xs [&>:not(:last-child)]:border-r [&>:not(:last-child)]:border-gray-500 [&>:not(:last-child)]:pr-5"><span>Last release <!-- -->2 weeks ago</span><span class="flex items-center gap-1"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="19" fill="currentColor" class="text-primary"><path d="m10 .5 2.997 5.874L19.51 7.41l-4.66 4.666 1.027 6.514L10 15.6l-5.878 2.99 1.028-6.514L.489 7.41l6.513-1.036z"></path></svg>9k</span><span>MIT License</span></div></div><details class="bg-[#f0f0f0] dark:bg-[#2f2f2f]"><summary class="flex justify-between font-bold text-primary px-8 lg:px-12 py-5 dark:[[open]>&]:shadow-[-5px_10px_30px_20px_#1b1b1b4d] [[open]>&]:shadow-[0_6px_21px_0_#1b1b1b33] cursor-pointer">README<svg xmlns="http://www.w3.org/2000/svg" fill="currentColor" viewBox="0 0 15 15" class="size-5 -rotate-90 [[open]>*>&]:rotate-90 transition-transform"><path fill-rule="evenodd" d="M8.842 3.135a.5.5 0 0 1 .023.707L5.435 7.5l3.43 3.658a.5.5 0 0 1-.73.684l-3.75-4a.5.5 0 0 1 0-.684l3.75-4a.5.5 0 0 1 .707-.023" clip-rule="evenodd"></path></svg></summary><div class="px-8 lg:px-12 py-5"><p class="[&:not(:first-child)]:_mt-6 _leading-7"><code class="nextra-code" dir="ltr">urql</code> is a GraphQL client that exposes a set of helpers for several frameworks. It’s built to be highly customisable and versatile so you can take it from getting started with your first GraphQL project all the way to building complex apps and experimenting with GraphQL clients.</p> <ul class="[:is(ol,ul)_&]:_my-3 [&:not(:first-child)]:_mt-6 _list-disc ltr:_ml-6 rtl:_mr-6"> <li class="_my-2">Currently supports React, React Native, Preact, Svelte, and Vue, and is supported by GraphQL Code Generator.</li> <li class="_my-2">Logical yet simple default behaviour and document caching, and normalized caching via <code class="nextra-code" dir="ltr">@urql/exchange-graphcache</code></li> <li class="_my-2">Fully customizable behaviour via “exchanges” (addon packages)</li> </ul></div></details></div><div class="border border-zinc-200 dark:border-[#414141] p-8 lg:p-12 bg-white dark:bg-neutral-800 rounded-none !p-0 h-max min-w-0"><div class="p-8 lg:p-12 flex flex-col gap-7 grow"><div class="flex items-center gap-6 [&_a:hover]:text-primary [&_a]:transition-colors"><span class="text-3xl font-extrabold grow break-all">graphql-yoga</span><a href="https://github.com/dotansimha/graphql-yoga" target="_blank" rel="noreferrer"><svg xmlns="http://www.w3.org/2000/svg" width="30" fill="currentColor" viewBox="0 0 30 30"><path fill-rule="evenodd" d="M15.1.413a14.81 14.81 0 0 0-4.684 28.862c.742.138 1.012-.32 1.012-.712 0-.35-.013-1.283-.02-2.518-4.12.893-4.99-1.987-4.99-1.987-.675-1.71-1.643-2.165-1.643-2.165-1.345-.918.1-.9.1-.9 1.488.105 2.27 1.525 2.27 1.525 1.32 2.265 3.466 1.61 4.31 1.23.133-.955.515-1.608.94-1.978-3.29-.375-6.747-1.645-6.747-7.32 0-1.615.577-2.937 1.525-3.975-.15-.372-.66-1.88.145-3.917 0 0 1.242-.4 4.075 1.517a14.3 14.3 0 0 1 3.705-.5 14.2 14.2 0 0 1 3.707.5c2.826-1.915 4.068-1.517 4.068-1.517.807 2.037.3 3.545.15 3.92.95 1.035 1.52 2.357 1.52 3.975 0 5.687-3.462 6.94-6.76 7.305.53.457 1.005 1.36 1.005 2.742 0 1.98-.02 3.575-.02 4.063 0 .395.267.857 1.02.712A14.816 14.816 0 0 0 15.101.413" clip-rule="evenodd"></path></svg></a><a href="https://npmjs.com/package/graphql-yoga" target="_blank" rel="noreferrer"><svg xmlns="http://www.w3.org/2000/svg" width="30" height="30" fill="currentColor"><path fill-rule="evenodd" d="M0 0v30h30V0zm24.375 5.625H5.625v18.75H15v-15h5.625v15h3.75z" clip-rule="evenodd"></path></svg></a></div><div class="gap-2 flex roboto-mono"><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=javascript">JavaScript</a><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=server">Server</a></div><span class="[&_a]:text-primary grow line-clamp-4 lg:text-lg">GraphQL Yoga is a batteries-included cross-platform GraphQL over HTTP spec-compliant GraphQL Server using Envelop and GraphQL Tools.</span><div class="flex items-center gap-5 max-md:text-xs [&>:not(:last-child)]:border-r [&>:not(:last-child)]:border-gray-500 [&>:not(:last-child)]:pr-5"><span>Last release <!-- -->6 days ago</span><span class="flex items-center gap-1"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="19" fill="currentColor" class="text-primary"><path d="m10 .5 2.997 5.874L19.51 7.41l-4.66 4.666 1.027 6.514L10 15.6l-5.878 2.99 1.028-6.514L.489 7.41l6.513-1.036z"></path></svg>8k</span><span>MIT License</span></div></div><details class="bg-[#f0f0f0] dark:bg-[#2f2f2f]"><summary class="flex justify-between font-bold text-primary px-8 lg:px-12 py-5 dark:[[open]>&]:shadow-[-5px_10px_30px_20px_#1b1b1b4d] [[open]>&]:shadow-[0_6px_21px_0_#1b1b1b33] cursor-pointer">README<svg xmlns="http://www.w3.org/2000/svg" fill="currentColor" viewBox="0 0 15 15" class="size-5 -rotate-90 [[open]>*>&]:rotate-90 transition-transform"><path fill-rule="evenodd" d="M8.842 3.135a.5.5 0 0 1 .023.707L5.435 7.5l3.43 3.658a.5.5 0 0 1-.73.684l-3.75-4a.5.5 0 0 1 0-.684l3.75-4a.5.5 0 0 1 .707-.023" clip-rule="evenodd"></path></svg></summary><div class="px-8 lg:px-12 py-5"><ul class="[:is(ol,ul)_&]:_my-3 [&:not(:first-child)]:_mt-6 _list-disc ltr:_ml-6 rtl:_mr-6"> <li class="_my-2">Built around the Fetch API <code class="nextra-code" dir="ltr">Request</code> & <code class="nextra-code" dir="ltr">Response</code> objects</li> <li class="_my-2">GraphQL over HTTP compliant</li> <li class="_my-2">Extensible GraphQL Engine powered by Envelop</li> <li class="_my-2">GraphQL Subscriptions over HTTP</li> <li class="_my-2">Handle file uploads with GraphQL</li> <li class="_my-2">Integrates with AWS Lambda, Cloudflare Workers, Deno, Express, Next.js, SvelteKit, and more.</li> </ul> <p class="[&:not(:first-child)]:_mt-6 _leading-7">To run a hello world server with graphql-yoga:</p> <div class="nextra-code _relative [&:not(:first-child)]:_mt-6"><pre class="_overflow-x-auto _subpixel-antialiased _text-[.9em] _bg-white dark:_bg-black _py-4 _ring-1 _ring-inset _ring-gray-300 dark:_ring-neutral-700 contrast-more:_ring-gray-900 contrast-more:dark:_ring-gray-50 contrast-more:_contrast-150 _rounded-md" tabindex="0"><code class="nextra-code" dir="ltr"><span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">npm</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> install</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> graphql-yoga</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> graphql</span></span></code></pre><div class="_opacity-0 _transition [div:hover>&]:_opacity-100 focus-within:_opacity-100 _flex _gap-1 _absolute _right-4 _top-2"><button class="_transition _rounded-md _p-1.5 _border _border-gray-300 dark:_border-neutral-700 contrast-more:_border-gray-900 contrast-more:dark:_border-gray-50 md:_hidden" title="Toggle word wrap"><svg viewBox="0 0 24 24" width="24" height="24" class="_h-4 _w-auto"><path fill="currentColor" d="M4 19h6v-2H4v2zM20 5H4v2h16V5zm-3 6H4v2h13.25c1.1 0 2 .9 2 2s-.9 2-2 2H15v-2l-3 3l3 3v-2h2c2.21 0 4-1.79 4-4s-1.79-4-4-4z"></path></svg></button></div></div> <p class="[&:not(:first-child)]:_mt-6 _leading-7">Then create a server using the <code class="nextra-code" dir="ltr">createServer</code> import:</p> <div class="nextra-code _relative [&:not(:first-child)]:_mt-6"><pre class="_overflow-x-auto _subpixel-antialiased _text-[.9em] _bg-white dark:_bg-black _py-4 _ring-1 _ring-inset _ring-gray-300 dark:_ring-neutral-700 contrast-more:_ring-gray-900 contrast-more:dark:_ring-gray-50 contrast-more:_contrast-150 _rounded-md" tabindex="0"><code class="nextra-code" dir="ltr"><span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">import</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> { createServer } </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">from</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> "http"</span></span> <span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">import</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> { createSchema, createYoga } </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">from</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> "graphql-yoga"</span></span> <span> </span> <span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">createServer</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(</span></span> <span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> createYoga</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">({</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> schema: </span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">createSchema</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">({</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> typeDefs: </span><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D">/* GraphQL */</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> `</span></span> <span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> type Query {</span></span> <span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> hello: String</span></span> <span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> }</span></span> <span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> `</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">,</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> resolvers: {</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> Query: {</span></span> <span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> hello</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">: () </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=></span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> "Hello Hello Hello"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">,</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> },</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> },</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> }),</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> }),</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">).</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">listen</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">4000</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">, () </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=></span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> {</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> console.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">info</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">"GraphQL Yoga is listening on http://localhost:4000/graphql"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">)</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">})</span></span></code></pre><div class="_opacity-0 _transition [div:hover>&]:_opacity-100 focus-within:_opacity-100 _flex _gap-1 _absolute _right-4 _top-2"><button class="_transition _rounded-md _p-1.5 _border _border-gray-300 dark:_border-neutral-700 contrast-more:_border-gray-900 contrast-more:dark:_border-gray-50 md:_hidden" title="Toggle word wrap"><svg viewBox="0 0 24 24" width="24" height="24" class="_h-4 _w-auto"><path fill="currentColor" d="M4 19h6v-2H4v2zM20 5H4v2h16V5zm-3 6H4v2h13.25c1.1 0 2 .9 2 2s-.9 2-2 2H15v-2l-3 3l3 3v-2h2c2.21 0 4-1.79 4-4s-1.79-4-4-4z"></path></svg></button></div></div> <p class="[&:not(:first-child)]:_mt-6 _leading-7">Depending on your deployment target, you may need to use an additional library. See the <a href="https://www.graphql-yoga.com/docs" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">documentation</a> for further details.</p></div></details></div><div class="border border-zinc-200 dark:border-[#414141] p-8 lg:p-12 bg-white dark:bg-neutral-800 rounded-none !p-0 h-max min-w-0"><div class="p-8 lg:p-12 flex flex-col gap-7 grow"><div class="flex items-center gap-6 [&_a:hover]:text-primary [&_a]:transition-colors"><span class="text-3xl font-extrabold grow break-all">Graphene</span><a href="http://graphene-python.org/" target="_blank" rel="noreferrer"><svg xmlns="http://www.w3.org/2000/svg" fill="currentColor" viewBox="0 0 24 24"><path d="M23.332 15.948C23.764 14.711 24 13.383 24 12a12 12 0 0 0-.706-4.056C21.627 3.317 17.194 0 12 0S2.373 3.317.706 7.944A11.949 11.949 0 0 0 0 12a12 12 0 0 0 .706 4.056C2.373 20.683 6.806 24 12 24s9.627-3.317 11.294-7.944a1 1 0 0 0 .038-.108M12 22.28c-.457 0-1.194-.827-1.81-2.675a19 19 0 0 1-.708-3.031h5.036a19 19 0 0 1-.708 3.031c-.616 1.848-1.353 2.675-1.81 2.675m-2.727-7.427A32 32 0 0 1 9.147 12c0-.98.043-1.936.126-2.853h5.454c.083.917.126 1.874.126 2.853s-.043 1.936-.126 2.854zM1.72 12c0-.99.141-1.947.403-2.853h5.425a33.5 33.5 0 0 0 0 5.707H2.123A10.3 10.3 0 0 1 1.72 12M12 1.72c.457 0 1.194.827 1.81 2.675.297.892.535 1.917.708 3.032H9.482c.173-1.115.411-2.14.708-3.032.616-1.848 1.353-2.675 1.81-2.675m4.452 7.427h5.425c.262.906.403 1.864.403 2.853s-.141 1.947-.403 2.854h-5.425a33.5 33.5 0 0 0 0-5.707m4.752-1.72h-4.95c-.305-2.11-.83-4.003-1.566-5.35 2.855.775 5.22 2.75 6.516 5.35M9.313 2.077c-.736 1.347-1.261 3.24-1.567 5.35h-4.95a10.33 10.33 0 0 1 6.517-5.35M2.795 16.574h4.95c.306 2.11.83 4.002 1.567 5.349a10.33 10.33 0 0 1-6.517-5.35m11.893 5.349c.736-1.347 1.261-3.24 1.567-5.35h4.95a10.33 10.33 0 0 1-6.517 5.35"></path></svg></a><a href="https://github.com/graphql-python/graphene" target="_blank" rel="noreferrer"><svg xmlns="http://www.w3.org/2000/svg" width="30" fill="currentColor" viewBox="0 0 30 30"><path fill-rule="evenodd" d="M15.1.413a14.81 14.81 0 0 0-4.684 28.862c.742.138 1.012-.32 1.012-.712 0-.35-.013-1.283-.02-2.518-4.12.893-4.99-1.987-4.99-1.987-.675-1.71-1.643-2.165-1.643-2.165-1.345-.918.1-.9.1-.9 1.488.105 2.27 1.525 2.27 1.525 1.32 2.265 3.466 1.61 4.31 1.23.133-.955.515-1.608.94-1.978-3.29-.375-6.747-1.645-6.747-7.32 0-1.615.577-2.937 1.525-3.975-.15-.372-.66-1.88.145-3.917 0 0 1.242-.4 4.075 1.517a14.3 14.3 0 0 1 3.705-.5 14.2 14.2 0 0 1 3.707.5c2.826-1.915 4.068-1.517 4.068-1.517.807 2.037.3 3.545.15 3.92.95 1.035 1.52 2.357 1.52 3.975 0 5.687-3.462 6.94-6.76 7.305.53.457 1.005 1.36 1.005 2.742 0 1.98-.02 3.575-.02 4.063 0 .395.267.857 1.02.712A14.816 14.816 0 0 0 15.101.413" clip-rule="evenodd"></path></svg></a></div><div class="gap-2 flex roboto-mono"><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=python">Python</a><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=server">Server</a></div><span class="[&_a]:text-primary grow line-clamp-4 lg:text-lg">A Python library for building GraphQL APIs.</span><div class="flex items-center gap-5 max-md:text-xs [&>:not(:last-child)]:border-r [&>:not(:last-child)]:border-gray-500 [&>:not(:last-child)]:pr-5"><span>Last release <!-- -->2 weeks ago</span><span class="flex items-center gap-1"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="19" fill="currentColor" class="text-primary"><path d="m10 .5 2.997 5.874L19.51 7.41l-4.66 4.666 1.027 6.514L10 15.6l-5.878 2.99 1.028-6.514L.489 7.41l6.513-1.036z"></path></svg>8k</span><span>MIT License</span></div></div><details class="bg-[#f0f0f0] dark:bg-[#2f2f2f]"><summary class="flex justify-between font-bold text-primary px-8 lg:px-12 py-5 dark:[[open]>&]:shadow-[-5px_10px_30px_20px_#1b1b1b4d] [[open]>&]:shadow-[0_6px_21px_0_#1b1b1b33] cursor-pointer">README<svg xmlns="http://www.w3.org/2000/svg" fill="currentColor" viewBox="0 0 15 15" class="size-5 -rotate-90 [[open]>*>&]:rotate-90 transition-transform"><path fill-rule="evenodd" d="M8.842 3.135a.5.5 0 0 1 .023.707L5.435 7.5l3.43 3.658a.5.5 0 0 1-.73.684l-3.75-4a.5.5 0 0 1 0-.684l3.75-4a.5.5 0 0 1 .707-.023" clip-rule="evenodd"></path></svg></summary><div class="px-8 lg:px-12 py-5"><p class="[&:not(:first-child)]:_mt-6 _leading-7">To run a Graphene hello world script:</p> <div class="nextra-code _relative [&:not(:first-child)]:_mt-6"><pre class="_overflow-x-auto _subpixel-antialiased _text-[.9em] _bg-white dark:_bg-black _py-4 _ring-1 _ring-inset _ring-gray-300 dark:_ring-neutral-700 contrast-more:_ring-gray-900 contrast-more:dark:_ring-gray-50 contrast-more:_contrast-150 _rounded-md" tabindex="0"><code class="nextra-code" dir="ltr"><span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">pip</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> install</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> graphene</span></span></code></pre><div class="_opacity-0 _transition [div:hover>&]:_opacity-100 focus-within:_opacity-100 _flex _gap-1 _absolute _right-4 _top-2"><button class="_transition _rounded-md _p-1.5 _border _border-gray-300 dark:_border-neutral-700 contrast-more:_border-gray-900 contrast-more:dark:_border-gray-50 md:_hidden" title="Toggle word wrap"><svg viewBox="0 0 24 24" width="24" height="24" class="_h-4 _w-auto"><path fill="currentColor" d="M4 19h6v-2H4v2zM20 5H4v2h16V5zm-3 6H4v2h13.25c1.1 0 2 .9 2 2s-.9 2-2 2H15v-2l-3 3l3 3v-2h2c2.21 0 4-1.79 4-4s-1.79-4-4-4z"></path></svg></button></div></div> <p class="[&:not(:first-child)]:_mt-6 _leading-7">Then run <code class="nextra-code" dir="ltr">python hello.py</code> with this code in <code class="nextra-code" dir="ltr">hello.py</code>:</p> <div class="nextra-code _relative [&:not(:first-child)]:_mt-6"><pre class="_overflow-x-auto _subpixel-antialiased _text-[.9em] _bg-white dark:_bg-black _py-4 _ring-1 _ring-inset _ring-gray-300 dark:_ring-neutral-700 contrast-more:_ring-gray-900 contrast-more:dark:_ring-gray-50 contrast-more:_contrast-150 _rounded-md" tabindex="0"><code class="nextra-code" dir="ltr"><span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">import</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> graphene</span></span> <span> </span> <span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">class</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> Query</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">graphene</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">ObjectType</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">):</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> hello </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> graphene.String(</span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70">name</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">graphene.String(</span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70">default_value</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">"World"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">))</span></span> <span> </span> <span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> def</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> resolve_hello</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(self, info, name):</span></span> <span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> return</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> 'Hello '</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> +</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> name</span></span> <span> </span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">schema </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> graphene.Schema(</span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70">query</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">Query)</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">result </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> schema.execute(</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">'{ hello }'</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">)</span></span> <span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">print</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(result.data[</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">'hello'</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">]) </span><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D"># "Hello World"</span></span></code></pre><div class="_opacity-0 _transition [div:hover>&]:_opacity-100 focus-within:_opacity-100 _flex _gap-1 _absolute _right-4 _top-2"><button class="_transition _rounded-md _p-1.5 _border _border-gray-300 dark:_border-neutral-700 contrast-more:_border-gray-900 contrast-more:dark:_border-gray-50 md:_hidden" title="Toggle word wrap"><svg viewBox="0 0 24 24" width="24" height="24" class="_h-4 _w-auto"><path fill="currentColor" d="M4 19h6v-2H4v2zM20 5H4v2h16V5zm-3 6H4v2h13.25c1.1 0 2 .9 2 2s-.9 2-2 2H15v-2l-3 3l3 3v-2h2c2.21 0 4-1.79 4-4s-1.79-4-4-4z"></path></svg></button></div></div> <p class="[&:not(:first-child)]:_mt-6 _leading-7">There are also nice bindings for <a href="https://facebook.github.io/relay/" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">Relay</a>, Django, SQLAlchemy, and Google App Engine.</p></div></details></div><div class="border border-zinc-200 dark:border-[#414141] p-8 lg:p-12 bg-white dark:bg-neutral-800 rounded-none !p-0 h-max min-w-0"><div class="p-8 lg:p-12 flex flex-col gap-7 grow"><div class="flex items-center gap-6 [&_a:hover]:text-primary [&_a]:transition-colors"><span class="text-3xl font-extrabold grow break-all">Webiny</span><a href="https://www.webiny.com" target="_blank" rel="noreferrer"><svg xmlns="http://www.w3.org/2000/svg" fill="currentColor" viewBox="0 0 24 24"><path d="M23.332 15.948C23.764 14.711 24 13.383 24 12a12 12 0 0 0-.706-4.056C21.627 3.317 17.194 0 12 0S2.373 3.317.706 7.944A11.949 11.949 0 0 0 0 12a12 12 0 0 0 .706 4.056C2.373 20.683 6.806 24 12 24s9.627-3.317 11.294-7.944a1 1 0 0 0 .038-.108M12 22.28c-.457 0-1.194-.827-1.81-2.675a19 19 0 0 1-.708-3.031h5.036a19 19 0 0 1-.708 3.031c-.616 1.848-1.353 2.675-1.81 2.675m-2.727-7.427A32 32 0 0 1 9.147 12c0-.98.043-1.936.126-2.853h5.454c.083.917.126 1.874.126 2.853s-.043 1.936-.126 2.854zM1.72 12c0-.99.141-1.947.403-2.853h5.425a33.5 33.5 0 0 0 0 5.707H2.123A10.3 10.3 0 0 1 1.72 12M12 1.72c.457 0 1.194.827 1.81 2.675.297.892.535 1.917.708 3.032H9.482c.173-1.115.411-2.14.708-3.032.616-1.848 1.353-2.675 1.81-2.675m4.452 7.427h5.425c.262.906.403 1.864.403 2.853s-.141 1.947-.403 2.854h-5.425a33.5 33.5 0 0 0 0-5.707m4.752-1.72h-4.95c-.305-2.11-.83-4.003-1.566-5.35 2.855.775 5.22 2.75 6.516 5.35M9.313 2.077c-.736 1.347-1.261 3.24-1.567 5.35h-4.95a10.33 10.33 0 0 1 6.517-5.35M2.795 16.574h4.95c.306 2.11.83 4.002 1.567 5.349a10.33 10.33 0 0 1-6.517-5.35m11.893 5.349c.736-1.347 1.261-3.24 1.567-5.35h4.95a10.33 10.33 0 0 1-6.517 5.35"></path></svg></a><a href="https://github.com/webiny/webiny-js" target="_blank" rel="noreferrer"><svg xmlns="http://www.w3.org/2000/svg" width="30" fill="currentColor" viewBox="0 0 30 30"><path fill-rule="evenodd" d="M15.1.413a14.81 14.81 0 0 0-4.684 28.862c.742.138 1.012-.32 1.012-.712 0-.35-.013-1.283-.02-2.518-4.12.893-4.99-1.987-4.99-1.987-.675-1.71-1.643-2.165-1.643-2.165-1.345-.918.1-.9.1-.9 1.488.105 2.27 1.525 2.27 1.525 1.32 2.265 3.466 1.61 4.31 1.23.133-.955.515-1.608.94-1.978-3.29-.375-6.747-1.645-6.747-7.32 0-1.615.577-2.937 1.525-3.975-.15-.372-.66-1.88.145-3.917 0 0 1.242-.4 4.075 1.517a14.3 14.3 0 0 1 3.705-.5 14.2 14.2 0 0 1 3.707.5c2.826-1.915 4.068-1.517 4.068-1.517.807 2.037.3 3.545.15 3.92.95 1.035 1.52 2.357 1.52 3.975 0 5.687-3.462 6.94-6.76 7.305.53.457 1.005 1.36 1.005 2.742 0 1.98-.02 3.575-.02 4.063 0 .395.267.857 1.02.712A14.816 14.816 0 0 0 15.101.413" clip-rule="evenodd"></path></svg></a></div><div class="gap-2 flex roboto-mono"><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=services">Services</a></div><span class="[&_a]:text-primary grow line-clamp-4 lg:text-lg">Webiny allows you to quickly build GraphQL APIs on top of AWS Lambda and DynamoDB with built-in scaffolds. Webiny also includes a ready-made headless GraphQL CMS for a no-code experience.</span><div class="flex items-center gap-5 max-md:text-xs [&>:not(:last-child)]:border-r [&>:not(:last-child)]:border-gray-500 [&>:not(:last-child)]:pr-5"><span>Last release <!-- -->1 day ago</span><span class="flex items-center gap-1"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="19" fill="currentColor" class="text-primary"><path d="m10 .5 2.997 5.874L19.51 7.41l-4.66 4.666 1.027 6.514L10 15.6l-5.878 2.99 1.028-6.514L.489 7.41l6.513-1.036z"></path></svg>7k</span><span>Other</span></div></div></div><div class="border border-zinc-200 dark:border-[#414141] p-8 lg:p-12 bg-white dark:bg-neutral-800 rounded-none !p-0 h-max min-w-0"><div class="p-8 lg:p-12 flex flex-col gap-7 grow"><div class="flex items-center gap-6 [&_a:hover]:text-primary [&_a]:transition-colors"><span class="text-3xl font-extrabold grow break-all">graphql-java</span><a href="https://github.com/graphql-java/graphql-java" target="_blank" rel="noreferrer"><svg xmlns="http://www.w3.org/2000/svg" width="30" fill="currentColor" viewBox="0 0 30 30"><path fill-rule="evenodd" d="M15.1.413a14.81 14.81 0 0 0-4.684 28.862c.742.138 1.012-.32 1.012-.712 0-.35-.013-1.283-.02-2.518-4.12.893-4.99-1.987-4.99-1.987-.675-1.71-1.643-2.165-1.643-2.165-1.345-.918.1-.9.1-.9 1.488.105 2.27 1.525 2.27 1.525 1.32 2.265 3.466 1.61 4.31 1.23.133-.955.515-1.608.94-1.978-3.29-.375-6.747-1.645-6.747-7.32 0-1.615.577-2.937 1.525-3.975-.15-.372-.66-1.88.145-3.917 0 0 1.242-.4 4.075 1.517a14.3 14.3 0 0 1 3.705-.5 14.2 14.2 0 0 1 3.707.5c2.826-1.915 4.068-1.517 4.068-1.517.807 2.037.3 3.545.15 3.92.95 1.035 1.52 2.357 1.52 3.975 0 5.687-3.462 6.94-6.76 7.305.53.457 1.005 1.36 1.005 2.742 0 1.98-.02 3.575-.02 4.063 0 .395.267.857 1.02.712A14.816 14.816 0 0 0 15.101.413" clip-rule="evenodd"></path></svg></a></div><div class="gap-2 flex roboto-mono"><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=java-kotlin-android">Java / Kotlin</a><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=server">Server</a></div><span class="[&_a]:text-primary grow line-clamp-4 lg:text-lg">A Java library for building GraphQL APIs.</span><div class="flex items-center gap-5 max-md:text-xs [&>:not(:last-child)]:border-r [&>:not(:last-child)]:border-gray-500 [&>:not(:last-child)]:pr-5"><span>Last release <!-- -->2 months ago</span><span class="flex items-center gap-1"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="19" fill="currentColor" class="text-primary"><path d="m10 .5 2.997 5.874L19.51 7.41l-4.66 4.666 1.027 6.514L10 15.6l-5.878 2.99 1.028-6.514L.489 7.41l6.513-1.036z"></path></svg>6k</span><span>MIT License</span></div></div><details class="bg-[#f0f0f0] dark:bg-[#2f2f2f]"><summary class="flex justify-between font-bold text-primary px-8 lg:px-12 py-5 dark:[[open]>&]:shadow-[-5px_10px_30px_20px_#1b1b1b4d] [[open]>&]:shadow-[0_6px_21px_0_#1b1b1b33] cursor-pointer">README<svg xmlns="http://www.w3.org/2000/svg" fill="currentColor" viewBox="0 0 15 15" class="size-5 -rotate-90 [[open]>*>&]:rotate-90 transition-transform"><path fill-rule="evenodd" d="M8.842 3.135a.5.5 0 0 1 .023.707L5.435 7.5l3.43 3.658a.5.5 0 0 1-.73.684l-3.75-4a.5.5 0 0 1 0-.684l3.75-4a.5.5 0 0 1 .707-.023" clip-rule="evenodd"></path></svg></summary><div class="px-8 lg:px-12 py-5"><p class="[&:not(:first-child)]:_mt-6 _leading-7">See the <a href="https://www.graphql-java.com/tutorials/getting-started-with-spring-boot" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">Getting Started tutorial</a> on the GraphQL Java website.</p> <p class="[&:not(:first-child)]:_mt-6 _leading-7">Code that executes a hello world GraphQL query with <code class="nextra-code" dir="ltr">graphql-java</code>:</p> <div class="nextra-code _relative [&:not(:first-child)]:_mt-6"><pre class="_overflow-x-auto _subpixel-antialiased _text-[.9em] _bg-white dark:_bg-black _py-4 _ring-1 _ring-inset _ring-gray-300 dark:_ring-neutral-700 contrast-more:_ring-gray-900 contrast-more:dark:_ring-gray-50 contrast-more:_contrast-150 _rounded-md" tabindex="0"><code class="nextra-code" dir="ltr"><span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">import</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> graphql.ExecutionResult;</span></span> <span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">import</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> graphql.GraphQL;</span></span> <span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">import</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> graphql.schema.GraphQLSchema;</span></span> <span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">import</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> graphql.schema.StaticDataFetcher;</span></span> <span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">import</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> graphql.schema.idl.RuntimeWiring;</span></span> <span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">import</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> graphql.schema.idl.SchemaGenerator;</span></span> <span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">import</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> graphql.schema.idl.SchemaParser;</span></span> <span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">import</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> graphql.schema.idl.TypeDefinitionRegistry;</span></span> <span> </span> <span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">import</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> static</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> graphql.schema.idl.RuntimeWiring.newRuntimeWiring;</span></span> <span> </span> <span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">public</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> class</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> HelloWorld</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> {</span></span> <span> </span> <span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> public</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> static</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> void</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> main</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">String</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">[] </span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70">args</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">) {</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> String schema </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> "type Query{hello: String}"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">;</span></span> <span> </span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> SchemaParser schemaParser </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> new</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> SchemaParser</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">();</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> TypeDefinitionRegistry typeDefinitionRegistry </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> schemaParser.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">parse</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(schema);</span></span> <span> </span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> RuntimeWiring runtimeWiring </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> newRuntimeWiring</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">()</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> .</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">type</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">"Query"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">, builder </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">-></span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> builder.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">dataFetcher</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">"hello"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">, </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">new</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> StaticDataFetcher</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">"world"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">)))</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> .</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">build</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">();</span></span> <span> </span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> SchemaGenerator schemaGenerator </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> new</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> SchemaGenerator</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">();</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> GraphQLSchema graphQLSchema </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> schemaGenerator.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">makeExecutableSchema</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(typeDefinitionRegistry, runtimeWiring);</span></span> <span> </span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> GraphQL build </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> GraphQL.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">newGraphQL</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(graphQLSchema).</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">build</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">();</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> ExecutionResult executionResult </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> build.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">execute</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">"{hello}"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">);</span></span> <span> </span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> System.out.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">println</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(executionResult.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">getData</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">().</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">toString</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">());</span></span> <span><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D"> // Prints: {hello=world}</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> }</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">}</span></span></code></pre><div class="_opacity-0 _transition [div:hover>&]:_opacity-100 focus-within:_opacity-100 _flex _gap-1 _absolute _right-4 _top-2"><button class="_transition _rounded-md _p-1.5 _border _border-gray-300 dark:_border-neutral-700 contrast-more:_border-gray-900 contrast-more:dark:_border-gray-50 md:_hidden" title="Toggle word wrap"><svg viewBox="0 0 24 24" width="24" height="24" class="_h-4 _w-auto"><path fill="currentColor" d="M4 19h6v-2H4v2zM20 5H4v2h16V5zm-3 6H4v2h13.25c1.1 0 2 .9 2 2s-.9 2-2 2H15v-2l-3 3l3 3v-2h2c2.21 0 4-1.79 4-4s-1.79-4-4-4z"></path></svg></button></div></div> <p class="[&:not(:first-child)]:_mt-6 _leading-7">See <a href="https://www.graphql-java.com/documentation/master/getting-started" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">the graphql-java docs</a> for further information.</p></div></details></div><div class="border border-zinc-200 dark:border-[#414141] p-8 lg:p-12 bg-white dark:bg-neutral-800 rounded-none !p-0 h-max min-w-0"><div class="p-8 lg:p-12 flex flex-col gap-7 grow"><div class="flex items-center gap-6 [&_a:hover]:text-primary [&_a]:transition-colors"><span class="text-3xl font-extrabold grow break-all">GraphQL Request</span><a href="https://github.com/jasonkuhrt/graphql-request" target="_blank" rel="noreferrer"><svg xmlns="http://www.w3.org/2000/svg" width="30" fill="currentColor" viewBox="0 0 30 30"><path fill-rule="evenodd" d="M15.1.413a14.81 14.81 0 0 0-4.684 28.862c.742.138 1.012-.32 1.012-.712 0-.35-.013-1.283-.02-2.518-4.12.893-4.99-1.987-4.99-1.987-.675-1.71-1.643-2.165-1.643-2.165-1.345-.918.1-.9.1-.9 1.488.105 2.27 1.525 2.27 1.525 1.32 2.265 3.466 1.61 4.31 1.23.133-.955.515-1.608.94-1.978-3.29-.375-6.747-1.645-6.747-7.32 0-1.615.577-2.937 1.525-3.975-.15-.372-.66-1.88.145-3.917 0 0 1.242-.4 4.075 1.517a14.3 14.3 0 0 1 3.705-.5 14.2 14.2 0 0 1 3.707.5c2.826-1.915 4.068-1.517 4.068-1.517.807 2.037.3 3.545.15 3.92.95 1.035 1.52 2.357 1.52 3.975 0 5.687-3.462 6.94-6.76 7.305.53.457 1.005 1.36 1.005 2.742 0 1.98-.02 3.575-.02 4.063 0 .395.267.857 1.02.712A14.816 14.816 0 0 0 15.101.413" clip-rule="evenodd"></path></svg></a><a href="https://npmjs.com/package/graphql-request" target="_blank" rel="noreferrer"><svg xmlns="http://www.w3.org/2000/svg" width="30" height="30" fill="currentColor"><path fill-rule="evenodd" d="M0 0v30h30V0zm24.375 5.625H5.625v18.75H15v-15h5.625v15h3.75z" clip-rule="evenodd"></path></svg></a></div><div class="gap-2 flex roboto-mono"><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=javascript">JavaScript</a><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=client">Client</a></div><span class="[&_a]:text-primary grow line-clamp-4 lg:text-lg">A simple and flexible JavaScript GraphQL client that works in all JavaScript environments (the browser, Node.js, and React Native) - basically a lightweight wrapper around <code>fetch</code>.</span><div class="flex items-center gap-5 max-md:text-xs [&>:not(:last-child)]:border-r [&>:not(:last-child)]:border-gray-500 [&>:not(:last-child)]:pr-5"><span>Last release <!-- -->4 years ago</span><span class="flex items-center gap-1"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="19" fill="currentColor" class="text-primary"><path d="m10 .5 2.997 5.874L19.51 7.41l-4.66 4.666 1.027 6.514L10 15.6l-5.878 2.99 1.028-6.514L.489 7.41l6.513-1.036z"></path></svg>6k</span><span>MIT License</span></div></div></div><div class="border border-zinc-200 dark:border-[#414141] p-8 lg:p-12 bg-white dark:bg-neutral-800 rounded-none !p-0 h-max min-w-0"><div class="p-8 lg:p-12 flex flex-col gap-7 grow"><div class="flex items-center gap-6 [&_a:hover]:text-primary [&_a]:transition-colors"><span class="text-3xl font-extrabold grow break-all">graphql-dotnet</span><a href="https://github.com/graphql-dotnet/graphql-dotnet" target="_blank" rel="noreferrer"><svg xmlns="http://www.w3.org/2000/svg" width="30" fill="currentColor" viewBox="0 0 30 30"><path fill-rule="evenodd" d="M15.1.413a14.81 14.81 0 0 0-4.684 28.862c.742.138 1.012-.32 1.012-.712 0-.35-.013-1.283-.02-2.518-4.12.893-4.99-1.987-4.99-1.987-.675-1.71-1.643-2.165-1.643-2.165-1.345-.918.1-.9.1-.9 1.488.105 2.27 1.525 2.27 1.525 1.32 2.265 3.466 1.61 4.31 1.23.133-.955.515-1.608.94-1.978-3.29-.375-6.747-1.645-6.747-7.32 0-1.615.577-2.937 1.525-3.975-.15-.372-.66-1.88.145-3.917 0 0 1.242-.4 4.075 1.517a14.3 14.3 0 0 1 3.705-.5 14.2 14.2 0 0 1 3.707.5c2.826-1.915 4.068-1.517 4.068-1.517.807 2.037.3 3.545.15 3.92.95 1.035 1.52 2.357 1.52 3.975 0 5.687-3.462 6.94-6.76 7.305.53.457 1.005 1.36 1.005 2.742 0 1.98-.02 3.575-.02 4.063 0 .395.267.857 1.02.712A14.816 14.816 0 0 0 15.101.413" clip-rule="evenodd"></path></svg></a></div><div class="gap-2 flex roboto-mono"><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=c-net">C# / .NET</a><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=server">Server</a></div><span class="[&_a]:text-primary grow line-clamp-4 lg:text-lg">GraphQL for .NET</span><div class="flex items-center gap-5 max-md:text-xs [&>:not(:last-child)]:border-r [&>:not(:last-child)]:border-gray-500 [&>:not(:last-child)]:pr-5"><span>Last release <!-- -->1 month ago</span><span class="flex items-center gap-1"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="19" fill="currentColor" class="text-primary"><path d="m10 .5 2.997 5.874L19.51 7.41l-4.66 4.666 1.027 6.514L10 15.6l-5.878 2.99 1.028-6.514L.489 7.41l6.513-1.036z"></path></svg>6k</span><span>MIT License</span></div></div><details class="bg-[#f0f0f0] dark:bg-[#2f2f2f]"><summary class="flex justify-between font-bold text-primary px-8 lg:px-12 py-5 dark:[[open]>&]:shadow-[-5px_10px_30px_20px_#1b1b1b4d] [[open]>&]:shadow-[0_6px_21px_0_#1b1b1b33] cursor-pointer">README<svg xmlns="http://www.w3.org/2000/svg" fill="currentColor" viewBox="0 0 15 15" class="size-5 -rotate-90 [[open]>*>&]:rotate-90 transition-transform"><path fill-rule="evenodd" d="M8.842 3.135a.5.5 0 0 1 .023.707L5.435 7.5l3.43 3.658a.5.5 0 0 1-.73.684l-3.75-4a.5.5 0 0 1 0-.684l3.75-4a.5.5 0 0 1 .707-.023" clip-rule="evenodd"></path></svg></summary><div class="px-8 lg:px-12 py-5"><div class="nextra-code _relative [&:not(:first-child)]:_mt-6"><pre class="_overflow-x-auto _subpixel-antialiased _text-[.9em] _bg-white dark:_bg-black _py-4 _ring-1 _ring-inset _ring-gray-300 dark:_ring-neutral-700 contrast-more:_ring-gray-900 contrast-more:dark:_ring-gray-50 contrast-more:_contrast-150 _rounded-md" tabindex="0"><code class="nextra-code" dir="ltr"><span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">using</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> System</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">;</span></span> <span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">using</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> System</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">Threading</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">Tasks</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">;</span></span> <span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">using</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> GraphQL</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">;</span></span> <span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">using</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> GraphQL</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">Types</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">;</span></span> <span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">using</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> GraphQL</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">SystemTextJson</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">; </span><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D">// First add PackageReference to GraphQL.SystemTextJson</span></span> <span> </span> <span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">public</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> class</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> Program</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">{</span></span> <span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> public</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> static</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> async</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> Task</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> Main</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">string</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">[] </span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">args</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">)</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> {</span></span> <span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> var</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> schema</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> =</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> Schema.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">For</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">@"</span></span> <span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> type Query {</span></span> <span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> hello: String</span></span> <span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> }</span></span> <span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> "</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">);</span></span> <span> </span> <span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> var</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> json</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> =</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> await</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> schema.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">ExecuteAsync</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">_</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> =></span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> {</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> _.Query </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> "{ hello }"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">;</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> _.Root </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> new</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> { Hello </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> "Hello World!"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> };</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> });</span></span> <span> </span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> Console.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">WriteLine</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(json);</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> }</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">}</span></span></code></pre><div class="_opacity-0 _transition [div:hover>&]:_opacity-100 focus-within:_opacity-100 _flex _gap-1 _absolute _right-4 _top-2"><button class="_transition _rounded-md _p-1.5 _border _border-gray-300 dark:_border-neutral-700 contrast-more:_border-gray-900 contrast-more:dark:_border-gray-50 md:_hidden" title="Toggle word wrap"><svg viewBox="0 0 24 24" width="24" height="24" class="_h-4 _w-auto"><path fill="currentColor" d="M4 19h6v-2H4v2zM20 5H4v2h16V5zm-3 6H4v2h13.25c1.1 0 2 .9 2 2s-.9 2-2 2H15v-2l-3 3l3 3v-2h2c2.21 0 4-1.79 4-4s-1.79-4-4-4z"></path></svg></button></div></div></div></details></div><div class="border border-zinc-200 dark:border-[#414141] p-8 lg:p-12 bg-white dark:bg-neutral-800 rounded-none !p-0 h-max min-w-0"><div class="p-8 lg:p-12 flex flex-col gap-7 grow"><div class="flex items-center gap-6 [&_a:hover]:text-primary [&_a]:transition-colors"><span class="text-3xl font-extrabold grow break-all">Postman</span><a href="https://www.postman.com/product/graphql-client/" target="_blank" rel="noreferrer"><svg xmlns="http://www.w3.org/2000/svg" fill="currentColor" viewBox="0 0 24 24"><path d="M23.332 15.948C23.764 14.711 24 13.383 24 12a12 12 0 0 0-.706-4.056C21.627 3.317 17.194 0 12 0S2.373 3.317.706 7.944A11.949 11.949 0 0 0 0 12a12 12 0 0 0 .706 4.056C2.373 20.683 6.806 24 12 24s9.627-3.317 11.294-7.944a1 1 0 0 0 .038-.108M12 22.28c-.457 0-1.194-.827-1.81-2.675a19 19 0 0 1-.708-3.031h5.036a19 19 0 0 1-.708 3.031c-.616 1.848-1.353 2.675-1.81 2.675m-2.727-7.427A32 32 0 0 1 9.147 12c0-.98.043-1.936.126-2.853h5.454c.083.917.126 1.874.126 2.853s-.043 1.936-.126 2.854zM1.72 12c0-.99.141-1.947.403-2.853h5.425a33.5 33.5 0 0 0 0 5.707H2.123A10.3 10.3 0 0 1 1.72 12M12 1.72c.457 0 1.194.827 1.81 2.675.297.892.535 1.917.708 3.032H9.482c.173-1.115.411-2.14.708-3.032.616-1.848 1.353-2.675 1.81-2.675m4.452 7.427h5.425c.262.906.403 1.864.403 2.853s-.141 1.947-.403 2.854h-5.425a33.5 33.5 0 0 0 0-5.707m4.752-1.72h-4.95c-.305-2.11-.83-4.003-1.566-5.35 2.855.775 5.22 2.75 6.516 5.35M9.313 2.077c-.736 1.347-1.261 3.24-1.567 5.35h-4.95a10.33 10.33 0 0 1 6.517-5.35M2.795 16.574h4.95c.306 2.11.83 4.002 1.567 5.349a10.33 10.33 0 0 1-6.517-5.35m11.893 5.349c.736-1.347 1.261-3.24 1.567-5.35h4.95a10.33 10.33 0 0 1-6.517 5.35"></path></svg></a><a href="https://github.com/postmanlabs/postman-app-support" target="_blank" rel="noreferrer"><svg xmlns="http://www.w3.org/2000/svg" width="30" fill="currentColor" viewBox="0 0 30 30"><path fill-rule="evenodd" d="M15.1.413a14.81 14.81 0 0 0-4.684 28.862c.742.138 1.012-.32 1.012-.712 0-.35-.013-1.283-.02-2.518-4.12.893-4.99-1.987-4.99-1.987-.675-1.71-1.643-2.165-1.643-2.165-1.345-.918.1-.9.1-.9 1.488.105 2.27 1.525 2.27 1.525 1.32 2.265 3.466 1.61 4.31 1.23.133-.955.515-1.608.94-1.978-3.29-.375-6.747-1.645-6.747-7.32 0-1.615.577-2.937 1.525-3.975-.15-.372-.66-1.88.145-3.917 0 0 1.242-.4 4.075 1.517a14.3 14.3 0 0 1 3.705-.5 14.2 14.2 0 0 1 3.707.5c2.826-1.915 4.068-1.517 4.068-1.517.807 2.037.3 3.545.15 3.92.95 1.035 1.52 2.357 1.52 3.975 0 5.687-3.462 6.94-6.76 7.305.53.457 1.005 1.36 1.005 2.742 0 1.98-.02 3.575-.02 4.063 0 .395.267.857 1.02.712A14.816 14.816 0 0 0 15.101.413" clip-rule="evenodd"></path></svg></a></div><div class="gap-2 flex roboto-mono"><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=services">Services</a></div><span class="[&_a]:text-primary grow line-clamp-4 lg:text-lg">A robust multi-protocol API client with features like API scripting, automation, collaborative workspaces, and comprehensive support for testing and developing GraphQL APIs.</span><div class="flex items-center gap-5 max-md:text-xs [&>:not(:last-child)]:border-r [&>:not(:last-child)]:border-gray-500 [&>:not(:last-child)]:pr-5"><span class="flex items-center gap-1"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="19" fill="currentColor" class="text-primary"><path d="m10 .5 2.997 5.874L19.51 7.41l-4.66 4.666 1.027 6.514L10 15.6l-5.878 2.99 1.028-6.514L.489 7.41l6.513-1.036z"></path></svg>6k</span><span>Unknown</span></div></div></div><div class="border border-zinc-200 dark:border-[#414141] p-8 lg:p-12 bg-white dark:bg-neutral-800 rounded-none !p-0 h-max min-w-0"><div class="p-8 lg:p-12 flex flex-col gap-7 grow"><div class="flex items-center gap-6 [&_a:hover]:text-primary [&_a]:transition-colors"><span class="text-3xl font-extrabold grow break-all">graphql-rust/juniper</span><a href="https://github.com/graphql-rust/juniper" target="_blank" rel="noreferrer"><svg xmlns="http://www.w3.org/2000/svg" width="30" fill="currentColor" viewBox="0 0 30 30"><path fill-rule="evenodd" d="M15.1.413a14.81 14.81 0 0 0-4.684 28.862c.742.138 1.012-.32 1.012-.712 0-.35-.013-1.283-.02-2.518-4.12.893-4.99-1.987-4.99-1.987-.675-1.71-1.643-2.165-1.643-2.165-1.345-.918.1-.9.1-.9 1.488.105 2.27 1.525 2.27 1.525 1.32 2.265 3.466 1.61 4.31 1.23.133-.955.515-1.608.94-1.978-3.29-.375-6.747-1.645-6.747-7.32 0-1.615.577-2.937 1.525-3.975-.15-.372-.66-1.88.145-3.917 0 0 1.242-.4 4.075 1.517a14.3 14.3 0 0 1 3.705-.5 14.2 14.2 0 0 1 3.707.5c2.826-1.915 4.068-1.517 4.068-1.517.807 2.037.3 3.545.15 3.92.95 1.035 1.52 2.357 1.52 3.975 0 5.687-3.462 6.94-6.76 7.305.53.457 1.005 1.36 1.005 2.742 0 1.98-.02 3.575-.02 4.063 0 .395.267.857 1.02.712A14.816 14.816 0 0 0 15.101.413" clip-rule="evenodd"></path></svg></a></div><div class="gap-2 flex roboto-mono"><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=rust">Rust</a><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=server">Server</a></div><span class="[&_a]:text-primary grow line-clamp-4 lg:text-lg">GraphQL server library for Rust</span><div class="flex items-center gap-5 max-md:text-xs [&>:not(:last-child)]:border-r [&>:not(:last-child)]:border-gray-500 [&>:not(:last-child)]:pr-5"><span>Last release <!-- -->4 weeks ago</span><span class="flex items-center gap-1"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="19" fill="currentColor" class="text-primary"><path d="m10 .5 2.997 5.874L19.51 7.41l-4.66 4.666 1.027 6.514L10 15.6l-5.878 2.99 1.028-6.514L.489 7.41l6.513-1.036z"></path></svg>6k</span><span>Other</span></div></div></div><div class="border border-zinc-200 dark:border-[#414141] p-8 lg:p-12 bg-white dark:bg-neutral-800 rounded-none !p-0 h-max min-w-0"><div class="p-8 lg:p-12 flex flex-col gap-7 grow"><div class="flex items-center gap-6 [&_a:hover]:text-primary [&_a]:transition-colors"><span class="text-3xl font-extrabold grow break-all">graphql-ruby</span><a href="https://github.com/rmosolgo/graphql-ruby" target="_blank" rel="noreferrer"><svg xmlns="http://www.w3.org/2000/svg" width="30" fill="currentColor" viewBox="0 0 30 30"><path fill-rule="evenodd" d="M15.1.413a14.81 14.81 0 0 0-4.684 28.862c.742.138 1.012-.32 1.012-.712 0-.35-.013-1.283-.02-2.518-4.12.893-4.99-1.987-4.99-1.987-.675-1.71-1.643-2.165-1.643-2.165-1.345-.918.1-.9.1-.9 1.488.105 2.27 1.525 2.27 1.525 1.32 2.265 3.466 1.61 4.31 1.23.133-.955.515-1.608.94-1.978-3.29-.375-6.747-1.645-6.747-7.32 0-1.615.577-2.937 1.525-3.975-.15-.372-.66-1.88.145-3.917 0 0 1.242-.4 4.075 1.517a14.3 14.3 0 0 1 3.705-.5 14.2 14.2 0 0 1 3.707.5c2.826-1.915 4.068-1.517 4.068-1.517.807 2.037.3 3.545.15 3.92.95 1.035 1.52 2.357 1.52 3.975 0 5.687-3.462 6.94-6.76 7.305.53.457 1.005 1.36 1.005 2.742 0 1.98-.02 3.575-.02 4.063 0 .395.267.857 1.02.712A14.816 14.816 0 0 0 15.101.413" clip-rule="evenodd"></path></svg></a><a href="https://rubygems.org/gems/graphql" target="_blank" rel="noreferrer"><svg xmlns="http://www.w3.org/2000/svg" width="28" height="30" fill="currentColor"><path d="m8.752 9.976-.016-.017-3.698 3.698 8.977 8.96 3.698-3.68 5.28-5.28-3.698-3.697v-.017H8.735z"></path><path d="M13.982.1.908 7.595v14.989l13.074 7.494 13.074-7.494V7.594zM24.558 21.15l-10.576 6.096-10.576-6.096V8.994l10.576-6.096 10.576 6.096z"></path></svg></a></div><div class="gap-2 flex roboto-mono"><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=ruby">Ruby</a><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=server">Server</a></div><span class="[&_a]:text-primary grow line-clamp-4 lg:text-lg">A Ruby library for building GraphQL APIs.</span><div class="flex items-center gap-5 max-md:text-xs [&>:not(:last-child)]:border-r [&>:not(:last-child)]:border-gray-500 [&>:not(:last-child)]:pr-5"><span>Last release <!-- -->3 years ago</span><span class="flex items-center gap-1"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="19" fill="currentColor" class="text-primary"><path d="m10 .5 2.997 5.874L19.51 7.41l-4.66 4.666 1.027 6.514L10 15.6l-5.878 2.99 1.028-6.514L.489 7.41l6.513-1.036z"></path></svg>5k</span><span>MIT License</span></div></div><details class="bg-[#f0f0f0] dark:bg-[#2f2f2f]"><summary class="flex justify-between font-bold text-primary px-8 lg:px-12 py-5 dark:[[open]>&]:shadow-[-5px_10px_30px_20px_#1b1b1b4d] [[open]>&]:shadow-[0_6px_21px_0_#1b1b1b33] cursor-pointer">README<svg xmlns="http://www.w3.org/2000/svg" fill="currentColor" viewBox="0 0 15 15" class="size-5 -rotate-90 [[open]>*>&]:rotate-90 transition-transform"><path fill-rule="evenodd" d="M8.842 3.135a.5.5 0 0 1 .023.707L5.435 7.5l3.43 3.658a.5.5 0 0 1-.73.684l-3.75-4a.5.5 0 0 1 0-.684l3.75-4a.5.5 0 0 1 .707-.023" clip-rule="evenodd"></path></svg></summary><div class="px-8 lg:px-12 py-5"><p class="[&:not(:first-child)]:_mt-6 _leading-7">To run a hello world script with <code class="nextra-code" dir="ltr">graphql-ruby</code>:</p> <div class="nextra-code _relative [&:not(:first-child)]:_mt-6"><pre class="_overflow-x-auto _subpixel-antialiased _text-[.9em] _bg-white dark:_bg-black _py-4 _ring-1 _ring-inset _ring-gray-300 dark:_ring-neutral-700 contrast-more:_ring-gray-900 contrast-more:dark:_ring-gray-50 contrast-more:_contrast-150 _rounded-md" tabindex="0"><code class="nextra-code" dir="ltr"><span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">gem</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> install</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> graphql</span></span></code></pre><div class="_opacity-0 _transition [div:hover>&]:_opacity-100 focus-within:_opacity-100 _flex _gap-1 _absolute _right-4 _top-2"><button class="_transition _rounded-md _p-1.5 _border _border-gray-300 dark:_border-neutral-700 contrast-more:_border-gray-900 contrast-more:dark:_border-gray-50 md:_hidden" title="Toggle word wrap"><svg viewBox="0 0 24 24" width="24" height="24" class="_h-4 _w-auto"><path fill="currentColor" d="M4 19h6v-2H4v2zM20 5H4v2h16V5zm-3 6H4v2h13.25c1.1 0 2 .9 2 2s-.9 2-2 2H15v-2l-3 3l3 3v-2h2c2.21 0 4-1.79 4-4s-1.79-4-4-4z"></path></svg></button></div></div> <p class="[&:not(:first-child)]:_mt-6 _leading-7">Then run <code class="nextra-code" dir="ltr">ruby hello.rb</code> with this code in <code class="nextra-code" dir="ltr">hello.rb</code>:</p> <div class="nextra-code _relative [&:not(:first-child)]:_mt-6"><pre class="_overflow-x-auto _subpixel-antialiased _text-[.9em] _bg-white dark:_bg-black _py-4 _ring-1 _ring-inset _ring-gray-300 dark:_ring-neutral-700 contrast-more:_ring-gray-900 contrast-more:dark:_ring-gray-50 contrast-more:_contrast-150 _rounded-md" tabindex="0"><code class="nextra-code" dir="ltr"><span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">require</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> 'graphql'</span></span> <span> </span> <span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">class</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> QueryType</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> <</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> GraphQL::Schema::Object</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> field </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">:hello</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">, </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">String</span></span> <span> </span> <span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> def</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> hello</span></span> <span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> "Hello world!"</span></span> <span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> end</span></span> <span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">end</span></span> <span> </span> <span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">class</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> Schema</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> <</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> GraphQL::Schema</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> query </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">QueryType</span></span> <span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">end</span></span> <span> </span> <span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">puts</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> Schema</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">.execute(</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">'{ hello }'</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">).to_json</span></span></code></pre><div class="_opacity-0 _transition [div:hover>&]:_opacity-100 focus-within:_opacity-100 _flex _gap-1 _absolute _right-4 _top-2"><button class="_transition _rounded-md _p-1.5 _border _border-gray-300 dark:_border-neutral-700 contrast-more:_border-gray-900 contrast-more:dark:_border-gray-50 md:_hidden" title="Toggle word wrap"><svg viewBox="0 0 24 24" width="24" height="24" class="_h-4 _w-auto"><path fill="currentColor" d="M4 19h6v-2H4v2zM20 5H4v2h16V5zm-3 6H4v2h13.25c1.1 0 2 .9 2 2s-.9 2-2 2H15v-2l-3 3l3 3v-2h2c2.21 0 4-1.79 4-4s-1.79-4-4-4z"></path></svg></button></div></div> <p class="[&:not(:first-child)]:_mt-6 _leading-7">There are also nice bindings for Relay and Rails.</p></div></details></div><div class="border border-zinc-200 dark:border-[#414141] p-8 lg:p-12 bg-white dark:bg-neutral-800 rounded-none !p-0 h-max min-w-0"><div class="p-8 lg:p-12 flex flex-col gap-7 grow"><div class="flex items-center gap-6 [&_a:hover]:text-primary [&_a]:transition-colors"><span class="text-3xl font-extrabold grow break-all">GraphQL Tools</span><a href="https://graphql-tools.com" target="_blank" rel="noreferrer"><svg xmlns="http://www.w3.org/2000/svg" fill="currentColor" viewBox="0 0 24 24"><path d="M23.332 15.948C23.764 14.711 24 13.383 24 12a12 12 0 0 0-.706-4.056C21.627 3.317 17.194 0 12 0S2.373 3.317.706 7.944A11.949 11.949 0 0 0 0 12a12 12 0 0 0 .706 4.056C2.373 20.683 6.806 24 12 24s9.627-3.317 11.294-7.944a1 1 0 0 0 .038-.108M12 22.28c-.457 0-1.194-.827-1.81-2.675a19 19 0 0 1-.708-3.031h5.036a19 19 0 0 1-.708 3.031c-.616 1.848-1.353 2.675-1.81 2.675m-2.727-7.427A32 32 0 0 1 9.147 12c0-.98.043-1.936.126-2.853h5.454c.083.917.126 1.874.126 2.853s-.043 1.936-.126 2.854zM1.72 12c0-.99.141-1.947.403-2.853h5.425a33.5 33.5 0 0 0 0 5.707H2.123A10.3 10.3 0 0 1 1.72 12M12 1.72c.457 0 1.194.827 1.81 2.675.297.892.535 1.917.708 3.032H9.482c.173-1.115.411-2.14.708-3.032.616-1.848 1.353-2.675 1.81-2.675m4.452 7.427h5.425c.262.906.403 1.864.403 2.853s-.141 1.947-.403 2.854h-5.425a33.5 33.5 0 0 0 0-5.707m4.752-1.72h-4.95c-.305-2.11-.83-4.003-1.566-5.35 2.855.775 5.22 2.75 6.516 5.35M9.313 2.077c-.736 1.347-1.261 3.24-1.567 5.35h-4.95a10.33 10.33 0 0 1 6.517-5.35M2.795 16.574h4.95c.306 2.11.83 4.002 1.567 5.349a10.33 10.33 0 0 1-6.517-5.35m11.893 5.349c.736-1.347 1.261-3.24 1.567-5.35h4.95a10.33 10.33 0 0 1-6.517 5.35"></path></svg></a><a href="https://github.com/ardatan/graphql-tools" target="_blank" rel="noreferrer"><svg xmlns="http://www.w3.org/2000/svg" width="30" fill="currentColor" viewBox="0 0 30 30"><path fill-rule="evenodd" d="M15.1.413a14.81 14.81 0 0 0-4.684 28.862c.742.138 1.012-.32 1.012-.712 0-.35-.013-1.283-.02-2.518-4.12.893-4.99-1.987-4.99-1.987-.675-1.71-1.643-2.165-1.643-2.165-1.345-.918.1-.9.1-.9 1.488.105 2.27 1.525 2.27 1.525 1.32 2.265 3.466 1.61 4.31 1.23.133-.955.515-1.608.94-1.978-3.29-.375-6.747-1.645-6.747-7.32 0-1.615.577-2.937 1.525-3.975-.15-.372-.66-1.88.145-3.917 0 0 1.242-.4 4.075 1.517a14.3 14.3 0 0 1 3.705-.5 14.2 14.2 0 0 1 3.707.5c2.826-1.915 4.068-1.517 4.068-1.517.807 2.037.3 3.545.15 3.92.95 1.035 1.52 2.357 1.52 3.975 0 5.687-3.462 6.94-6.76 7.305.53.457 1.005 1.36 1.005 2.742 0 1.98-.02 3.575-.02 4.063 0 .395.267.857 1.02.712A14.816 14.816 0 0 0 15.101.413" clip-rule="evenodd"></path></svg></a><a href="https://npmjs.com/package/graphql-tools" target="_blank" rel="noreferrer"><svg xmlns="http://www.w3.org/2000/svg" width="30" height="30" fill="currentColor"><path fill-rule="evenodd" d="M0 0v30h30V0zm24.375 5.625H5.625v18.75H15v-15h5.625v15h3.75z" clip-rule="evenodd"></path></svg></a></div><div class="gap-2 flex roboto-mono"><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=javascript">JavaScript</a><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=tools">Tools</a></div><span class="[&_a]:text-primary grow line-clamp-4 lg:text-lg">A set of utils for faster development of GraphQL tools (Schema and documents loading, Schema merging and more).</span><div class="flex items-center gap-5 max-md:text-xs [&>:not(:last-child)]:border-r [&>:not(:last-child)]:border-gray-500 [&>:not(:last-child)]:pr-5"><span>Last release <!-- -->4 days ago</span><span class="flex items-center gap-1"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="19" fill="currentColor" class="text-primary"><path d="m10 .5 2.997 5.874L19.51 7.41l-4.66 4.666 1.027 6.514L10 15.6l-5.878 2.99 1.028-6.514L.489 7.41l6.513-1.036z"></path></svg>5k</span><span>MIT License</span></div></div></div><div class="border border-zinc-200 dark:border-[#414141] p-8 lg:p-12 bg-white dark:bg-neutral-800 rounded-none !p-0 h-max min-w-0"><div class="p-8 lg:p-12 flex flex-col gap-7 grow"><div class="flex items-center gap-6 [&_a:hover]:text-primary [&_a]:transition-colors"><span class="text-3xl font-extrabold grow break-all">Banana Cake Pop</span><a href="https://bananacakepop.com" target="_blank" rel="noreferrer"><svg xmlns="http://www.w3.org/2000/svg" fill="currentColor" viewBox="0 0 24 24"><path d="M23.332 15.948C23.764 14.711 24 13.383 24 12a12 12 0 0 0-.706-4.056C21.627 3.317 17.194 0 12 0S2.373 3.317.706 7.944A11.949 11.949 0 0 0 0 12a12 12 0 0 0 .706 4.056C2.373 20.683 6.806 24 12 24s9.627-3.317 11.294-7.944a1 1 0 0 0 .038-.108M12 22.28c-.457 0-1.194-.827-1.81-2.675a19 19 0 0 1-.708-3.031h5.036a19 19 0 0 1-.708 3.031c-.616 1.848-1.353 2.675-1.81 2.675m-2.727-7.427A32 32 0 0 1 9.147 12c0-.98.043-1.936.126-2.853h5.454c.083.917.126 1.874.126 2.853s-.043 1.936-.126 2.854zM1.72 12c0-.99.141-1.947.403-2.853h5.425a33.5 33.5 0 0 0 0 5.707H2.123A10.3 10.3 0 0 1 1.72 12M12 1.72c.457 0 1.194.827 1.81 2.675.297.892.535 1.917.708 3.032H9.482c.173-1.115.411-2.14.708-3.032.616-1.848 1.353-2.675 1.81-2.675m4.452 7.427h5.425c.262.906.403 1.864.403 2.853s-.141 1.947-.403 2.854h-5.425a33.5 33.5 0 0 0 0-5.707m4.752-1.72h-4.95c-.305-2.11-.83-4.003-1.566-5.35 2.855.775 5.22 2.75 6.516 5.35M9.313 2.077c-.736 1.347-1.261 3.24-1.567 5.35h-4.95a10.33 10.33 0 0 1 6.517-5.35M2.795 16.574h4.95c.306 2.11.83 4.002 1.567 5.349a10.33 10.33 0 0 1-6.517-5.35m11.893 5.349c.736-1.347 1.261-3.24 1.567-5.35h4.95a10.33 10.33 0 0 1-6.517 5.35"></path></svg></a><a href="https://github.com/ChilliCream/hotchocolate" target="_blank" rel="noreferrer"><svg xmlns="http://www.w3.org/2000/svg" width="30" fill="currentColor" viewBox="0 0 30 30"><path fill-rule="evenodd" d="M15.1.413a14.81 14.81 0 0 0-4.684 28.862c.742.138 1.012-.32 1.012-.712 0-.35-.013-1.283-.02-2.518-4.12.893-4.99-1.987-4.99-1.987-.675-1.71-1.643-2.165-1.643-2.165-1.345-.918.1-.9.1-.9 1.488.105 2.27 1.525 2.27 1.525 1.32 2.265 3.466 1.61 4.31 1.23.133-.955.515-1.608.94-1.978-3.29-.375-6.747-1.645-6.747-7.32 0-1.615.577-2.937 1.525-3.975-.15-.372-.66-1.88.145-3.917 0 0 1.242-.4 4.075 1.517a14.3 14.3 0 0 1 3.705-.5 14.2 14.2 0 0 1 3.707.5c2.826-1.915 4.068-1.517 4.068-1.517.807 2.037.3 3.545.15 3.92.95 1.035 1.52 2.357 1.52 3.975 0 5.687-3.462 6.94-6.76 7.305.53.457 1.005 1.36 1.005 2.742 0 1.98-.02 3.575-.02 4.063 0 .395.267.857 1.02.712A14.816 14.816 0 0 0 15.101.413" clip-rule="evenodd"></path></svg></a></div><div class="gap-2 flex roboto-mono"><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=services">Services</a></div><span class="[&_a]:text-primary grow line-clamp-4 lg:text-lg">A feature-rich GraphQL IDE by <a href="https://chillicream.com">ChilliCream</a> that let's you explore, manage, and test your GraphQL APIs. Check it out <a href="https://bananacakepop.com">here</a>.</span><div class="flex items-center gap-5 max-md:text-xs [&>:not(:last-child)]:border-r [&>:not(:last-child)]:border-gray-500 [&>:not(:last-child)]:pr-5"><span>Last release <!-- -->6 days ago</span><span class="flex items-center gap-1"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="19" fill="currentColor" class="text-primary"><path d="m10 .5 2.997 5.874L19.51 7.41l-4.66 4.666 1.027 6.514L10 15.6l-5.878 2.99 1.028-6.514L.489 7.41l6.513-1.036z"></path></svg>5k</span><span>MIT License</span></div></div></div><div class="border border-zinc-200 dark:border-[#414141] p-8 lg:p-12 bg-white dark:bg-neutral-800 rounded-none !p-0 h-max min-w-0"><div class="p-8 lg:p-12 flex flex-col gap-7 grow"><div class="flex items-center gap-6 [&_a:hover]:text-primary [&_a]:transition-colors"><span class="text-3xl font-extrabold grow break-all">Strawberry Shake</span><a href="https://chillicream.com/docs/strawberryshake/" target="_blank" rel="noreferrer"><svg xmlns="http://www.w3.org/2000/svg" fill="currentColor" viewBox="0 0 24 24"><path d="M23.332 15.948C23.764 14.711 24 13.383 24 12a12 12 0 0 0-.706-4.056C21.627 3.317 17.194 0 12 0S2.373 3.317.706 7.944A11.949 11.949 0 0 0 0 12a12 12 0 0 0 .706 4.056C2.373 20.683 6.806 24 12 24s9.627-3.317 11.294-7.944a1 1 0 0 0 .038-.108M12 22.28c-.457 0-1.194-.827-1.81-2.675a19 19 0 0 1-.708-3.031h5.036a19 19 0 0 1-.708 3.031c-.616 1.848-1.353 2.675-1.81 2.675m-2.727-7.427A32 32 0 0 1 9.147 12c0-.98.043-1.936.126-2.853h5.454c.083.917.126 1.874.126 2.853s-.043 1.936-.126 2.854zM1.72 12c0-.99.141-1.947.403-2.853h5.425a33.5 33.5 0 0 0 0 5.707H2.123A10.3 10.3 0 0 1 1.72 12M12 1.72c.457 0 1.194.827 1.81 2.675.297.892.535 1.917.708 3.032H9.482c.173-1.115.411-2.14.708-3.032.616-1.848 1.353-2.675 1.81-2.675m4.452 7.427h5.425c.262.906.403 1.864.403 2.853s-.141 1.947-.403 2.854h-5.425a33.5 33.5 0 0 0 0-5.707m4.752-1.72h-4.95c-.305-2.11-.83-4.003-1.566-5.35 2.855.775 5.22 2.75 6.516 5.35M9.313 2.077c-.736 1.347-1.261 3.24-1.567 5.35h-4.95a10.33 10.33 0 0 1 6.517-5.35M2.795 16.574h4.95c.306 2.11.83 4.002 1.567 5.349a10.33 10.33 0 0 1-6.517-5.35m11.893 5.349c.736-1.347 1.261-3.24 1.567-5.35h4.95a10.33 10.33 0 0 1-6.517 5.35"></path></svg></a><a href="https://github.com/ChilliCream/hotchocolate" target="_blank" rel="noreferrer"><svg xmlns="http://www.w3.org/2000/svg" width="30" fill="currentColor" viewBox="0 0 30 30"><path fill-rule="evenodd" d="M15.1.413a14.81 14.81 0 0 0-4.684 28.862c.742.138 1.012-.32 1.012-.712 0-.35-.013-1.283-.02-2.518-4.12.893-4.99-1.987-4.99-1.987-.675-1.71-1.643-2.165-1.643-2.165-1.345-.918.1-.9.1-.9 1.488.105 2.27 1.525 2.27 1.525 1.32 2.265 3.466 1.61 4.31 1.23.133-.955.515-1.608.94-1.978-3.29-.375-6.747-1.645-6.747-7.32 0-1.615.577-2.937 1.525-3.975-.15-.372-.66-1.88.145-3.917 0 0 1.242-.4 4.075 1.517a14.3 14.3 0 0 1 3.705-.5 14.2 14.2 0 0 1 3.707.5c2.826-1.915 4.068-1.517 4.068-1.517.807 2.037.3 3.545.15 3.92.95 1.035 1.52 2.357 1.52 3.975 0 5.687-3.462 6.94-6.76 7.305.53.457 1.005 1.36 1.005 2.742 0 1.98-.02 3.575-.02 4.063 0 .395.267.857 1.02.712A14.816 14.816 0 0 0 15.101.413" clip-rule="evenodd"></path></svg></a></div><div class="gap-2 flex roboto-mono"><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=c-net">C# / .NET</a><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=client">Client</a></div><span class="[&_a]:text-primary grow line-clamp-4 lg:text-lg">Strawberry Shake is a open-source reactive GraphQL client for .NET</span><div class="flex items-center gap-5 max-md:text-xs [&>:not(:last-child)]:border-r [&>:not(:last-child)]:border-gray-500 [&>:not(:last-child)]:pr-5"><span>Last release <!-- -->6 days ago</span><span class="flex items-center gap-1"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="19" fill="currentColor" class="text-primary"><path d="m10 .5 2.997 5.874L19.51 7.41l-4.66 4.666 1.027 6.514L10 15.6l-5.878 2.99 1.028-6.514L.489 7.41l6.513-1.036z"></path></svg>5k</span><span>MIT License</span></div></div><details class="bg-[#f0f0f0] dark:bg-[#2f2f2f]"><summary class="flex justify-between font-bold text-primary px-8 lg:px-12 py-5 dark:[[open]>&]:shadow-[-5px_10px_30px_20px_#1b1b1b4d] [[open]>&]:shadow-[0_6px_21px_0_#1b1b1b33] cursor-pointer">README<svg xmlns="http://www.w3.org/2000/svg" fill="currentColor" viewBox="0 0 15 15" class="size-5 -rotate-90 [[open]>*>&]:rotate-90 transition-transform"><path fill-rule="evenodd" d="M8.842 3.135a.5.5 0 0 1 .023.707L5.435 7.5l3.43 3.658a.5.5 0 0 1-.73.684l-3.75-4a.5.5 0 0 1 0-.684l3.75-4a.5.5 0 0 1 .707-.023" clip-rule="evenodd"></path></svg></summary><div class="px-8 lg:px-12 py-5"><p class="[&:not(:first-child)]:_mt-6 _leading-7">Strawberry Shake removes the complexity of state management and lets you interact with local and remote data through GraphQL.</p> <p class="[&:not(:first-child)]:_mt-6 _leading-7">You can use Strawberry Shake to:</p> <ul class="[:is(ol,ul)_&]:_my-3 [&:not(:first-child)]:_mt-6 _list-disc ltr:_ml-6 rtl:_mr-6"> <li class="_my-2">Generate a C# client from your GraphQL queries.</li> <li class="_my-2">Interact with local and remote data through GraphQL.</li> <li class="_my-2">Use reactive APIs to interact with your state.</li> </ul> <div class="nextra-code _relative [&:not(:first-child)]:_mt-6"><pre class="_overflow-x-auto _subpixel-antialiased _text-[.9em] _bg-white dark:_bg-black _py-4 _ring-1 _ring-inset _ring-gray-300 dark:_ring-neutral-700 contrast-more:_ring-gray-900 contrast-more:dark:_ring-gray-50 contrast-more:_contrast-150 _rounded-md" tabindex="0"><code class="nextra-code" dir="ltr"><span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">client.GetHero</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> .</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">Watch</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(ExecutionStrategy.CacheFirst)</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> .</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">Subscribe</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">result</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> =></span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> {</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> Console.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">WriteLine</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(result.Data.Name);</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> })</span></span></code></pre><div class="_opacity-0 _transition [div:hover>&]:_opacity-100 focus-within:_opacity-100 _flex _gap-1 _absolute _right-4 _top-2"><button class="_transition _rounded-md _p-1.5 _border _border-gray-300 dark:_border-neutral-700 contrast-more:_border-gray-900 contrast-more:dark:_border-gray-50 md:_hidden" title="Toggle word wrap"><svg viewBox="0 0 24 24" width="24" height="24" class="_h-4 _w-auto"><path fill="currentColor" d="M4 19h6v-2H4v2zM20 5H4v2h16V5zm-3 6H4v2h13.25c1.1 0 2 .9 2 2s-.9 2-2 2H15v-2l-3 3l3 3v-2h2c2.21 0 4-1.79 4-4s-1.79-4-4-4z"></path></svg></button></div></div></div></details></div><div class="border border-zinc-200 dark:border-[#414141] p-8 lg:p-12 bg-white dark:bg-neutral-800 rounded-none !p-0 h-max min-w-0"><div class="p-8 lg:p-12 flex flex-col gap-7 grow"><div class="flex items-center gap-6 [&_a:hover]:text-primary [&_a]:transition-colors"><span class="text-3xl font-extrabold grow break-all">Hot Chocolate</span><a href="https://chillicream.com/docs/hotchocolate/" target="_blank" rel="noreferrer"><svg xmlns="http://www.w3.org/2000/svg" fill="currentColor" viewBox="0 0 24 24"><path d="M23.332 15.948C23.764 14.711 24 13.383 24 12a12 12 0 0 0-.706-4.056C21.627 3.317 17.194 0 12 0S2.373 3.317.706 7.944A11.949 11.949 0 0 0 0 12a12 12 0 0 0 .706 4.056C2.373 20.683 6.806 24 12 24s9.627-3.317 11.294-7.944a1 1 0 0 0 .038-.108M12 22.28c-.457 0-1.194-.827-1.81-2.675a19 19 0 0 1-.708-3.031h5.036a19 19 0 0 1-.708 3.031c-.616 1.848-1.353 2.675-1.81 2.675m-2.727-7.427A32 32 0 0 1 9.147 12c0-.98.043-1.936.126-2.853h5.454c.083.917.126 1.874.126 2.853s-.043 1.936-.126 2.854zM1.72 12c0-.99.141-1.947.403-2.853h5.425a33.5 33.5 0 0 0 0 5.707H2.123A10.3 10.3 0 0 1 1.72 12M12 1.72c.457 0 1.194.827 1.81 2.675.297.892.535 1.917.708 3.032H9.482c.173-1.115.411-2.14.708-3.032.616-1.848 1.353-2.675 1.81-2.675m4.452 7.427h5.425c.262.906.403 1.864.403 2.853s-.141 1.947-.403 2.854h-5.425a33.5 33.5 0 0 0 0-5.707m4.752-1.72h-4.95c-.305-2.11-.83-4.003-1.566-5.35 2.855.775 5.22 2.75 6.516 5.35M9.313 2.077c-.736 1.347-1.261 3.24-1.567 5.35h-4.95a10.33 10.33 0 0 1 6.517-5.35M2.795 16.574h4.95c.306 2.11.83 4.002 1.567 5.349a10.33 10.33 0 0 1-6.517-5.35m11.893 5.349c.736-1.347 1.261-3.24 1.567-5.35h4.95a10.33 10.33 0 0 1-6.517 5.35"></path></svg></a><a href="https://github.com/ChilliCream/hotchocolate" target="_blank" rel="noreferrer"><svg xmlns="http://www.w3.org/2000/svg" width="30" fill="currentColor" viewBox="0 0 30 30"><path fill-rule="evenodd" d="M15.1.413a14.81 14.81 0 0 0-4.684 28.862c.742.138 1.012-.32 1.012-.712 0-.35-.013-1.283-.02-2.518-4.12.893-4.99-1.987-4.99-1.987-.675-1.71-1.643-2.165-1.643-2.165-1.345-.918.1-.9.1-.9 1.488.105 2.27 1.525 2.27 1.525 1.32 2.265 3.466 1.61 4.31 1.23.133-.955.515-1.608.94-1.978-3.29-.375-6.747-1.645-6.747-7.32 0-1.615.577-2.937 1.525-3.975-.15-.372-.66-1.88.145-3.917 0 0 1.242-.4 4.075 1.517a14.3 14.3 0 0 1 3.705-.5 14.2 14.2 0 0 1 3.707.5c2.826-1.915 4.068-1.517 4.068-1.517.807 2.037.3 3.545.15 3.92.95 1.035 1.52 2.357 1.52 3.975 0 5.687-3.462 6.94-6.76 7.305.53.457 1.005 1.36 1.005 2.742 0 1.98-.02 3.575-.02 4.063 0 .395.267.857 1.02.712A14.816 14.816 0 0 0 15.101.413" clip-rule="evenodd"></path></svg></a></div><div class="gap-2 flex roboto-mono"><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=c-net">C# / .NET</a><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=server">Server</a></div><span class="[&_a]:text-primary grow line-clamp-4 lg:text-lg">Hot Chocolate is an open-source GraphQL Server for .NET</span><div class="flex items-center gap-5 max-md:text-xs [&>:not(:last-child)]:border-r [&>:not(:last-child)]:border-gray-500 [&>:not(:last-child)]:pr-5"><span>Last release <!-- -->6 days ago</span><span class="flex items-center gap-1"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="19" fill="currentColor" class="text-primary"><path d="m10 .5 2.997 5.874L19.51 7.41l-4.66 4.666 1.027 6.514L10 15.6l-5.878 2.99 1.028-6.514L.489 7.41l6.513-1.036z"></path></svg>5k</span><span>MIT License</span></div></div><details class="bg-[#f0f0f0] dark:bg-[#2f2f2f]"><summary class="flex justify-between font-bold text-primary px-8 lg:px-12 py-5 dark:[[open]>&]:shadow-[-5px_10px_30px_20px_#1b1b1b4d] [[open]>&]:shadow-[0_6px_21px_0_#1b1b1b33] cursor-pointer">README<svg xmlns="http://www.w3.org/2000/svg" fill="currentColor" viewBox="0 0 15 15" class="size-5 -rotate-90 [[open]>*>&]:rotate-90 transition-transform"><path fill-rule="evenodd" d="M8.842 3.135a.5.5 0 0 1 .023.707L5.435 7.5l3.43 3.658a.5.5 0 0 1-.73.684l-3.75-4a.5.5 0 0 1 0-.684l3.75-4a.5.5 0 0 1 .707-.023" clip-rule="evenodd"></path></svg></summary><div class="px-8 lg:px-12 py-5"><p class="[&:not(:first-child)]:_mt-6 _leading-7">Hot Chocolate takes the complexity away from building a fully-fledged GraphQL server and lets you focus on delivering the next big thing.</p> <div class="nextra-code _relative [&:not(:first-child)]:_mt-6"><pre class="_overflow-x-auto _subpixel-antialiased _text-[.9em] _bg-white dark:_bg-black _py-4 _ring-1 _ring-inset _ring-gray-300 dark:_ring-neutral-700 contrast-more:_ring-gray-900 contrast-more:dark:_ring-gray-50 contrast-more:_contrast-150 _rounded-md" tabindex="0"><code class="nextra-code" dir="ltr"><span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">using</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> Microsoft</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">AspNetCore</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">;</span></span> <span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">using</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> Microsoft</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">AspNetCore</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">Hosting</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">;</span></span> <span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">using</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> Microsoft</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">AspNetCore</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">Builder</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">;</span></span> <span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">using</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> Microsoft</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">Extensions</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">DependencyInjection</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">;</span></span> <span> </span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">WebHost</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> .</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">CreateDefaultBuilder</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(args)</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> .</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">ConfigureServices</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">services</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> =></span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> services</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> .</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">AddGraphQLServer</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">()</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> .</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">AddQueryType</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"><</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">Query</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">>())</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> .</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">Configure</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">builder</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> =></span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> builder</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> .</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">UseRouting</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">()</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> .</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">UseEndpoints</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">e</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> =></span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> e.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">MapGraphQL</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">()))</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> .</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">Build</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">()</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> .</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">Run</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">();</span></span> <span> </span> <span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">public</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> class</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> Query</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">{</span></span> <span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> public</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> Hero</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> GetHero</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">() </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=></span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> new</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> Hero</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">();</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">}</span></span> <span> </span> <span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">public</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> class</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> Hero</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">{</span></span> <span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> public</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> string</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> Name</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> =></span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> "Luke Skywalker"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">;</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">}</span></span></code></pre><div class="_opacity-0 _transition [div:hover>&]:_opacity-100 focus-within:_opacity-100 _flex _gap-1 _absolute _right-4 _top-2"><button class="_transition _rounded-md _p-1.5 _border _border-gray-300 dark:_border-neutral-700 contrast-more:_border-gray-900 contrast-more:dark:_border-gray-50 md:_hidden" title="Toggle word wrap"><svg viewBox="0 0 24 24" width="24" height="24" class="_h-4 _w-auto"><path fill="currentColor" d="M4 19h6v-2H4v2zM20 5H4v2h16V5zm-3 6H4v2h13.25c1.1 0 2 .9 2 2s-.9 2-2 2H15v-2l-3 3l3 3v-2h2c2.21 0 4-1.79 4-4s-1.79-4-4-4z"></path></svg></button></div></div></div></details></div><div class="border border-zinc-200 dark:border-[#414141] p-8 lg:p-12 bg-white dark:bg-neutral-800 rounded-none !p-0 h-max min-w-0"><div class="p-8 lg:p-12 flex flex-col gap-7 grow"><div class="flex items-center gap-6 [&_a:hover]:text-primary [&_a]:transition-colors"><span class="text-3xl font-extrabold grow break-all">Altair</span><a href="https://altair.sirmuel.design/" target="_blank" rel="noreferrer"><svg xmlns="http://www.w3.org/2000/svg" fill="currentColor" viewBox="0 0 24 24"><path d="M23.332 15.948C23.764 14.711 24 13.383 24 12a12 12 0 0 0-.706-4.056C21.627 3.317 17.194 0 12 0S2.373 3.317.706 7.944A11.949 11.949 0 0 0 0 12a12 12 0 0 0 .706 4.056C2.373 20.683 6.806 24 12 24s9.627-3.317 11.294-7.944a1 1 0 0 0 .038-.108M12 22.28c-.457 0-1.194-.827-1.81-2.675a19 19 0 0 1-.708-3.031h5.036a19 19 0 0 1-.708 3.031c-.616 1.848-1.353 2.675-1.81 2.675m-2.727-7.427A32 32 0 0 1 9.147 12c0-.98.043-1.936.126-2.853h5.454c.083.917.126 1.874.126 2.853s-.043 1.936-.126 2.854zM1.72 12c0-.99.141-1.947.403-2.853h5.425a33.5 33.5 0 0 0 0 5.707H2.123A10.3 10.3 0 0 1 1.72 12M12 1.72c.457 0 1.194.827 1.81 2.675.297.892.535 1.917.708 3.032H9.482c.173-1.115.411-2.14.708-3.032.616-1.848 1.353-2.675 1.81-2.675m4.452 7.427h5.425c.262.906.403 1.864.403 2.853s-.141 1.947-.403 2.854h-5.425a33.5 33.5 0 0 0 0-5.707m4.752-1.72h-4.95c-.305-2.11-.83-4.003-1.566-5.35 2.855.775 5.22 2.75 6.516 5.35M9.313 2.077c-.736 1.347-1.261 3.24-1.567 5.35h-4.95a10.33 10.33 0 0 1 6.517-5.35M2.795 16.574h4.95c.306 2.11.83 4.002 1.567 5.349a10.33 10.33 0 0 1-6.517-5.35m11.893 5.349c.736-1.347 1.261-3.24 1.567-5.35h4.95a10.33 10.33 0 0 1-6.517 5.35"></path></svg></a><a href="https://github.com/altair-graphql/altair" target="_blank" rel="noreferrer"><svg xmlns="http://www.w3.org/2000/svg" width="30" fill="currentColor" viewBox="0 0 30 30"><path fill-rule="evenodd" d="M15.1.413a14.81 14.81 0 0 0-4.684 28.862c.742.138 1.012-.32 1.012-.712 0-.35-.013-1.283-.02-2.518-4.12.893-4.99-1.987-4.99-1.987-.675-1.71-1.643-2.165-1.643-2.165-1.345-.918.1-.9.1-.9 1.488.105 2.27 1.525 2.27 1.525 1.32 2.265 3.466 1.61 4.31 1.23.133-.955.515-1.608.94-1.978-3.29-.375-6.747-1.645-6.747-7.32 0-1.615.577-2.937 1.525-3.975-.15-.372-.66-1.88.145-3.917 0 0 1.242-.4 4.075 1.517a14.3 14.3 0 0 1 3.705-.5 14.2 14.2 0 0 1 3.707.5c2.826-1.915 4.068-1.517 4.068-1.517.807 2.037.3 3.545.15 3.92.95 1.035 1.52 2.357 1.52 3.975 0 5.687-3.462 6.94-6.76 7.305.53.457 1.005 1.36 1.005 2.742 0 1.98-.02 3.575-.02 4.063 0 .395.267.857 1.02.712A14.816 14.816 0 0 0 15.101.413" clip-rule="evenodd"></path></svg></a></div><div class="gap-2 flex roboto-mono"><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=services">Services</a></div><span class="[&_a]:text-primary grow line-clamp-4 lg:text-lg">An alternative to Postman that supports editing GraphQL queries directly and autoload your GraphQL schema.</span><div class="flex items-center gap-5 max-md:text-xs [&>:not(:last-child)]:border-r [&>:not(:last-child)]:border-gray-500 [&>:not(:last-child)]:pr-5"><span>Last release <!-- -->2 days ago</span><span class="flex items-center gap-1"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="19" fill="currentColor" class="text-primary"><path d="m10 .5 2.997 5.874L19.51 7.41l-4.66 4.666 1.027 6.514L10 15.6l-5.878 2.99 1.028-6.514L.489 7.41l6.513-1.036z"></path></svg>5k</span><span>MIT License</span></div></div></div><div class="border border-zinc-200 dark:border-[#414141] p-8 lg:p-12 bg-white dark:bg-neutral-800 rounded-none !p-0 h-max min-w-0"><div class="p-8 lg:p-12 flex flex-col gap-7 grow"><div class="flex items-center gap-6 [&_a:hover]:text-primary [&_a]:transition-colors"><span class="text-3xl font-extrabold grow break-all">graph-gophers/graphql-go</span><a href="https://github.com/graph-gophers/graphql-go" target="_blank" rel="noreferrer"><svg xmlns="http://www.w3.org/2000/svg" width="30" fill="currentColor" viewBox="0 0 30 30"><path fill-rule="evenodd" d="M15.1.413a14.81 14.81 0 0 0-4.684 28.862c.742.138 1.012-.32 1.012-.712 0-.35-.013-1.283-.02-2.518-4.12.893-4.99-1.987-4.99-1.987-.675-1.71-1.643-2.165-1.643-2.165-1.345-.918.1-.9.1-.9 1.488.105 2.27 1.525 2.27 1.525 1.32 2.265 3.466 1.61 4.31 1.23.133-.955.515-1.608.94-1.978-3.29-.375-6.747-1.645-6.747-7.32 0-1.615.577-2.937 1.525-3.975-.15-.372-.66-1.88.145-3.917 0 0 1.242-.4 4.075 1.517a14.3 14.3 0 0 1 3.705-.5 14.2 14.2 0 0 1 3.707.5c2.826-1.915 4.068-1.517 4.068-1.517.807 2.037.3 3.545.15 3.92.95 1.035 1.52 2.357 1.52 3.975 0 5.687-3.462 6.94-6.76 7.305.53.457 1.005 1.36 1.005 2.742 0 1.98-.02 3.575-.02 4.063 0 .395.267.857 1.02.712A14.816 14.816 0 0 0 15.101.413" clip-rule="evenodd"></path></svg></a></div><div class="gap-2 flex roboto-mono"><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=go">Go</a><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=server">Server</a></div><span class="[&_a]:text-primary grow line-clamp-4 lg:text-lg">GraphQL server with a focus on ease of use.</span><div class="flex items-center gap-5 max-md:text-xs [&>:not(:last-child)]:border-r [&>:not(:last-child)]:border-gray-500 [&>:not(:last-child)]:pr-5"><span>Last release <!-- -->1 year ago</span><span class="flex items-center gap-1"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="19" fill="currentColor" class="text-primary"><path d="m10 .5 2.997 5.874L19.51 7.41l-4.66 4.666 1.027 6.514L10 15.6l-5.878 2.99 1.028-6.514L.489 7.41l6.513-1.036z"></path></svg>5k</span><span>BSD 2-Clause "Simplified" License</span></div></div></div><div class="border border-zinc-200 dark:border-[#414141] p-8 lg:p-12 bg-white dark:bg-neutral-800 rounded-none !p-0 h-max min-w-0"><div class="p-8 lg:p-12 flex flex-col gap-7 grow"><div class="flex items-center gap-6 [&_a:hover]:text-primary [&_a]:transition-colors"><span class="text-3xl font-extrabold grow break-all">graphql-php</span><a href="https://github.com/webonyx/graphql-php" target="_blank" rel="noreferrer"><svg xmlns="http://www.w3.org/2000/svg" width="30" fill="currentColor" viewBox="0 0 30 30"><path fill-rule="evenodd" d="M15.1.413a14.81 14.81 0 0 0-4.684 28.862c.742.138 1.012-.32 1.012-.712 0-.35-.013-1.283-.02-2.518-4.12.893-4.99-1.987-4.99-1.987-.675-1.71-1.643-2.165-1.643-2.165-1.345-.918.1-.9.1-.9 1.488.105 2.27 1.525 2.27 1.525 1.32 2.265 3.466 1.61 4.31 1.23.133-.955.515-1.608.94-1.978-3.29-.375-6.747-1.645-6.747-7.32 0-1.615.577-2.937 1.525-3.975-.15-.372-.66-1.88.145-3.917 0 0 1.242-.4 4.075 1.517a14.3 14.3 0 0 1 3.705-.5 14.2 14.2 0 0 1 3.707.5c2.826-1.915 4.068-1.517 4.068-1.517.807 2.037.3 3.545.15 3.92.95 1.035 1.52 2.357 1.52 3.975 0 5.687-3.462 6.94-6.76 7.305.53.457 1.005 1.36 1.005 2.742 0 1.98-.02 3.575-.02 4.063 0 .395.267.857 1.02.712A14.816 14.816 0 0 0 15.101.413" clip-rule="evenodd"></path></svg></a></div><div class="gap-2 flex roboto-mono"><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=php">PHP</a><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=server">Server</a></div><span class="[&_a]:text-primary grow line-clamp-4 lg:text-lg">A PHP port of GraphQL reference implementation</span><div class="flex items-center gap-5 max-md:text-xs [&>:not(:last-child)]:border-r [&>:not(:last-child)]:border-gray-500 [&>:not(:last-child)]:pr-5"><span>Last release <!-- -->1 week ago</span><span class="flex items-center gap-1"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="19" fill="currentColor" class="text-primary"><path d="m10 .5 2.997 5.874L19.51 7.41l-4.66 4.666 1.027 6.514L10 15.6l-5.878 2.99 1.028-6.514L.489 7.41l6.513-1.036z"></path></svg>5k</span><span>MIT License</span></div></div></div><div class="border border-zinc-200 dark:border-[#414141] p-8 lg:p-12 bg-white dark:bg-neutral-800 rounded-none !p-0 h-max min-w-0"><div class="p-8 lg:p-12 flex flex-col gap-7 grow"><div class="flex items-center gap-6 [&_a:hover]:text-primary [&_a]:transition-colors"><span class="text-3xl font-extrabold grow break-all">absinthe</span><a href="https://github.com/absinthe-graphql/absinthe" target="_blank" rel="noreferrer"><svg xmlns="http://www.w3.org/2000/svg" width="30" fill="currentColor" viewBox="0 0 30 30"><path fill-rule="evenodd" d="M15.1.413a14.81 14.81 0 0 0-4.684 28.862c.742.138 1.012-.32 1.012-.712 0-.35-.013-1.283-.02-2.518-4.12.893-4.99-1.987-4.99-1.987-.675-1.71-1.643-2.165-1.643-2.165-1.345-.918.1-.9.1-.9 1.488.105 2.27 1.525 2.27 1.525 1.32 2.265 3.466 1.61 4.31 1.23.133-.955.515-1.608.94-1.978-3.29-.375-6.747-1.645-6.747-7.32 0-1.615.577-2.937 1.525-3.975-.15-.372-.66-1.88.145-3.917 0 0 1.242-.4 4.075 1.517a14.3 14.3 0 0 1 3.705-.5 14.2 14.2 0 0 1 3.707.5c2.826-1.915 4.068-1.517 4.068-1.517.807 2.037.3 3.545.15 3.92.95 1.035 1.52 2.357 1.52 3.975 0 5.687-3.462 6.94-6.76 7.305.53.457 1.005 1.36 1.005 2.742 0 1.98-.02 3.575-.02 4.063 0 .395.267.857 1.02.712A14.816 14.816 0 0 0 15.101.413" clip-rule="evenodd"></path></svg></a></div><div class="gap-2 flex roboto-mono"><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=elixir">Elixir</a><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=server">Server</a></div><span class="[&_a]:text-primary grow line-clamp-4 lg:text-lg">GraphQL implementation for Elixir.</span><div class="flex items-center gap-5 max-md:text-xs [&>:not(:last-child)]:border-r [&>:not(:last-child)]:border-gray-500 [&>:not(:last-child)]:pr-5"><span>Last release <!-- -->4 months ago</span><span class="flex items-center gap-1"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="19" fill="currentColor" class="text-primary"><path d="m10 .5 2.997 5.874L19.51 7.41l-4.66 4.666 1.027 6.514L10 15.6l-5.878 2.99 1.028-6.514L.489 7.41l6.513-1.036z"></path></svg>4k</span><span>Other</span></div></div></div><div class="border border-zinc-200 dark:border-[#414141] p-8 lg:p-12 bg-white dark:bg-neutral-800 rounded-none !p-0 h-max min-w-0"><div class="p-8 lg:p-12 flex flex-col gap-7 grow"><div class="flex items-center gap-6 [&_a:hover]:text-primary [&_a]:transition-colors"><span class="text-3xl font-extrabold grow break-all">Strawberry</span><a href="https://strawberry.rocks" target="_blank" rel="noreferrer"><svg xmlns="http://www.w3.org/2000/svg" fill="currentColor" viewBox="0 0 24 24"><path d="M23.332 15.948C23.764 14.711 24 13.383 24 12a12 12 0 0 0-.706-4.056C21.627 3.317 17.194 0 12 0S2.373 3.317.706 7.944A11.949 11.949 0 0 0 0 12a12 12 0 0 0 .706 4.056C2.373 20.683 6.806 24 12 24s9.627-3.317 11.294-7.944a1 1 0 0 0 .038-.108M12 22.28c-.457 0-1.194-.827-1.81-2.675a19 19 0 0 1-.708-3.031h5.036a19 19 0 0 1-.708 3.031c-.616 1.848-1.353 2.675-1.81 2.675m-2.727-7.427A32 32 0 0 1 9.147 12c0-.98.043-1.936.126-2.853h5.454c.083.917.126 1.874.126 2.853s-.043 1.936-.126 2.854zM1.72 12c0-.99.141-1.947.403-2.853h5.425a33.5 33.5 0 0 0 0 5.707H2.123A10.3 10.3 0 0 1 1.72 12M12 1.72c.457 0 1.194.827 1.81 2.675.297.892.535 1.917.708 3.032H9.482c.173-1.115.411-2.14.708-3.032.616-1.848 1.353-2.675 1.81-2.675m4.452 7.427h5.425c.262.906.403 1.864.403 2.853s-.141 1.947-.403 2.854h-5.425a33.5 33.5 0 0 0 0-5.707m4.752-1.72h-4.95c-.305-2.11-.83-4.003-1.566-5.35 2.855.775 5.22 2.75 6.516 5.35M9.313 2.077c-.736 1.347-1.261 3.24-1.567 5.35h-4.95a10.33 10.33 0 0 1 6.517-5.35M2.795 16.574h4.95c.306 2.11.83 4.002 1.567 5.349a10.33 10.33 0 0 1-6.517-5.35m11.893 5.349c.736-1.347 1.261-3.24 1.567-5.35h4.95a10.33 10.33 0 0 1-6.517 5.35"></path></svg></a><a href="https://github.com/strawberry-graphql/strawberry" target="_blank" rel="noreferrer"><svg xmlns="http://www.w3.org/2000/svg" width="30" fill="currentColor" viewBox="0 0 30 30"><path fill-rule="evenodd" d="M15.1.413a14.81 14.81 0 0 0-4.684 28.862c.742.138 1.012-.32 1.012-.712 0-.35-.013-1.283-.02-2.518-4.12.893-4.99-1.987-4.99-1.987-.675-1.71-1.643-2.165-1.643-2.165-1.345-.918.1-.9.1-.9 1.488.105 2.27 1.525 2.27 1.525 1.32 2.265 3.466 1.61 4.31 1.23.133-.955.515-1.608.94-1.978-3.29-.375-6.747-1.645-6.747-7.32 0-1.615.577-2.937 1.525-3.975-.15-.372-.66-1.88.145-3.917 0 0 1.242-.4 4.075 1.517a14.3 14.3 0 0 1 3.705-.5 14.2 14.2 0 0 1 3.707.5c2.826-1.915 4.068-1.517 4.068-1.517.807 2.037.3 3.545.15 3.92.95 1.035 1.52 2.357 1.52 3.975 0 5.687-3.462 6.94-6.76 7.305.53.457 1.005 1.36 1.005 2.742 0 1.98-.02 3.575-.02 4.063 0 .395.267.857 1.02.712A14.816 14.816 0 0 0 15.101.413" clip-rule="evenodd"></path></svg></a></div><div class="gap-2 flex roboto-mono"><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=python">Python</a><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=server">Server</a></div><span class="[&_a]:text-primary grow line-clamp-4 lg:text-lg">Strawberry is a Python library for implementing code first GraphQL servers using modern Python features like type hints.</span><div class="flex items-center gap-5 max-md:text-xs [&>:not(:last-child)]:border-r [&>:not(:last-child)]:border-gray-500 [&>:not(:last-child)]:pr-5"><span>Last release <!-- -->3 days ago</span><span class="flex items-center gap-1"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="19" fill="currentColor" class="text-primary"><path d="m10 .5 2.997 5.874L19.51 7.41l-4.66 4.666 1.027 6.514L10 15.6l-5.878 2.99 1.028-6.514L.489 7.41l6.513-1.036z"></path></svg>4k</span><span>MIT License</span></div></div><details class="bg-[#f0f0f0] dark:bg-[#2f2f2f]"><summary class="flex justify-between font-bold text-primary px-8 lg:px-12 py-5 dark:[[open]>&]:shadow-[-5px_10px_30px_20px_#1b1b1b4d] [[open]>&]:shadow-[0_6px_21px_0_#1b1b1b33] cursor-pointer">README<svg xmlns="http://www.w3.org/2000/svg" fill="currentColor" viewBox="0 0 15 15" class="size-5 -rotate-90 [[open]>*>&]:rotate-90 transition-transform"><path fill-rule="evenodd" d="M8.842 3.135a.5.5 0 0 1 .023.707L5.435 7.5l3.43 3.658a.5.5 0 0 1-.73.684l-3.75-4a.5.5 0 0 1 0-.684l3.75-4a.5.5 0 0 1 .707-.023" clip-rule="evenodd"></path></svg></summary><div class="px-8 lg:px-12 py-5"><p class="[&:not(:first-child)]:_mt-6 _leading-7">Here’s an example of a Strawberry hello world, first install the library:</p> <div class="nextra-code _relative [&:not(:first-child)]:_mt-6"><pre class="_overflow-x-auto _subpixel-antialiased _text-[.9em] _bg-white dark:_bg-black _py-4 _ring-1 _ring-inset _ring-gray-300 dark:_ring-neutral-700 contrast-more:_ring-gray-900 contrast-more:dark:_ring-gray-50 contrast-more:_contrast-150 _rounded-md" tabindex="0"><code class="nextra-code" dir="ltr"><span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">pip</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> install</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> strawberry-graphql</span></span></code></pre><div class="_opacity-0 _transition [div:hover>&]:_opacity-100 focus-within:_opacity-100 _flex _gap-1 _absolute _right-4 _top-2"><button class="_transition _rounded-md _p-1.5 _border _border-gray-300 dark:_border-neutral-700 contrast-more:_border-gray-900 contrast-more:dark:_border-gray-50 md:_hidden" title="Toggle word wrap"><svg viewBox="0 0 24 24" width="24" height="24" class="_h-4 _w-auto"><path fill="currentColor" d="M4 19h6v-2H4v2zM20 5H4v2h16V5zm-3 6H4v2h13.25c1.1 0 2 .9 2 2s-.9 2-2 2H15v-2l-3 3l3 3v-2h2c2.21 0 4-1.79 4-4s-1.79-4-4-4z"></path></svg></button></div></div> <p class="[&:not(:first-child)]:_mt-6 _leading-7">Create an <code class="nextra-code" dir="ltr">app.py</code> file with this content:</p> <div class="nextra-code _relative [&:not(:first-child)]:_mt-6"><pre class="_overflow-x-auto _subpixel-antialiased _text-[.9em] _bg-white dark:_bg-black _py-4 _ring-1 _ring-inset _ring-gray-300 dark:_ring-neutral-700 contrast-more:_ring-gray-900 contrast-more:dark:_ring-gray-50 contrast-more:_contrast-150 _rounded-md" tabindex="0"><code class="nextra-code" dir="ltr"><span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">import</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> strawberry</span></span> <span> </span> <span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">@strawberry.type</span></span> <span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">class</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> Query</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">:</span></span> <span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> @strawberry.field</span></span> <span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> def</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> hello</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(self, name: </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">str</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> =</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> "World"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">) -> </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">str</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">:</span></span> <span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> return</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> f</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">"Hello </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">{</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">name</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">}</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">"</span></span> <span> </span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">schema </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> strawberry.Schema(</span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70">query</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">Query)</span></span></code></pre><div class="_opacity-0 _transition [div:hover>&]:_opacity-100 focus-within:_opacity-100 _flex _gap-1 _absolute _right-4 _top-2"><button class="_transition _rounded-md _p-1.5 _border _border-gray-300 dark:_border-neutral-700 contrast-more:_border-gray-900 contrast-more:dark:_border-gray-50 md:_hidden" title="Toggle word wrap"><svg viewBox="0 0 24 24" width="24" height="24" class="_h-4 _w-auto"><path fill="currentColor" d="M4 19h6v-2H4v2zM20 5H4v2h16V5zm-3 6H4v2h13.25c1.1 0 2 .9 2 2s-.9 2-2 2H15v-2l-3 3l3 3v-2h2c2.21 0 4-1.79 4-4s-1.79-4-4-4z"></path></svg></button></div></div> <p class="[&:not(:first-child)]:_mt-6 _leading-7">Then run <code class="nextra-code" dir="ltr">strawberry server app</code> and you will have a basic schema server running on <code class="nextra-code" dir="ltr">http://localhost:8000</code>.</p> <p class="[&:not(:first-child)]:_mt-6 _leading-7">Strawberry also has views for ASGI, Flask and Django and provides utilities like dataloaders and tracing.</p></div></details></div><div class="border border-zinc-200 dark:border-[#414141] p-8 lg:p-12 bg-white dark:bg-neutral-800 rounded-none !p-0 h-max min-w-0"><div class="p-8 lg:p-12 flex flex-col gap-7 grow"><div class="flex items-center gap-6 [&_a:hover]:text-primary [&_a]:transition-colors"><span class="text-3xl font-extrabold grow break-all">Apollo iOS</span><a href="https://www.apollographql.com/docs/ios/" target="_blank" rel="noreferrer"><svg xmlns="http://www.w3.org/2000/svg" fill="currentColor" viewBox="0 0 24 24"><path d="M23.332 15.948C23.764 14.711 24 13.383 24 12a12 12 0 0 0-.706-4.056C21.627 3.317 17.194 0 12 0S2.373 3.317.706 7.944A11.949 11.949 0 0 0 0 12a12 12 0 0 0 .706 4.056C2.373 20.683 6.806 24 12 24s9.627-3.317 11.294-7.944a1 1 0 0 0 .038-.108M12 22.28c-.457 0-1.194-.827-1.81-2.675a19 19 0 0 1-.708-3.031h5.036a19 19 0 0 1-.708 3.031c-.616 1.848-1.353 2.675-1.81 2.675m-2.727-7.427A32 32 0 0 1 9.147 12c0-.98.043-1.936.126-2.853h5.454c.083.917.126 1.874.126 2.853s-.043 1.936-.126 2.854zM1.72 12c0-.99.141-1.947.403-2.853h5.425a33.5 33.5 0 0 0 0 5.707H2.123A10.3 10.3 0 0 1 1.72 12M12 1.72c.457 0 1.194.827 1.81 2.675.297.892.535 1.917.708 3.032H9.482c.173-1.115.411-2.14.708-3.032.616-1.848 1.353-2.675 1.81-2.675m4.452 7.427h5.425c.262.906.403 1.864.403 2.853s-.141 1.947-.403 2.854h-5.425a33.5 33.5 0 0 0 0-5.707m4.752-1.72h-4.95c-.305-2.11-.83-4.003-1.566-5.35 2.855.775 5.22 2.75 6.516 5.35M9.313 2.077c-.736 1.347-1.261 3.24-1.567 5.35h-4.95a10.33 10.33 0 0 1 6.517-5.35M2.795 16.574h4.95c.306 2.11.83 4.002 1.567 5.349a10.33 10.33 0 0 1-6.517-5.35m11.893 5.349c.736-1.347 1.261-3.24 1.567-5.35h4.95a10.33 10.33 0 0 1-6.517 5.35"></path></svg></a><a href="https://github.com/apollographql/apollo-ios" target="_blank" rel="noreferrer"><svg xmlns="http://www.w3.org/2000/svg" width="30" fill="currentColor" viewBox="0 0 30 30"><path fill-rule="evenodd" d="M15.1.413a14.81 14.81 0 0 0-4.684 28.862c.742.138 1.012-.32 1.012-.712 0-.35-.013-1.283-.02-2.518-4.12.893-4.99-1.987-4.99-1.987-.675-1.71-1.643-2.165-1.643-2.165-1.345-.918.1-.9.1-.9 1.488.105 2.27 1.525 2.27 1.525 1.32 2.265 3.466 1.61 4.31 1.23.133-.955.515-1.608.94-1.978-3.29-.375-6.747-1.645-6.747-7.32 0-1.615.577-2.937 1.525-3.975-.15-.372-.66-1.88.145-3.917 0 0 1.242-.4 4.075 1.517a14.3 14.3 0 0 1 3.705-.5 14.2 14.2 0 0 1 3.707.5c2.826-1.915 4.068-1.517 4.068-1.517.807 2.037.3 3.545.15 3.92.95 1.035 1.52 2.357 1.52 3.975 0 5.687-3.462 6.94-6.76 7.305.53.457 1.005 1.36 1.005 2.742 0 1.98-.02 3.575-.02 4.063 0 .395.267.857 1.02.712A14.816 14.816 0 0 0 15.101.413" clip-rule="evenodd"></path></svg></a></div><div class="gap-2 flex roboto-mono"><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=swift-objective-c-ios">Swift / Objective-C</a><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=client">Client</a></div><span class="[&_a]:text-primary grow line-clamp-4 lg:text-lg">A GraphQL client for iOS that returns results as query-specific Swift types, and integrates with Xcode to show your Swift source and GraphQL side by side, with inline validation errors.</span><div class="flex items-center gap-5 max-md:text-xs [&>:not(:last-child)]:border-r [&>:not(:last-child)]:border-gray-500 [&>:not(:last-child)]:pr-5"><span>Last release <!-- -->2 weeks ago</span><span class="flex items-center gap-1"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="19" fill="currentColor" class="text-primary"><path d="m10 .5 2.997 5.874L19.51 7.41l-4.66 4.666 1.027 6.514L10 15.6l-5.878 2.99 1.028-6.514L.489 7.41l6.513-1.036z"></path></svg>4k</span><span>MIT License</span></div></div></div><div class="border border-zinc-200 dark:border-[#414141] p-8 lg:p-12 bg-white dark:bg-neutral-800 rounded-none !p-0 h-max min-w-0"><div class="p-8 lg:p-12 flex flex-col gap-7 grow"><div class="flex items-center gap-6 [&_a:hover]:text-primary [&_a]:transition-colors"><span class="text-3xl font-extrabold grow break-all">Apollo Kotlin</span><a href="https://github.com/apollographql/apollo-kotlin" target="_blank" rel="noreferrer"><svg xmlns="http://www.w3.org/2000/svg" width="30" fill="currentColor" viewBox="0 0 30 30"><path fill-rule="evenodd" d="M15.1.413a14.81 14.81 0 0 0-4.684 28.862c.742.138 1.012-.32 1.012-.712 0-.35-.013-1.283-.02-2.518-4.12.893-4.99-1.987-4.99-1.987-.675-1.71-1.643-2.165-1.643-2.165-1.345-.918.1-.9.1-.9 1.488.105 2.27 1.525 2.27 1.525 1.32 2.265 3.466 1.61 4.31 1.23.133-.955.515-1.608.94-1.978-3.29-.375-6.747-1.645-6.747-7.32 0-1.615.577-2.937 1.525-3.975-.15-.372-.66-1.88.145-3.917 0 0 1.242-.4 4.075 1.517a14.3 14.3 0 0 1 3.705-.5 14.2 14.2 0 0 1 3.707.5c2.826-1.915 4.068-1.517 4.068-1.517.807 2.037.3 3.545.15 3.92.95 1.035 1.52 2.357 1.52 3.975 0 5.687-3.462 6.94-6.76 7.305.53.457 1.005 1.36 1.005 2.742 0 1.98-.02 3.575-.02 4.063 0 .395.267.857 1.02.712A14.816 14.816 0 0 0 15.101.413" clip-rule="evenodd"></path></svg></a></div><div class="gap-2 flex roboto-mono"><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=java-kotlin-android">Java / Kotlin</a><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=client">Client</a></div><span class="[&_a]:text-primary grow line-clamp-4 lg:text-lg">A strongly-typed, caching GraphQL client for the JVM, Android, and Kotlin multiplatform.</span><div class="flex items-center gap-5 max-md:text-xs [&>:not(:last-child)]:border-r [&>:not(:last-child)]:border-gray-500 [&>:not(:last-child)]:pr-5"><span>Last release <!-- -->3 weeks ago</span><span class="flex items-center gap-1"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="19" fill="currentColor" class="text-primary"><path d="m10 .5 2.997 5.874L19.51 7.41l-4.66 4.666 1.027 6.514L10 15.6l-5.878 2.99 1.028-6.514L.489 7.41l6.513-1.036z"></path></svg>4k</span><span>MIT License</span></div></div><details class="bg-[#f0f0f0] dark:bg-[#2f2f2f]"><summary class="flex justify-between font-bold text-primary px-8 lg:px-12 py-5 dark:[[open]>&]:shadow-[-5px_10px_30px_20px_#1b1b1b4d] [[open]>&]:shadow-[0_6px_21px_0_#1b1b1b33] cursor-pointer">README<svg xmlns="http://www.w3.org/2000/svg" fill="currentColor" viewBox="0 0 15 15" class="size-5 -rotate-90 [[open]>*>&]:rotate-90 transition-transform"><path fill-rule="evenodd" d="M8.842 3.135a.5.5 0 0 1 .023.707L5.435 7.5l3.43 3.658a.5.5 0 0 1-.73.684l-3.75-4a.5.5 0 0 1 0-.684l3.75-4a.5.5 0 0 1 .707-.023" clip-rule="evenodd"></path></svg></summary><div class="px-8 lg:px-12 py-5"><p class="[&:not(:first-child)]:_mt-6 _leading-7">Apollo Kotlin (formerly known as Apollo Android) is a GraphQL client with support for Android, Java8+, iOS and Kotlin multiplatform in general. It features:</p> <ul class="[:is(ol,ul)_&]:_my-3 [&:not(:first-child)]:_mt-6 _list-disc ltr:_ml-6 rtl:_mr-6"> <li class="_my-2">Java and Kotlin Multiplatform code generation</li> <li class="_my-2">Queries, Mutations and Subscriptions</li> <li class="_my-2">Reflection-free parsing</li> <li class="_my-2">Normalized cache</li> <li class="_my-2">Custom scalar types</li> <li class="_my-2">HTTP cache</li> <li class="_my-2">Auto Persisted Queries</li> <li class="_my-2">Query batching</li> <li class="_my-2">File uploads</li> <li class="_my-2">Espresso IdlingResource</li> <li class="_my-2">Fake models for tests</li> <li class="_my-2">AppSync and graphql-ws websockets</li> <li class="_my-2">GraphQL AST parser</li> </ul></div></details></div><div class="border border-zinc-200 dark:border-[#414141] p-8 lg:p-12 bg-white dark:bg-neutral-800 rounded-none !p-0 h-max min-w-0"><div class="p-8 lg:p-12 flex flex-col gap-7 grow"><div class="flex items-center gap-6 [&_a:hover]:text-primary [&_a]:transition-colors"><span class="text-3xl font-extrabold grow break-all">WPGraphQL</span><a href="https://github.com/wp-graphql/wp-graphql" target="_blank" rel="noreferrer"><svg xmlns="http://www.w3.org/2000/svg" width="30" fill="currentColor" viewBox="0 0 30 30"><path fill-rule="evenodd" d="M15.1.413a14.81 14.81 0 0 0-4.684 28.862c.742.138 1.012-.32 1.012-.712 0-.35-.013-1.283-.02-2.518-4.12.893-4.99-1.987-4.99-1.987-.675-1.71-1.643-2.165-1.643-2.165-1.345-.918.1-.9.1-.9 1.488.105 2.27 1.525 2.27 1.525 1.32 2.265 3.466 1.61 4.31 1.23.133-.955.515-1.608.94-1.978-3.29-.375-6.747-1.645-6.747-7.32 0-1.615.577-2.937 1.525-3.975-.15-.372-.66-1.88.145-3.917 0 0 1.242-.4 4.075 1.517a14.3 14.3 0 0 1 3.705-.5 14.2 14.2 0 0 1 3.707.5c2.826-1.915 4.068-1.517 4.068-1.517.807 2.037.3 3.545.15 3.92.95 1.035 1.52 2.357 1.52 3.975 0 5.687-3.462 6.94-6.76 7.305.53.457 1.005 1.36 1.005 2.742 0 1.98-.02 3.575-.02 4.063 0 .395.267.857 1.02.712A14.816 14.816 0 0 0 15.101.413" clip-rule="evenodd"></path></svg></a></div><div class="gap-2 flex roboto-mono"><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=php">PHP</a><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=server">Server</a></div><span class="[&_a]:text-primary grow line-clamp-4 lg:text-lg">A free, open-source WordPress plugin that provides an extendable GraphQL schema and API for any WordPress site</span><div class="flex items-center gap-5 max-md:text-xs [&>:not(:last-child)]:border-r [&>:not(:last-child)]:border-gray-500 [&>:not(:last-child)]:pr-5"><span>Last release <!-- -->1 week ago</span><span class="flex items-center gap-1"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="19" fill="currentColor" class="text-primary"><path d="m10 .5 2.997 5.874L19.51 7.41l-4.66 4.666 1.027 6.514L10 15.6l-5.878 2.99 1.028-6.514L.489 7.41l6.513-1.036z"></path></svg>4k</span><span>GNU General Public License v3.0</span></div></div></div><div class="border border-zinc-200 dark:border-[#414141] p-8 lg:p-12 bg-white dark:bg-neutral-800 rounded-none !p-0 h-max min-w-0"><div class="p-8 lg:p-12 flex flex-col gap-7 grow"><div class="flex items-center gap-6 [&_a:hover]:text-primary [&_a]:transition-colors"><span class="text-3xl font-extrabold grow break-all">GraphQLShield</span><a href="https://github.com/maticzav/graphql-shield" target="_blank" rel="noreferrer"><svg xmlns="http://www.w3.org/2000/svg" width="30" fill="currentColor" viewBox="0 0 30 30"><path fill-rule="evenodd" d="M15.1.413a14.81 14.81 0 0 0-4.684 28.862c.742.138 1.012-.32 1.012-.712 0-.35-.013-1.283-.02-2.518-4.12.893-4.99-1.987-4.99-1.987-.675-1.71-1.643-2.165-1.643-2.165-1.345-.918.1-.9.1-.9 1.488.105 2.27 1.525 2.27 1.525 1.32 2.265 3.466 1.61 4.31 1.23.133-.955.515-1.608.94-1.978-3.29-.375-6.747-1.645-6.747-7.32 0-1.615.577-2.937 1.525-3.975-.15-.372-.66-1.88.145-3.917 0 0 1.242-.4 4.075 1.517a14.3 14.3 0 0 1 3.705-.5 14.2 14.2 0 0 1 3.707.5c2.826-1.915 4.068-1.517 4.068-1.517.807 2.037.3 3.545.15 3.92.95 1.035 1.52 2.357 1.52 3.975 0 5.687-3.462 6.94-6.76 7.305.53.457 1.005 1.36 1.005 2.742 0 1.98-.02 3.575-.02 4.063 0 .395.267.857 1.02.712A14.816 14.816 0 0 0 15.101.413" clip-rule="evenodd"></path></svg></a><a href="https://npmjs.com/package/graphql-shield" target="_blank" rel="noreferrer"><svg xmlns="http://www.w3.org/2000/svg" width="30" height="30" fill="currentColor"><path fill-rule="evenodd" d="M0 0v30h30V0zm24.375 5.625H5.625v18.75H15v-15h5.625v15h3.75z" clip-rule="evenodd"></path></svg></a></div><div class="gap-2 flex roboto-mono"><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=javascript">JavaScript</a><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=tools">Tools</a></div><span class="[&_a]:text-primary grow line-clamp-4 lg:text-lg">A GraphQL tool to ease the creation of permission layer.</span><div class="flex items-center gap-5 max-md:text-xs [&>:not(:last-child)]:border-r [&>:not(:last-child)]:border-gray-500 [&>:not(:last-child)]:pr-5"><span>Last release <!-- -->2 years ago</span><span class="flex items-center gap-1"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="19" fill="currentColor" class="text-primary"><path d="m10 .5 2.997 5.874L19.51 7.41l-4.66 4.666 1.027 6.514L10 15.6l-5.878 2.99 1.028-6.514L.489 7.41l6.513-1.036z"></path></svg>4k</span><span>MIT License</span></div></div><details class="bg-[#f0f0f0] dark:bg-[#2f2f2f]"><summary class="flex justify-between font-bold text-primary px-8 lg:px-12 py-5 dark:[[open]>&]:shadow-[-5px_10px_30px_20px_#1b1b1b4d] [[open]>&]:shadow-[0_6px_21px_0_#1b1b1b33] cursor-pointer">README<svg xmlns="http://www.w3.org/2000/svg" fill="currentColor" viewBox="0 0 15 15" class="size-5 -rotate-90 [[open]>*>&]:rotate-90 transition-transform"><path fill-rule="evenodd" d="M8.842 3.135a.5.5 0 0 1 .023.707L5.435 7.5l3.43 3.658a.5.5 0 0 1-.73.684l-3.75-4a.5.5 0 0 1 0-.684l3.75-4a.5.5 0 0 1 .707-.023" clip-rule="evenodd"></path></svg></summary><div class="px-8 lg:px-12 py-5"><p class="[&:not(:first-child)]:_mt-6 _leading-7">GraphQL Shield helps you create a permission layer for your application. Using an intuitive rule-API, you’ll gain the power of the shield engine on every request and reduce the load time of every request with smart caching. This way you can make sure your application will remain quick, and no internal data will be exposed.</p> <div class="nextra-code _relative [&:not(:first-child)]:_mt-6"><pre class="_overflow-x-auto _subpixel-antialiased _text-[.9em] _bg-white dark:_bg-black _py-4 _ring-1 _ring-inset _ring-gray-300 dark:_ring-neutral-700 contrast-more:_ring-gray-900 contrast-more:dark:_ring-gray-50 contrast-more:_contrast-150 _rounded-md" tabindex="0"><code class="nextra-code" dir="ltr"><span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">import</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> { rule, shield, and, or, not } </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">from</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> "graphql-shield"</span></span> <span> </span> <span><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D">// Rules</span></span> <span> </span> <span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">const</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> isAuthenticated</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> =</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> rule</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">({ cache: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">"contextual"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> })(</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">async</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> (</span></span> <span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70"> parent</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">,</span></span> <span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70"> args</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">,</span></span> <span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70"> ctx</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">,</span></span> <span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70"> info</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">,</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">) </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=></span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> {</span></span> <span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> return</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> ctx.user </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">!==</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> null</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">})</span></span> <span> </span> <span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">const</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> isAdmin</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> =</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> rule</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">({ cache: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">"contextual"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> })(</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">async</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> (</span></span> <span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70"> parent</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">,</span></span> <span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70"> args</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">,</span></span> <span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70"> ctx</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">,</span></span> <span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70"> info</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">,</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">) </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=></span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> {</span></span> <span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> return</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> ctx.user.role </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">===</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> "admin"</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">})</span></span> <span> </span> <span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">const</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> isEditor</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> =</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> rule</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">({ cache: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">"contextual"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> })(</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">async</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> (</span></span> <span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70"> parent</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">,</span></span> <span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70"> args</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">,</span></span> <span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70"> ctx</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">,</span></span> <span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70"> info</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">,</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">) </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=></span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> {</span></span> <span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> return</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> ctx.user.role </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">===</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> "editor"</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">})</span></span> <span> </span> <span><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D">// Permissions</span></span> <span> </span> <span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">const</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> permissions</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> =</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> shield</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">({</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> Query: {</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> frontPage: </span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">not</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(isAuthenticated),</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> fruits: </span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">and</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(isAuthenticated, </span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">or</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(isAdmin, isEditor)),</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> customers: </span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">and</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(isAuthenticated, isAdmin),</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> },</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> Mutation: {</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> addFruitToBasket: isAuthenticated,</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> },</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> Fruit: isAuthenticated,</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> Customer: isAdmin,</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">})</span></span> <span> </span> <span><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D">// Server</span></span> <span> </span> <span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">const</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> server</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> =</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> new</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> GraphQLServer</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">({</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> typeDefs,</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> resolvers,</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> middlewares: [permissions],</span></span> <span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> context</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">: </span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70">req</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> =></span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> ({</span></span> <span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> ...</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">req,</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> user: </span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">getUser</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(req),</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> }),</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">})</span></span></code></pre><div class="_opacity-0 _transition [div:hover>&]:_opacity-100 focus-within:_opacity-100 _flex _gap-1 _absolute _right-4 _top-2"><button class="_transition _rounded-md _p-1.5 _border _border-gray-300 dark:_border-neutral-700 contrast-more:_border-gray-900 contrast-more:dark:_border-gray-50 md:_hidden" title="Toggle word wrap"><svg viewBox="0 0 24 24" width="24" height="24" class="_h-4 _w-auto"><path fill="currentColor" d="M4 19h6v-2H4v2zM20 5H4v2h16V5zm-3 6H4v2h13.25c1.1 0 2 .9 2 2s-.9 2-2 2H15v-2l-3 3l3 3v-2h2c2.21 0 4-1.79 4-4s-1.79-4-4-4z"></path></svg></button></div></div></div></details></div><div class="border border-zinc-200 dark:border-[#414141] p-8 lg:p-12 bg-white dark:bg-neutral-800 rounded-none !p-0 h-max min-w-0"><div class="p-8 lg:p-12 flex flex-col gap-7 grow"><div class="flex items-center gap-6 [&_a:hover]:text-primary [&_a]:transition-colors"><span class="text-3xl font-extrabold grow break-all">Async-graphql</span><a href="https://github.com/async-graphql/async-graphql" target="_blank" rel="noreferrer"><svg xmlns="http://www.w3.org/2000/svg" width="30" fill="currentColor" viewBox="0 0 30 30"><path fill-rule="evenodd" d="M15.1.413a14.81 14.81 0 0 0-4.684 28.862c.742.138 1.012-.32 1.012-.712 0-.35-.013-1.283-.02-2.518-4.12.893-4.99-1.987-4.99-1.987-.675-1.71-1.643-2.165-1.643-2.165-1.345-.918.1-.9.1-.9 1.488.105 2.27 1.525 2.27 1.525 1.32 2.265 3.466 1.61 4.31 1.23.133-.955.515-1.608.94-1.978-3.29-.375-6.747-1.645-6.747-7.32 0-1.615.577-2.937 1.525-3.975-.15-.372-.66-1.88.145-3.917 0 0 1.242-.4 4.075 1.517a14.3 14.3 0 0 1 3.705-.5 14.2 14.2 0 0 1 3.707.5c2.826-1.915 4.068-1.517 4.068-1.517.807 2.037.3 3.545.15 3.92.95 1.035 1.52 2.357 1.52 3.975 0 5.687-3.462 6.94-6.76 7.305.53.457 1.005 1.36 1.005 2.742 0 1.98-.02 3.575-.02 4.063 0 .395.267.857 1.02.712A14.816 14.816 0 0 0 15.101.413" clip-rule="evenodd"></path></svg></a></div><div class="gap-2 flex roboto-mono"><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=rust">Rust</a><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=server">Server</a></div><span class="[&_a]:text-primary grow line-clamp-4 lg:text-lg">Async-graphql is a high-performance server-side library that supports all GraphQL specifications.</span><div class="flex items-center gap-5 max-md:text-xs [&>:not(:last-child)]:border-r [&>:not(:last-child)]:border-gray-500 [&>:not(:last-child)]:pr-5"><span class="flex items-center gap-1"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="19" fill="currentColor" class="text-primary"><path d="m10 .5 2.997 5.874L19.51 7.41l-4.66 4.666 1.027 6.514L10 15.6l-5.878 2.99 1.028-6.514L.489 7.41l6.513-1.036z"></path></svg>3k</span><span>Apache License 2.0</span></div></div><details class="bg-[#f0f0f0] dark:bg-[#2f2f2f]"><summary class="flex justify-between font-bold text-primary px-8 lg:px-12 py-5 dark:[[open]>&]:shadow-[-5px_10px_30px_20px_#1b1b1b4d] [[open]>&]:shadow-[0_6px_21px_0_#1b1b1b33] cursor-pointer">README<svg xmlns="http://www.w3.org/2000/svg" fill="currentColor" viewBox="0 0 15 15" class="size-5 -rotate-90 [[open]>*>&]:rotate-90 transition-transform"><path fill-rule="evenodd" d="M8.842 3.135a.5.5 0 0 1 .023.707L5.435 7.5l3.43 3.658a.5.5 0 0 1-.73.684l-3.75-4a.5.5 0 0 1 0-.684l3.75-4a.5.5 0 0 1 .707-.023" clip-rule="evenodd"></path></svg></summary><div class="px-8 lg:px-12 py-5"><div class="nextra-code _relative [&:not(:first-child)]:_mt-6"><pre class="_overflow-x-auto _subpixel-antialiased _text-[.9em] _bg-white dark:_bg-black _py-4 _ring-1 _ring-inset _ring-gray-300 dark:_ring-neutral-700 contrast-more:_ring-gray-900 contrast-more:dark:_ring-gray-50 contrast-more:_contrast-150 _rounded-md" tabindex="0"><code class="nextra-code" dir="ltr"><span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> use</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> async_graphql</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">::*</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">;</span></span> <span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> struct</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> Query</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">;</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> #[</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">Object</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">]</span></span> <span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> impl</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> Query</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> {</span></span> <span><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D"> /// Returns the sum of a and b</span></span> <span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> async</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> fn</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> add</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">&</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">self</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">, a</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">:</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> i32</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">, b</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">:</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> i32</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">) </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">-></span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> i32</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> {</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> a </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">+</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> b</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> }</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> }</span></span></code></pre><div class="_opacity-0 _transition [div:hover>&]:_opacity-100 focus-within:_opacity-100 _flex _gap-1 _absolute _right-4 _top-2"><button class="_transition _rounded-md _p-1.5 _border _border-gray-300 dark:_border-neutral-700 contrast-more:_border-gray-900 contrast-more:dark:_border-gray-50 md:_hidden" title="Toggle word wrap"><svg viewBox="0 0 24 24" width="24" height="24" class="_h-4 _w-auto"><path fill="currentColor" d="M4 19h6v-2H4v2zM20 5H4v2h16V5zm-3 6H4v2h13.25c1.1 0 2 .9 2 2s-.9 2-2 2H15v-2l-3 3l3 3v-2h2c2.21 0 4-1.79 4-4s-1.79-4-4-4z"></path></svg></button></div></div></div></details></div><div class="border border-zinc-200 dark:border-[#414141] p-8 lg:p-12 bg-white dark:bg-neutral-800 rounded-none !p-0 h-max min-w-0"><div class="p-8 lg:p-12 flex flex-col gap-7 grow"><div class="flex items-center gap-6 [&_a:hover]:text-primary [&_a]:transition-colors"><span class="text-3xl font-extrabold grow break-all">Lighthouse</span><a href="https://github.com/nuwave/lighthouse" target="_blank" rel="noreferrer"><svg xmlns="http://www.w3.org/2000/svg" width="30" fill="currentColor" viewBox="0 0 30 30"><path fill-rule="evenodd" d="M15.1.413a14.81 14.81 0 0 0-4.684 28.862c.742.138 1.012-.32 1.012-.712 0-.35-.013-1.283-.02-2.518-4.12.893-4.99-1.987-4.99-1.987-.675-1.71-1.643-2.165-1.643-2.165-1.345-.918.1-.9.1-.9 1.488.105 2.27 1.525 2.27 1.525 1.32 2.265 3.466 1.61 4.31 1.23.133-.955.515-1.608.94-1.978-3.29-.375-6.747-1.645-6.747-7.32 0-1.615.577-2.937 1.525-3.975-.15-.372-.66-1.88.145-3.917 0 0 1.242-.4 4.075 1.517a14.3 14.3 0 0 1 3.705-.5 14.2 14.2 0 0 1 3.707.5c2.826-1.915 4.068-1.517 4.068-1.517.807 2.037.3 3.545.15 3.92.95 1.035 1.52 2.357 1.52 3.975 0 5.687-3.462 6.94-6.76 7.305.53.457 1.005 1.36 1.005 2.742 0 1.98-.02 3.575-.02 4.063 0 .395.267.857 1.02.712A14.816 14.816 0 0 0 15.101.413" clip-rule="evenodd"></path></svg></a></div><div class="gap-2 flex roboto-mono"><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=php">PHP</a><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=server">Server</a></div><span class="[&_a]:text-primary grow line-clamp-4 lg:text-lg">A GraphQL server for Laravel</span><div class="flex items-center gap-5 max-md:text-xs [&>:not(:last-child)]:border-r [&>:not(:last-child)]:border-gray-500 [&>:not(:last-child)]:pr-5"><span>Last release <!-- -->2 months ago</span><span class="flex items-center gap-1"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="19" fill="currentColor" class="text-primary"><path d="m10 .5 2.997 5.874L19.51 7.41l-4.66 4.666 1.027 6.514L10 15.6l-5.878 2.99 1.028-6.514L.489 7.41l6.513-1.036z"></path></svg>3k</span><span>MIT License</span></div></div></div><div class="border border-zinc-200 dark:border-[#414141] p-8 lg:p-12 bg-white dark:bg-neutral-800 rounded-none !p-0 h-max min-w-0"><div class="p-8 lg:p-12 flex flex-col gap-7 grow"><div class="flex items-center gap-6 [&_a:hover]:text-primary [&_a]:transition-colors"><span class="text-3xl font-extrabold grow break-all">graphqurl</span><a href="https://github.com/hasura/graphqurl" target="_blank" rel="noreferrer"><svg xmlns="http://www.w3.org/2000/svg" width="30" fill="currentColor" viewBox="0 0 30 30"><path fill-rule="evenodd" d="M15.1.413a14.81 14.81 0 0 0-4.684 28.862c.742.138 1.012-.32 1.012-.712 0-.35-.013-1.283-.02-2.518-4.12.893-4.99-1.987-4.99-1.987-.675-1.71-1.643-2.165-1.643-2.165-1.345-.918.1-.9.1-.9 1.488.105 2.27 1.525 2.27 1.525 1.32 2.265 3.466 1.61 4.31 1.23.133-.955.515-1.608.94-1.978-3.29-.375-6.747-1.645-6.747-7.32 0-1.615.577-2.937 1.525-3.975-.15-.372-.66-1.88.145-3.917 0 0 1.242-.4 4.075 1.517a14.3 14.3 0 0 1 3.705-.5 14.2 14.2 0 0 1 3.707.5c2.826-1.915 4.068-1.517 4.068-1.517.807 2.037.3 3.545.15 3.92.95 1.035 1.52 2.357 1.52 3.975 0 5.687-3.462 6.94-6.76 7.305.53.457 1.005 1.36 1.005 2.742 0 1.98-.02 3.575-.02 4.063 0 .395.267.857 1.02.712A14.816 14.816 0 0 0 15.101.413" clip-rule="evenodd"></path></svg></a><a href="https://npmjs.com/package/graphqurl" target="_blank" rel="noreferrer"><svg xmlns="http://www.w3.org/2000/svg" width="30" height="30" fill="currentColor"><path fill-rule="evenodd" d="M0 0v30h30V0zm24.375 5.625H5.625v18.75H15v-15h5.625v15h3.75z" clip-rule="evenodd"></path></svg></a></div><div class="gap-2 flex roboto-mono"><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=javascript">JavaScript</a><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=client">Client</a></div><span class="[&_a]:text-primary grow line-clamp-4 lg:text-lg">curl for GraphQL with autocomplete, subscriptions and GraphiQL. Also a dead-simple universal javascript GraphQL client.</span><div class="flex items-center gap-5 max-md:text-xs [&>:not(:last-child)]:border-r [&>:not(:last-child)]:border-gray-500 [&>:not(:last-child)]:pr-5"><span class="flex items-center gap-1"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="19" fill="currentColor" class="text-primary"><path d="m10 .5 2.997 5.874L19.51 7.41l-4.66 4.666 1.027 6.514L10 15.6l-5.878 2.99 1.028-6.514L.489 7.41l6.513-1.036z"></path></svg>3k</span><span>Apache License 2.0</span></div></div></div><div class="border border-zinc-200 dark:border-[#414141] p-8 lg:p-12 bg-white dark:bg-neutral-800 rounded-none !p-0 h-max min-w-0"><div class="p-8 lg:p-12 flex flex-col gap-7 grow"><div class="flex items-center gap-6 [&_a:hover]:text-primary [&_a]:transition-colors"><span class="text-3xl font-extrabold grow break-all">GraphQL Mesh</span><a href="https://graphql-mesh.com" target="_blank" rel="noreferrer"><svg xmlns="http://www.w3.org/2000/svg" fill="currentColor" viewBox="0 0 24 24"><path d="M23.332 15.948C23.764 14.711 24 13.383 24 12a12 12 0 0 0-.706-4.056C21.627 3.317 17.194 0 12 0S2.373 3.317.706 7.944A11.949 11.949 0 0 0 0 12a12 12 0 0 0 .706 4.056C2.373 20.683 6.806 24 12 24s9.627-3.317 11.294-7.944a1 1 0 0 0 .038-.108M12 22.28c-.457 0-1.194-.827-1.81-2.675a19 19 0 0 1-.708-3.031h5.036a19 19 0 0 1-.708 3.031c-.616 1.848-1.353 2.675-1.81 2.675m-2.727-7.427A32 32 0 0 1 9.147 12c0-.98.043-1.936.126-2.853h5.454c.083.917.126 1.874.126 2.853s-.043 1.936-.126 2.854zM1.72 12c0-.99.141-1.947.403-2.853h5.425a33.5 33.5 0 0 0 0 5.707H2.123A10.3 10.3 0 0 1 1.72 12M12 1.72c.457 0 1.194.827 1.81 2.675.297.892.535 1.917.708 3.032H9.482c.173-1.115.411-2.14.708-3.032.616-1.848 1.353-2.675 1.81-2.675m4.452 7.427h5.425c.262.906.403 1.864.403 2.853s-.141 1.947-.403 2.854h-5.425a33.5 33.5 0 0 0 0-5.707m4.752-1.72h-4.95c-.305-2.11-.83-4.003-1.566-5.35 2.855.775 5.22 2.75 6.516 5.35M9.313 2.077c-.736 1.347-1.261 3.24-1.567 5.35h-4.95a10.33 10.33 0 0 1 6.517-5.35M2.795 16.574h4.95c.306 2.11.83 4.002 1.567 5.349a10.33 10.33 0 0 1-6.517-5.35m11.893 5.349c.736-1.347 1.261-3.24 1.567-5.35h4.95a10.33 10.33 0 0 1-6.517 5.35"></path></svg></a><a href="https://github.com/Urigo/graphql-mesh" target="_blank" rel="noreferrer"><svg xmlns="http://www.w3.org/2000/svg" width="30" fill="currentColor" viewBox="0 0 30 30"><path fill-rule="evenodd" d="M15.1.413a14.81 14.81 0 0 0-4.684 28.862c.742.138 1.012-.32 1.012-.712 0-.35-.013-1.283-.02-2.518-4.12.893-4.99-1.987-4.99-1.987-.675-1.71-1.643-2.165-1.643-2.165-1.345-.918.1-.9.1-.9 1.488.105 2.27 1.525 2.27 1.525 1.32 2.265 3.466 1.61 4.31 1.23.133-.955.515-1.608.94-1.978-3.29-.375-6.747-1.645-6.747-7.32 0-1.615.577-2.937 1.525-3.975-.15-.372-.66-1.88.145-3.917 0 0 1.242-.4 4.075 1.517a14.3 14.3 0 0 1 3.705-.5 14.2 14.2 0 0 1 3.707.5c2.826-1.915 4.068-1.517 4.068-1.517.807 2.037.3 3.545.15 3.92.95 1.035 1.52 2.357 1.52 3.975 0 5.687-3.462 6.94-6.76 7.305.53.457 1.005 1.36 1.005 2.742 0 1.98-.02 3.575-.02 4.063 0 .395.267.857 1.02.712A14.816 14.816 0 0 0 15.101.413" clip-rule="evenodd"></path></svg></a><a href="https://npmjs.com/package/@graphql-mesh/cli" target="_blank" rel="noreferrer"><svg xmlns="http://www.w3.org/2000/svg" width="30" height="30" fill="currentColor"><path fill-rule="evenodd" d="M0 0v30h30V0zm24.375 5.625H5.625v18.75H15v-15h5.625v15h3.75z" clip-rule="evenodd"></path></svg></a></div><div class="gap-2 flex roboto-mono"><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=javascript">JavaScript</a><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=tools">Tools</a></div><span class="[&_a]:text-primary grow line-clamp-4 lg:text-lg">GraphQL Mesh allows you to use GraphQL query language to access data in remote APIs that don't run GraphQL (and also ones that do run GraphQL). It can be used as a gateway to other services, or run as a local GraphQL schema that aggregates data from remote APIs.</span><div class="flex items-center gap-5 max-md:text-xs [&>:not(:last-child)]:border-r [&>:not(:last-child)]:border-gray-500 [&>:not(:last-child)]:pr-5"><span>Last release <!-- -->23 hours ago</span><span class="flex items-center gap-1"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="19" fill="currentColor" class="text-primary"><path d="m10 .5 2.997 5.874L19.51 7.41l-4.66 4.666 1.027 6.514L10 15.6l-5.878 2.99 1.028-6.514L.489 7.41l6.513-1.036z"></path></svg>3k</span><span>MIT License</span></div></div></div><div class="border border-zinc-200 dark:border-[#414141] p-8 lg:p-12 bg-white dark:bg-neutral-800 rounded-none !p-0 h-max min-w-0"><div class="p-8 lg:p-12 flex flex-col gap-7 grow"><div class="flex items-center gap-6 [&_a:hover]:text-primary [&_a]:transition-colors"><span class="text-3xl font-extrabold grow break-all">graphql</span><a href="https://github.com/zino-app/graphql-flutter" target="_blank" rel="noreferrer"><svg xmlns="http://www.w3.org/2000/svg" width="30" fill="currentColor" viewBox="0 0 30 30"><path fill-rule="evenodd" d="M15.1.413a14.81 14.81 0 0 0-4.684 28.862c.742.138 1.012-.32 1.012-.712 0-.35-.013-1.283-.02-2.518-4.12.893-4.99-1.987-4.99-1.987-.675-1.71-1.643-2.165-1.643-2.165-1.345-.918.1-.9.1-.9 1.488.105 2.27 1.525 2.27 1.525 1.32 2.265 3.466 1.61 4.31 1.23.133-.955.515-1.608.94-1.978-3.29-.375-6.747-1.645-6.747-7.32 0-1.615.577-2.937 1.525-3.975-.15-.372-.66-1.88.145-3.917 0 0 1.242-.4 4.075 1.517a14.3 14.3 0 0 1 3.705-.5 14.2 14.2 0 0 1 3.707.5c2.826-1.915 4.068-1.517 4.068-1.517.807 2.037.3 3.545.15 3.92.95 1.035 1.52 2.357 1.52 3.975 0 5.687-3.462 6.94-6.76 7.305.53.457 1.005 1.36 1.005 2.742 0 1.98-.02 3.575-.02 4.063 0 .395.267.857 1.02.712A14.816 14.816 0 0 0 15.101.413" clip-rule="evenodd"></path></svg></a></div><div class="gap-2 flex roboto-mono"><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=flutter">Flutter</a><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=client">Client</a></div><span class="[&_a]:text-primary grow line-clamp-4 lg:text-lg">A GraphQL client implementation in Flutter.</span><div class="flex items-center gap-5 max-md:text-xs [&>:not(:last-child)]:border-r [&>:not(:last-child)]:border-gray-500 [&>:not(:last-child)]:pr-5"><span>Last release <!-- -->2 months ago</span><span class="flex items-center gap-1"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="19" fill="currentColor" class="text-primary"><path d="m10 .5 2.997 5.874L19.51 7.41l-4.66 4.666 1.027 6.514L10 15.6l-5.878 2.99 1.028-6.514L.489 7.41l6.513-1.036z"></path></svg>3k</span><span>MIT License</span></div></div></div><div class="border border-zinc-200 dark:border-[#414141] p-8 lg:p-12 bg-white dark:bg-neutral-800 rounded-none !p-0 h-max min-w-0"><div class="p-8 lg:p-12 flex flex-col gap-7 grow"><div class="flex items-center gap-6 [&_a:hover]:text-primary [&_a]:transition-colors"><span class="text-3xl font-extrabold grow break-all">Domain Graph Service (DGS) Framework</span><a href="https://netflix.github.io/dgs/" target="_blank" rel="noreferrer"><svg xmlns="http://www.w3.org/2000/svg" fill="currentColor" viewBox="0 0 24 24"><path d="M23.332 15.948C23.764 14.711 24 13.383 24 12a12 12 0 0 0-.706-4.056C21.627 3.317 17.194 0 12 0S2.373 3.317.706 7.944A11.949 11.949 0 0 0 0 12a12 12 0 0 0 .706 4.056C2.373 20.683 6.806 24 12 24s9.627-3.317 11.294-7.944a1 1 0 0 0 .038-.108M12 22.28c-.457 0-1.194-.827-1.81-2.675a19 19 0 0 1-.708-3.031h5.036a19 19 0 0 1-.708 3.031c-.616 1.848-1.353 2.675-1.81 2.675m-2.727-7.427A32 32 0 0 1 9.147 12c0-.98.043-1.936.126-2.853h5.454c.083.917.126 1.874.126 2.853s-.043 1.936-.126 2.854zM1.72 12c0-.99.141-1.947.403-2.853h5.425a33.5 33.5 0 0 0 0 5.707H2.123A10.3 10.3 0 0 1 1.72 12M12 1.72c.457 0 1.194.827 1.81 2.675.297.892.535 1.917.708 3.032H9.482c.173-1.115.411-2.14.708-3.032.616-1.848 1.353-2.675 1.81-2.675m4.452 7.427h5.425c.262.906.403 1.864.403 2.853s-.141 1.947-.403 2.854h-5.425a33.5 33.5 0 0 0 0-5.707m4.752-1.72h-4.95c-.305-2.11-.83-4.003-1.566-5.35 2.855.775 5.22 2.75 6.516 5.35M9.313 2.077c-.736 1.347-1.261 3.24-1.567 5.35h-4.95a10.33 10.33 0 0 1 6.517-5.35M2.795 16.574h4.95c.306 2.11.83 4.002 1.567 5.349a10.33 10.33 0 0 1-6.517-5.35m11.893 5.349c.736-1.347 1.261-3.24 1.567-5.35h4.95a10.33 10.33 0 0 1-6.517 5.35"></path></svg></a><a href="https://github.com/netflix/dgs-framework" target="_blank" rel="noreferrer"><svg xmlns="http://www.w3.org/2000/svg" width="30" fill="currentColor" viewBox="0 0 30 30"><path fill-rule="evenodd" d="M15.1.413a14.81 14.81 0 0 0-4.684 28.862c.742.138 1.012-.32 1.012-.712 0-.35-.013-1.283-.02-2.518-4.12.893-4.99-1.987-4.99-1.987-.675-1.71-1.643-2.165-1.643-2.165-1.345-.918.1-.9.1-.9 1.488.105 2.27 1.525 2.27 1.525 1.32 2.265 3.466 1.61 4.31 1.23.133-.955.515-1.608.94-1.978-3.29-.375-6.747-1.645-6.747-7.32 0-1.615.577-2.937 1.525-3.975-.15-.372-.66-1.88.145-3.917 0 0 1.242-.4 4.075 1.517a14.3 14.3 0 0 1 3.705-.5 14.2 14.2 0 0 1 3.707.5c2.826-1.915 4.068-1.517 4.068-1.517.807 2.037.3 3.545.15 3.92.95 1.035 1.52 2.357 1.52 3.975 0 5.687-3.462 6.94-6.76 7.305.53.457 1.005 1.36 1.005 2.742 0 1.98-.02 3.575-.02 4.063 0 .395.267.857 1.02.712A14.816 14.816 0 0 0 15.101.413" clip-rule="evenodd"></path></svg></a></div><div class="gap-2 flex roboto-mono"><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=java-kotlin-android">Java / Kotlin</a><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=server">Server</a></div><span class="[&_a]:text-primary grow line-clamp-4 lg:text-lg">The DGS Framework (Domain Graph Service) is a GraphQL server framework for Spring Boot, developed by Netflix.</span><div class="flex items-center gap-5 max-md:text-xs [&>:not(:last-child)]:border-r [&>:not(:last-child)]:border-gray-500 [&>:not(:last-child)]:pr-5"><span>Last release <!-- -->22 hours ago</span><span class="flex items-center gap-1"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="19" fill="currentColor" class="text-primary"><path d="m10 .5 2.997 5.874L19.51 7.41l-4.66 4.666 1.027 6.514L10 15.6l-5.878 2.99 1.028-6.514L.489 7.41l6.513-1.036z"></path></svg>3k</span><span>Apache License 2.0</span></div></div><details class="bg-[#f0f0f0] dark:bg-[#2f2f2f]"><summary class="flex justify-between font-bold text-primary px-8 lg:px-12 py-5 dark:[[open]>&]:shadow-[-5px_10px_30px_20px_#1b1b1b4d] [[open]>&]:shadow-[0_6px_21px_0_#1b1b1b33] cursor-pointer">README<svg xmlns="http://www.w3.org/2000/svg" fill="currentColor" viewBox="0 0 15 15" class="size-5 -rotate-90 [[open]>*>&]:rotate-90 transition-transform"><path fill-rule="evenodd" d="M8.842 3.135a.5.5 0 0 1 .023.707L5.435 7.5l3.43 3.658a.5.5 0 0 1-.73.684l-3.75-4a.5.5 0 0 1 0-.684l3.75-4a.5.5 0 0 1 .707-.023" clip-rule="evenodd"></path></svg></summary><div class="px-8 lg:px-12 py-5"><p class="[&:not(:first-child)]:_mt-6 _leading-7">The DGS Framework (Domain Graph Service) is a GraphQL server framework for Spring Boot, developed by Netflix.</p> <p class="[&:not(:first-child)]:_mt-6 _leading-7">Features include:</p> <ul class="[:is(ol,ul)_&]:_my-3 [&:not(:first-child)]:_mt-6 _list-disc ltr:_ml-6 rtl:_mr-6"> <li class="_my-2">Annotation based Spring Boot programming model</li> <li class="_my-2">Test framework for writing query tests as unit tests</li> <li class="_my-2">Gradle Code Generation plugin to create types from schema</li> <li class="_my-2">Easy integration with GraphQL Federation</li> <li class="_my-2">Integration with Spring Security</li> <li class="_my-2">GraphQL subscriptions (WebSockets and SSE)</li> <li class="_my-2">File uploads</li> <li class="_my-2">Error handling</li> <li class="_my-2">Many extension points</li> </ul> <p class="[&:not(:first-child)]:_mt-6 _leading-7">See <a href="https://netflix.github.io/dgs/getting-started/" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">DGS Framework Getting Started</a> for how to get started.</p></div></details></div><div class="border border-zinc-200 dark:border-[#414141] p-8 lg:p-12 bg-white dark:bg-neutral-800 rounded-none !p-0 h-max min-w-0"><div class="p-8 lg:p-12 flex flex-col gap-7 grow"><div class="flex items-center gap-6 [&_a:hover]:text-primary [&_a]:transition-colors"><span class="text-3xl font-extrabold grow break-all">graphjin</span><a href="https://github.com/dosco/graphjin" target="_blank" rel="noreferrer"><svg xmlns="http://www.w3.org/2000/svg" width="30" fill="currentColor" viewBox="0 0 30 30"><path fill-rule="evenodd" d="M15.1.413a14.81 14.81 0 0 0-4.684 28.862c.742.138 1.012-.32 1.012-.712 0-.35-.013-1.283-.02-2.518-4.12.893-4.99-1.987-4.99-1.987-.675-1.71-1.643-2.165-1.643-2.165-1.345-.918.1-.9.1-.9 1.488.105 2.27 1.525 2.27 1.525 1.32 2.265 3.466 1.61 4.31 1.23.133-.955.515-1.608.94-1.978-3.29-.375-6.747-1.645-6.747-7.32 0-1.615.577-2.937 1.525-3.975-.15-.372-.66-1.88.145-3.917 0 0 1.242-.4 4.075 1.517a14.3 14.3 0 0 1 3.705-.5 14.2 14.2 0 0 1 3.707.5c2.826-1.915 4.068-1.517 4.068-1.517.807 2.037.3 3.545.15 3.92.95 1.035 1.52 2.357 1.52 3.975 0 5.687-3.462 6.94-6.76 7.305.53.457 1.005 1.36 1.005 2.742 0 1.98-.02 3.575-.02 4.063 0 .395.267.857 1.02.712A14.816 14.816 0 0 0 15.101.413" clip-rule="evenodd"></path></svg></a></div><div class="gap-2 flex roboto-mono"><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=go">Go</a><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=tools">Tools</a></div><span class="[&_a]:text-primary grow line-clamp-4 lg:text-lg">An instant GraphQL to SQL compiler. Use as a standalone service or a Go library. Formerly super-graph.</span><div class="flex items-center gap-5 max-md:text-xs [&>:not(:last-child)]:border-r [&>:not(:last-child)]:border-gray-500 [&>:not(:last-child)]:pr-5"><span>Last release <!-- -->4 months ago</span><span class="flex items-center gap-1"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="19" fill="currentColor" class="text-primary"><path d="m10 .5 2.997 5.874L19.51 7.41l-4.66 4.666 1.027 6.514L10 15.6l-5.878 2.99 1.028-6.514L.489 7.41l6.513-1.036z"></path></svg>3k</span><span>Apache License 2.0</span></div></div></div><div class="border border-zinc-200 dark:border-[#414141] p-8 lg:p-12 bg-white dark:bg-neutral-800 rounded-none !p-0 h-max min-w-0"><div class="p-8 lg:p-12 flex flex-col gap-7 grow"><div class="flex items-center gap-6 [&_a:hover]:text-primary [&_a]:transition-colors"><span class="text-3xl font-extrabold grow break-all">Mercurius</span><a href="https://mercurius.dev/" target="_blank" rel="noreferrer"><svg xmlns="http://www.w3.org/2000/svg" fill="currentColor" viewBox="0 0 24 24"><path d="M23.332 15.948C23.764 14.711 24 13.383 24 12a12 12 0 0 0-.706-4.056C21.627 3.317 17.194 0 12 0S2.373 3.317.706 7.944A11.949 11.949 0 0 0 0 12a12 12 0 0 0 .706 4.056C2.373 20.683 6.806 24 12 24s9.627-3.317 11.294-7.944a1 1 0 0 0 .038-.108M12 22.28c-.457 0-1.194-.827-1.81-2.675a19 19 0 0 1-.708-3.031h5.036a19 19 0 0 1-.708 3.031c-.616 1.848-1.353 2.675-1.81 2.675m-2.727-7.427A32 32 0 0 1 9.147 12c0-.98.043-1.936.126-2.853h5.454c.083.917.126 1.874.126 2.853s-.043 1.936-.126 2.854zM1.72 12c0-.99.141-1.947.403-2.853h5.425a33.5 33.5 0 0 0 0 5.707H2.123A10.3 10.3 0 0 1 1.72 12M12 1.72c.457 0 1.194.827 1.81 2.675.297.892.535 1.917.708 3.032H9.482c.173-1.115.411-2.14.708-3.032.616-1.848 1.353-2.675 1.81-2.675m4.452 7.427h5.425c.262.906.403 1.864.403 2.853s-.141 1.947-.403 2.854h-5.425a33.5 33.5 0 0 0 0-5.707m4.752-1.72h-4.95c-.305-2.11-.83-4.003-1.566-5.35 2.855.775 5.22 2.75 6.516 5.35M9.313 2.077c-.736 1.347-1.261 3.24-1.567 5.35h-4.95a10.33 10.33 0 0 1 6.517-5.35M2.795 16.574h4.95c.306 2.11.83 4.002 1.567 5.349a10.33 10.33 0 0 1-6.517-5.35m11.893 5.349c.736-1.347 1.261-3.24 1.567-5.35h4.95a10.33 10.33 0 0 1-6.517 5.35"></path></svg></a><a href="https://github.com/mercurius-js/mercurius" target="_blank" rel="noreferrer"><svg xmlns="http://www.w3.org/2000/svg" width="30" fill="currentColor" viewBox="0 0 30 30"><path fill-rule="evenodd" d="M15.1.413a14.81 14.81 0 0 0-4.684 28.862c.742.138 1.012-.32 1.012-.712 0-.35-.013-1.283-.02-2.518-4.12.893-4.99-1.987-4.99-1.987-.675-1.71-1.643-2.165-1.643-2.165-1.345-.918.1-.9.1-.9 1.488.105 2.27 1.525 2.27 1.525 1.32 2.265 3.466 1.61 4.31 1.23.133-.955.515-1.608.94-1.978-3.29-.375-6.747-1.645-6.747-7.32 0-1.615.577-2.937 1.525-3.975-.15-.372-.66-1.88.145-3.917 0 0 1.242-.4 4.075 1.517a14.3 14.3 0 0 1 3.705-.5 14.2 14.2 0 0 1 3.707.5c2.826-1.915 4.068-1.517 4.068-1.517.807 2.037.3 3.545.15 3.92.95 1.035 1.52 2.357 1.52 3.975 0 5.687-3.462 6.94-6.76 7.305.53.457 1.005 1.36 1.005 2.742 0 1.98-.02 3.575-.02 4.063 0 .395.267.857 1.02.712A14.816 14.816 0 0 0 15.101.413" clip-rule="evenodd"></path></svg></a><a href="https://npmjs.com/package/mercurius" target="_blank" rel="noreferrer"><svg xmlns="http://www.w3.org/2000/svg" width="30" height="30" fill="currentColor"><path fill-rule="evenodd" d="M0 0v30h30V0zm24.375 5.625H5.625v18.75H15v-15h5.625v15h3.75z" clip-rule="evenodd"></path></svg></a></div><div class="gap-2 flex roboto-mono"><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=javascript">JavaScript</a><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=server">Server</a></div><span class="[&_a]:text-primary grow line-clamp-4 lg:text-lg">Mercurius is a flexible and extendible GraphQL adapter for Fastify, a blazing-fast web framework with the least overhead and a powerful plugin architecture.</span><div class="flex items-center gap-5 max-md:text-xs [&>:not(:last-child)]:border-r [&>:not(:last-child)]:border-gray-500 [&>:not(:last-child)]:pr-5"><span>Last release <!-- -->1 month ago</span><span class="flex items-center gap-1"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="19" fill="currentColor" class="text-primary"><path d="m10 .5 2.997 5.874L19.51 7.41l-4.66 4.666 1.027 6.514L10 15.6l-5.878 2.99 1.028-6.514L.489 7.41l6.513-1.036z"></path></svg>2k</span><span>MIT License</span></div></div><details class="bg-[#f0f0f0] dark:bg-[#2f2f2f]"><summary class="flex justify-between font-bold text-primary px-8 lg:px-12 py-5 dark:[[open]>&]:shadow-[-5px_10px_30px_20px_#1b1b1b4d] [[open]>&]:shadow-[0_6px_21px_0_#1b1b1b33] cursor-pointer">README<svg xmlns="http://www.w3.org/2000/svg" fill="currentColor" viewBox="0 0 15 15" class="size-5 -rotate-90 [[open]>*>&]:rotate-90 transition-transform"><path fill-rule="evenodd" d="M8.842 3.135a.5.5 0 0 1 .023.707L5.435 7.5l3.43 3.658a.5.5 0 0 1-.73.684l-3.75-4a.5.5 0 0 1 0-.684l3.75-4a.5.5 0 0 1 .707-.023" clip-rule="evenodd"></path></svg></summary><div class="px-8 lg:px-12 py-5"><p class="[&:not(:first-child)]:_mt-6 _leading-7">To run an hello world script with <code class="nextra-code" dir="ltr">mercurius</code>:</p> <div class="nextra-code _relative [&:not(:first-child)]:_mt-6"><pre class="_overflow-x-auto _subpixel-antialiased _text-[.9em] _bg-white dark:_bg-black _py-4 _ring-1 _ring-inset _ring-gray-300 dark:_ring-neutral-700 contrast-more:_ring-gray-900 contrast-more:dark:_ring-gray-50 contrast-more:_contrast-150 _rounded-md" tabindex="0"><code class="nextra-code" dir="ltr"><span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">npm</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> install</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> fastify</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> mercurius</span></span></code></pre><div class="_opacity-0 _transition [div:hover>&]:_opacity-100 focus-within:_opacity-100 _flex _gap-1 _absolute _right-4 _top-2"><button class="_transition _rounded-md _p-1.5 _border _border-gray-300 dark:_border-neutral-700 contrast-more:_border-gray-900 contrast-more:dark:_border-gray-50 md:_hidden" title="Toggle word wrap"><svg viewBox="0 0 24 24" width="24" height="24" class="_h-4 _w-auto"><path fill="currentColor" d="M4 19h6v-2H4v2zM20 5H4v2h16V5zm-3 6H4v2h13.25c1.1 0 2 .9 2 2s-.9 2-2 2H15v-2l-3 3l3 3v-2h2c2.21 0 4-1.79 4-4s-1.79-4-4-4z"></path></svg></button></div></div> <p class="[&:not(:first-child)]:_mt-6 _leading-7">Then run <code class="nextra-code" dir="ltr">node app.js</code> with this code in <code class="nextra-code" dir="ltr">app.js</code>:</p> <div class="nextra-code _relative [&:not(:first-child)]:_mt-6"><pre class="_overflow-x-auto _subpixel-antialiased _text-[.9em] _bg-white dark:_bg-black _py-4 _ring-1 _ring-inset _ring-gray-300 dark:_ring-neutral-700 contrast-more:_ring-gray-900 contrast-more:dark:_ring-gray-50 contrast-more:_contrast-150 _rounded-md" tabindex="0"><code class="nextra-code" dir="ltr"><span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">const</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> Fastify</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> =</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> require</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">"fastify"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">)</span></span> <span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">const</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> mercurius</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> =</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> require</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">"mercurius"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">)</span></span> <span> </span> <span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">const</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> schema</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> =</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> `</span></span> <span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> type Query {</span></span> <span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> hello(name: String): String!</span></span> <span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> }</span></span> <span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">`</span></span> <span> </span> <span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">const</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> resolvers</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> =</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> {</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> Query: {</span></span> <span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> hello</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">: </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">async</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> (</span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70">_</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">, { </span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70">name</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> }) </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=></span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> `hello ${</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">name</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> ||</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> "world"}`</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">,</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> },</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">}</span></span> <span> </span> <span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">const</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> app</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> =</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> Fastify</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">()</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">app.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">register</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(mercurius, {</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> schema,</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> resolvers,</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">})</span></span> <span> </span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">app.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">listen</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">3000</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">)</span></span> <span> </span> <span><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D">// Call IT!</span></span> <span><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D">// curl 'http://localhost:3000/graphql' \</span></span> <span><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D">// -H 'content-type: application/json' \</span></span> <span><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D">// --data-raw '{"query":"{ hello(name:\"Marcurius\") }" }'</span></span></code></pre><div class="_opacity-0 _transition [div:hover>&]:_opacity-100 focus-within:_opacity-100 _flex _gap-1 _absolute _right-4 _top-2"><button class="_transition _rounded-md _p-1.5 _border _border-gray-300 dark:_border-neutral-700 contrast-more:_border-gray-900 contrast-more:dark:_border-gray-50 md:_hidden" title="Toggle word wrap"><svg viewBox="0 0 24 24" width="24" height="24" class="_h-4 _w-auto"><path fill="currentColor" d="M4 19h6v-2H4v2zM20 5H4v2h16V5zm-3 6H4v2h13.25c1.1 0 2 .9 2 2s-.9 2-2 2H15v-2l-3 3l3 3v-2h2c2.21 0 4-1.79 4-4s-1.79-4-4-4z"></path></svg></button></div></div></div></details></div><div class="border border-zinc-200 dark:border-[#414141] p-8 lg:p-12 bg-white dark:bg-neutral-800 rounded-none !p-0 h-max min-w-0"><div class="p-8 lg:p-12 flex flex-col gap-7 grow"><div class="flex items-center gap-6 [&_a:hover]:text-primary [&_a]:transition-colors"><span class="text-3xl font-extrabold grow break-all">GiraphQL</span><a href="https://giraphql.com/" target="_blank" rel="noreferrer"><svg xmlns="http://www.w3.org/2000/svg" fill="currentColor" viewBox="0 0 24 24"><path d="M23.332 15.948C23.764 14.711 24 13.383 24 12a12 12 0 0 0-.706-4.056C21.627 3.317 17.194 0 12 0S2.373 3.317.706 7.944A11.949 11.949 0 0 0 0 12a12 12 0 0 0 .706 4.056C2.373 20.683 6.806 24 12 24s9.627-3.317 11.294-7.944a1 1 0 0 0 .038-.108M12 22.28c-.457 0-1.194-.827-1.81-2.675a19 19 0 0 1-.708-3.031h5.036a19 19 0 0 1-.708 3.031c-.616 1.848-1.353 2.675-1.81 2.675m-2.727-7.427A32 32 0 0 1 9.147 12c0-.98.043-1.936.126-2.853h5.454c.083.917.126 1.874.126 2.853s-.043 1.936-.126 2.854zM1.72 12c0-.99.141-1.947.403-2.853h5.425a33.5 33.5 0 0 0 0 5.707H2.123A10.3 10.3 0 0 1 1.72 12M12 1.72c.457 0 1.194.827 1.81 2.675.297.892.535 1.917.708 3.032H9.482c.173-1.115.411-2.14.708-3.032.616-1.848 1.353-2.675 1.81-2.675m4.452 7.427h5.425c.262.906.403 1.864.403 2.853s-.141 1.947-.403 2.854h-5.425a33.5 33.5 0 0 0 0-5.707m4.752-1.72h-4.95c-.305-2.11-.83-4.003-1.566-5.35 2.855.775 5.22 2.75 6.516 5.35M9.313 2.077c-.736 1.347-1.261 3.24-1.567 5.35h-4.95a10.33 10.33 0 0 1 6.517-5.35M2.795 16.574h4.95c.306 2.11.83 4.002 1.567 5.349a10.33 10.33 0 0 1-6.517-5.35m11.893 5.349c.736-1.347 1.261-3.24 1.567-5.35h4.95a10.33 10.33 0 0 1-6.517 5.35"></path></svg></a><a href="https://github.com/hayes/giraphql" target="_blank" rel="noreferrer"><svg xmlns="http://www.w3.org/2000/svg" width="30" fill="currentColor" viewBox="0 0 30 30"><path fill-rule="evenodd" d="M15.1.413a14.81 14.81 0 0 0-4.684 28.862c.742.138 1.012-.32 1.012-.712 0-.35-.013-1.283-.02-2.518-4.12.893-4.99-1.987-4.99-1.987-.675-1.71-1.643-2.165-1.643-2.165-1.345-.918.1-.9.1-.9 1.488.105 2.27 1.525 2.27 1.525 1.32 2.265 3.466 1.61 4.31 1.23.133-.955.515-1.608.94-1.978-3.29-.375-6.747-1.645-6.747-7.32 0-1.615.577-2.937 1.525-3.975-.15-.372-.66-1.88.145-3.917 0 0 1.242-.4 4.075 1.517a14.3 14.3 0 0 1 3.705-.5 14.2 14.2 0 0 1 3.707.5c2.826-1.915 4.068-1.517 4.068-1.517.807 2.037.3 3.545.15 3.92.95 1.035 1.52 2.357 1.52 3.975 0 5.687-3.462 6.94-6.76 7.305.53.457 1.005 1.36 1.005 2.742 0 1.98-.02 3.575-.02 4.063 0 .395.267.857 1.02.712A14.816 14.816 0 0 0 15.101.413" clip-rule="evenodd"></path></svg></a><a href="https://npmjs.com/package/@giraphql/core" target="_blank" rel="noreferrer"><svg xmlns="http://www.w3.org/2000/svg" width="30" height="30" fill="currentColor"><path fill-rule="evenodd" d="M0 0v30h30V0zm24.375 5.625H5.625v18.75H15v-15h5.625v15h3.75z" clip-rule="evenodd"></path></svg></a></div><div class="gap-2 flex roboto-mono"><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=javascript">JavaScript</a><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=tools">Tools</a></div><span class="[&_a]:text-primary grow line-clamp-4 lg:text-lg">A plugin based schema builder for creating code-first GraphQL schemas in typescript</span><div class="flex items-center gap-5 max-md:text-xs [&>:not(:last-child)]:border-r [&>:not(:last-child)]:border-gray-500 [&>:not(:last-child)]:pr-5"><span>Last release <!-- -->1 week ago</span><span class="flex items-center gap-1"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="19" fill="currentColor" class="text-primary"><path d="m10 .5 2.997 5.874L19.51 7.41l-4.66 4.666 1.027 6.514L10 15.6l-5.878 2.99 1.028-6.514L.489 7.41l6.513-1.036z"></path></svg>2k</span><span>ISC License</span></div></div><details class="bg-[#f0f0f0] dark:bg-[#2f2f2f]"><summary class="flex justify-between font-bold text-primary px-8 lg:px-12 py-5 dark:[[open]>&]:shadow-[-5px_10px_30px_20px_#1b1b1b4d] [[open]>&]:shadow-[0_6px_21px_0_#1b1b1b33] cursor-pointer">README<svg xmlns="http://www.w3.org/2000/svg" fill="currentColor" viewBox="0 0 15 15" class="size-5 -rotate-90 [[open]>*>&]:rotate-90 transition-transform"><path fill-rule="evenodd" d="M8.842 3.135a.5.5 0 0 1 .023.707L5.435 7.5l3.43 3.658a.5.5 0 0 1-.73.684l-3.75-4a.5.5 0 0 1 0-.684l3.75-4a.5.5 0 0 1 .707-.023" clip-rule="evenodd"></path></svg></summary><div class="px-8 lg:px-12 py-5"><p class="[&:not(:first-child)]:_mt-6 _leading-7">GiraphQL makes writing type-safe schemas simple, and works without a code generator, build process, or extensive manual type definitions.</p> <div class="nextra-code _relative [&:not(:first-child)]:_mt-6"><pre class="_overflow-x-auto _subpixel-antialiased _text-[.9em] _bg-white dark:_bg-black _py-4 _ring-1 _ring-inset _ring-gray-300 dark:_ring-neutral-700 contrast-more:_ring-gray-900 contrast-more:dark:_ring-gray-50 contrast-more:_contrast-150 _rounded-md" tabindex="0"><code class="nextra-code" dir="ltr"><span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">import</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> { ApolloServer } </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">from</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> "apollo-server"</span></span> <span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">import</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> SchemaBuilder </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">from</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> "@giraphql/core"</span></span> <span> </span> <span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">const</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> builder</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> =</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> new</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> SchemaBuilder</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">({})</span></span> <span> </span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">builder.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">queryType</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">({</span></span> <span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> fields</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">: </span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70">t</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> =></span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> ({</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> hello: t.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">string</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">({</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> args: {</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> name: t.arg.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">string</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">({}),</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> },</span></span> <span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> resolve</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">: (</span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70">parent</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">, { </span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70">name</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> }) </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=></span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> `hello, ${</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">name</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> ||</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> "World"}`</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">,</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> }),</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> }),</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">})</span></span> <span> </span> <span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">new</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> ApolloServer</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">({</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> schema: builder.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">toSchema</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">({}),</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">}).</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">listen</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">3000</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">)</span></span></code></pre><div class="_opacity-0 _transition [div:hover>&]:_opacity-100 focus-within:_opacity-100 _flex _gap-1 _absolute _right-4 _top-2"><button class="_transition _rounded-md _p-1.5 _border _border-gray-300 dark:_border-neutral-700 contrast-more:_border-gray-900 contrast-more:dark:_border-gray-50 md:_hidden" title="Toggle word wrap"><svg viewBox="0 0 24 24" width="24" height="24" class="_h-4 _w-auto"><path fill="currentColor" d="M4 19h6v-2H4v2zM20 5H4v2h16V5zm-3 6H4v2h13.25c1.1 0 2 .9 2 2s-.9 2-2 2H15v-2l-3 3l3 3v-2h2c2.21 0 4-1.79 4-4s-1.79-4-4-4z"></path></svg></button></div></div></div></details></div><div class="border border-zinc-200 dark:border-[#414141] p-8 lg:p-12 bg-white dark:bg-neutral-800 rounded-none !p-0 h-max min-w-0"><div class="p-8 lg:p-12 flex flex-col gap-7 grow"><div class="flex items-center gap-6 [&_a:hover]:text-primary [&_a]:transition-colors"><span class="text-3xl font-extrabold grow break-all">Schemathesis</span><a href="https://github.com/schemathesis/schemathesis" target="_blank" rel="noreferrer"><svg xmlns="http://www.w3.org/2000/svg" width="30" fill="currentColor" viewBox="0 0 30 30"><path fill-rule="evenodd" d="M15.1.413a14.81 14.81 0 0 0-4.684 28.862c.742.138 1.012-.32 1.012-.712 0-.35-.013-1.283-.02-2.518-4.12.893-4.99-1.987-4.99-1.987-.675-1.71-1.643-2.165-1.643-2.165-1.345-.918.1-.9.1-.9 1.488.105 2.27 1.525 2.27 1.525 1.32 2.265 3.466 1.61 4.31 1.23.133-.955.515-1.608.94-1.978-3.29-.375-6.747-1.645-6.747-7.32 0-1.615.577-2.937 1.525-3.975-.15-.372-.66-1.88.145-3.917 0 0 1.242-.4 4.075 1.517a14.3 14.3 0 0 1 3.705-.5 14.2 14.2 0 0 1 3.707.5c2.826-1.915 4.068-1.517 4.068-1.517.807 2.037.3 3.545.15 3.92.95 1.035 1.52 2.357 1.52 3.975 0 5.687-3.462 6.94-6.76 7.305.53.457 1.005 1.36 1.005 2.742 0 1.98-.02 3.575-.02 4.063 0 .395.267.857 1.02.712A14.816 14.816 0 0 0 15.101.413" clip-rule="evenodd"></path></svg></a></div><div class="gap-2 flex roboto-mono"><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=tools">Tools</a><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=general">General</a></div><span class="[&_a]:text-primary grow line-clamp-4 lg:text-lg">A modern API testing tool for web applications built with Open API and GraphQL specifications.</span><div class="flex items-center gap-5 max-md:text-xs [&>:not(:last-child)]:border-r [&>:not(:last-child)]:border-gray-500 [&>:not(:last-child)]:pr-5"><span>Last release <!-- -->1 week ago</span><span class="flex items-center gap-1"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="19" fill="currentColor" class="text-primary"><path d="m10 .5 2.997 5.874L19.51 7.41l-4.66 4.666 1.027 6.514L10 15.6l-5.878 2.99 1.028-6.514L.489 7.41l6.513-1.036z"></path></svg>2k</span><span>MIT License</span></div></div><details class="bg-[#f0f0f0] dark:bg-[#2f2f2f]"><summary class="flex justify-between font-bold text-primary px-8 lg:px-12 py-5 dark:[[open]>&]:shadow-[-5px_10px_30px_20px_#1b1b1b4d] [[open]>&]:shadow-[0_6px_21px_0_#1b1b1b33] cursor-pointer">README<svg xmlns="http://www.w3.org/2000/svg" fill="currentColor" viewBox="0 0 15 15" class="size-5 -rotate-90 [[open]>*>&]:rotate-90 transition-transform"><path fill-rule="evenodd" d="M8.842 3.135a.5.5 0 0 1 .023.707L5.435 7.5l3.43 3.658a.5.5 0 0 1-.73.684l-3.75-4a.5.5 0 0 1 0-.684l3.75-4a.5.5 0 0 1 .707-.023" clip-rule="evenodd"></path></svg></summary><div class="px-8 lg:px-12 py-5"><p class="[&:not(:first-child)]:_mt-6 _leading-7">Run Schemathesis via Docker against your GraphQL endpoint:</p> <div class="nextra-code _relative [&:not(:first-child)]:_mt-6"><pre class="_overflow-x-auto _subpixel-antialiased _text-[.9em] _bg-white dark:_bg-black _py-4 _ring-1 _ring-inset _ring-gray-300 dark:_ring-neutral-700 contrast-more:_ring-gray-900 contrast-more:dark:_ring-gray-50 contrast-more:_contrast-150 _rounded-md" tabindex="0"><code class="nextra-code" dir="ltr"><span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">docker</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> run</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> schemathesis/schemathesis</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> \</span></span> <span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> run</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> https://your.app.com/graphql</span></span></code></pre><div class="_opacity-0 _transition [div:hover>&]:_opacity-100 focus-within:_opacity-100 _flex _gap-1 _absolute _right-4 _top-2"><button class="_transition _rounded-md _p-1.5 _border _border-gray-300 dark:_border-neutral-700 contrast-more:_border-gray-900 contrast-more:dark:_border-gray-50 md:_hidden" title="Toggle word wrap"><svg viewBox="0 0 24 24" width="24" height="24" class="_h-4 _w-auto"><path fill="currentColor" d="M4 19h6v-2H4v2zM20 5H4v2h16V5zm-3 6H4v2h13.25c1.1 0 2 .9 2 2s-.9 2-2 2H15v-2l-3 3l3 3v-2h2c2.21 0 4-1.79 4-4s-1.79-4-4-4z"></path></svg></button></div></div> <p class="[&:not(:first-child)]:_mt-6 _leading-7">Schemathesis will generate queries matching your GraphQL schema and catch server crashes automatically. Generated queries have arbitrary depth and may contain any subset of GraphQL types defined in the input schema. They expose edge cases in your code that are unlikely to be found otherwise.</p> <p class="[&:not(:first-child)]:_mt-6 _leading-7">Note that you can write your app in any programming language; the tool will communicate with it over HTTP.</p> <p class="[&:not(:first-child)]:_mt-6 _leading-7">For example, running the command above against <code class="nextra-code" dir="ltr">https://bahnql.herokuapp.com/graphql</code> uncovers that running the <code class="nextra-code" dir="ltr">{ search(searchTerm: "") { stations { name } } }</code> query leads to a server error:</p> <div class="nextra-code _relative [&:not(:first-child)]:_mt-6"><pre class="_overflow-x-auto _subpixel-antialiased _text-[.9em] _bg-white dark:_bg-black _py-4 _ring-1 _ring-inset _ring-gray-300 dark:_ring-neutral-700 contrast-more:_ring-gray-900 contrast-more:dark:_ring-gray-50 contrast-more:_contrast-150 _rounded-md" tabindex="0"><code class="nextra-code" dir="ltr"><span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">{</span></span> <span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> "errors"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">: [</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> {</span></span> <span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> "message"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">"Cannot read property 'city' of undefined"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">,</span></span> <span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> "locations"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">: [</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> {</span></span> <span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> "line"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">: </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">1</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">,</span></span> <span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> "column"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">: </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">28</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> }</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> ],</span></span> <span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> "path"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">: [</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">"search"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">, </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">"stations"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">]</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> }</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> ],</span></span> <span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> "data"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">: </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">null</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">}</span></span></code></pre><div class="_opacity-0 _transition [div:hover>&]:_opacity-100 focus-within:_opacity-100 _flex _gap-1 _absolute _right-4 _top-2"><button class="_transition _rounded-md _p-1.5 _border _border-gray-300 dark:_border-neutral-700 contrast-more:_border-gray-900 contrast-more:dark:_border-gray-50 md:_hidden" title="Toggle word wrap"><svg viewBox="0 0 24 24" width="24" height="24" class="_h-4 _w-auto"><path fill="currentColor" d="M4 19h6v-2H4v2zM20 5H4v2h16V5zm-3 6H4v2h13.25c1.1 0 2 .9 2 2s-.9 2-2 2H15v-2l-3 3l3 3v-2h2c2.21 0 4-1.79 4-4s-1.79-4-4-4z"></path></svg></button></div></div></div></details></div><div class="border border-zinc-200 dark:border-[#414141] p-8 lg:p-12 bg-white dark:bg-neutral-800 rounded-none !p-0 h-max min-w-0"><div class="p-8 lg:p-12 flex flex-col gap-7 grow"><div class="flex items-center gap-6 [&_a:hover]:text-primary [&_a]:transition-colors"><span class="text-3xl font-extrabold grow break-all">WunderGraph</span><a href="https://wundergraph.com" target="_blank" rel="noreferrer"><svg xmlns="http://www.w3.org/2000/svg" fill="currentColor" viewBox="0 0 24 24"><path d="M23.332 15.948C23.764 14.711 24 13.383 24 12a12 12 0 0 0-.706-4.056C21.627 3.317 17.194 0 12 0S2.373 3.317.706 7.944A11.949 11.949 0 0 0 0 12a12 12 0 0 0 .706 4.056C2.373 20.683 6.806 24 12 24s9.627-3.317 11.294-7.944a1 1 0 0 0 .038-.108M12 22.28c-.457 0-1.194-.827-1.81-2.675a19 19 0 0 1-.708-3.031h5.036a19 19 0 0 1-.708 3.031c-.616 1.848-1.353 2.675-1.81 2.675m-2.727-7.427A32 32 0 0 1 9.147 12c0-.98.043-1.936.126-2.853h5.454c.083.917.126 1.874.126 2.853s-.043 1.936-.126 2.854zM1.72 12c0-.99.141-1.947.403-2.853h5.425a33.5 33.5 0 0 0 0 5.707H2.123A10.3 10.3 0 0 1 1.72 12M12 1.72c.457 0 1.194.827 1.81 2.675.297.892.535 1.917.708 3.032H9.482c.173-1.115.411-2.14.708-3.032.616-1.848 1.353-2.675 1.81-2.675m4.452 7.427h5.425c.262.906.403 1.864.403 2.853s-.141 1.947-.403 2.854h-5.425a33.5 33.5 0 0 0 0-5.707m4.752-1.72h-4.95c-.305-2.11-.83-4.003-1.566-5.35 2.855.775 5.22 2.75 6.516 5.35M9.313 2.077c-.736 1.347-1.261 3.24-1.567 5.35h-4.95a10.33 10.33 0 0 1 6.517-5.35M2.795 16.574h4.95c.306 2.11.83 4.002 1.567 5.349a10.33 10.33 0 0 1-6.517-5.35m11.893 5.349c.736-1.347 1.261-3.24 1.567-5.35h4.95a10.33 10.33 0 0 1-6.517 5.35"></path></svg></a><a href="https://github.com/wundergraph/wundergraph" target="_blank" rel="noreferrer"><svg xmlns="http://www.w3.org/2000/svg" width="30" fill="currentColor" viewBox="0 0 30 30"><path fill-rule="evenodd" d="M15.1.413a14.81 14.81 0 0 0-4.684 28.862c.742.138 1.012-.32 1.012-.712 0-.35-.013-1.283-.02-2.518-4.12.893-4.99-1.987-4.99-1.987-.675-1.71-1.643-2.165-1.643-2.165-1.345-.918.1-.9.1-.9 1.488.105 2.27 1.525 2.27 1.525 1.32 2.265 3.466 1.61 4.31 1.23.133-.955.515-1.608.94-1.978-3.29-.375-6.747-1.645-6.747-7.32 0-1.615.577-2.937 1.525-3.975-.15-.372-.66-1.88.145-3.917 0 0 1.242-.4 4.075 1.517a14.3 14.3 0 0 1 3.705-.5 14.2 14.2 0 0 1 3.707.5c2.826-1.915 4.068-1.517 4.068-1.517.807 2.037.3 3.545.15 3.92.95 1.035 1.52 2.357 1.52 3.975 0 5.687-3.462 6.94-6.76 7.305.53.457 1.005 1.36 1.005 2.742 0 1.98-.02 3.575-.02 4.063 0 .395.267.857 1.02.712A14.816 14.816 0 0 0 15.101.413" clip-rule="evenodd"></path></svg></a></div><div class="gap-2 flex roboto-mono"><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=tools">Tools</a><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=gateways-supergraphs">Gateways And Supergraphs</a></div><span class="[&_a]:text-primary grow line-clamp-4 lg:text-lg">WunderGraph is an open-source GraphQL Gateway that is able to compose Apollo Federation, GraphQL, REST APIs, Databases, Kafka and more.</span><div class="flex items-center gap-5 max-md:text-xs [&>:not(:last-child)]:border-r [&>:not(:last-child)]:border-gray-500 [&>:not(:last-child)]:pr-5"><span>Last release <!-- -->6 months ago</span><span class="flex items-center gap-1"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="19" fill="currentColor" class="text-primary"><path d="m10 .5 2.997 5.874L19.51 7.41l-4.66 4.666 1.027 6.514L10 15.6l-5.878 2.99 1.028-6.514L.489 7.41l6.513-1.036z"></path></svg>2k</span><span>Apache License 2.0</span></div></div><details class="bg-[#f0f0f0] dark:bg-[#2f2f2f]"><summary class="flex justify-between font-bold text-primary px-8 lg:px-12 py-5 dark:[[open]>&]:shadow-[-5px_10px_30px_20px_#1b1b1b4d] [[open]>&]:shadow-[0_6px_21px_0_#1b1b1b33] cursor-pointer">README<svg xmlns="http://www.w3.org/2000/svg" fill="currentColor" viewBox="0 0 15 15" class="size-5 -rotate-90 [[open]>*>&]:rotate-90 transition-transform"><path fill-rule="evenodd" d="M8.842 3.135a.5.5 0 0 1 .023.707L5.435 7.5l3.43 3.658a.5.5 0 0 1-.73.684l-3.75-4a.5.5 0 0 1 0-.684l3.75-4a.5.5 0 0 1 .707-.023" clip-rule="evenodd"></path></svg></summary><div class="px-8 lg:px-12 py-5"><p class="[&:not(:first-child)]:_mt-6 _leading-7"><a href="https://wundergraph.com" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">WunderGraph</a> composes all your APIs into a single unified GraphQL API and allows you to expose your Graph as a <a href="https://docs.wundergraph.com/docs/features/graphql-to-json-rpc-compiler" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">secure and type-safe JSON-RPC API</a>.</p> <p class="[&:not(:first-child)]:_mt-6 _leading-7">To get started with WunderGraph, you can use <code class="nextra-code" dir="ltr">create-wundergraph-app</code> to bootstrap a new project:</p> <div class="nextra-code _relative [&:not(:first-child)]:_mt-6"><pre class="_overflow-x-auto _subpixel-antialiased _text-[.9em] _bg-white dark:_bg-black _py-4 _ring-1 _ring-inset _ring-gray-300 dark:_ring-neutral-700 contrast-more:_ring-gray-900 contrast-more:dark:_ring-gray-50 contrast-more:_contrast-150 _rounded-md" tabindex="0"><code class="nextra-code" dir="ltr"><span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">npx</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> create-wundergraph-app</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> my-project</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> -E</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> nextjs-swr</span></span></code></pre><div class="_opacity-0 _transition [div:hover>&]:_opacity-100 focus-within:_opacity-100 _flex _gap-1 _absolute _right-4 _top-2"><button class="_transition _rounded-md _p-1.5 _border _border-gray-300 dark:_border-neutral-700 contrast-more:_border-gray-900 contrast-more:dark:_border-gray-50 md:_hidden" title="Toggle word wrap"><svg viewBox="0 0 24 24" width="24" height="24" class="_h-4 _w-auto"><path fill="currentColor" d="M4 19h6v-2H4v2zM20 5H4v2h16V5zm-3 6H4v2h13.25c1.1 0 2 .9 2 2s-.9 2-2 2H15v-2l-3 3l3 3v-2h2c2.21 0 4-1.79 4-4s-1.79-4-4-4z"></path></svg></button></div></div> <p class="[&:not(:first-child)]:_mt-6 _leading-7">On the client side, WunderGraph’s JSON-RPC API integrates very well with frameworks like <a href="https://github.com/wundergraph/wundergraph/tree/main/examples/nextjs-swr" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">Next.js, SWR</a> and React Query, while one the backend, we’re able to leverage the power of “Server-Side-Only GraphQL”. Handle authentication, authorization, validation, joins and more right in the Query Layer.</p> <div class="nextra-code _relative [&:not(:first-child)]:_mt-6"><pre class="_overflow-x-auto _subpixel-antialiased _text-[.9em] _bg-white dark:_bg-black _py-4 _ring-1 _ring-inset _ring-gray-300 dark:_ring-neutral-700 contrast-more:_ring-gray-900 contrast-more:dark:_ring-gray-50 contrast-more:_contrast-150 _rounded-md" tabindex="0"><code class="nextra-code" dir="ltr"><span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">mutation</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> (</span></span> <span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70"> $name</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">: </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">String</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">!</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> @fromClaim</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(</span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70">name</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">:</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> NAME</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">)</span></span> <span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70"> $email</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">: </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">String</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">!</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> @fromClaim</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(</span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70">name</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">:</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> EMAIL</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">)</span></span> <span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70"> $message</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">: </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">String</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">!</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> @jsonSchema</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(</span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70">pattern</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">"^[a-zA-Z 0-9]+$"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">)</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">) {</span></span> <span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70"> createOnepost</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(</span></span> <span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70"> data</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">: {</span></span> <span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> message</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">: </span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70">$message</span></span> <span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> user</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">: {</span></span> <span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> connectOrCreate</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">: {</span></span> <span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> where</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">: { </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">email</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">: </span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70">$email</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> }</span></span> <span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> create</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">: { </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">email</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">: </span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70">$email</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">, </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">name</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">: </span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70">$name</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> }</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> }</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> }</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> }</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> ) {</span></span> <span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70"> id</span></span> <span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70"> message</span></span> <span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70"> user</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> {</span></span> <span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70"> id</span></span> <span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70"> name</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> }</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> }</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">}</span></span></code></pre><div class="_opacity-0 _transition [div:hover>&]:_opacity-100 focus-within:_opacity-100 _flex _gap-1 _absolute _right-4 _top-2"><button class="_transition _rounded-md _p-1.5 _border _border-gray-300 dark:_border-neutral-700 contrast-more:_border-gray-900 contrast-more:dark:_border-gray-50 md:_hidden" title="Toggle word wrap"><svg viewBox="0 0 24 24" width="24" height="24" class="_h-4 _w-auto"><path fill="currentColor" d="M4 19h6v-2H4v2zM20 5H4v2h16V5zm-3 6H4v2h13.25c1.1 0 2 .9 2 2s-.9 2-2 2H15v-2l-3 3l3 3v-2h2c2.21 0 4-1.79 4-4s-1.79-4-4-4z"></path></svg></button></div></div> <p class="[&:not(:first-child)]:_mt-6 _leading-7">The Query above requires the user to be authenticated, injects the user’s name and email from the JWT token and validates the message against a JSON Schema.</p> <p class="[&:not(:first-child)]:_mt-6 _leading-7">Here’s another example showcasing how we can use Server-Side GraphQL with WunderGraph’s unique <a href="https://docs.wundergraph.com/docs/features/cross-api-joins-to-compose-apis" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">join capabilities</a>, composing data from two different APIs into a single GraphQL response.</p> <div class="nextra-code _relative [&:not(:first-child)]:_mt-6"><pre class="_overflow-x-auto _subpixel-antialiased _text-[.9em] _bg-white dark:_bg-black _py-4 _ring-1 _ring-inset _ring-gray-300 dark:_ring-neutral-700 contrast-more:_ring-gray-900 contrast-more:dark:_ring-gray-50 contrast-more:_contrast-150 _rounded-md" tabindex="0"><code class="nextra-code" dir="ltr"><span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">query</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> (</span></span> <span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70"> $continent</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">: </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">String</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">!</span></span> <span><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D"> # the @internal directive removes the $capital variable from the public API</span></span> <span><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D"> # this means, the user can't set it manually</span></span> <span><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D"> # this variable is our JOIN key</span></span> <span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70"> $capital</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">: </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">String</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">!</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> @internal</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">) {</span></span> <span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70"> countries_countries</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(</span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70">filter</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">: { </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">continent</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">: { </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">eq</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">: </span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70">$continent</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> } }) {</span></span> <span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70"> code</span></span> <span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70"> name</span></span> <span><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D"> # using the @export directive, we can export the value of the field `capital` into the JOIN key ($capital)</span></span> <span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70"> capital</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> @export</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(</span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70">as</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">"capital"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">)</span></span> <span><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D"> # the _join field returns the type Query!</span></span> <span><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D"> # it exists on every object type so you can everywhere in your Query documents</span></span> <span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70"> _join</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> {</span></span> <span><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D"> # once we're inside the _join field, we can use the $capital variable to join the weather API</span></span> <span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70"> weather_getCityByName</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(</span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70">name</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">: </span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70">$capital</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">) {</span></span> <span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70"> weather</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> {</span></span> <span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70"> temperature</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> {</span></span> <span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70"> max</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> }</span></span> <span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70"> summary</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> {</span></span> <span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70"> title</span></span> <span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70"> description</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> }</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> }</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> }</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> }</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> }</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">}</span></span></code></pre><div class="_opacity-0 _transition [div:hover>&]:_opacity-100 focus-within:_opacity-100 _flex _gap-1 _absolute _right-4 _top-2"><button class="_transition _rounded-md _p-1.5 _border _border-gray-300 dark:_border-neutral-700 contrast-more:_border-gray-900 contrast-more:dark:_border-gray-50 md:_hidden" title="Toggle word wrap"><svg viewBox="0 0 24 24" width="24" height="24" class="_h-4 _w-auto"><path fill="currentColor" d="M4 19h6v-2H4v2zM20 5H4v2h16V5zm-3 6H4v2h13.25c1.1 0 2 .9 2 2s-.9 2-2 2H15v-2l-3 3l3 3v-2h2c2.21 0 4-1.79 4-4s-1.79-4-4-4z"></path></svg></button></div></div> <p class="[&:not(:first-child)]:_mt-6 _leading-7">The full <a href="https://github.com/wundergraph/wundergraph/tree/main/examples/cross-api-joins" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">example can be found on GitHub</a>.</p></div></details></div><div class="border border-zinc-200 dark:border-[#414141] p-8 lg:p-12 bg-white dark:bg-neutral-800 rounded-none !p-0 h-max min-w-0"><div class="p-8 lg:p-12 flex flex-col gap-7 grow"><div class="flex items-center gap-6 [&_a:hover]:text-primary [&_a]:transition-colors"><span class="text-3xl font-extrabold grow break-all">Ariadne</span><a href="https://ariadnegraphql.org" target="_blank" rel="noreferrer"><svg xmlns="http://www.w3.org/2000/svg" fill="currentColor" viewBox="0 0 24 24"><path d="M23.332 15.948C23.764 14.711 24 13.383 24 12a12 12 0 0 0-.706-4.056C21.627 3.317 17.194 0 12 0S2.373 3.317.706 7.944A11.949 11.949 0 0 0 0 12a12 12 0 0 0 .706 4.056C2.373 20.683 6.806 24 12 24s9.627-3.317 11.294-7.944a1 1 0 0 0 .038-.108M12 22.28c-.457 0-1.194-.827-1.81-2.675a19 19 0 0 1-.708-3.031h5.036a19 19 0 0 1-.708 3.031c-.616 1.848-1.353 2.675-1.81 2.675m-2.727-7.427A32 32 0 0 1 9.147 12c0-.98.043-1.936.126-2.853h5.454c.083.917.126 1.874.126 2.853s-.043 1.936-.126 2.854zM1.72 12c0-.99.141-1.947.403-2.853h5.425a33.5 33.5 0 0 0 0 5.707H2.123A10.3 10.3 0 0 1 1.72 12M12 1.72c.457 0 1.194.827 1.81 2.675.297.892.535 1.917.708 3.032H9.482c.173-1.115.411-2.14.708-3.032.616-1.848 1.353-2.675 1.81-2.675m4.452 7.427h5.425c.262.906.403 1.864.403 2.853s-.141 1.947-.403 2.854h-5.425a33.5 33.5 0 0 0 0-5.707m4.752-1.72h-4.95c-.305-2.11-.83-4.003-1.566-5.35 2.855.775 5.22 2.75 6.516 5.35M9.313 2.077c-.736 1.347-1.261 3.24-1.567 5.35h-4.95a10.33 10.33 0 0 1 6.517-5.35M2.795 16.574h4.95c.306 2.11.83 4.002 1.567 5.349a10.33 10.33 0 0 1-6.517-5.35m11.893 5.349c.736-1.347 1.261-3.24 1.567-5.35h4.95a10.33 10.33 0 0 1-6.517 5.35"></path></svg></a><a href="https://github.com/mirumee/ariadne" target="_blank" rel="noreferrer"><svg xmlns="http://www.w3.org/2000/svg" width="30" fill="currentColor" viewBox="0 0 30 30"><path fill-rule="evenodd" d="M15.1.413a14.81 14.81 0 0 0-4.684 28.862c.742.138 1.012-.32 1.012-.712 0-.35-.013-1.283-.02-2.518-4.12.893-4.99-1.987-4.99-1.987-.675-1.71-1.643-2.165-1.643-2.165-1.345-.918.1-.9.1-.9 1.488.105 2.27 1.525 2.27 1.525 1.32 2.265 3.466 1.61 4.31 1.23.133-.955.515-1.608.94-1.978-3.29-.375-6.747-1.645-6.747-7.32 0-1.615.577-2.937 1.525-3.975-.15-.372-.66-1.88.145-3.917 0 0 1.242-.4 4.075 1.517a14.3 14.3 0 0 1 3.705-.5 14.2 14.2 0 0 1 3.707.5c2.826-1.915 4.068-1.517 4.068-1.517.807 2.037.3 3.545.15 3.92.95 1.035 1.52 2.357 1.52 3.975 0 5.687-3.462 6.94-6.76 7.305.53.457 1.005 1.36 1.005 2.742 0 1.98-.02 3.575-.02 4.063 0 .395.267.857 1.02.712A14.816 14.816 0 0 0 15.101.413" clip-rule="evenodd"></path></svg></a></div><div class="gap-2 flex roboto-mono"><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=python">Python</a><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=server">Server</a></div><span class="[&_a]:text-primary grow line-clamp-4 lg:text-lg">Ariadne is a Python library for implementing GraphQL servers using schema-first approach. It supports both synchronous and asynchronous query execution, ships with batteries included for common GraphQL server problems like query cost validation or performance tracing and has simple API that is easy to extend or replace.</span><div class="flex items-center gap-5 max-md:text-xs [&>:not(:last-child)]:border-r [&>:not(:last-child)]:border-gray-500 [&>:not(:last-child)]:pr-5"><span>Last release <!-- -->8 months ago</span><span class="flex items-center gap-1"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="19" fill="currentColor" class="text-primary"><path d="m10 .5 2.997 5.874L19.51 7.41l-4.66 4.666 1.027 6.514L10 15.6l-5.878 2.99 1.028-6.514L.489 7.41l6.513-1.036z"></path></svg>2k</span><span>BSD 3-Clause "New" or "Revised" License</span></div></div><details class="bg-[#f0f0f0] dark:bg-[#2f2f2f]"><summary class="flex justify-between font-bold text-primary px-8 lg:px-12 py-5 dark:[[open]>&]:shadow-[-5px_10px_30px_20px_#1b1b1b4d] [[open]>&]:shadow-[0_6px_21px_0_#1b1b1b33] cursor-pointer">README<svg xmlns="http://www.w3.org/2000/svg" fill="currentColor" viewBox="0 0 15 15" class="size-5 -rotate-90 [[open]>*>&]:rotate-90 transition-transform"><path fill-rule="evenodd" d="M8.842 3.135a.5.5 0 0 1 .023.707L5.435 7.5l3.43 3.658a.5.5 0 0 1-.73.684l-3.75-4a.5.5 0 0 1 0-.684l3.75-4a.5.5 0 0 1 .707-.023" clip-rule="evenodd"></path></svg></summary><div class="px-8 lg:px-12 py-5"><p class="[&:not(:first-child)]:_mt-6 _leading-7">Ariadne can be installed with pip:</p> <div class="nextra-code _relative [&:not(:first-child)]:_mt-6"><pre class="_overflow-x-auto _subpixel-antialiased _text-[.9em] _bg-white dark:_bg-black _py-4 _ring-1 _ring-inset _ring-gray-300 dark:_ring-neutral-700 contrast-more:_ring-gray-900 contrast-more:dark:_ring-gray-50 contrast-more:_contrast-150 _rounded-md" tabindex="0"><code class="nextra-code" dir="ltr"><span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">$</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> pip</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> install</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> ariadne</span></span></code></pre><div class="_opacity-0 _transition [div:hover>&]:_opacity-100 focus-within:_opacity-100 _flex _gap-1 _absolute _right-4 _top-2"><button class="_transition _rounded-md _p-1.5 _border _border-gray-300 dark:_border-neutral-700 contrast-more:_border-gray-900 contrast-more:dark:_border-gray-50 md:_hidden" title="Toggle word wrap"><svg viewBox="0 0 24 24" width="24" height="24" class="_h-4 _w-auto"><path fill="currentColor" d="M4 19h6v-2H4v2zM20 5H4v2h16V5zm-3 6H4v2h13.25c1.1 0 2 .9 2 2s-.9 2-2 2H15v-2l-3 3l3 3v-2h2c2.21 0 4-1.79 4-4s-1.79-4-4-4z"></path></svg></button></div></div> <p class="[&:not(:first-child)]:_mt-6 _leading-7">Minimal “Hello world” server example:</p> <div class="nextra-code _relative [&:not(:first-child)]:_mt-6"><pre class="_overflow-x-auto _subpixel-antialiased _text-[.9em] _bg-white dark:_bg-black _py-4 _ring-1 _ring-inset _ring-gray-300 dark:_ring-neutral-700 contrast-more:_ring-gray-900 contrast-more:dark:_ring-gray-50 contrast-more:_contrast-150 _rounded-md" tabindex="0"><code class="nextra-code" dir="ltr"><span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">from</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> ariadne </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">import</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> ObjectType, gql, make_executable_schema</span></span> <span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">from</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> ariadne.asgi </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">import</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> GraphQL</span></span> <span> </span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">type_defs </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> gql(</span></span> <span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> """</span></span> <span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> type Query {</span></span> <span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> hello: String!</span></span> <span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> }</span></span> <span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> """</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">)</span></span> <span> </span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">query_type </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> ObjectType(</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">"Query"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">)</span></span> <span> </span> <span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">@query_type.field</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">"hello"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">)</span></span> <span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">def</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> resolve_hello</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">*</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">_):</span></span> <span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> return</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> "Hello world!"</span></span> <span> </span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">schema </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> make_executable_schema(type_defs, query_type)</span></span> <span> </span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">app </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> GraphQL(schema, </span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70">debug</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">True</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">)</span></span></code></pre><div class="_opacity-0 _transition [div:hover>&]:_opacity-100 focus-within:_opacity-100 _flex _gap-1 _absolute _right-4 _top-2"><button class="_transition _rounded-md _p-1.5 _border _border-gray-300 dark:_border-neutral-700 contrast-more:_border-gray-900 contrast-more:dark:_border-gray-50 md:_hidden" title="Toggle word wrap"><svg viewBox="0 0 24 24" width="24" height="24" class="_h-4 _w-auto"><path fill="currentColor" d="M4 19h6v-2H4v2zM20 5H4v2h16V5zm-3 6H4v2h13.25c1.1 0 2 .9 2 2s-.9 2-2 2H15v-2l-3 3l3 3v-2h2c2.21 0 4-1.79 4-4s-1.79-4-4-4z"></path></svg></button></div></div> <p class="[&:not(:first-child)]:_mt-6 _leading-7">Run the server with uvicorn:</p> <div class="nextra-code _relative [&:not(:first-child)]:_mt-6"><pre class="_overflow-x-auto _subpixel-antialiased _text-[.9em] _bg-white dark:_bg-black _py-4 _ring-1 _ring-inset _ring-gray-300 dark:_ring-neutral-700 contrast-more:_ring-gray-900 contrast-more:dark:_ring-gray-50 contrast-more:_contrast-150 _rounded-md"><code class="nextra-code" dir="ltr">$ pip install uvicorn $ uvicorn example:app </code></pre><div class="_opacity-0 _transition [div:hover>&]:_opacity-100 focus-within:_opacity-100 _flex _gap-1 _absolute _right-4 _top-2"><button class="_transition _rounded-md _p-1.5 _border _border-gray-300 dark:_border-neutral-700 contrast-more:_border-gray-900 contrast-more:dark:_border-gray-50 md:_hidden" title="Toggle word wrap"><svg viewBox="0 0 24 24" width="24" height="24" class="_h-4 _w-auto"><path fill="currentColor" d="M4 19h6v-2H4v2zM20 5H4v2h16V5zm-3 6H4v2h13.25c1.1 0 2 .9 2 2s-.9 2-2 2H15v-2l-3 3l3 3v-2h2c2.21 0 4-1.79 4-4s-1.79-4-4-4z"></path></svg></button></div></div></div></details></div><div class="border border-zinc-200 dark:border-[#414141] p-8 lg:p-12 bg-white dark:bg-neutral-800 rounded-none !p-0 h-max min-w-0"><div class="p-8 lg:p-12 flex flex-col gap-7 grow"><div class="flex items-center gap-6 [&_a:hover]:text-primary [&_a]:transition-colors"><span class="text-3xl font-extrabold grow break-all">GraphQL CLI</span><a href="https://graphql-cli.com" target="_blank" rel="noreferrer"><svg xmlns="http://www.w3.org/2000/svg" fill="currentColor" viewBox="0 0 24 24"><path d="M23.332 15.948C23.764 14.711 24 13.383 24 12a12 12 0 0 0-.706-4.056C21.627 3.317 17.194 0 12 0S2.373 3.317.706 7.944A11.949 11.949 0 0 0 0 12a12 12 0 0 0 .706 4.056C2.373 20.683 6.806 24 12 24s9.627-3.317 11.294-7.944a1 1 0 0 0 .038-.108M12 22.28c-.457 0-1.194-.827-1.81-2.675a19 19 0 0 1-.708-3.031h5.036a19 19 0 0 1-.708 3.031c-.616 1.848-1.353 2.675-1.81 2.675m-2.727-7.427A32 32 0 0 1 9.147 12c0-.98.043-1.936.126-2.853h5.454c.083.917.126 1.874.126 2.853s-.043 1.936-.126 2.854zM1.72 12c0-.99.141-1.947.403-2.853h5.425a33.5 33.5 0 0 0 0 5.707H2.123A10.3 10.3 0 0 1 1.72 12M12 1.72c.457 0 1.194.827 1.81 2.675.297.892.535 1.917.708 3.032H9.482c.173-1.115.411-2.14.708-3.032.616-1.848 1.353-2.675 1.81-2.675m4.452 7.427h5.425c.262.906.403 1.864.403 2.853s-.141 1.947-.403 2.854h-5.425a33.5 33.5 0 0 0 0-5.707m4.752-1.72h-4.95c-.305-2.11-.83-4.003-1.566-5.35 2.855.775 5.22 2.75 6.516 5.35M9.313 2.077c-.736 1.347-1.261 3.24-1.567 5.35h-4.95a10.33 10.33 0 0 1 6.517-5.35M2.795 16.574h4.95c.306 2.11.83 4.002 1.567 5.349a10.33 10.33 0 0 1-6.517-5.35m11.893 5.349c.736-1.347 1.261-3.24 1.567-5.35h4.95a10.33 10.33 0 0 1-6.517 5.35"></path></svg></a><a href="https://github.com/Urigo/graphql-cli" target="_blank" rel="noreferrer"><svg xmlns="http://www.w3.org/2000/svg" width="30" fill="currentColor" viewBox="0 0 30 30"><path fill-rule="evenodd" d="M15.1.413a14.81 14.81 0 0 0-4.684 28.862c.742.138 1.012-.32 1.012-.712 0-.35-.013-1.283-.02-2.518-4.12.893-4.99-1.987-4.99-1.987-.675-1.71-1.643-2.165-1.643-2.165-1.345-.918.1-.9.1-.9 1.488.105 2.27 1.525 2.27 1.525 1.32 2.265 3.466 1.61 4.31 1.23.133-.955.515-1.608.94-1.978-3.29-.375-6.747-1.645-6.747-7.32 0-1.615.577-2.937 1.525-3.975-.15-.372-.66-1.88.145-3.917 0 0 1.242-.4 4.075 1.517a14.3 14.3 0 0 1 3.705-.5 14.2 14.2 0 0 1 3.707.5c2.826-1.915 4.068-1.517 4.068-1.517.807 2.037.3 3.545.15 3.92.95 1.035 1.52 2.357 1.52 3.975 0 5.687-3.462 6.94-6.76 7.305.53.457 1.005 1.36 1.005 2.742 0 1.98-.02 3.575-.02 4.063 0 .395.267.857 1.02.712A14.816 14.816 0 0 0 15.101.413" clip-rule="evenodd"></path></svg></a><a href="https://npmjs.com/package/graphql-cli" target="_blank" rel="noreferrer"><svg xmlns="http://www.w3.org/2000/svg" width="30" height="30" fill="currentColor"><path fill-rule="evenodd" d="M0 0v30h30V0zm24.375 5.625H5.625v18.75H15v-15h5.625v15h3.75z" clip-rule="evenodd"></path></svg></a></div><div class="gap-2 flex roboto-mono"><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=javascript">JavaScript</a><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=tools">Tools</a></div><span class="[&_a]:text-primary grow line-clamp-4 lg:text-lg">A command line tool for common GraphQL development workflows.</span><div class="flex items-center gap-5 max-md:text-xs [&>:not(:last-child)]:border-r [&>:not(:last-child)]:border-gray-500 [&>:not(:last-child)]:pr-5"><span>Last release <!-- -->4 years ago</span><span class="flex items-center gap-1"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="19" fill="currentColor" class="text-primary"><path d="m10 .5 2.997 5.874L19.51 7.41l-4.66 4.666 1.027 6.514L10 15.6l-5.878 2.99 1.028-6.514L.489 7.41l6.513-1.036z"></path></svg>2k</span><span>MIT License</span></div></div></div><div class="border border-zinc-200 dark:border-[#414141] p-8 lg:p-12 bg-white dark:bg-neutral-800 rounded-none !p-0 h-max min-w-0"><div class="p-8 lg:p-12 flex flex-col gap-7 grow"><div class="flex items-center gap-6 [&_a:hover]:text-primary [&_a]:transition-colors"><span class="text-3xl font-extrabold grow break-all">Sangria</span><a href="https://sangria-graphql.github.io/" target="_blank" rel="noreferrer"><svg xmlns="http://www.w3.org/2000/svg" fill="currentColor" viewBox="0 0 24 24"><path d="M23.332 15.948C23.764 14.711 24 13.383 24 12a12 12 0 0 0-.706-4.056C21.627 3.317 17.194 0 12 0S2.373 3.317.706 7.944A11.949 11.949 0 0 0 0 12a12 12 0 0 0 .706 4.056C2.373 20.683 6.806 24 12 24s9.627-3.317 11.294-7.944a1 1 0 0 0 .038-.108M12 22.28c-.457 0-1.194-.827-1.81-2.675a19 19 0 0 1-.708-3.031h5.036a19 19 0 0 1-.708 3.031c-.616 1.848-1.353 2.675-1.81 2.675m-2.727-7.427A32 32 0 0 1 9.147 12c0-.98.043-1.936.126-2.853h5.454c.083.917.126 1.874.126 2.853s-.043 1.936-.126 2.854zM1.72 12c0-.99.141-1.947.403-2.853h5.425a33.5 33.5 0 0 0 0 5.707H2.123A10.3 10.3 0 0 1 1.72 12M12 1.72c.457 0 1.194.827 1.81 2.675.297.892.535 1.917.708 3.032H9.482c.173-1.115.411-2.14.708-3.032.616-1.848 1.353-2.675 1.81-2.675m4.452 7.427h5.425c.262.906.403 1.864.403 2.853s-.141 1.947-.403 2.854h-5.425a33.5 33.5 0 0 0 0-5.707m4.752-1.72h-4.95c-.305-2.11-.83-4.003-1.566-5.35 2.855.775 5.22 2.75 6.516 5.35M9.313 2.077c-.736 1.347-1.261 3.24-1.567 5.35h-4.95a10.33 10.33 0 0 1 6.517-5.35M2.795 16.574h4.95c.306 2.11.83 4.002 1.567 5.349a10.33 10.33 0 0 1-6.517-5.35m11.893 5.349c.736-1.347 1.261-3.24 1.567-5.35h4.95a10.33 10.33 0 0 1-6.517 5.35"></path></svg></a><a href="https://github.com/sangria-graphql/sangria" target="_blank" rel="noreferrer"><svg xmlns="http://www.w3.org/2000/svg" width="30" fill="currentColor" viewBox="0 0 30 30"><path fill-rule="evenodd" d="M15.1.413a14.81 14.81 0 0 0-4.684 28.862c.742.138 1.012-.32 1.012-.712 0-.35-.013-1.283-.02-2.518-4.12.893-4.99-1.987-4.99-1.987-.675-1.71-1.643-2.165-1.643-2.165-1.345-.918.1-.9.1-.9 1.488.105 2.27 1.525 2.27 1.525 1.32 2.265 3.466 1.61 4.31 1.23.133-.955.515-1.608.94-1.978-3.29-.375-6.747-1.645-6.747-7.32 0-1.615.577-2.937 1.525-3.975-.15-.372-.66-1.88.145-3.917 0 0 1.242-.4 4.075 1.517a14.3 14.3 0 0 1 3.705-.5 14.2 14.2 0 0 1 3.707.5c2.826-1.915 4.068-1.517 4.068-1.517.807 2.037.3 3.545.15 3.92.95 1.035 1.52 2.357 1.52 3.975 0 5.687-3.462 6.94-6.76 7.305.53.457 1.005 1.36 1.005 2.742 0 1.98-.02 3.575-.02 4.063 0 .395.267.857 1.02.712A14.816 14.816 0 0 0 15.101.413" clip-rule="evenodd"></path></svg></a></div><div class="gap-2 flex roboto-mono"><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=scala">Scala</a><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=server">Server</a></div><span class="[&_a]:text-primary grow line-clamp-4 lg:text-lg">A Scala GraphQL library that supports <a href="https://facebook.github.io/relay/">Relay</a>.</span><div class="flex items-center gap-5 max-md:text-xs [&>:not(:last-child)]:border-r [&>:not(:last-child)]:border-gray-500 [&>:not(:last-child)]:pr-5"><span>Last release <!-- -->2 weeks ago</span><span class="flex items-center gap-1"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="19" fill="currentColor" class="text-primary"><path d="m10 .5 2.997 5.874L19.51 7.41l-4.66 4.666 1.027 6.514L10 15.6l-5.878 2.99 1.028-6.514L.489 7.41l6.513-1.036z"></path></svg>2k</span><span>Apache License 2.0</span></div></div><details class="bg-[#f0f0f0] dark:bg-[#2f2f2f]"><summary class="flex justify-between font-bold text-primary px-8 lg:px-12 py-5 dark:[[open]>&]:shadow-[-5px_10px_30px_20px_#1b1b1b4d] [[open]>&]:shadow-[0_6px_21px_0_#1b1b1b33] cursor-pointer">README<svg xmlns="http://www.w3.org/2000/svg" fill="currentColor" viewBox="0 0 15 15" class="size-5 -rotate-90 [[open]>*>&]:rotate-90 transition-transform"><path fill-rule="evenodd" d="M8.842 3.135a.5.5 0 0 1 .023.707L5.435 7.5l3.43 3.658a.5.5 0 0 1-.73.684l-3.75-4a.5.5 0 0 1 0-.684l3.75-4a.5.5 0 0 1 .707-.023" clip-rule="evenodd"></path></svg></summary><div class="px-8 lg:px-12 py-5"><p class="[&:not(:first-child)]:_mt-6 _leading-7">An example of a hello world GraphQL schema and query with <code class="nextra-code" dir="ltr">sangria</code>:</p> <div class="nextra-code _relative [&:not(:first-child)]:_mt-6"><pre class="_overflow-x-auto _subpixel-antialiased _text-[.9em] _bg-white dark:_bg-black _py-4 _ring-1 _ring-inset _ring-gray-300 dark:_ring-neutral-700 contrast-more:_ring-gray-900 contrast-more:dark:_ring-gray-50 contrast-more:_contrast-150 _rounded-md" tabindex="0"><code class="nextra-code" dir="ltr"><span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">import</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> sangria</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">schema</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">_</span></span> <span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">import</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> sangria</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">execution</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">_</span></span> <span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">import</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> sangria</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">macros</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">_</span></span> <span> </span> <span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">val</span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70"> QueryType</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> =</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> ObjectType</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">"Query"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">, fields[</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">Unit</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">, </span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">Unit</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">](</span></span> <span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> Field</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">"hello"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">, </span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">StringType</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">, resolve </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> _ </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">⇒</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> "Hello world!"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">)</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">))</span></span> <span> </span> <span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">val</span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70"> schema</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> =</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> Schema</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">QueryType</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">)</span></span> <span> </span> <span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">val</span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70"> query</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> =</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> graphql</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">"{ hello }"</span></span> <span> </span> <span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">Executor</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">.execute(schema, query) map println</span></span></code></pre><div class="_opacity-0 _transition [div:hover>&]:_opacity-100 focus-within:_opacity-100 _flex _gap-1 _absolute _right-4 _top-2"><button class="_transition _rounded-md _p-1.5 _border _border-gray-300 dark:_border-neutral-700 contrast-more:_border-gray-900 contrast-more:dark:_border-gray-50 md:_hidden" title="Toggle word wrap"><svg viewBox="0 0 24 24" width="24" height="24" class="_h-4 _w-auto"><path fill="currentColor" d="M4 19h6v-2H4v2zM20 5H4v2h16V5zm-3 6H4v2h13.25c1.1 0 2 .9 2 2s-.9 2-2 2H15v-2l-3 3l3 3v-2h2c2.21 0 4-1.79 4-4s-1.79-4-4-4z"></path></svg></button></div></div></div></details></div><div class="border border-zinc-200 dark:border-[#414141] p-8 lg:p-12 bg-white dark:bg-neutral-800 rounded-none !p-0 h-max min-w-0"><div class="p-8 lg:p-12 flex flex-col gap-7 grow"><div class="flex items-center gap-6 [&_a:hover]:text-primary [&_a]:transition-colors"><span class="text-3xl font-extrabold grow break-all">GraphQL Scalars</span><a href="https://github.com/Urigo/graphql-scalars" target="_blank" rel="noreferrer"><svg xmlns="http://www.w3.org/2000/svg" width="30" fill="currentColor" viewBox="0 0 30 30"><path fill-rule="evenodd" d="M15.1.413a14.81 14.81 0 0 0-4.684 28.862c.742.138 1.012-.32 1.012-.712 0-.35-.013-1.283-.02-2.518-4.12.893-4.99-1.987-4.99-1.987-.675-1.71-1.643-2.165-1.643-2.165-1.345-.918.1-.9.1-.9 1.488.105 2.27 1.525 2.27 1.525 1.32 2.265 3.466 1.61 4.31 1.23.133-.955.515-1.608.94-1.978-3.29-.375-6.747-1.645-6.747-7.32 0-1.615.577-2.937 1.525-3.975-.15-.372-.66-1.88.145-3.917 0 0 1.242-.4 4.075 1.517a14.3 14.3 0 0 1 3.705-.5 14.2 14.2 0 0 1 3.707.5c2.826-1.915 4.068-1.517 4.068-1.517.807 2.037.3 3.545.15 3.92.95 1.035 1.52 2.357 1.52 3.975 0 5.687-3.462 6.94-6.76 7.305.53.457 1.005 1.36 1.005 2.742 0 1.98-.02 3.575-.02 4.063 0 .395.267.857 1.02.712A14.816 14.816 0 0 0 15.101.413" clip-rule="evenodd"></path></svg></a><a href="https://npmjs.com/package/graphql-scalars" target="_blank" rel="noreferrer"><svg xmlns="http://www.w3.org/2000/svg" width="30" height="30" fill="currentColor"><path fill-rule="evenodd" d="M0 0v30h30V0zm24.375 5.625H5.625v18.75H15v-15h5.625v15h3.75z" clip-rule="evenodd"></path></svg></a></div><div class="gap-2 flex roboto-mono"><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=javascript">JavaScript</a><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=tools">Tools</a></div><span class="[&_a]:text-primary grow line-clamp-4 lg:text-lg">A library of custom GraphQL scalar types for creating precise, type-safe GraphQL schemas.</span><div class="flex items-center gap-5 max-md:text-xs [&>:not(:last-child)]:border-r [&>:not(:last-child)]:border-gray-500 [&>:not(:last-child)]:pr-5"><span>Last release <!-- -->8 months ago</span><span class="flex items-center gap-1"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="19" fill="currentColor" class="text-primary"><path d="m10 .5 2.997 5.874L19.51 7.41l-4.66 4.666 1.027 6.514L10 15.6l-5.878 2.99 1.028-6.514L.489 7.41l6.513-1.036z"></path></svg>2k</span><span>MIT License</span></div></div></div><div class="border border-zinc-200 dark:border-[#414141] p-8 lg:p-12 bg-white dark:bg-neutral-800 rounded-none !p-0 h-max min-w-0"><div class="p-8 lg:p-12 flex flex-col gap-7 grow"><div class="flex items-center gap-6 [&_a:hover]:text-primary [&_a]:transition-colors"><span class="text-3xl font-extrabold grow break-all">graphql-hooks</span><a href="https://github.com/nearform/graphql-hooks" target="_blank" rel="noreferrer"><svg xmlns="http://www.w3.org/2000/svg" width="30" fill="currentColor" viewBox="0 0 30 30"><path fill-rule="evenodd" d="M15.1.413a14.81 14.81 0 0 0-4.684 28.862c.742.138 1.012-.32 1.012-.712 0-.35-.013-1.283-.02-2.518-4.12.893-4.99-1.987-4.99-1.987-.675-1.71-1.643-2.165-1.643-2.165-1.345-.918.1-.9.1-.9 1.488.105 2.27 1.525 2.27 1.525 1.32 2.265 3.466 1.61 4.31 1.23.133-.955.515-1.608.94-1.978-3.29-.375-6.747-1.645-6.747-7.32 0-1.615.577-2.937 1.525-3.975-.15-.372-.66-1.88.145-3.917 0 0 1.242-.4 4.075 1.517a14.3 14.3 0 0 1 3.705-.5 14.2 14.2 0 0 1 3.707.5c2.826-1.915 4.068-1.517 4.068-1.517.807 2.037.3 3.545.15 3.92.95 1.035 1.52 2.357 1.52 3.975 0 5.687-3.462 6.94-6.76 7.305.53.457 1.005 1.36 1.005 2.742 0 1.98-.02 3.575-.02 4.063 0 .395.267.857 1.02.712A14.816 14.816 0 0 0 15.101.413" clip-rule="evenodd"></path></svg></a><a href="https://npmjs.com/package/graphql-hooks" target="_blank" rel="noreferrer"><svg xmlns="http://www.w3.org/2000/svg" width="30" height="30" fill="currentColor"><path fill-rule="evenodd" d="M0 0v30h30V0zm24.375 5.625H5.625v18.75H15v-15h5.625v15h3.75z" clip-rule="evenodd"></path></svg></a></div><div class="gap-2 flex roboto-mono"><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=javascript">JavaScript</a><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=client">Client</a></div><span class="[&_a]:text-primary grow line-clamp-4 lg:text-lg">Minimal React hooks-first GraphQL client with a tiny bundle, SSR support and caching</span><div class="flex items-center gap-5 max-md:text-xs [&>:not(:last-child)]:border-r [&>:not(:last-child)]:border-gray-500 [&>:not(:last-child)]:pr-5"><span>Last release <!-- -->5 months ago</span><span class="flex items-center gap-1"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="19" fill="currentColor" class="text-primary"><path d="m10 .5 2.997 5.874L19.51 7.41l-4.66 4.666 1.027 6.514L10 15.6l-5.878 2.99 1.028-6.514L.489 7.41l6.513-1.036z"></path></svg>2k</span><span>Other</span></div></div><details class="bg-[#f0f0f0] dark:bg-[#2f2f2f]"><summary class="flex justify-between font-bold text-primary px-8 lg:px-12 py-5 dark:[[open]>&]:shadow-[-5px_10px_30px_20px_#1b1b1b4d] [[open]>&]:shadow-[0_6px_21px_0_#1b1b1b33] cursor-pointer">README<svg xmlns="http://www.w3.org/2000/svg" fill="currentColor" viewBox="0 0 15 15" class="size-5 -rotate-90 [[open]>*>&]:rotate-90 transition-transform"><path fill-rule="evenodd" d="M8.842 3.135a.5.5 0 0 1 .023.707L5.435 7.5l3.43 3.658a.5.5 0 0 1-.73.684l-3.75-4a.5.5 0 0 1 0-.684l3.75-4a.5.5 0 0 1 .707-.023" clip-rule="evenodd"></path></svg></summary><div class="px-8 lg:px-12 py-5"><ul class="[:is(ol,ul)_&]:_my-3 [&:not(:first-child)]:_mt-6 _list-disc ltr:_ml-6 rtl:_mr-6"> <li class="_my-2">🥇 First-class hooks API</li> <li class="_my-2">⚖️ <em>Tiny</em> bundle: only 7.6kB (2.8 gzipped)</li> <li class="_my-2">📄 Full SSR support: see <a class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]" href="/community/packages/graphql-hooks-ssr/">graphql-hooks-ssr</a></li> <li class="_my-2">🔌 Plugin Caching: see <a class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]" href="/community/packages/graphql-hooks-memcache/">graphql-hooks-memcache</a></li> <li class="_my-2">🔥 No more render props hell</li> <li class="_my-2">⏳ Handle loading and error states with ease</li> </ul> <h3 class="_font-semibold _tracking-tight _text-slate-900 dark:_text-slate-100 _mt-8 _text-2xl">Quickstart<a href="#quickstart" id="quickstart" class="subheading-anchor" aria-label="Permalink for this section"></a></h3> <div class="nextra-code _relative [&:not(:first-child)]:_mt-6"><pre class="_overflow-x-auto _subpixel-antialiased _text-[.9em] _bg-white dark:_bg-black _py-4 _ring-1 _ring-inset _ring-gray-300 dark:_ring-neutral-700 contrast-more:_ring-gray-900 contrast-more:dark:_ring-gray-50 contrast-more:_contrast-150 _rounded-md" tabindex="0"><code class="nextra-code" dir="ltr"><span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">npm</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> install</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> graphql-hooks</span></span></code></pre><div class="_opacity-0 _transition [div:hover>&]:_opacity-100 focus-within:_opacity-100 _flex _gap-1 _absolute _right-4 _top-2"><button class="_transition _rounded-md _p-1.5 _border _border-gray-300 dark:_border-neutral-700 contrast-more:_border-gray-900 contrast-more:dark:_border-gray-50 md:_hidden" title="Toggle word wrap"><svg viewBox="0 0 24 24" width="24" height="24" class="_h-4 _w-auto"><path fill="currentColor" d="M4 19h6v-2H4v2zM20 5H4v2h16V5zm-3 6H4v2h13.25c1.1 0 2 .9 2 2s-.9 2-2 2H15v-2l-3 3l3 3v-2h2c2.21 0 4-1.79 4-4s-1.79-4-4-4z"></path></svg></button></div></div> <p class="[&:not(:first-child)]:_mt-6 _leading-7">First you’ll need to create a client and wrap your app with the provider:</p> <div class="nextra-code _relative [&:not(:first-child)]:_mt-6"><pre class="_overflow-x-auto _subpixel-antialiased _text-[.9em] _bg-white dark:_bg-black _py-4 _ring-1 _ring-inset _ring-gray-300 dark:_ring-neutral-700 contrast-more:_ring-gray-900 contrast-more:dark:_ring-gray-50 contrast-more:_contrast-150 _rounded-md" tabindex="0"><code class="nextra-code" dir="ltr"><span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">import</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> { GraphQLClient, ClientContext } </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">from</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> "graphql-hooks"</span></span> <span> </span> <span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">const</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> client</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> =</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> new</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> GraphQLClient</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">({</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> url: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">"/graphql"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">,</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">})</span></span> <span> </span> <span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">function</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> App</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">() {</span></span> <span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> return</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> (</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> <</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">ClientContext.Provider</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> value</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">{client}></span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> {</span><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D">/* children */</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">}</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> </</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">ClientContext.Provider</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">></span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> )</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">}</span></span></code></pre><div class="_opacity-0 _transition [div:hover>&]:_opacity-100 focus-within:_opacity-100 _flex _gap-1 _absolute _right-4 _top-2"><button class="_transition _rounded-md _p-1.5 _border _border-gray-300 dark:_border-neutral-700 contrast-more:_border-gray-900 contrast-more:dark:_border-gray-50 md:_hidden" title="Toggle word wrap"><svg viewBox="0 0 24 24" width="24" height="24" class="_h-4 _w-auto"><path fill="currentColor" d="M4 19h6v-2H4v2zM20 5H4v2h16V5zm-3 6H4v2h13.25c1.1 0 2 .9 2 2s-.9 2-2 2H15v-2l-3 3l3 3v-2h2c2.21 0 4-1.79 4-4s-1.79-4-4-4z"></path></svg></button></div></div> <p class="[&:not(:first-child)]:_mt-6 _leading-7">Now in your child components you can make use of <code class="nextra-code" dir="ltr">useQuery</code>:</p> <div class="nextra-code _relative [&:not(:first-child)]:_mt-6"><pre class="_overflow-x-auto _subpixel-antialiased _text-[.9em] _bg-white dark:_bg-black _py-4 _ring-1 _ring-inset _ring-gray-300 dark:_ring-neutral-700 contrast-more:_ring-gray-900 contrast-more:dark:_ring-gray-50 contrast-more:_contrast-150 _rounded-md" tabindex="0"><code class="nextra-code" dir="ltr"><span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">import</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> { useQuery } </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">from</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> "graphql-hooks"</span></span> <span> </span> <span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">const</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> HOMEPAGE_QUERY</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> =</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> `query HomePage($limit: Int) {</span></span> <span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> users(limit: $limit) {</span></span> <span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> id</span></span> <span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> name</span></span> <span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> }</span></span> <span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">}`</span></span> <span> </span> <span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">function</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> MyComponent</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">() {</span></span> <span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> const</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> { </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">loading</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">, </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">error</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">, </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">data</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> } </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> useQuery</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">HOMEPAGE_QUERY</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">, {</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> variables: {</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> limit: </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">10</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">,</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> },</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> })</span></span> <span> </span> <span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> if</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> (loading) </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">return</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> "Loading..."</span></span> <span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> if</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> (error) </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">return</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> "Something Bad Happened"</span></span> <span> </span> <span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> return</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> (</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> <</span><span style="--shiki-light:#22863A;--shiki-dark:#85E89D">ul</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">></span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> {data.users.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">map</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(({ </span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70">id</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">, </span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70">name</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> }) </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=></span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> (</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> <</span><span style="--shiki-light:#22863A;--shiki-dark:#85E89D">li</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> key</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">{id}>{name}</</span><span style="--shiki-light:#22863A;--shiki-dark:#85E89D">li</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">></span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> ))}</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> </</span><span style="--shiki-light:#22863A;--shiki-dark:#85E89D">ul</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">></span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> )</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">}</span></span></code></pre><div class="_opacity-0 _transition [div:hover>&]:_opacity-100 focus-within:_opacity-100 _flex _gap-1 _absolute _right-4 _top-2"><button class="_transition _rounded-md _p-1.5 _border _border-gray-300 dark:_border-neutral-700 contrast-more:_border-gray-900 contrast-more:dark:_border-gray-50 md:_hidden" title="Toggle word wrap"><svg viewBox="0 0 24 24" width="24" height="24" class="_h-4 _w-auto"><path fill="currentColor" d="M4 19h6v-2H4v2zM20 5H4v2h16V5zm-3 6H4v2h13.25c1.1 0 2 .9 2 2s-.9 2-2 2H15v-2l-3 3l3 3v-2h2c2.21 0 4-1.79 4-4s-1.79-4-4-4z"></path></svg></button></div></div></div></details></div><div class="border border-zinc-200 dark:border-[#414141] p-8 lg:p-12 bg-white dark:bg-neutral-800 rounded-none !p-0 h-max min-w-0"><div class="p-8 lg:p-12 flex flex-col gap-7 grow"><div class="flex items-center gap-6 [&_a:hover]:text-primary [&_a]:transition-colors"><span class="text-3xl font-extrabold grow break-all">lacinia</span><a href="https://github.com/walmartlabs/lacinia" target="_blank" rel="noreferrer"><svg xmlns="http://www.w3.org/2000/svg" width="30" fill="currentColor" viewBox="0 0 30 30"><path fill-rule="evenodd" d="M15.1.413a14.81 14.81 0 0 0-4.684 28.862c.742.138 1.012-.32 1.012-.712 0-.35-.013-1.283-.02-2.518-4.12.893-4.99-1.987-4.99-1.987-.675-1.71-1.643-2.165-1.643-2.165-1.345-.918.1-.9.1-.9 1.488.105 2.27 1.525 2.27 1.525 1.32 2.265 3.466 1.61 4.31 1.23.133-.955.515-1.608.94-1.978-3.29-.375-6.747-1.645-6.747-7.32 0-1.615.577-2.937 1.525-3.975-.15-.372-.66-1.88.145-3.917 0 0 1.242-.4 4.075 1.517a14.3 14.3 0 0 1 3.705-.5 14.2 14.2 0 0 1 3.707.5c2.826-1.915 4.068-1.517 4.068-1.517.807 2.037.3 3.545.15 3.92.95 1.035 1.52 2.357 1.52 3.975 0 5.687-3.462 6.94-6.76 7.305.53.457 1.005 1.36 1.005 2.742 0 1.98-.02 3.575-.02 4.063 0 .395.267.857 1.02.712A14.816 14.816 0 0 0 15.101.413" clip-rule="evenodd"></path></svg></a></div><div class="gap-2 flex roboto-mono"><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=clojure">Clojure</a><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=server">Server</a></div><span class="[&_a]:text-primary grow line-clamp-4 lg:text-lg">A full implementation of the GraphQL specification that aims to maintain external compliance with the specification.</span><div class="flex items-center gap-5 max-md:text-xs [&>:not(:last-child)]:border-r [&>:not(:last-child)]:border-gray-500 [&>:not(:last-child)]:pr-5"><span class="flex items-center gap-1"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="19" fill="currentColor" class="text-primary"><path d="m10 .5 2.997 5.874L19.51 7.41l-4.66 4.666 1.027 6.514L10 15.6l-5.878 2.99 1.028-6.514L.489 7.41l6.513-1.036z"></path></svg>2k</span><span>Other</span></div></div></div><div class="border border-zinc-200 dark:border-[#414141] p-8 lg:p-12 bg-white dark:bg-neutral-800 rounded-none !p-0 h-max min-w-0"><div class="p-8 lg:p-12 flex flex-col gap-7 grow"><div class="flex items-center gap-6 [&_a:hover]:text-primary [&_a]:transition-colors"><span class="text-3xl font-extrabold grow break-all">GraphQL-WS</span><a href="https://github.com/enisdenjo/graphql-ws" target="_blank" rel="noreferrer"><svg xmlns="http://www.w3.org/2000/svg" width="30" fill="currentColor" viewBox="0 0 30 30"><path fill-rule="evenodd" d="M15.1.413a14.81 14.81 0 0 0-4.684 28.862c.742.138 1.012-.32 1.012-.712 0-.35-.013-1.283-.02-2.518-4.12.893-4.99-1.987-4.99-1.987-.675-1.71-1.643-2.165-1.643-2.165-1.345-.918.1-.9.1-.9 1.488.105 2.27 1.525 2.27 1.525 1.32 2.265 3.466 1.61 4.31 1.23.133-.955.515-1.608.94-1.978-3.29-.375-6.747-1.645-6.747-7.32 0-1.615.577-2.937 1.525-3.975-.15-.372-.66-1.88.145-3.917 0 0 1.242-.4 4.075 1.517a14.3 14.3 0 0 1 3.705-.5 14.2 14.2 0 0 1 3.707.5c2.826-1.915 4.068-1.517 4.068-1.517.807 2.037.3 3.545.15 3.92.95 1.035 1.52 2.357 1.52 3.975 0 5.687-3.462 6.94-6.76 7.305.53.457 1.005 1.36 1.005 2.742 0 1.98-.02 3.575-.02 4.063 0 .395.267.857 1.02.712A14.816 14.816 0 0 0 15.101.413" clip-rule="evenodd"></path></svg></a><a href="https://npmjs.com/package/graphql-ws" target="_blank" rel="noreferrer"><svg xmlns="http://www.w3.org/2000/svg" width="30" height="30" fill="currentColor"><path fill-rule="evenodd" d="M0 0v30h30V0zm24.375 5.625H5.625v18.75H15v-15h5.625v15h3.75z" clip-rule="evenodd"></path></svg></a></div><div class="gap-2 flex roboto-mono"><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=javascript">JavaScript</a><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=client">Client</a></div><span class="[&_a]:text-primary grow line-clamp-4 lg:text-lg">Coherent, zero-dependency, lazy, simple, GraphQL over WebSocket Protocol compliant server and client.</span><div class="flex items-center gap-5 max-md:text-xs [&>:not(:last-child)]:border-r [&>:not(:last-child)]:border-gray-500 [&>:not(:last-child)]:pr-5"><span>Last release <!-- -->8 months ago</span><span class="flex items-center gap-1"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="19" fill="currentColor" class="text-primary"><path d="m10 .5 2.997 5.874L19.51 7.41l-4.66 4.666 1.027 6.514L10 15.6l-5.878 2.99 1.028-6.514L.489 7.41l6.513-1.036z"></path></svg>2k</span><span>MIT License</span></div></div></div><div class="border border-zinc-200 dark:border-[#414141] p-8 lg:p-12 bg-white dark:bg-neutral-800 rounded-none !p-0 h-max min-w-0"><div class="p-8 lg:p-12 flex flex-col gap-7 grow"><div class="flex items-center gap-6 [&_a:hover]:text-primary [&_a]:transition-colors"><span class="text-3xl font-extrabold grow break-all">GraphQL-WS</span><a href="https://github.com/enisdenjo/graphql-ws" target="_blank" rel="noreferrer"><svg xmlns="http://www.w3.org/2000/svg" width="30" fill="currentColor" viewBox="0 0 30 30"><path fill-rule="evenodd" d="M15.1.413a14.81 14.81 0 0 0-4.684 28.862c.742.138 1.012-.32 1.012-.712 0-.35-.013-1.283-.02-2.518-4.12.893-4.99-1.987-4.99-1.987-.675-1.71-1.643-2.165-1.643-2.165-1.345-.918.1-.9.1-.9 1.488.105 2.27 1.525 2.27 1.525 1.32 2.265 3.466 1.61 4.31 1.23.133-.955.515-1.608.94-1.978-3.29-.375-6.747-1.645-6.747-7.32 0-1.615.577-2.937 1.525-3.975-.15-.372-.66-1.88.145-3.917 0 0 1.242-.4 4.075 1.517a14.3 14.3 0 0 1 3.705-.5 14.2 14.2 0 0 1 3.707.5c2.826-1.915 4.068-1.517 4.068-1.517.807 2.037.3 3.545.15 3.92.95 1.035 1.52 2.357 1.52 3.975 0 5.687-3.462 6.94-6.76 7.305.53.457 1.005 1.36 1.005 2.742 0 1.98-.02 3.575-.02 4.063 0 .395.267.857 1.02.712A14.816 14.816 0 0 0 15.101.413" clip-rule="evenodd"></path></svg></a><a href="https://npmjs.com/package/graphql-ws" target="_blank" rel="noreferrer"><svg xmlns="http://www.w3.org/2000/svg" width="30" height="30" fill="currentColor"><path fill-rule="evenodd" d="M0 0v30h30V0zm24.375 5.625H5.625v18.75H15v-15h5.625v15h3.75z" clip-rule="evenodd"></path></svg></a></div><div class="gap-2 flex roboto-mono"><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=javascript">JavaScript</a><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=server">Server</a></div><span class="[&_a]:text-primary grow line-clamp-4 lg:text-lg">Coherent, zero-dependency, lazy, simple, GraphQL over WebSocket Protocol compliant server and client.</span><div class="flex items-center gap-5 max-md:text-xs [&>:not(:last-child)]:border-r [&>:not(:last-child)]:border-gray-500 [&>:not(:last-child)]:pr-5"><span>Last release <!-- -->8 months ago</span><span class="flex items-center gap-1"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="19" fill="currentColor" class="text-primary"><path d="m10 .5 2.997 5.874L19.51 7.41l-4.66 4.666 1.027 6.514L10 15.6l-5.878 2.99 1.028-6.514L.489 7.41l6.513-1.036z"></path></svg>2k</span><span>MIT License</span></div></div></div><div class="border border-zinc-200 dark:border-[#414141] p-8 lg:p-12 bg-white dark:bg-neutral-800 rounded-none !p-0 h-max min-w-0"><div class="p-8 lg:p-12 flex flex-col gap-7 grow"><div class="flex items-center gap-6 [&_a:hover]:text-primary [&_a]:transition-colors"><span class="text-3xl font-extrabold grow break-all">graphql-kotlin</span><a href="https://github.com/ExpediaGroup/graphql-kotlin" target="_blank" rel="noreferrer"><svg xmlns="http://www.w3.org/2000/svg" width="30" fill="currentColor" viewBox="0 0 30 30"><path fill-rule="evenodd" d="M15.1.413a14.81 14.81 0 0 0-4.684 28.862c.742.138 1.012-.32 1.012-.712 0-.35-.013-1.283-.02-2.518-4.12.893-4.99-1.987-4.99-1.987-.675-1.71-1.643-2.165-1.643-2.165-1.345-.918.1-.9.1-.9 1.488.105 2.27 1.525 2.27 1.525 1.32 2.265 3.466 1.61 4.31 1.23.133-.955.515-1.608.94-1.978-3.29-.375-6.747-1.645-6.747-7.32 0-1.615.577-2.937 1.525-3.975-.15-.372-.66-1.88.145-3.917 0 0 1.242-.4 4.075 1.517a14.3 14.3 0 0 1 3.705-.5 14.2 14.2 0 0 1 3.707.5c2.826-1.915 4.068-1.517 4.068-1.517.807 2.037.3 3.545.15 3.92.95 1.035 1.52 2.357 1.52 3.975 0 5.687-3.462 6.94-6.76 7.305.53.457 1.005 1.36 1.005 2.742 0 1.98-.02 3.575-.02 4.063 0 .395.267.857 1.02.712A14.816 14.816 0 0 0 15.101.413" clip-rule="evenodd"></path></svg></a></div><div class="gap-2 flex roboto-mono"><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=java-kotlin-android">Java / Kotlin</a><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=client">Client</a></div><span class="[&_a]:text-primary grow line-clamp-4 lg:text-lg">A set of libraries for running GraphQL client and server in Kotlin.</span><div class="flex items-center gap-5 max-md:text-xs [&>:not(:last-child)]:border-r [&>:not(:last-child)]:border-gray-500 [&>:not(:last-child)]:pr-5"><span>Last release <!-- -->4 weeks ago</span><span class="flex items-center gap-1"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="19" fill="currentColor" class="text-primary"><path d="m10 .5 2.997 5.874L19.51 7.41l-4.66 4.666 1.027 6.514L10 15.6l-5.878 2.99 1.028-6.514L.489 7.41l6.513-1.036z"></path></svg>2k</span><span>Apache License 2.0</span></div></div><details class="bg-[#f0f0f0] dark:bg-[#2f2f2f]"><summary class="flex justify-between font-bold text-primary px-8 lg:px-12 py-5 dark:[[open]>&]:shadow-[-5px_10px_30px_20px_#1b1b1b4d] [[open]>&]:shadow-[0_6px_21px_0_#1b1b1b33] cursor-pointer">README<svg xmlns="http://www.w3.org/2000/svg" fill="currentColor" viewBox="0 0 15 15" class="size-5 -rotate-90 [[open]>*>&]:rotate-90 transition-transform"><path fill-rule="evenodd" d="M8.842 3.135a.5.5 0 0 1 .023.707L5.435 7.5l3.43 3.658a.5.5 0 0 1-.73.684l-3.75-4a.5.5 0 0 1 0-.684l3.75-4a.5.5 0 0 1 .707-.023" clip-rule="evenodd"></path></svg></summary><div class="px-8 lg:px-12 py-5"><p class="[&:not(:first-child)]:_mt-6 _leading-7">GraphQL Kotlin provides a set of lightweight type-safe GraphQL HTTP clients. The library provides Ktor HTTP client and Spring WebClient based reference implementations as well as allows for custom implementations using other engines. Jackson and kotlinx-serialization type-safe data models are generated at build time by the provided Gradle and Maven plugins.</p> <p class="[&:not(:first-child)]:_mt-6 _leading-7">To generate Jackson models that will be used with GraphQL Kotlin Spring WebClient, add following to your Gradle build file:</p> <div class="nextra-code _relative [&:not(:first-child)]:_mt-6"><pre class="_overflow-x-auto _subpixel-antialiased _text-[.9em] _bg-white dark:_bg-black _py-4 _ring-1 _ring-inset _ring-gray-300 dark:_ring-neutral-700 contrast-more:_ring-gray-900 contrast-more:dark:_ring-gray-50 contrast-more:_contrast-150 _rounded-md" tabindex="0"><code class="nextra-code" dir="ltr"><span><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D">// build.gradle.kts</span></span> <span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">import</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> com.expediagroup.graphql.plugin.gradle.graphql</span></span> <span> </span> <span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">plugins</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> {</span></span> <span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> id</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">"com.expediagroup.graphql"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">) version $latestGraphQLKotlinVersion</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">}</span></span> <span> </span> <span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">dependencies</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> {</span></span> <span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> implementation</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">"com.expediagroup:graphql-kotlin-spring-client:</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">$latestGraphQLKotlinVersion</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">)</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">}</span></span> <span> </span> <span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">graphql</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> {</span></span> <span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> client</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> {</span></span> <span><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D"> // target GraphQL endpoint</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> endpoint </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> "http://localhost:8080/graphql"</span></span> <span><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D"> // package for generated client code</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> packageName </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> "com.example.generated"</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> }</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">}</span></span></code></pre><div class="_opacity-0 _transition [div:hover>&]:_opacity-100 focus-within:_opacity-100 _flex _gap-1 _absolute _right-4 _top-2"><button class="_transition _rounded-md _p-1.5 _border _border-gray-300 dark:_border-neutral-700 contrast-more:_border-gray-900 contrast-more:dark:_border-gray-50 md:_hidden" title="Toggle word wrap"><svg viewBox="0 0 24 24" width="24" height="24" class="_h-4 _w-auto"><path fill="currentColor" d="M4 19h6v-2H4v2zM20 5H4v2h16V5zm-3 6H4v2h13.25c1.1 0 2 .9 2 2s-.9 2-2 2H15v-2l-3 3l3 3v-2h2c2.21 0 4-1.79 4-4s-1.79-4-4-4z"></path></svg></button></div></div> <p class="[&:not(:first-child)]:_mt-6 _leading-7">By default, GraphQL Kotlin plugins will look for query files under <code class="nextra-code" dir="ltr">src/main/resources</code>. Given <code class="nextra-code" dir="ltr">HelloWorldQuery.graphql</code> sample query:</p> <div class="nextra-code _relative [&:not(:first-child)]:_mt-6"><pre class="_overflow-x-auto _subpixel-antialiased _text-[.9em] _bg-white dark:_bg-black _py-4 _ring-1 _ring-inset _ring-gray-300 dark:_ring-neutral-700 contrast-more:_ring-gray-900 contrast-more:dark:_ring-gray-50 contrast-more:_contrast-150 _rounded-md" tabindex="0"><code class="nextra-code" dir="ltr"><span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">query</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> HelloWorldQuery</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> {</span></span> <span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70"> helloWorld</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">}</span></span></code></pre><div class="_opacity-0 _transition [div:hover>&]:_opacity-100 focus-within:_opacity-100 _flex _gap-1 _absolute _right-4 _top-2"><button class="_transition _rounded-md _p-1.5 _border _border-gray-300 dark:_border-neutral-700 contrast-more:_border-gray-900 contrast-more:dark:_border-gray-50 md:_hidden" title="Toggle word wrap"><svg viewBox="0 0 24 24" width="24" height="24" class="_h-4 _w-auto"><path fill="currentColor" d="M4 19h6v-2H4v2zM20 5H4v2h16V5zm-3 6H4v2h13.25c1.1 0 2 .9 2 2s-.9 2-2 2H15v-2l-3 3l3 3v-2h2c2.21 0 4-1.79 4-4s-1.79-4-4-4z"></path></svg></button></div></div> <p class="[&:not(:first-child)]:_mt-6 _leading-7">Plugin will generate classes that are simple POJOs implementing GraphQLClientRequest interface and represent a GraphQL request.</p> <div class="nextra-code _relative [&:not(:first-child)]:_mt-6"><pre class="_overflow-x-auto _subpixel-antialiased _text-[.9em] _bg-white dark:_bg-black _py-4 _ring-1 _ring-inset _ring-gray-300 dark:_ring-neutral-700 contrast-more:_ring-gray-900 contrast-more:dark:_ring-gray-50 contrast-more:_contrast-150 _rounded-md" tabindex="0"><code class="nextra-code" dir="ltr"><span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">package</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> com.example.generated</span></span> <span> </span> <span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">import</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> com.expediagroup.graphql.client.types.GraphQLClientRequest</span></span> <span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">import</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> kotlin.String</span></span> <span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">import</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> kotlin.reflect.KClass</span></span> <span> </span> <span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">const</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> val</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> HELLO_WORLD_QUERY: </span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">String</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> =</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> "query HelloWorldQuery {</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">\n</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> helloWorld</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">\n</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">}"</span></span> <span> </span> <span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">class</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> HelloWorldQuery</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">: </span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">GraphQLClientRequest</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"><</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">HelloWorldQuery</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">Result</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">> {</span></span> <span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> override</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> val</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> query: </span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">String</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> =</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> HELLO_WORLD_QUERY</span></span> <span> </span> <span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> override</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> val</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> operationName: </span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">String</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> =</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> "HelloWorldQuery"</span></span> <span> </span> <span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> override</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> fun</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> responseType</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(): </span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">KClass</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"><</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">HelloWorldQuery</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">Result</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">> </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> HelloWorldQuery.Result::</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">class</span></span> <span> </span> <span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> data</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> class</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> Result</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(</span></span> <span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> val</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> helloWorld: </span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">String</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> }</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">}</span></span></code></pre><div class="_opacity-0 _transition [div:hover>&]:_opacity-100 focus-within:_opacity-100 _flex _gap-1 _absolute _right-4 _top-2"><button class="_transition _rounded-md _p-1.5 _border _border-gray-300 dark:_border-neutral-700 contrast-more:_border-gray-900 contrast-more:dark:_border-gray-50 md:_hidden" title="Toggle word wrap"><svg viewBox="0 0 24 24" width="24" height="24" class="_h-4 _w-auto"><path fill="currentColor" d="M4 19h6v-2H4v2zM20 5H4v2h16V5zm-3 6H4v2h13.25c1.1 0 2 .9 2 2s-.9 2-2 2H15v-2l-3 3l3 3v-2h2c2.21 0 4-1.79 4-4s-1.79-4-4-4z"></path></svg></button></div></div> <p class="[&:not(:first-child)]:_mt-6 _leading-7">We can then execute our queries using target client.</p> <div class="nextra-code _relative [&:not(:first-child)]:_mt-6"><pre class="_overflow-x-auto _subpixel-antialiased _text-[.9em] _bg-white dark:_bg-black _py-4 _ring-1 _ring-inset _ring-gray-300 dark:_ring-neutral-700 contrast-more:_ring-gray-900 contrast-more:dark:_ring-gray-50 contrast-more:_contrast-150 _rounded-md" tabindex="0"><code class="nextra-code" dir="ltr"><span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">package</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> com.example.client</span></span> <span> </span> <span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">import</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> com.expediagroup.graphql.client.spring.GraphQLWebClient</span></span> <span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">import</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> com.expediagroup.graphql.generated.HelloWorldQuery</span></span> <span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">import</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> kotlinx.coroutines.runBlocking</span></span> <span> </span> <span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">fun</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> main</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">() {</span></span> <span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> val</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> client </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> GraphQLWebClient</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(url </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> "http://localhost:8080/graphql"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">)</span></span> <span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> runBlocking</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> {</span></span> <span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> val</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> helloWorldQuery </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> HelloWorldQuery</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">()</span></span> <span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> val</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> result </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> client.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">execute</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(helloWorldQuery)</span></span> <span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> println</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">"hello world query result: ${result.</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">data</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">?.helloWorld}"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">)</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> }</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">}</span></span></code></pre><div class="_opacity-0 _transition [div:hover>&]:_opacity-100 focus-within:_opacity-100 _flex _gap-1 _absolute _right-4 _top-2"><button class="_transition _rounded-md _p-1.5 _border _border-gray-300 dark:_border-neutral-700 contrast-more:_border-gray-900 contrast-more:dark:_border-gray-50 md:_hidden" title="Toggle word wrap"><svg viewBox="0 0 24 24" width="24" height="24" class="_h-4 _w-auto"><path fill="currentColor" d="M4 19h6v-2H4v2zM20 5H4v2h16V5zm-3 6H4v2h13.25c1.1 0 2 .9 2 2s-.9 2-2 2H15v-2l-3 3l3 3v-2h2c2.21 0 4-1.79 4-4s-1.79-4-4-4z"></path></svg></button></div></div> <p class="[&:not(:first-child)]:_mt-6 _leading-7">See <a href="https://opensource.expediagroup.com/graphql-kotlin/docs/client/client-overview" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">graphql-kotlin client docs</a> for additional details.</p></div></details></div><div class="border border-zinc-200 dark:border-[#414141] p-8 lg:p-12 bg-white dark:bg-neutral-800 rounded-none !p-0 h-max min-w-0"><div class="p-8 lg:p-12 flex flex-col gap-7 grow"><div class="flex items-center gap-6 [&_a:hover]:text-primary [&_a]:transition-colors"><span class="text-3xl font-extrabold grow break-all">graphql-kotlin</span><a href="https://github.com/ExpediaGroup/graphql-kotlin" target="_blank" rel="noreferrer"><svg xmlns="http://www.w3.org/2000/svg" width="30" fill="currentColor" viewBox="0 0 30 30"><path fill-rule="evenodd" d="M15.1.413a14.81 14.81 0 0 0-4.684 28.862c.742.138 1.012-.32 1.012-.712 0-.35-.013-1.283-.02-2.518-4.12.893-4.99-1.987-4.99-1.987-.675-1.71-1.643-2.165-1.643-2.165-1.345-.918.1-.9.1-.9 1.488.105 2.27 1.525 2.27 1.525 1.32 2.265 3.466 1.61 4.31 1.23.133-.955.515-1.608.94-1.978-3.29-.375-6.747-1.645-6.747-7.32 0-1.615.577-2.937 1.525-3.975-.15-.372-.66-1.88.145-3.917 0 0 1.242-.4 4.075 1.517a14.3 14.3 0 0 1 3.705-.5 14.2 14.2 0 0 1 3.707.5c2.826-1.915 4.068-1.517 4.068-1.517.807 2.037.3 3.545.15 3.92.95 1.035 1.52 2.357 1.52 3.975 0 5.687-3.462 6.94-6.76 7.305.53.457 1.005 1.36 1.005 2.742 0 1.98-.02 3.575-.02 4.063 0 .395.267.857 1.02.712A14.816 14.816 0 0 0 15.101.413" clip-rule="evenodd"></path></svg></a></div><div class="gap-2 flex roboto-mono"><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=java-kotlin-android">Java / Kotlin</a><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=server">Server</a></div><span class="[&_a]:text-primary grow line-clamp-4 lg:text-lg">A set of libraries for running GraphQL client and server in Kotlin.</span><div class="flex items-center gap-5 max-md:text-xs [&>:not(:last-child)]:border-r [&>:not(:last-child)]:border-gray-500 [&>:not(:last-child)]:pr-5"><span>Last release <!-- -->4 weeks ago</span><span class="flex items-center gap-1"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="19" fill="currentColor" class="text-primary"><path d="m10 .5 2.997 5.874L19.51 7.41l-4.66 4.666 1.027 6.514L10 15.6l-5.878 2.99 1.028-6.514L.489 7.41l6.513-1.036z"></path></svg>2k</span><span>Apache License 2.0</span></div></div><details class="bg-[#f0f0f0] dark:bg-[#2f2f2f]"><summary class="flex justify-between font-bold text-primary px-8 lg:px-12 py-5 dark:[[open]>&]:shadow-[-5px_10px_30px_20px_#1b1b1b4d] [[open]>&]:shadow-[0_6px_21px_0_#1b1b1b33] cursor-pointer">README<svg xmlns="http://www.w3.org/2000/svg" fill="currentColor" viewBox="0 0 15 15" class="size-5 -rotate-90 [[open]>*>&]:rotate-90 transition-transform"><path fill-rule="evenodd" d="M8.842 3.135a.5.5 0 0 1 .023.707L5.435 7.5l3.43 3.658a.5.5 0 0 1-.73.684l-3.75-4a.5.5 0 0 1 0-.684l3.75-4a.5.5 0 0 1 .707-.023" clip-rule="evenodd"></path></svg></summary><div class="px-8 lg:px-12 py-5"><p class="[&:not(:first-child)]:_mt-6 _leading-7">GraphQL Kotlin follows a code first approach for generating your GraphQL schemas. Given the similarities between Kotlin and GraphQL, such as the ability to define nullable/non-nullable types, a schema can be generated from Kotlin code without any separate schema specification. To create a reactive GraphQL web server add following dependency to your Gradle build file:</p> <div class="nextra-code _relative [&:not(:first-child)]:_mt-6"><pre class="_overflow-x-auto _subpixel-antialiased _text-[.9em] _bg-white dark:_bg-black _py-4 _ring-1 _ring-inset _ring-gray-300 dark:_ring-neutral-700 contrast-more:_ring-gray-900 contrast-more:dark:_ring-gray-50 contrast-more:_contrast-150 _rounded-md" tabindex="0"><code class="nextra-code" dir="ltr"><span><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D">// build.gradle.kts</span></span> <span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">implementation</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">"com.expediagroup"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">, </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">"graphql-kotlin-spring-server"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">, latestVersion)</span></span></code></pre><div class="_opacity-0 _transition [div:hover>&]:_opacity-100 focus-within:_opacity-100 _flex _gap-1 _absolute _right-4 _top-2"><button class="_transition _rounded-md _p-1.5 _border _border-gray-300 dark:_border-neutral-700 contrast-more:_border-gray-900 contrast-more:dark:_border-gray-50 md:_hidden" title="Toggle word wrap"><svg viewBox="0 0 24 24" width="24" height="24" class="_h-4 _w-auto"><path fill="currentColor" d="M4 19h6v-2H4v2zM20 5H4v2h16V5zm-3 6H4v2h13.25c1.1 0 2 .9 2 2s-.9 2-2 2H15v-2l-3 3l3 3v-2h2c2.21 0 4-1.79 4-4s-1.79-4-4-4z"></path></svg></button></div></div> <p class="[&:not(:first-child)]:_mt-6 _leading-7">We also need to provide a list of supported packages that can be scanned for exposing your schema objects through reflections. Add following configuration to your <code class="nextra-code" dir="ltr">application.yml</code> file:</p> <div class="nextra-code _relative [&:not(:first-child)]:_mt-6"><pre class="_overflow-x-auto _subpixel-antialiased _text-[.9em] _bg-white dark:_bg-black _py-4 _ring-1 _ring-inset _ring-gray-300 dark:_ring-neutral-700 contrast-more:_ring-gray-900 contrast-more:dark:_ring-gray-50 contrast-more:_contrast-150 _rounded-md" tabindex="0"><code class="nextra-code" dir="ltr"><span><span style="--shiki-light:#22863A;--shiki-dark:#85E89D">graphql</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">:</span></span> <span><span style="--shiki-light:#22863A;--shiki-dark:#85E89D"> packages</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">:</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> - </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">"com.your.package"</span></span></code></pre><div class="_opacity-0 _transition [div:hover>&]:_opacity-100 focus-within:_opacity-100 _flex _gap-1 _absolute _right-4 _top-2"><button class="_transition _rounded-md _p-1.5 _border _border-gray-300 dark:_border-neutral-700 contrast-more:_border-gray-900 contrast-more:dark:_border-gray-50 md:_hidden" title="Toggle word wrap"><svg viewBox="0 0 24 24" width="24" height="24" class="_h-4 _w-auto"><path fill="currentColor" d="M4 19h6v-2H4v2zM20 5H4v2h16V5zm-3 6H4v2h13.25c1.1 0 2 .9 2 2s-.9 2-2 2H15v-2l-3 3l3 3v-2h2c2.21 0 4-1.79 4-4s-1.79-4-4-4z"></path></svg></button></div></div> <p class="[&:not(:first-child)]:_mt-6 _leading-7">With the above configuration we can now create our schema. In order to expose your queries, mutations and/or subscriptions in the GraphQL schema you simply need to implement corresponding marker interface and they will be automatically picked up by <code class="nextra-code" dir="ltr">graphql-kotlin-spring-server</code> auto-configuration library.</p> <div class="nextra-code _relative [&:not(:first-child)]:_mt-6"><pre class="_overflow-x-auto _subpixel-antialiased _text-[.9em] _bg-white dark:_bg-black _py-4 _ring-1 _ring-inset _ring-gray-300 dark:_ring-neutral-700 contrast-more:_ring-gray-900 contrast-more:dark:_ring-gray-50 contrast-more:_contrast-150 _rounded-md" tabindex="0"><code class="nextra-code" dir="ltr"><span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">@Component</span></span> <span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">class</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> HelloWorldQuery</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> : </span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">Query</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> {</span></span> <span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> fun</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> helloWorld</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">() </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> "Hello World!!!"</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">}</span></span></code></pre><div class="_opacity-0 _transition [div:hover>&]:_opacity-100 focus-within:_opacity-100 _flex _gap-1 _absolute _right-4 _top-2"><button class="_transition _rounded-md _p-1.5 _border _border-gray-300 dark:_border-neutral-700 contrast-more:_border-gray-900 contrast-more:dark:_border-gray-50 md:_hidden" title="Toggle word wrap"><svg viewBox="0 0 24 24" width="24" height="24" class="_h-4 _w-auto"><path fill="currentColor" d="M4 19h6v-2H4v2zM20 5H4v2h16V5zm-3 6H4v2h13.25c1.1 0 2 .9 2 2s-.9 2-2 2H15v-2l-3 3l3 3v-2h2c2.21 0 4-1.79 4-4s-1.79-4-4-4z"></path></svg></button></div></div> <p class="[&:not(:first-child)]:_mt-6 _leading-7">This will result in a reactive GraphQL web application with following schema:</p> <div class="nextra-code _relative [&:not(:first-child)]:_mt-6"><pre class="_overflow-x-auto _subpixel-antialiased _text-[.9em] _bg-white dark:_bg-black _py-4 _ring-1 _ring-inset _ring-gray-300 dark:_ring-neutral-700 contrast-more:_ring-gray-900 contrast-more:dark:_ring-gray-50 contrast-more:_contrast-150 _rounded-md" tabindex="0"><code class="nextra-code" dir="ltr"><span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">type</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> Query</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> {</span></span> <span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70"> helloWorld</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">: </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">String</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">!</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">}</span></span></code></pre><div class="_opacity-0 _transition [div:hover>&]:_opacity-100 focus-within:_opacity-100 _flex _gap-1 _absolute _right-4 _top-2"><button class="_transition _rounded-md _p-1.5 _border _border-gray-300 dark:_border-neutral-700 contrast-more:_border-gray-900 contrast-more:dark:_border-gray-50 md:_hidden" title="Toggle word wrap"><svg viewBox="0 0 24 24" width="24" height="24" class="_h-4 _w-auto"><path fill="currentColor" d="M4 19h6v-2H4v2zM20 5H4v2h16V5zm-3 6H4v2h13.25c1.1 0 2 .9 2 2s-.9 2-2 2H15v-2l-3 3l3 3v-2h2c2.21 0 4-1.79 4-4s-1.79-4-4-4z"></path></svg></button></div></div> <p class="[&:not(:first-child)]:_mt-6 _leading-7">See <a href="https://expediagroup.github.io/graphql-kotlin/docs" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">graphql-kotlin docs</a> for additial details.</p></div></details></div><div class="border border-zinc-200 dark:border-[#414141] p-8 lg:p-12 bg-white dark:bg-neutral-800 rounded-none !p-0 h-max min-w-0"><div class="p-8 lg:p-12 flex flex-col gap-7 grow"><div class="flex items-center gap-6 [&_a:hover]:text-primary [&_a]:transition-colors"><span class="text-3xl font-extrabold grow break-all">GraphQL Inspector</span><a href="https://graphql-inspector.com/" target="_blank" rel="noreferrer"><svg xmlns="http://www.w3.org/2000/svg" fill="currentColor" viewBox="0 0 24 24"><path d="M23.332 15.948C23.764 14.711 24 13.383 24 12a12 12 0 0 0-.706-4.056C21.627 3.317 17.194 0 12 0S2.373 3.317.706 7.944A11.949 11.949 0 0 0 0 12a12 12 0 0 0 .706 4.056C2.373 20.683 6.806 24 12 24s9.627-3.317 11.294-7.944a1 1 0 0 0 .038-.108M12 22.28c-.457 0-1.194-.827-1.81-2.675a19 19 0 0 1-.708-3.031h5.036a19 19 0 0 1-.708 3.031c-.616 1.848-1.353 2.675-1.81 2.675m-2.727-7.427A32 32 0 0 1 9.147 12c0-.98.043-1.936.126-2.853h5.454c.083.917.126 1.874.126 2.853s-.043 1.936-.126 2.854zM1.72 12c0-.99.141-1.947.403-2.853h5.425a33.5 33.5 0 0 0 0 5.707H2.123A10.3 10.3 0 0 1 1.72 12M12 1.72c.457 0 1.194.827 1.81 2.675.297.892.535 1.917.708 3.032H9.482c.173-1.115.411-2.14.708-3.032.616-1.848 1.353-2.675 1.81-2.675m4.452 7.427h5.425c.262.906.403 1.864.403 2.853s-.141 1.947-.403 2.854h-5.425a33.5 33.5 0 0 0 0-5.707m4.752-1.72h-4.95c-.305-2.11-.83-4.003-1.566-5.35 2.855.775 5.22 2.75 6.516 5.35M9.313 2.077c-.736 1.347-1.261 3.24-1.567 5.35h-4.95a10.33 10.33 0 0 1 6.517-5.35M2.795 16.574h4.95c.306 2.11.83 4.002 1.567 5.349a10.33 10.33 0 0 1-6.517-5.35m11.893 5.349c.736-1.347 1.261-3.24 1.567-5.35h4.95a10.33 10.33 0 0 1-6.517 5.35"></path></svg></a><a href="https://github.com/kamilkisiela/graphql-inspector" target="_blank" rel="noreferrer"><svg xmlns="http://www.w3.org/2000/svg" width="30" fill="currentColor" viewBox="0 0 30 30"><path fill-rule="evenodd" d="M15.1.413a14.81 14.81 0 0 0-4.684 28.862c.742.138 1.012-.32 1.012-.712 0-.35-.013-1.283-.02-2.518-4.12.893-4.99-1.987-4.99-1.987-.675-1.71-1.643-2.165-1.643-2.165-1.345-.918.1-.9.1-.9 1.488.105 2.27 1.525 2.27 1.525 1.32 2.265 3.466 1.61 4.31 1.23.133-.955.515-1.608.94-1.978-3.29-.375-6.747-1.645-6.747-7.32 0-1.615.577-2.937 1.525-3.975-.15-.372-.66-1.88.145-3.917 0 0 1.242-.4 4.075 1.517a14.3 14.3 0 0 1 3.705-.5 14.2 14.2 0 0 1 3.707.5c2.826-1.915 4.068-1.517 4.068-1.517.807 2.037.3 3.545.15 3.92.95 1.035 1.52 2.357 1.52 3.975 0 5.687-3.462 6.94-6.76 7.305.53.457 1.005 1.36 1.005 2.742 0 1.98-.02 3.575-.02 4.063 0 .395.267.857 1.02.712A14.816 14.816 0 0 0 15.101.413" clip-rule="evenodd"></path></svg></a><a href="https://npmjs.com/package/@graphql-inspector/cli" target="_blank" rel="noreferrer"><svg xmlns="http://www.w3.org/2000/svg" width="30" height="30" fill="currentColor"><path fill-rule="evenodd" d="M0 0v30h30V0zm24.375 5.625H5.625v18.75H15v-15h5.625v15h3.75z" clip-rule="evenodd"></path></svg></a></div><div class="gap-2 flex roboto-mono"><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=javascript">JavaScript</a><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=tools">Tools</a></div><span class="[&_a]:text-primary grow line-clamp-4 lg:text-lg">Compare schemas, validate documents, find breaking changes, find similar types, schema coverage, and more.</span><div class="flex items-center gap-5 max-md:text-xs [&>:not(:last-child)]:border-r [&>:not(:last-child)]:border-gray-500 [&>:not(:last-child)]:pr-5"><span>Last release <!-- -->1 week ago</span><span class="flex items-center gap-1"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="19" fill="currentColor" class="text-primary"><path d="m10 .5 2.997 5.874L19.51 7.41l-4.66 4.666 1.027 6.514L10 15.6l-5.878 2.99 1.028-6.514L.489 7.41l6.513-1.036z"></path></svg>2k</span><span>MIT License</span></div></div></div><div class="border border-zinc-200 dark:border-[#414141] p-8 lg:p-12 bg-white dark:bg-neutral-800 rounded-none !p-0 h-max min-w-0"><div class="p-8 lg:p-12 flex flex-col gap-7 grow"><div class="flex items-center gap-6 [&_a:hover]:text-primary [&_a]:transition-colors"><span class="text-3xl font-extrabold grow break-all">samsarahq/thunder</span><a href="https://github.com/samsarahq/thunder" target="_blank" rel="noreferrer"><svg xmlns="http://www.w3.org/2000/svg" width="30" fill="currentColor" viewBox="0 0 30 30"><path fill-rule="evenodd" d="M15.1.413a14.81 14.81 0 0 0-4.684 28.862c.742.138 1.012-.32 1.012-.712 0-.35-.013-1.283-.02-2.518-4.12.893-4.99-1.987-4.99-1.987-.675-1.71-1.643-2.165-1.643-2.165-1.345-.918.1-.9.1-.9 1.488.105 2.27 1.525 2.27 1.525 1.32 2.265 3.466 1.61 4.31 1.23.133-.955.515-1.608.94-1.978-3.29-.375-6.747-1.645-6.747-7.32 0-1.615.577-2.937 1.525-3.975-.15-.372-.66-1.88.145-3.917 0 0 1.242-.4 4.075 1.517a14.3 14.3 0 0 1 3.705-.5 14.2 14.2 0 0 1 3.707.5c2.826-1.915 4.068-1.517 4.068-1.517.807 2.037.3 3.545.15 3.92.95 1.035 1.52 2.357 1.52 3.975 0 5.687-3.462 6.94-6.76 7.305.53.457 1.005 1.36 1.005 2.742 0 1.98-.02 3.575-.02 4.063 0 .395.267.857 1.02.712A14.816 14.816 0 0 0 15.101.413" clip-rule="evenodd"></path></svg></a></div><div class="gap-2 flex roboto-mono"><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=go">Go</a><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=server">Server</a></div><span class="[&_a]:text-primary grow line-clamp-4 lg:text-lg">A GraphQL implementation with easy schema building, live queries, and batching.</span><div class="flex items-center gap-5 max-md:text-xs [&>:not(:last-child)]:border-r [&>:not(:last-child)]:border-gray-500 [&>:not(:last-child)]:pr-5"><span class="flex items-center gap-1"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="19" fill="currentColor" class="text-primary"><path d="m10 .5 2.997 5.874L19.51 7.41l-4.66 4.666 1.027 6.514L10 15.6l-5.878 2.99 1.028-6.514L.489 7.41l6.513-1.036z"></path></svg>2k</span><span>MIT License</span></div></div></div><div class="border border-zinc-200 dark:border-[#414141] p-8 lg:p-12 bg-white dark:bg-neutral-800 rounded-none !p-0 h-max min-w-0"><div class="p-8 lg:p-12 flex flex-col gap-7 grow"><div class="flex items-center gap-6 [&_a:hover]:text-primary [&_a]:transition-colors"><span class="text-3xl font-extrabold grow break-all">GQL</span><a href="https://github.com/graphql-python/gql" target="_blank" rel="noreferrer"><svg xmlns="http://www.w3.org/2000/svg" width="30" fill="currentColor" viewBox="0 0 30 30"><path fill-rule="evenodd" d="M15.1.413a14.81 14.81 0 0 0-4.684 28.862c.742.138 1.012-.32 1.012-.712 0-.35-.013-1.283-.02-2.518-4.12.893-4.99-1.987-4.99-1.987-.675-1.71-1.643-2.165-1.643-2.165-1.345-.918.1-.9.1-.9 1.488.105 2.27 1.525 2.27 1.525 1.32 2.265 3.466 1.61 4.31 1.23.133-.955.515-1.608.94-1.978-3.29-.375-6.747-1.645-6.747-7.32 0-1.615.577-2.937 1.525-3.975-.15-.372-.66-1.88.145-3.917 0 0 1.242-.4 4.075 1.517a14.3 14.3 0 0 1 3.705-.5 14.2 14.2 0 0 1 3.707.5c2.826-1.915 4.068-1.517 4.068-1.517.807 2.037.3 3.545.15 3.92.95 1.035 1.52 2.357 1.52 3.975 0 5.687-3.462 6.94-6.76 7.305.53.457 1.005 1.36 1.005 2.742 0 1.98-.02 3.575-.02 4.063 0 .395.267.857 1.02.712A14.816 14.816 0 0 0 15.101.413" clip-rule="evenodd"></path></svg></a></div><div class="gap-2 flex roboto-mono"><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=python">Python</a><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=client">Client</a></div><span class="[&_a]:text-primary grow line-clamp-4 lg:text-lg">A GraphQL client in Python.</span><div class="flex items-center gap-5 max-md:text-xs [&>:not(:last-child)]:border-r [&>:not(:last-child)]:border-gray-500 [&>:not(:last-child)]:pr-5"><span>Last release <!-- -->7 months ago</span><span class="flex items-center gap-1"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="19" fill="currentColor" class="text-primary"><path d="m10 .5 2.997 5.874L19.51 7.41l-4.66 4.666 1.027 6.514L10 15.6l-5.878 2.99 1.028-6.514L.489 7.41l6.513-1.036z"></path></svg>2k</span><span>MIT License</span></div></div></div><div class="border border-zinc-200 dark:border-[#414141] p-8 lg:p-12 bg-white dark:bg-neutral-800 rounded-none !p-0 h-max min-w-0"><div class="p-8 lg:p-12 flex flex-col gap-7 grow"><div class="flex items-center gap-6 [&_a:hover]:text-primary [&_a]:transition-colors"><span class="text-3xl font-extrabold grow break-all">Spring for GraphQL</span><a href="https://spring.io/projects/spring-graphql" target="_blank" rel="noreferrer"><svg xmlns="http://www.w3.org/2000/svg" fill="currentColor" viewBox="0 0 24 24"><path d="M23.332 15.948C23.764 14.711 24 13.383 24 12a12 12 0 0 0-.706-4.056C21.627 3.317 17.194 0 12 0S2.373 3.317.706 7.944A11.949 11.949 0 0 0 0 12a12 12 0 0 0 .706 4.056C2.373 20.683 6.806 24 12 24s9.627-3.317 11.294-7.944a1 1 0 0 0 .038-.108M12 22.28c-.457 0-1.194-.827-1.81-2.675a19 19 0 0 1-.708-3.031h5.036a19 19 0 0 1-.708 3.031c-.616 1.848-1.353 2.675-1.81 2.675m-2.727-7.427A32 32 0 0 1 9.147 12c0-.98.043-1.936.126-2.853h5.454c.083.917.126 1.874.126 2.853s-.043 1.936-.126 2.854zM1.72 12c0-.99.141-1.947.403-2.853h5.425a33.5 33.5 0 0 0 0 5.707H2.123A10.3 10.3 0 0 1 1.72 12M12 1.72c.457 0 1.194.827 1.81 2.675.297.892.535 1.917.708 3.032H9.482c.173-1.115.411-2.14.708-3.032.616-1.848 1.353-2.675 1.81-2.675m4.452 7.427h5.425c.262.906.403 1.864.403 2.853s-.141 1.947-.403 2.854h-5.425a33.5 33.5 0 0 0 0-5.707m4.752-1.72h-4.95c-.305-2.11-.83-4.003-1.566-5.35 2.855.775 5.22 2.75 6.516 5.35M9.313 2.077c-.736 1.347-1.261 3.24-1.567 5.35h-4.95a10.33 10.33 0 0 1 6.517-5.35M2.795 16.574h4.95c.306 2.11.83 4.002 1.567 5.349a10.33 10.33 0 0 1-6.517-5.35m11.893 5.349c.736-1.347 1.261-3.24 1.567-5.35h4.95a10.33 10.33 0 0 1-6.517 5.35"></path></svg></a><a href="https://github.com/spring-projects/spring-graphql" target="_blank" rel="noreferrer"><svg xmlns="http://www.w3.org/2000/svg" width="30" fill="currentColor" viewBox="0 0 30 30"><path fill-rule="evenodd" d="M15.1.413a14.81 14.81 0 0 0-4.684 28.862c.742.138 1.012-.32 1.012-.712 0-.35-.013-1.283-.02-2.518-4.12.893-4.99-1.987-4.99-1.987-.675-1.71-1.643-2.165-1.643-2.165-1.345-.918.1-.9.1-.9 1.488.105 2.27 1.525 2.27 1.525 1.32 2.265 3.466 1.61 4.31 1.23.133-.955.515-1.608.94-1.978-3.29-.375-6.747-1.645-6.747-7.32 0-1.615.577-2.937 1.525-3.975-.15-.372-.66-1.88.145-3.917 0 0 1.242-.4 4.075 1.517a14.3 14.3 0 0 1 3.705-.5 14.2 14.2 0 0 1 3.707.5c2.826-1.915 4.068-1.517 4.068-1.517.807 2.037.3 3.545.15 3.92.95 1.035 1.52 2.357 1.52 3.975 0 5.687-3.462 6.94-6.76 7.305.53.457 1.005 1.36 1.005 2.742 0 1.98-.02 3.575-.02 4.063 0 .395.267.857 1.02.712A14.816 14.816 0 0 0 15.101.413" clip-rule="evenodd"></path></svg></a></div><div class="gap-2 flex roboto-mono"><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=java-kotlin-android">Java / Kotlin</a><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=server">Server</a></div><span class="[&_a]:text-primary grow line-clamp-4 lg:text-lg">Spring for GraphQL provides support for Spring applications built on GraphQL Java.</span><div class="flex items-center gap-5 max-md:text-xs [&>:not(:last-child)]:border-r [&>:not(:last-child)]:border-gray-500 [&>:not(:last-child)]:pr-5"><span>Last release <!-- -->1 month ago</span><span class="flex items-center gap-1"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="19" fill="currentColor" class="text-primary"><path d="m10 .5 2.997 5.874L19.51 7.41l-4.66 4.666 1.027 6.514L10 15.6l-5.878 2.99 1.028-6.514L.489 7.41l6.513-1.036z"></path></svg>2k</span><span>Apache License 2.0</span></div></div><details class="bg-[#f0f0f0] dark:bg-[#2f2f2f]"><summary class="flex justify-between font-bold text-primary px-8 lg:px-12 py-5 dark:[[open]>&]:shadow-[-5px_10px_30px_20px_#1b1b1b4d] [[open]>&]:shadow-[0_6px_21px_0_#1b1b1b33] cursor-pointer">README<svg xmlns="http://www.w3.org/2000/svg" fill="currentColor" viewBox="0 0 15 15" class="size-5 -rotate-90 [[open]>*>&]:rotate-90 transition-transform"><path fill-rule="evenodd" d="M8.842 3.135a.5.5 0 0 1 .023.707L5.435 7.5l3.43 3.658a.5.5 0 0 1-.73.684l-3.75-4a.5.5 0 0 1 0-.684l3.75-4a.5.5 0 0 1 .707-.023" clip-rule="evenodd"></path></svg></summary><div class="px-8 lg:px-12 py-5"><p class="[&:not(:first-child)]:_mt-6 _leading-7">Spring for GraphQL provides support for Spring applications built on <a href="https://www.graphql-java.com/" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">GraphQL Java</a>. See the official <a href="https://spring.io/guides/gs/graphql-server/" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">Spring guide</a> for how to build a GraphQL service in 15 minutes.</p> <ul class="[:is(ol,ul)_&]:_my-3 [&:not(:first-child)]:_mt-6 _list-disc ltr:_ml-6 rtl:_mr-6"> <li class="_my-2">It is a joint collaboration between the GraphQL Java team and Spring engineering.</li> <li class="_my-2">Our shared philosophy is to provide as little opinion as we can while focusing on comprehensive support for a wide range of use cases.</li> <li class="_my-2">It aims to be the foundation for all Spring, GraphQL applications.</li> </ul> <p class="[&:not(:first-child)]:_mt-6 _leading-7">Features:</p> <ul class="[:is(ol,ul)_&]:_my-3 [&:not(:first-child)]:_mt-6 _list-disc ltr:_ml-6 rtl:_mr-6"> <li class="_my-2">Server handling of GraphQL requests over HTTP, WebSocket, and RSocket.</li> <li class="_my-2">An annotation-based programming model where @Controller components use annotations to declare handler methods with flexible method signatures to fetch the data for specific GraphQL fields. For example:</li> </ul> <div class="nextra-code _relative [&:not(:first-child)]:_mt-6"><pre class="_overflow-x-auto _subpixel-antialiased _text-[.9em] _bg-white dark:_bg-black _py-4 _ring-1 _ring-inset _ring-gray-300 dark:_ring-neutral-700 contrast-more:_ring-gray-900 contrast-more:dark:_ring-gray-50 contrast-more:_contrast-150 _rounded-md" tabindex="0"><code class="nextra-code" dir="ltr"><span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">@</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">Controller</span></span> <span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">public</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> class</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> GreetingController</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> {</span></span> <span> </span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> @</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">QueryMapping</span></span> <span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> public</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> String </span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">hello</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">() {</span></span> <span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> return</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> "Hello, world!"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">;</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> }</span></span> <span> </span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">}</span></span></code></pre><div class="_opacity-0 _transition [div:hover>&]:_opacity-100 focus-within:_opacity-100 _flex _gap-1 _absolute _right-4 _top-2"><button class="_transition _rounded-md _p-1.5 _border _border-gray-300 dark:_border-neutral-700 contrast-more:_border-gray-900 contrast-more:dark:_border-gray-50 md:_hidden" title="Toggle word wrap"><svg viewBox="0 0 24 24" width="24" height="24" class="_h-4 _w-auto"><path fill="currentColor" d="M4 19h6v-2H4v2zM20 5H4v2h16V5zm-3 6H4v2h13.25c1.1 0 2 .9 2 2s-.9 2-2 2H15v-2l-3 3l3 3v-2h2c2.21 0 4-1.79 4-4s-1.79-4-4-4z"></path></svg></button></div></div> <ul class="[:is(ol,ul)_&]:_my-3 [&:not(:first-child)]:_mt-6 _list-disc ltr:_ml-6 rtl:_mr-6"> <li class="_my-2">Client support for executing GraphQL requests over HTTP, WebSocket, and RSocket.</li> <li class="_my-2">Dedicated support for testing GraphQL requests over HTTP, WebSocket, and RSocket, as well as for testing directly against a server.</li> </ul> <p class="[&:not(:first-child)]:_mt-6 _leading-7">To get started, check the Spring GraphQL starter on <a href="https://start.spring.io" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">https://start.spring.io</a> and the <a href="https://docs.spring.io/spring-graphql/docs/current/reference/html/#samples" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">samples</a> in this repository.</p></div></details></div><div class="border border-zinc-200 dark:border-[#414141] p-8 lg:p-12 bg-white dark:bg-neutral-800 rounded-none !p-0 h-max min-w-0"><div class="p-8 lg:p-12 flex flex-col gap-7 grow"><div class="flex items-center gap-6 [&_a:hover]:text-primary [&_a]:transition-colors"><span class="text-3xl font-extrabold grow break-all">Lokka</span><a href="https://github.com/kadirahq/lokka" target="_blank" rel="noreferrer"><svg xmlns="http://www.w3.org/2000/svg" width="30" fill="currentColor" viewBox="0 0 30 30"><path fill-rule="evenodd" d="M15.1.413a14.81 14.81 0 0 0-4.684 28.862c.742.138 1.012-.32 1.012-.712 0-.35-.013-1.283-.02-2.518-4.12.893-4.99-1.987-4.99-1.987-.675-1.71-1.643-2.165-1.643-2.165-1.345-.918.1-.9.1-.9 1.488.105 2.27 1.525 2.27 1.525 1.32 2.265 3.466 1.61 4.31 1.23.133-.955.515-1.608.94-1.978-3.29-.375-6.747-1.645-6.747-7.32 0-1.615.577-2.937 1.525-3.975-.15-.372-.66-1.88.145-3.917 0 0 1.242-.4 4.075 1.517a14.3 14.3 0 0 1 3.705-.5 14.2 14.2 0 0 1 3.707.5c2.826-1.915 4.068-1.517 4.068-1.517.807 2.037.3 3.545.15 3.92.95 1.035 1.52 2.357 1.52 3.975 0 5.687-3.462 6.94-6.76 7.305.53.457 1.005 1.36 1.005 2.742 0 1.98-.02 3.575-.02 4.063 0 .395.267.857 1.02.712A14.816 14.816 0 0 0 15.101.413" clip-rule="evenodd"></path></svg></a><a href="https://npmjs.com/package/lokka" target="_blank" rel="noreferrer"><svg xmlns="http://www.w3.org/2000/svg" width="30" height="30" fill="currentColor"><path fill-rule="evenodd" d="M0 0v30h30V0zm24.375 5.625H5.625v18.75H15v-15h5.625v15h3.75z" clip-rule="evenodd"></path></svg></a></div><div class="gap-2 flex roboto-mono"><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=javascript">JavaScript</a><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=client">Client</a></div><span class="[&_a]:text-primary grow line-clamp-4 lg:text-lg">A simple JavaScript GraphQL client that works in all JavaScript environments (the browser, Node.js, and React Native).</span><div class="flex items-center gap-5 max-md:text-xs [&>:not(:last-child)]:border-r [&>:not(:last-child)]:border-gray-500 [&>:not(:last-child)]:pr-5"><span class="flex items-center gap-1"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="19" fill="currentColor" class="text-primary"><path d="m10 .5 2.997 5.874L19.51 7.41l-4.66 4.666 1.027 6.514L10 15.6l-5.878 2.99 1.028-6.514L.489 7.41l6.513-1.036z"></path></svg>2k</span><span>MIT License</span></div></div></div><div class="border border-zinc-200 dark:border-[#414141] p-8 lg:p-12 bg-white dark:bg-neutral-800 rounded-none !p-0 h-max min-w-0"><div class="p-8 lg:p-12 flex flex-col gap-7 grow"><div class="flex items-center gap-6 [&_a:hover]:text-primary [&_a]:transition-colors"><span class="text-3xl font-extrabold grow break-all">GraphQL Spring Boot</span><a href="https://www.graphql-java-kickstart.com/" target="_blank" rel="noreferrer"><svg xmlns="http://www.w3.org/2000/svg" fill="currentColor" viewBox="0 0 24 24"><path d="M23.332 15.948C23.764 14.711 24 13.383 24 12a12 12 0 0 0-.706-4.056C21.627 3.317 17.194 0 12 0S2.373 3.317.706 7.944A11.949 11.949 0 0 0 0 12a12 12 0 0 0 .706 4.056C2.373 20.683 6.806 24 12 24s9.627-3.317 11.294-7.944a1 1 0 0 0 .038-.108M12 22.28c-.457 0-1.194-.827-1.81-2.675a19 19 0 0 1-.708-3.031h5.036a19 19 0 0 1-.708 3.031c-.616 1.848-1.353 2.675-1.81 2.675m-2.727-7.427A32 32 0 0 1 9.147 12c0-.98.043-1.936.126-2.853h5.454c.083.917.126 1.874.126 2.853s-.043 1.936-.126 2.854zM1.72 12c0-.99.141-1.947.403-2.853h5.425a33.5 33.5 0 0 0 0 5.707H2.123A10.3 10.3 0 0 1 1.72 12M12 1.72c.457 0 1.194.827 1.81 2.675.297.892.535 1.917.708 3.032H9.482c.173-1.115.411-2.14.708-3.032.616-1.848 1.353-2.675 1.81-2.675m4.452 7.427h5.425c.262.906.403 1.864.403 2.853s-.141 1.947-.403 2.854h-5.425a33.5 33.5 0 0 0 0-5.707m4.752-1.72h-4.95c-.305-2.11-.83-4.003-1.566-5.35 2.855.775 5.22 2.75 6.516 5.35M9.313 2.077c-.736 1.347-1.261 3.24-1.567 5.35h-4.95a10.33 10.33 0 0 1 6.517-5.35M2.795 16.574h4.95c.306 2.11.83 4.002 1.567 5.349a10.33 10.33 0 0 1-6.517-5.35m11.893 5.349c.736-1.347 1.261-3.24 1.567-5.35h4.95a10.33 10.33 0 0 1-6.517 5.35"></path></svg></a><a href="https://github.com/graphql-java-kickstart/graphql-spring-boot" target="_blank" rel="noreferrer"><svg xmlns="http://www.w3.org/2000/svg" width="30" fill="currentColor" viewBox="0 0 30 30"><path fill-rule="evenodd" d="M15.1.413a14.81 14.81 0 0 0-4.684 28.862c.742.138 1.012-.32 1.012-.712 0-.35-.013-1.283-.02-2.518-4.12.893-4.99-1.987-4.99-1.987-.675-1.71-1.643-2.165-1.643-2.165-1.345-.918.1-.9.1-.9 1.488.105 2.27 1.525 2.27 1.525 1.32 2.265 3.466 1.61 4.31 1.23.133-.955.515-1.608.94-1.978-3.29-.375-6.747-1.645-6.747-7.32 0-1.615.577-2.937 1.525-3.975-.15-.372-.66-1.88.145-3.917 0 0 1.242-.4 4.075 1.517a14.3 14.3 0 0 1 3.705-.5 14.2 14.2 0 0 1 3.707.5c2.826-1.915 4.068-1.517 4.068-1.517.807 2.037.3 3.545.15 3.92.95 1.035 1.52 2.357 1.52 3.975 0 5.687-3.462 6.94-6.76 7.305.53.457 1.005 1.36 1.005 2.742 0 1.98-.02 3.575-.02 4.063 0 .395.267.857 1.02.712A14.816 14.816 0 0 0 15.101.413" clip-rule="evenodd"></path></svg></a></div><div class="gap-2 flex roboto-mono"><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=java-kotlin-android">Java / Kotlin</a><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=server">Server</a></div><span class="[&_a]:text-primary grow line-clamp-4 lg:text-lg">GraphQL Spring Boot from GraphQL Java Kickstart</span><div class="flex items-center gap-5 max-md:text-xs [&>:not(:last-child)]:border-r [&>:not(:last-child)]:border-gray-500 [&>:not(:last-child)]:pr-5"><span>Last release <!-- -->11 months ago</span><span class="flex items-center gap-1"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="19" fill="currentColor" class="text-primary"><path d="m10 .5 2.997 5.874L19.51 7.41l-4.66 4.666 1.027 6.514L10 15.6l-5.878 2.99 1.028-6.514L.489 7.41l6.513-1.036z"></path></svg>2k</span><span>MIT License</span></div></div><details class="bg-[#f0f0f0] dark:bg-[#2f2f2f]"><summary class="flex justify-between font-bold text-primary px-8 lg:px-12 py-5 dark:[[open]>&]:shadow-[-5px_10px_30px_20px_#1b1b1b4d] [[open]>&]:shadow-[0_6px_21px_0_#1b1b1b33] cursor-pointer">README<svg xmlns="http://www.w3.org/2000/svg" fill="currentColor" viewBox="0 0 15 15" class="size-5 -rotate-90 [[open]>*>&]:rotate-90 transition-transform"><path fill-rule="evenodd" d="M8.842 3.135a.5.5 0 0 1 .023.707L5.435 7.5l3.43 3.658a.5.5 0 0 1-.73.684l-3.75-4a.5.5 0 0 1 0-.684l3.75-4a.5.5 0 0 1 .707-.023" clip-rule="evenodd"></path></svg></summary><div class="px-8 lg:px-12 py-5"><p class="[&:not(:first-child)]:_mt-6 _leading-7">The GraphQL Spring Boot turns any Spring Boot application into a GraphQL Server</p> <p class="[&:not(:first-child)]:_mt-6 _leading-7">Started includes features such as:</p> <ul class="[:is(ol,ul)_&]:_my-3 [&:not(:first-child)]:_mt-6 _list-disc ltr:_ml-6 rtl:_mr-6"> <li class="_my-2">Use a schema-driven API with the help of <a href="https://github.com/graphql-java-kickstart/graphql-java-tools" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">GraphQL Java Tools</a></li> <li class="_my-2">Optionally choose to use an annotation driven schema with the help of <a href="https://github.com/Enigmatis/graphql-java-annotations" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">GraphQL-Java Annotations</a></li> <li class="_my-2">Embedded <a href="https://github.com/graphql/graphiql" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">GraphiQL</a> tool for schema introspection and query debugging</li> <li class="_my-2">Embedded <a href="https://github.com/prisma/graphql-playground" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">GraphQL Playground</a> tool for schema introspection and query debugging</li> <li class="_my-2">Embedded the <a href="https://github.com/APIs-guru/graphql-voyager" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">GraphQL Voyager</a> tool to represent your GraphQL API as an interactive graph</li> </ul> <p class="[&:not(:first-child)]:_mt-6 _leading-7">See <a href="https://www.graphql-java-kickstart.com/spring-boot/getting-started/" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">GraphQL Java Kickstart Getting Started</a> for how to get started.</p></div></details></div><div class="border border-zinc-200 dark:border-[#414141] p-8 lg:p-12 bg-white dark:bg-neutral-800 rounded-none !p-0 h-max min-w-0"><div class="p-8 lg:p-12 flex flex-col gap-7 grow"><div class="flex items-center gap-6 [&_a:hover]:text-primary [&_a]:transition-colors"><span class="text-3xl font-extrabold grow break-all">Microcks</span><a href="https://microcks.io" target="_blank" rel="noreferrer"><svg xmlns="http://www.w3.org/2000/svg" fill="currentColor" viewBox="0 0 24 24"><path d="M23.332 15.948C23.764 14.711 24 13.383 24 12a12 12 0 0 0-.706-4.056C21.627 3.317 17.194 0 12 0S2.373 3.317.706 7.944A11.949 11.949 0 0 0 0 12a12 12 0 0 0 .706 4.056C2.373 20.683 6.806 24 12 24s9.627-3.317 11.294-7.944a1 1 0 0 0 .038-.108M12 22.28c-.457 0-1.194-.827-1.81-2.675a19 19 0 0 1-.708-3.031h5.036a19 19 0 0 1-.708 3.031c-.616 1.848-1.353 2.675-1.81 2.675m-2.727-7.427A32 32 0 0 1 9.147 12c0-.98.043-1.936.126-2.853h5.454c.083.917.126 1.874.126 2.853s-.043 1.936-.126 2.854zM1.72 12c0-.99.141-1.947.403-2.853h5.425a33.5 33.5 0 0 0 0 5.707H2.123A10.3 10.3 0 0 1 1.72 12M12 1.72c.457 0 1.194.827 1.81 2.675.297.892.535 1.917.708 3.032H9.482c.173-1.115.411-2.14.708-3.032.616-1.848 1.353-2.675 1.81-2.675m4.452 7.427h5.425c.262.906.403 1.864.403 2.853s-.141 1.947-.403 2.854h-5.425a33.5 33.5 0 0 0 0-5.707m4.752-1.72h-4.95c-.305-2.11-.83-4.003-1.566-5.35 2.855.775 5.22 2.75 6.516 5.35M9.313 2.077c-.736 1.347-1.261 3.24-1.567 5.35h-4.95a10.33 10.33 0 0 1 6.517-5.35M2.795 16.574h4.95c.306 2.11.83 4.002 1.567 5.349a10.33 10.33 0 0 1-6.517-5.35m11.893 5.349c.736-1.347 1.261-3.24 1.567-5.35h4.95a10.33 10.33 0 0 1-6.517 5.35"></path></svg></a><a href="https://github.com/microcks/microcks" target="_blank" rel="noreferrer"><svg xmlns="http://www.w3.org/2000/svg" width="30" fill="currentColor" viewBox="0 0 30 30"><path fill-rule="evenodd" d="M15.1.413a14.81 14.81 0 0 0-4.684 28.862c.742.138 1.012-.32 1.012-.712 0-.35-.013-1.283-.02-2.518-4.12.893-4.99-1.987-4.99-1.987-.675-1.71-1.643-2.165-1.643-2.165-1.345-.918.1-.9.1-.9 1.488.105 2.27 1.525 2.27 1.525 1.32 2.265 3.466 1.61 4.31 1.23.133-.955.515-1.608.94-1.978-3.29-.375-6.747-1.645-6.747-7.32 0-1.615.577-2.937 1.525-3.975-.15-.372-.66-1.88.145-3.917 0 0 1.242-.4 4.075 1.517a14.3 14.3 0 0 1 3.705-.5 14.2 14.2 0 0 1 3.707.5c2.826-1.915 4.068-1.517 4.068-1.517.807 2.037.3 3.545.15 3.92.95 1.035 1.52 2.357 1.52 3.975 0 5.687-3.462 6.94-6.76 7.305.53.457 1.005 1.36 1.005 2.742 0 1.98-.02 3.575-.02 4.063 0 .395.267.857 1.02.712A14.816 14.816 0 0 0 15.101.413" clip-rule="evenodd"></path></svg></a></div><div class="gap-2 flex roboto-mono"><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=tools">Tools</a><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=general">General</a></div><span class="[&_a]:text-primary grow line-clamp-4 lg:text-lg">Open source Kubernetes-native tool for API Mocking and Testing</span><div class="flex items-center gap-5 max-md:text-xs [&>:not(:last-child)]:border-r [&>:not(:last-child)]:border-gray-500 [&>:not(:last-child)]:pr-5"><span>Last release <!-- -->1 month ago</span><span class="flex items-center gap-1"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="19" fill="currentColor" class="text-primary"><path d="m10 .5 2.997 5.874L19.51 7.41l-4.66 4.666 1.027 6.514L10 15.6l-5.878 2.99 1.028-6.514L.489 7.41l6.513-1.036z"></path></svg>1k</span><span>Apache License 2.0</span></div></div><details class="bg-[#f0f0f0] dark:bg-[#2f2f2f]"><summary class="flex justify-between font-bold text-primary px-8 lg:px-12 py-5 dark:[[open]>&]:shadow-[-5px_10px_30px_20px_#1b1b1b4d] [[open]>&]:shadow-[0_6px_21px_0_#1b1b1b33] cursor-pointer">README<svg xmlns="http://www.w3.org/2000/svg" fill="currentColor" viewBox="0 0 15 15" class="size-5 -rotate-90 [[open]>*>&]:rotate-90 transition-transform"><path fill-rule="evenodd" d="M8.842 3.135a.5.5 0 0 1 .023.707L5.435 7.5l3.43 3.658a.5.5 0 0 1-.73.684l-3.75-4a.5.5 0 0 1 0-.684l3.75-4a.5.5 0 0 1 .707-.023" clip-rule="evenodd"></path></svg></summary><div class="px-8 lg:px-12 py-5"><p class="[&:not(:first-child)]:_mt-6 _leading-7">Microcks is a platform for turning your API and microservices assets - <em>GraphQL schemas</em>, <em>OpenAPI specs</em>, <em>AsyncAPI specs</em>, <em>gRPC protobuf</em>, <em>Postman collections</em>, <em>SoapUI projects</em>_ - into live simulations in seconds.</p> <p class="[&:not(:first-child)]:_mt-6 _leading-7">It also reuses these assets for running compliance and non-regression tests against your API implementation. We provide integrations with <em>Jenkins</em>, <em>GitHub Actions</em>, <em>Tekton</em> and many others through a simple CLI.</p></div></details></div><div class="border border-zinc-200 dark:border-[#414141] p-8 lg:p-12 bg-white dark:bg-neutral-800 rounded-none !p-0 h-max min-w-0"><div class="p-8 lg:p-12 flex flex-col gap-7 grow"><div class="flex items-center gap-6 [&_a:hover]:text-primary [&_a]:transition-colors"><span class="text-3xl font-extrabold grow break-all">GraphQL Modules</span><a href="https://graphql-modules.com" target="_blank" rel="noreferrer"><svg xmlns="http://www.w3.org/2000/svg" fill="currentColor" viewBox="0 0 24 24"><path d="M23.332 15.948C23.764 14.711 24 13.383 24 12a12 12 0 0 0-.706-4.056C21.627 3.317 17.194 0 12 0S2.373 3.317.706 7.944A11.949 11.949 0 0 0 0 12a12 12 0 0 0 .706 4.056C2.373 20.683 6.806 24 12 24s9.627-3.317 11.294-7.944a1 1 0 0 0 .038-.108M12 22.28c-.457 0-1.194-.827-1.81-2.675a19 19 0 0 1-.708-3.031h5.036a19 19 0 0 1-.708 3.031c-.616 1.848-1.353 2.675-1.81 2.675m-2.727-7.427A32 32 0 0 1 9.147 12c0-.98.043-1.936.126-2.853h5.454c.083.917.126 1.874.126 2.853s-.043 1.936-.126 2.854zM1.72 12c0-.99.141-1.947.403-2.853h5.425a33.5 33.5 0 0 0 0 5.707H2.123A10.3 10.3 0 0 1 1.72 12M12 1.72c.457 0 1.194.827 1.81 2.675.297.892.535 1.917.708 3.032H9.482c.173-1.115.411-2.14.708-3.032.616-1.848 1.353-2.675 1.81-2.675m4.452 7.427h5.425c.262.906.403 1.864.403 2.853s-.141 1.947-.403 2.854h-5.425a33.5 33.5 0 0 0 0-5.707m4.752-1.72h-4.95c-.305-2.11-.83-4.003-1.566-5.35 2.855.775 5.22 2.75 6.516 5.35M9.313 2.077c-.736 1.347-1.261 3.24-1.567 5.35h-4.95a10.33 10.33 0 0 1 6.517-5.35M2.795 16.574h4.95c.306 2.11.83 4.002 1.567 5.349a10.33 10.33 0 0 1-6.517-5.35m11.893 5.349c.736-1.347 1.261-3.24 1.567-5.35h4.95a10.33 10.33 0 0 1-6.517 5.35"></path></svg></a><a href="https://github.com/Urigo/graphql-modules" target="_blank" rel="noreferrer"><svg xmlns="http://www.w3.org/2000/svg" width="30" fill="currentColor" viewBox="0 0 30 30"><path fill-rule="evenodd" d="M15.1.413a14.81 14.81 0 0 0-4.684 28.862c.742.138 1.012-.32 1.012-.712 0-.35-.013-1.283-.02-2.518-4.12.893-4.99-1.987-4.99-1.987-.675-1.71-1.643-2.165-1.643-2.165-1.345-.918.1-.9.1-.9 1.488.105 2.27 1.525 2.27 1.525 1.32 2.265 3.466 1.61 4.31 1.23.133-.955.515-1.608.94-1.978-3.29-.375-6.747-1.645-6.747-7.32 0-1.615.577-2.937 1.525-3.975-.15-.372-.66-1.88.145-3.917 0 0 1.242-.4 4.075 1.517a14.3 14.3 0 0 1 3.705-.5 14.2 14.2 0 0 1 3.707.5c2.826-1.915 4.068-1.517 4.068-1.517.807 2.037.3 3.545.15 3.92.95 1.035 1.52 2.357 1.52 3.975 0 5.687-3.462 6.94-6.76 7.305.53.457 1.005 1.36 1.005 2.742 0 1.98-.02 3.575-.02 4.063 0 .395.267.857 1.02.712A14.816 14.816 0 0 0 15.101.413" clip-rule="evenodd"></path></svg></a><a href="https://npmjs.com/package/graphql-modules" target="_blank" rel="noreferrer"><svg xmlns="http://www.w3.org/2000/svg" width="30" height="30" fill="currentColor"><path fill-rule="evenodd" d="M0 0v30h30V0zm24.375 5.625H5.625v18.75H15v-15h5.625v15h3.75z" clip-rule="evenodd"></path></svg></a></div><div class="gap-2 flex roboto-mono"><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=javascript">JavaScript</a><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=tools">Tools</a></div><span class="[&_a]:text-primary grow line-clamp-4 lg:text-lg">GraphQL Modules lets you separate your backend implementation to small, reusable, easy-to-implement and easy-to-test pieces.</span><div class="flex items-center gap-5 max-md:text-xs [&>:not(:last-child)]:border-r [&>:not(:last-child)]:border-gray-500 [&>:not(:last-child)]:pr-5"><span>Last release <!-- -->1 month ago</span><span class="flex items-center gap-1"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="19" fill="currentColor" class="text-primary"><path d="m10 .5 2.997 5.874L19.51 7.41l-4.66 4.666 1.027 6.514L10 15.6l-5.878 2.99 1.028-6.514L.489 7.41l6.513-1.036z"></path></svg>1k</span><span>MIT License</span></div></div></div><div class="border border-zinc-200 dark:border-[#414141] p-8 lg:p-12 bg-white dark:bg-neutral-800 rounded-none !p-0 h-max min-w-0"><div class="p-8 lg:p-12 flex flex-col gap-7 grow"><div class="flex items-center gap-6 [&_a:hover]:text-primary [&_a]:transition-colors"><span class="text-3xl font-extrabold grow break-all">GraphQL Config</span><a href="https://graphql-config.com" target="_blank" rel="noreferrer"><svg xmlns="http://www.w3.org/2000/svg" fill="currentColor" viewBox="0 0 24 24"><path d="M23.332 15.948C23.764 14.711 24 13.383 24 12a12 12 0 0 0-.706-4.056C21.627 3.317 17.194 0 12 0S2.373 3.317.706 7.944A11.949 11.949 0 0 0 0 12a12 12 0 0 0 .706 4.056C2.373 20.683 6.806 24 12 24s9.627-3.317 11.294-7.944a1 1 0 0 0 .038-.108M12 22.28c-.457 0-1.194-.827-1.81-2.675a19 19 0 0 1-.708-3.031h5.036a19 19 0 0 1-.708 3.031c-.616 1.848-1.353 2.675-1.81 2.675m-2.727-7.427A32 32 0 0 1 9.147 12c0-.98.043-1.936.126-2.853h5.454c.083.917.126 1.874.126 2.853s-.043 1.936-.126 2.854zM1.72 12c0-.99.141-1.947.403-2.853h5.425a33.5 33.5 0 0 0 0 5.707H2.123A10.3 10.3 0 0 1 1.72 12M12 1.72c.457 0 1.194.827 1.81 2.675.297.892.535 1.917.708 3.032H9.482c.173-1.115.411-2.14.708-3.032.616-1.848 1.353-2.675 1.81-2.675m4.452 7.427h5.425c.262.906.403 1.864.403 2.853s-.141 1.947-.403 2.854h-5.425a33.5 33.5 0 0 0 0-5.707m4.752-1.72h-4.95c-.305-2.11-.83-4.003-1.566-5.35 2.855.775 5.22 2.75 6.516 5.35M9.313 2.077c-.736 1.347-1.261 3.24-1.567 5.35h-4.95a10.33 10.33 0 0 1 6.517-5.35M2.795 16.574h4.95c.306 2.11.83 4.002 1.567 5.349a10.33 10.33 0 0 1-6.517-5.35m11.893 5.349c.736-1.347 1.261-3.24 1.567-5.35h4.95a10.33 10.33 0 0 1-6.517 5.35"></path></svg></a><a href="https://github.com/kamilkisiela/graphql-config" target="_blank" rel="noreferrer"><svg xmlns="http://www.w3.org/2000/svg" width="30" fill="currentColor" viewBox="0 0 30 30"><path fill-rule="evenodd" d="M15.1.413a14.81 14.81 0 0 0-4.684 28.862c.742.138 1.012-.32 1.012-.712 0-.35-.013-1.283-.02-2.518-4.12.893-4.99-1.987-4.99-1.987-.675-1.71-1.643-2.165-1.643-2.165-1.345-.918.1-.9.1-.9 1.488.105 2.27 1.525 2.27 1.525 1.32 2.265 3.466 1.61 4.31 1.23.133-.955.515-1.608.94-1.978-3.29-.375-6.747-1.645-6.747-7.32 0-1.615.577-2.937 1.525-3.975-.15-.372-.66-1.88.145-3.917 0 0 1.242-.4 4.075 1.517a14.3 14.3 0 0 1 3.705-.5 14.2 14.2 0 0 1 3.707.5c2.826-1.915 4.068-1.517 4.068-1.517.807 2.037.3 3.545.15 3.92.95 1.035 1.52 2.357 1.52 3.975 0 5.687-3.462 6.94-6.76 7.305.53.457 1.005 1.36 1.005 2.742 0 1.98-.02 3.575-.02 4.063 0 .395.267.857 1.02.712A14.816 14.816 0 0 0 15.101.413" clip-rule="evenodd"></path></svg></a><a href="https://npmjs.com/package/graphql-config" target="_blank" rel="noreferrer"><svg xmlns="http://www.w3.org/2000/svg" width="30" height="30" fill="currentColor"><path fill-rule="evenodd" d="M0 0v30h30V0zm24.375 5.625H5.625v18.75H15v-15h5.625v15h3.75z" clip-rule="evenodd"></path></svg></a></div><div class="gap-2 flex roboto-mono"><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=javascript">JavaScript</a><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=tools">Tools</a></div><span class="[&_a]:text-primary grow line-clamp-4 lg:text-lg">One configuration for all your GraphQL tools (supported by most tools, editors & IDEs).</span><div class="flex items-center gap-5 max-md:text-xs [&>:not(:last-child)]:border-r [&>:not(:last-child)]:border-gray-500 [&>:not(:last-child)]:pr-5"><span>Last release <!-- -->1 month ago</span><span class="flex items-center gap-1"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="19" fill="currentColor" class="text-primary"><path d="m10 .5 2.997 5.874L19.51 7.41l-4.66 4.666 1.027 6.514L10 15.6l-5.878 2.99 1.028-6.514L.489 7.41l6.513-1.036z"></path></svg>1k</span><span>MIT License</span></div></div></div><div class="border border-zinc-200 dark:border-[#414141] p-8 lg:p-12 bg-white dark:bg-neutral-800 rounded-none !p-0 h-max min-w-0"><div class="p-8 lg:p-12 flex flex-col gap-7 grow"><div class="flex items-center gap-6 [&_a:hover]:text-primary [&_a]:transition-colors"><span class="text-3xl font-extrabold grow break-all">GraphQL Middleware</span><a href="https://github.com/maticzav/graphql-middleware" target="_blank" rel="noreferrer"><svg xmlns="http://www.w3.org/2000/svg" width="30" fill="currentColor" viewBox="0 0 30 30"><path fill-rule="evenodd" d="M15.1.413a14.81 14.81 0 0 0-4.684 28.862c.742.138 1.012-.32 1.012-.712 0-.35-.013-1.283-.02-2.518-4.12.893-4.99-1.987-4.99-1.987-.675-1.71-1.643-2.165-1.643-2.165-1.345-.918.1-.9.1-.9 1.488.105 2.27 1.525 2.27 1.525 1.32 2.265 3.466 1.61 4.31 1.23.133-.955.515-1.608.94-1.978-3.29-.375-6.747-1.645-6.747-7.32 0-1.615.577-2.937 1.525-3.975-.15-.372-.66-1.88.145-3.917 0 0 1.242-.4 4.075 1.517a14.3 14.3 0 0 1 3.705-.5 14.2 14.2 0 0 1 3.707.5c2.826-1.915 4.068-1.517 4.068-1.517.807 2.037.3 3.545.15 3.92.95 1.035 1.52 2.357 1.52 3.975 0 5.687-3.462 6.94-6.76 7.305.53.457 1.005 1.36 1.005 2.742 0 1.98-.02 3.575-.02 4.063 0 .395.267.857 1.02.712A14.816 14.816 0 0 0 15.101.413" clip-rule="evenodd"></path></svg></a><a href="https://npmjs.com/package/graphql-middleware" target="_blank" rel="noreferrer"><svg xmlns="http://www.w3.org/2000/svg" width="30" height="30" fill="currentColor"><path fill-rule="evenodd" d="M0 0v30h30V0zm24.375 5.625H5.625v18.75H15v-15h5.625v15h3.75z" clip-rule="evenodd"></path></svg></a></div><div class="gap-2 flex roboto-mono"><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=javascript">JavaScript</a><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=tools">Tools</a></div><span class="[&_a]:text-primary grow line-clamp-4 lg:text-lg">Split up your GraphQL resolvers in middleware functions.</span><div class="flex items-center gap-5 max-md:text-xs [&>:not(:last-child)]:border-r [&>:not(:last-child)]:border-gray-500 [&>:not(:last-child)]:pr-5"><span>Last release <!-- -->1 year ago</span><span class="flex items-center gap-1"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="19" fill="currentColor" class="text-primary"><path d="m10 .5 2.997 5.874L19.51 7.41l-4.66 4.666 1.027 6.514L10 15.6l-5.878 2.99 1.028-6.514L.489 7.41l6.513-1.036z"></path></svg>1k</span><span>MIT License</span></div></div><details class="bg-[#f0f0f0] dark:bg-[#2f2f2f]"><summary class="flex justify-between font-bold text-primary px-8 lg:px-12 py-5 dark:[[open]>&]:shadow-[-5px_10px_30px_20px_#1b1b1b4d] [[open]>&]:shadow-[0_6px_21px_0_#1b1b1b33] cursor-pointer">README<svg xmlns="http://www.w3.org/2000/svg" fill="currentColor" viewBox="0 0 15 15" class="size-5 -rotate-90 [[open]>*>&]:rotate-90 transition-transform"><path fill-rule="evenodd" d="M8.842 3.135a.5.5 0 0 1 .023.707L5.435 7.5l3.43 3.658a.5.5 0 0 1-.73.684l-3.75-4a.5.5 0 0 1 0-.684l3.75-4a.5.5 0 0 1 .707-.023" clip-rule="evenodd"></path></svg></summary><div class="px-8 lg:px-12 py-5"><p class="[&:not(:first-child)]:_mt-6 _leading-7">GraphQL Middleware is a schema wrapper which allows you to manage additional functionality across multiple resolvers efficiently.</p> <h2 class="_font-semibold _tracking-tight _text-slate-900 dark:_text-slate-100 _mt-10 _border-b _pb-1 _text-3xl _border-neutral-200/70 contrast-more:_border-neutral-400 dark:_border-primary-100/10 contrast-more:dark:_border-neutral-400">Features<a href="#features" id="features" class="subheading-anchor" aria-label="Permalink for this section"></a></h2> <p class="[&:not(:first-child)]:_mt-6 _leading-7">💡 Easy to use: An intuitive, yet familiar API that you will pick up in a second. 💪 Powerful: Allows complete control over your resolvers (Before, After). 🌈 Compatible: Works with any GraphQL Schema.</p> <h2 class="_font-semibold _tracking-tight _text-slate-900 dark:_text-slate-100 _mt-10 _border-b _pb-1 _text-3xl _border-neutral-200/70 contrast-more:_border-neutral-400 dark:_border-primary-100/10 contrast-more:dark:_border-neutral-400">Example<a href="#example" id="example" class="subheading-anchor" aria-label="Permalink for this section"></a></h2> <div class="nextra-code _relative [&:not(:first-child)]:_mt-6"><pre class="_overflow-x-auto _subpixel-antialiased _text-[.9em] _bg-white dark:_bg-black _py-4 _ring-1 _ring-inset _ring-gray-300 dark:_ring-neutral-700 contrast-more:_ring-gray-900 contrast-more:dark:_ring-gray-50 contrast-more:_contrast-150 _rounded-md" tabindex="0"><code class="nextra-code" dir="ltr"><span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">const</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> { </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">ApolloServer</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> } </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> require</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">"apollo-server"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">)</span></span> <span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">const</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> { </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">makeExecutableSchema</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> } </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> require</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">"@graphql-tools/schema"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">)</span></span> <span> </span> <span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">const</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> typeDefs</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> =</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> `</span></span> <span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">type Query {</span></span> <span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> hello(name: String): String</span></span> <span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> bye(name: String): String</span></span> <span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">}</span></span> <span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">`</span></span> <span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">const</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> resolvers</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> =</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> {</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> Query: {</span></span> <span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> hello</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">: (</span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70">root</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">, </span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70">args</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">, </span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70">context</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">, </span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70">info</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">) </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=></span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> {</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> console.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">log</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">`3. resolver: hello`</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">)</span></span> <span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> return</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> `Hello ${</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">args</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">.</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">name</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> ?</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> args</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">.</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">name</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> :</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> "world"}!`</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> },</span></span> <span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> bye</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">: (</span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70">root</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">, </span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70">args</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">, </span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70">context</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">, </span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70">info</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">) </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=></span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> {</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> console.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">log</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">`3. resolver: bye`</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">)</span></span> <span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> return</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> `Bye ${</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">args</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">.</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">name</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> ?</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> args</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">.</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">name</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> :</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> "world"}!`</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> },</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> },</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">}</span></span> <span> </span> <span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">const</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> logInput</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> =</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> async</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> (</span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70">resolve</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">, </span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70">root</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">, </span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70">args</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">, </span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70">context</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">, </span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70">info</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">) </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=></span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> {</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> console.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">log</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">`1. logInput: ${</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">JSON</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">stringify</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">(</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">args</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">)</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">}`</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">)</span></span> <span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> const</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> result</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> =</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> await</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> resolve</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(root, args, context, info)</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> console.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">log</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">`5. logInput`</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">)</span></span> <span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> return</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> result</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">}</span></span> <span> </span> <span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">const</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> logResult</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> =</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> async</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> (</span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70">resolve</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">, </span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70">root</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">, </span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70">args</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">, </span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70">context</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">, </span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70">info</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">) </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=></span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> {</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> console.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">log</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">`2. logResult`</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">)</span></span> <span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> const</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> result</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> =</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> await</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> resolve</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(root, args, context, info)</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> console.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">log</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">`4. logResult: ${</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">JSON</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">stringify</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">(</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">result</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">)</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">}`</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">)</span></span> <span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> return</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> result</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">}</span></span> <span> </span> <span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">const</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> schema</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> =</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> makeExecutableSchema</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">({ typeDefs, resolvers })</span></span> <span> </span> <span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">const</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> schemaWithMiddleware</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> =</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> applyMiddleware</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(schema, logInput, logResult)</span></span> <span> </span> <span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">const</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> server</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> =</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> new</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> ApolloServer</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">({</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> schema: schemaWithMiddleware,</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">})</span></span> <span> </span> <span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">await</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> server.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">listen</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">({ port: </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">8008</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> })</span></span></code></pre><div class="_opacity-0 _transition [div:hover>&]:_opacity-100 focus-within:_opacity-100 _flex _gap-1 _absolute _right-4 _top-2"><button class="_transition _rounded-md _p-1.5 _border _border-gray-300 dark:_border-neutral-700 contrast-more:_border-gray-900 contrast-more:dark:_border-gray-50 md:_hidden" title="Toggle word wrap"><svg viewBox="0 0 24 24" width="24" height="24" class="_h-4 _w-auto"><path fill="currentColor" d="M4 19h6v-2H4v2zM20 5H4v2h16V5zm-3 6H4v2h13.25c1.1 0 2 .9 2 2s-.9 2-2 2H15v-2l-3 3l3 3v-2h2c2.21 0 4-1.79 4-4s-1.79-4-4-4z"></path></svg></button></div></div></div></details></div><div class="border border-zinc-200 dark:border-[#414141] p-8 lg:p-12 bg-white dark:bg-neutral-800 rounded-none !p-0 h-max min-w-0"><div class="p-8 lg:p-12 flex flex-col gap-7 grow"><div class="flex items-center gap-6 [&_a:hover]:text-primary [&_a]:transition-colors"><span class="text-3xl font-extrabold grow break-all">Siler</span><a href="https://siler.leocavalcante.com/graphql/" target="_blank" rel="noreferrer"><svg xmlns="http://www.w3.org/2000/svg" fill="currentColor" viewBox="0 0 24 24"><path d="M23.332 15.948C23.764 14.711 24 13.383 24 12a12 12 0 0 0-.706-4.056C21.627 3.317 17.194 0 12 0S2.373 3.317.706 7.944A11.949 11.949 0 0 0 0 12a12 12 0 0 0 .706 4.056C2.373 20.683 6.806 24 12 24s9.627-3.317 11.294-7.944a1 1 0 0 0 .038-.108M12 22.28c-.457 0-1.194-.827-1.81-2.675a19 19 0 0 1-.708-3.031h5.036a19 19 0 0 1-.708 3.031c-.616 1.848-1.353 2.675-1.81 2.675m-2.727-7.427A32 32 0 0 1 9.147 12c0-.98.043-1.936.126-2.853h5.454c.083.917.126 1.874.126 2.853s-.043 1.936-.126 2.854zM1.72 12c0-.99.141-1.947.403-2.853h5.425a33.5 33.5 0 0 0 0 5.707H2.123A10.3 10.3 0 0 1 1.72 12M12 1.72c.457 0 1.194.827 1.81 2.675.297.892.535 1.917.708 3.032H9.482c.173-1.115.411-2.14.708-3.032.616-1.848 1.353-2.675 1.81-2.675m4.452 7.427h5.425c.262.906.403 1.864.403 2.853s-.141 1.947-.403 2.854h-5.425a33.5 33.5 0 0 0 0-5.707m4.752-1.72h-4.95c-.305-2.11-.83-4.003-1.566-5.35 2.855.775 5.22 2.75 6.516 5.35M9.313 2.077c-.736 1.347-1.261 3.24-1.567 5.35h-4.95a10.33 10.33 0 0 1 6.517-5.35M2.795 16.574h4.95c.306 2.11.83 4.002 1.567 5.349a10.33 10.33 0 0 1-6.517-5.35m11.893 5.349c.736-1.347 1.261-3.24 1.567-5.35h4.95a10.33 10.33 0 0 1-6.517 5.35"></path></svg></a><a href="https://github.com/leocavalcante/siler" target="_blank" rel="noreferrer"><svg xmlns="http://www.w3.org/2000/svg" width="30" fill="currentColor" viewBox="0 0 30 30"><path fill-rule="evenodd" d="M15.1.413a14.81 14.81 0 0 0-4.684 28.862c.742.138 1.012-.32 1.012-.712 0-.35-.013-1.283-.02-2.518-4.12.893-4.99-1.987-4.99-1.987-.675-1.71-1.643-2.165-1.643-2.165-1.345-.918.1-.9.1-.9 1.488.105 2.27 1.525 2.27 1.525 1.32 2.265 3.466 1.61 4.31 1.23.133-.955.515-1.608.94-1.978-3.29-.375-6.747-1.645-6.747-7.32 0-1.615.577-2.937 1.525-3.975-.15-.372-.66-1.88.145-3.917 0 0 1.242-.4 4.075 1.517a14.3 14.3 0 0 1 3.705-.5 14.2 14.2 0 0 1 3.707.5c2.826-1.915 4.068-1.517 4.068-1.517.807 2.037.3 3.545.15 3.92.95 1.035 1.52 2.357 1.52 3.975 0 5.687-3.462 6.94-6.76 7.305.53.457 1.005 1.36 1.005 2.742 0 1.98-.02 3.575-.02 4.063 0 .395.267.857 1.02.712A14.816 14.816 0 0 0 15.101.413" clip-rule="evenodd"></path></svg></a></div><div class="gap-2 flex roboto-mono"><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=php">PHP</a><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=server">Server</a></div><span class="[&_a]:text-primary grow line-clamp-4 lg:text-lg">Siler is a PHP library powered with high-level abstractions to work with GraphQL.</span><div class="flex items-center gap-5 max-md:text-xs [&>:not(:last-child)]:border-r [&>:not(:last-child)]:border-gray-500 [&>:not(:last-child)]:pr-5"><span>Last release <!-- -->3 years ago</span><span class="flex items-center gap-1"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="19" fill="currentColor" class="text-primary"><path d="m10 .5 2.997 5.874L19.51 7.41l-4.66 4.666 1.027 6.514L10 15.6l-5.878 2.99 1.028-6.514L.489 7.41l6.513-1.036z"></path></svg>1k</span><span>MIT License</span></div></div><details class="bg-[#f0f0f0] dark:bg-[#2f2f2f]"><summary class="flex justify-between font-bold text-primary px-8 lg:px-12 py-5 dark:[[open]>&]:shadow-[-5px_10px_30px_20px_#1b1b1b4d] [[open]>&]:shadow-[0_6px_21px_0_#1b1b1b33] cursor-pointer">README<svg xmlns="http://www.w3.org/2000/svg" fill="currentColor" viewBox="0 0 15 15" class="size-5 -rotate-90 [[open]>*>&]:rotate-90 transition-transform"><path fill-rule="evenodd" d="M8.842 3.135a.5.5 0 0 1 .023.707L5.435 7.5l3.43 3.658a.5.5 0 0 1-.73.684l-3.75-4a.5.5 0 0 1 0-.684l3.75-4a.5.5 0 0 1 .707-.023" clip-rule="evenodd"></path></svg></summary><div class="px-8 lg:px-12 py-5"><p class="[&:not(:first-child)]:_mt-6 _leading-7">To run a Siler hello world script:</p> <div class="nextra-code _relative [&:not(:first-child)]:_mt-6"><pre class="_overflow-x-auto _subpixel-antialiased _text-[.9em] _bg-white dark:_bg-black _py-4 _ring-1 _ring-inset _ring-gray-300 dark:_ring-neutral-700 contrast-more:_ring-gray-900 contrast-more:dark:_ring-gray-50 contrast-more:_contrast-150 _rounded-md" tabindex="0"><code class="nextra-code" dir="ltr"><span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">type</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> Query</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> {</span></span> <span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70"> hello</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">: </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">String</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">}</span></span></code></pre><div class="_opacity-0 _transition [div:hover>&]:_opacity-100 focus-within:_opacity-100 _flex _gap-1 _absolute _right-4 _top-2"><button class="_transition _rounded-md _p-1.5 _border _border-gray-300 dark:_border-neutral-700 contrast-more:_border-gray-900 contrast-more:dark:_border-gray-50 md:_hidden" title="Toggle word wrap"><svg viewBox="0 0 24 24" width="24" height="24" class="_h-4 _w-auto"><path fill="currentColor" d="M4 19h6v-2H4v2zM20 5H4v2h16V5zm-3 6H4v2h13.25c1.1 0 2 .9 2 2s-.9 2-2 2H15v-2l-3 3l3 3v-2h2c2.21 0 4-1.79 4-4s-1.79-4-4-4z"></path></svg></button></div></div> <div class="nextra-code _relative [&:not(:first-child)]:_mt-6"><pre class="_overflow-x-auto _subpixel-antialiased _text-[.9em] _bg-white dark:_bg-black _py-4 _ring-1 _ring-inset _ring-gray-300 dark:_ring-neutral-700 contrast-more:_ring-gray-900 contrast-more:dark:_ring-gray-50 contrast-more:_contrast-150 _rounded-md" tabindex="0"><code class="nextra-code" dir="ltr"><span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"><?</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">php</span></span> <span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">declare</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">strict_types</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">1</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">);</span></span> <span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">require_once</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> '/path/to/vendor/autoload.php'</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">;</span></span> <span> </span> <span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">use</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> SilerDiactoros</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">;</span></span> <span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">use</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> SilerGraphql</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">;</span></span> <span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">use</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> SilerHttp</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">;</span></span> <span> </span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">$typeDefs </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> file_get_contents</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">__DIR__</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">.</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">'/schema.graphql'</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">);</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">$resolvers </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> [</span></span> <span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> 'Query'</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> =></span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> [</span></span> <span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> 'hello'</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> =></span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> 'world'</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">,</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> ],</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">];</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">$schema </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> Graphqlschema</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">($typeDefs, $resolvers);</span></span> <span> </span> <span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">echo</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> "Server running at http://127.0.0.1:8080"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">;</span></span> <span> </span> <span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">Httpserver</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">Graphqlpsr7</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">($schema), </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">function</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> (</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">Throwable</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> $err) {</span></span> <span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> var_dump</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">($err);</span></span> <span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> return</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> Diactorosjson</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">([</span></span> <span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> 'error'</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> =></span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> true</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">,</span></span> <span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> 'message'</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> =></span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> $err</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">-></span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">getMessage</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(),</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> ]);</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">})()</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">-></span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">run</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">();</span></span></code></pre><div class="_opacity-0 _transition [div:hover>&]:_opacity-100 focus-within:_opacity-100 _flex _gap-1 _absolute _right-4 _top-2"><button class="_transition _rounded-md _p-1.5 _border _border-gray-300 dark:_border-neutral-700 contrast-more:_border-gray-900 contrast-more:dark:_border-gray-50 md:_hidden" title="Toggle word wrap"><svg viewBox="0 0 24 24" width="24" height="24" class="_h-4 _w-auto"><path fill="currentColor" d="M4 19h6v-2H4v2zM20 5H4v2h16V5zm-3 6H4v2h13.25c1.1 0 2 .9 2 2s-.9 2-2 2H15v-2l-3 3l3 3v-2h2c2.21 0 4-1.79 4-4s-1.79-4-4-4z"></path></svg></button></div></div> <p class="[&:not(:first-child)]:_mt-6 _leading-7">It also provides functionality for the construction of a WebSocket Subscriptions Server based on how Apollo works.</p></div></details></div><div class="border border-zinc-200 dark:border-[#414141] p-8 lg:p-12 bg-white dark:bg-neutral-800 rounded-none !p-0 h-max min-w-0"><div class="p-8 lg:p-12 flex flex-col gap-7 grow"><div class="flex items-center gap-6 [&_a:hover]:text-primary [&_a]:transition-colors"><span class="text-3xl font-extrabold grow break-all">SpectaQL</span><a href="https://github.com/anvilco/spectaql" target="_blank" rel="noreferrer"><svg xmlns="http://www.w3.org/2000/svg" width="30" fill="currentColor" viewBox="0 0 30 30"><path fill-rule="evenodd" d="M15.1.413a14.81 14.81 0 0 0-4.684 28.862c.742.138 1.012-.32 1.012-.712 0-.35-.013-1.283-.02-2.518-4.12.893-4.99-1.987-4.99-1.987-.675-1.71-1.643-2.165-1.643-2.165-1.345-.918.1-.9.1-.9 1.488.105 2.27 1.525 2.27 1.525 1.32 2.265 3.466 1.61 4.31 1.23.133-.955.515-1.608.94-1.978-3.29-.375-6.747-1.645-6.747-7.32 0-1.615.577-2.937 1.525-3.975-.15-.372-.66-1.88.145-3.917 0 0 1.242-.4 4.075 1.517a14.3 14.3 0 0 1 3.705-.5 14.2 14.2 0 0 1 3.707.5c2.826-1.915 4.068-1.517 4.068-1.517.807 2.037.3 3.545.15 3.92.95 1.035 1.52 2.357 1.52 3.975 0 5.687-3.462 6.94-6.76 7.305.53.457 1.005 1.36 1.005 2.742 0 1.98-.02 3.575-.02 4.063 0 .395.267.857 1.02.712A14.816 14.816 0 0 0 15.101.413" clip-rule="evenodd"></path></svg></a><a href="https://npmjs.com/package/spectaql" target="_blank" rel="noreferrer"><svg xmlns="http://www.w3.org/2000/svg" width="30" height="30" fill="currentColor"><path fill-rule="evenodd" d="M0 0v30h30V0zm24.375 5.625H5.625v18.75H15v-15h5.625v15h3.75z" clip-rule="evenodd"></path></svg></a></div><div class="gap-2 flex roboto-mono"><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=javascript">JavaScript</a><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=tools">Tools</a></div><span class="[&_a]:text-primary grow line-clamp-4 lg:text-lg">SpectaQL generates static HTML documentation from a GraphQL schema.</span><div class="flex items-center gap-5 max-md:text-xs [&>:not(:last-child)]:border-r [&>:not(:last-child)]:border-gray-500 [&>:not(:last-child)]:pr-5"><span class="flex items-center gap-1"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="19" fill="currentColor" class="text-primary"><path d="m10 .5 2.997 5.874L19.51 7.41l-4.66 4.666 1.027 6.514L10 15.6l-5.878 2.99 1.028-6.514L.489 7.41l6.513-1.036z"></path></svg>1k</span><span>MIT License</span></div></div><details class="bg-[#f0f0f0] dark:bg-[#2f2f2f]"><summary class="flex justify-between font-bold text-primary px-8 lg:px-12 py-5 dark:[[open]>&]:shadow-[-5px_10px_30px_20px_#1b1b1b4d] [[open]>&]:shadow-[0_6px_21px_0_#1b1b1b33] cursor-pointer">README<svg xmlns="http://www.w3.org/2000/svg" fill="currentColor" viewBox="0 0 15 15" class="size-5 -rotate-90 [[open]>*>&]:rotate-90 transition-transform"><path fill-rule="evenodd" d="M8.842 3.135a.5.5 0 0 1 .023.707L5.435 7.5l3.43 3.658a.5.5 0 0 1-.73.684l-3.75-4a.5.5 0 0 1 0-.684l3.75-4a.5.5 0 0 1 .707-.023" clip-rule="evenodd"></path></svg></summary><div class="px-8 lg:px-12 py-5"><p class="[&:not(:first-child)]:_mt-6 _leading-7">SpectaQL is a Node.js library that generates static documentation for a GraphQL schema using a variety of options:</p> <ul class="[:is(ol,ul)_&]:_my-3 [&:not(:first-child)]:_mt-6 _list-disc ltr:_ml-6 rtl:_mr-6"> <li class="_my-2">From a live endpoint using the introspection query.</li> <li class="_my-2">From a file containing an introspection query result.</li> <li class="_my-2">From a file, files or glob leading to the schema definitions in SDL.</li> </ul> <p class="[&:not(:first-child)]:_mt-6 _leading-7">Out of the box, SpectaQL generates a single 3-column HTML page and lets you choose between a couple built-in themes. A main goal of the project is to be easily and extremely customizable—it is themeable and just about everything can be overridden or customized.</p> <div class="nextra-code _relative [&:not(:first-child)]:_mt-6"><pre class="_overflow-x-auto _subpixel-antialiased _text-[.9em] _bg-white dark:_bg-black _py-4 _ring-1 _ring-inset _ring-gray-300 dark:_ring-neutral-700 contrast-more:_ring-gray-900 contrast-more:dark:_ring-gray-50 contrast-more:_contrast-150 _rounded-md" tabindex="0"><code class="nextra-code" dir="ltr"><span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">npm</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> install</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> --dev</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> spectaql</span></span> <span><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D"># OR</span></span> <span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">yarn</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> add</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> -D</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> spectaql</span></span> <span> </span> <span><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D"># Then generate your docs</span></span> <span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">npm</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> run</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> spectaql</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> my-config.yml</span></span> <span><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D"># OR</span></span> <span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">yarn</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> spectaql</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> my-config.yml</span></span></code></pre><div class="_opacity-0 _transition [div:hover>&]:_opacity-100 focus-within:_opacity-100 _flex _gap-1 _absolute _right-4 _top-2"><button class="_transition _rounded-md _p-1.5 _border _border-gray-300 dark:_border-neutral-700 contrast-more:_border-gray-900 contrast-more:dark:_border-gray-50 md:_hidden" title="Toggle word wrap"><svg viewBox="0 0 24 24" width="24" height="24" class="_h-4 _w-auto"><path fill="currentColor" d="M4 19h6v-2H4v2zM20 5H4v2h16V5zm-3 6H4v2h13.25c1.1 0 2 .9 2 2s-.9 2-2 2H15v-2l-3 3l3 3v-2h2c2.21 0 4-1.79 4-4s-1.79-4-4-4z"></path></svg></button></div></div></div></details></div><div class="border border-zinc-200 dark:border-[#414141] p-8 lg:p-12 bg-white dark:bg-neutral-800 rounded-none !p-0 h-max min-w-0"><div class="p-8 lg:p-12 flex flex-col gap-7 grow"><div class="flex items-center gap-6 [&_a:hover]:text-primary [&_a]:transition-colors"><span class="text-3xl font-extrabold grow break-all">genqlient</span><a href="https://github.com/Khan/genqlient" target="_blank" rel="noreferrer"><svg xmlns="http://www.w3.org/2000/svg" width="30" fill="currentColor" viewBox="0 0 30 30"><path fill-rule="evenodd" d="M15.1.413a14.81 14.81 0 0 0-4.684 28.862c.742.138 1.012-.32 1.012-.712 0-.35-.013-1.283-.02-2.518-4.12.893-4.99-1.987-4.99-1.987-.675-1.71-1.643-2.165-1.643-2.165-1.345-.918.1-.9.1-.9 1.488.105 2.27 1.525 2.27 1.525 1.32 2.265 3.466 1.61 4.31 1.23.133-.955.515-1.608.94-1.978-3.29-.375-6.747-1.645-6.747-7.32 0-1.615.577-2.937 1.525-3.975-.15-.372-.66-1.88.145-3.917 0 0 1.242-.4 4.075 1.517a14.3 14.3 0 0 1 3.705-.5 14.2 14.2 0 0 1 3.707.5c2.826-1.915 4.068-1.517 4.068-1.517.807 2.037.3 3.545.15 3.92.95 1.035 1.52 2.357 1.52 3.975 0 5.687-3.462 6.94-6.76 7.305.53.457 1.005 1.36 1.005 2.742 0 1.98-.02 3.575-.02 4.063 0 .395.267.857 1.02.712A14.816 14.816 0 0 0 15.101.413" clip-rule="evenodd"></path></svg></a></div><div class="gap-2 flex roboto-mono"><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=go">Go</a><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=client">Client</a></div><span class="[&_a]:text-primary grow line-clamp-4 lg:text-lg">A truly type-safe Go GraphQL client.</span><div class="flex items-center gap-5 max-md:text-xs [&>:not(:last-child)]:border-r [&>:not(:last-child)]:border-gray-500 [&>:not(:last-child)]:pr-5"><span>Last release <!-- -->8 months ago</span><span class="flex items-center gap-1"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="19" fill="currentColor" class="text-primary"><path d="m10 .5 2.997 5.874L19.51 7.41l-4.66 4.666 1.027 6.514L10 15.6l-5.878 2.99 1.028-6.514L.489 7.41l6.513-1.036z"></path></svg>1k</span><span>MIT License</span></div></div><details class="bg-[#f0f0f0] dark:bg-[#2f2f2f]"><summary class="flex justify-between font-bold text-primary px-8 lg:px-12 py-5 dark:[[open]>&]:shadow-[-5px_10px_30px_20px_#1b1b1b4d] [[open]>&]:shadow-[0_6px_21px_0_#1b1b1b33] cursor-pointer">README<svg xmlns="http://www.w3.org/2000/svg" fill="currentColor" viewBox="0 0 15 15" class="size-5 -rotate-90 [[open]>*>&]:rotate-90 transition-transform"><path fill-rule="evenodd" d="M8.842 3.135a.5.5 0 0 1 .023.707L5.435 7.5l3.43 3.658a.5.5 0 0 1-.73.684l-3.75-4a.5.5 0 0 1 0-.684l3.75-4a.5.5 0 0 1 .707-.023" clip-rule="evenodd"></path></svg></summary><div class="px-8 lg:px-12 py-5"><p class="[&:not(:first-child)]:_mt-6 _leading-7">genqlient is a Go library to easily generate type-safe code to query a GraphQL API. It takes advantage of the fact that both GraphQL and Go are typed languages to ensure at compile-time that your code is making a valid GraphQL query and using the result correctly, all with a minimum of boilerplate.</p> <p class="[&:not(:first-child)]:_mt-6 _leading-7">genqlient provides:</p> <ul class="[:is(ol,ul)_&]:_my-3 [&:not(:first-child)]:_mt-6 _list-disc ltr:_ml-6 rtl:_mr-6"> <li class="_my-2">Compile-time validation of GraphQL queries: never ship an invalid GraphQL query again!</li> <li class="_my-2">Type-safe response objects: genqlient generates the right type for each query, so you know the response will unmarshal correctly and never need to use <code class="nextra-code" dir="ltr">interface{}</code>.</li> <li class="_my-2">Production-readiness: genqlient is used in production at Khan Academy, where it supports millions of learners and teachers around the world.</li> </ul></div></details></div><div class="border border-zinc-200 dark:border-[#414141] p-8 lg:p-12 bg-white dark:bg-neutral-800 rounded-none !p-0 h-max min-w-0"><div class="p-8 lg:p-12 flex flex-col gap-7 grow"><div class="flex items-center gap-6 [&_a:hover]:text-primary [&_a]:transition-colors"><span class="text-3xl font-extrabold grow break-all">libgraphqlparser</span><a href="https://github.com/graphql/libgraphqlparser" target="_blank" rel="noreferrer"><svg xmlns="http://www.w3.org/2000/svg" width="30" fill="currentColor" viewBox="0 0 30 30"><path fill-rule="evenodd" d="M15.1.413a14.81 14.81 0 0 0-4.684 28.862c.742.138 1.012-.32 1.012-.712 0-.35-.013-1.283-.02-2.518-4.12.893-4.99-1.987-4.99-1.987-.675-1.71-1.643-2.165-1.643-2.165-1.345-.918.1-.9.1-.9 1.488.105 2.27 1.525 2.27 1.525 1.32 2.265 3.466 1.61 4.31 1.23.133-.955.515-1.608.94-1.978-3.29-.375-6.747-1.645-6.747-7.32 0-1.615.577-2.937 1.525-3.975-.15-.372-.66-1.88.145-3.917 0 0 1.242-.4 4.075 1.517a14.3 14.3 0 0 1 3.705-.5 14.2 14.2 0 0 1 3.707.5c2.826-1.915 4.068-1.517 4.068-1.517.807 2.037.3 3.545.15 3.92.95 1.035 1.52 2.357 1.52 3.975 0 5.687-3.462 6.94-6.76 7.305.53.457 1.005 1.36 1.005 2.742 0 1.98-.02 3.575-.02 4.063 0 .395.267.857 1.02.712A14.816 14.816 0 0 0 15.101.413" clip-rule="evenodd"></path></svg></a></div><div class="gap-2 flex roboto-mono"><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=c-c">C / C++</a><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=tools">Tools</a></div><span class="[&_a]:text-primary grow line-clamp-4 lg:text-lg">A GraphQL query language parser in C++ with C and C++ APIs.</span><div class="flex items-center gap-5 max-md:text-xs [&>:not(:last-child)]:border-r [&>:not(:last-child)]:border-gray-500 [&>:not(:last-child)]:pr-5"><span>Last release <!-- -->7 years ago</span><span class="flex items-center gap-1"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="19" fill="currentColor" class="text-primary"><path d="m10 .5 2.997 5.874L19.51 7.41l-4.66 4.666 1.027 6.514L10 15.6l-5.878 2.99 1.028-6.514L.489 7.41l6.513-1.036z"></path></svg>1k</span><span>MIT License</span></div></div></div><div class="border border-zinc-200 dark:border-[#414141] p-8 lg:p-12 bg-white dark:bg-neutral-800 rounded-none !p-0 h-max min-w-0"><div class="p-8 lg:p-12 flex flex-col gap-7 grow"><div class="flex items-center gap-6 [&_a:hover]:text-primary [&_a]:transition-colors"><span class="text-3xl font-extrabold grow break-all">SOFA</span><a href="https://sofa-api.com/" target="_blank" rel="noreferrer"><svg xmlns="http://www.w3.org/2000/svg" fill="currentColor" viewBox="0 0 24 24"><path d="M23.332 15.948C23.764 14.711 24 13.383 24 12a12 12 0 0 0-.706-4.056C21.627 3.317 17.194 0 12 0S2.373 3.317.706 7.944A11.949 11.949 0 0 0 0 12a12 12 0 0 0 .706 4.056C2.373 20.683 6.806 24 12 24s9.627-3.317 11.294-7.944a1 1 0 0 0 .038-.108M12 22.28c-.457 0-1.194-.827-1.81-2.675a19 19 0 0 1-.708-3.031h5.036a19 19 0 0 1-.708 3.031c-.616 1.848-1.353 2.675-1.81 2.675m-2.727-7.427A32 32 0 0 1 9.147 12c0-.98.043-1.936.126-2.853h5.454c.083.917.126 1.874.126 2.853s-.043 1.936-.126 2.854zM1.72 12c0-.99.141-1.947.403-2.853h5.425a33.5 33.5 0 0 0 0 5.707H2.123A10.3 10.3 0 0 1 1.72 12M12 1.72c.457 0 1.194.827 1.81 2.675.297.892.535 1.917.708 3.032H9.482c.173-1.115.411-2.14.708-3.032.616-1.848 1.353-2.675 1.81-2.675m4.452 7.427h5.425c.262.906.403 1.864.403 2.853s-.141 1.947-.403 2.854h-5.425a33.5 33.5 0 0 0 0-5.707m4.752-1.72h-4.95c-.305-2.11-.83-4.003-1.566-5.35 2.855.775 5.22 2.75 6.516 5.35M9.313 2.077c-.736 1.347-1.261 3.24-1.567 5.35h-4.95a10.33 10.33 0 0 1 6.517-5.35M2.795 16.574h4.95c.306 2.11.83 4.002 1.567 5.349a10.33 10.33 0 0 1-6.517-5.35m11.893 5.349c.736-1.347 1.261-3.24 1.567-5.35h4.95a10.33 10.33 0 0 1-6.517 5.35"></path></svg></a><a href="https://github.com/Urigo/SOFA" target="_blank" rel="noreferrer"><svg xmlns="http://www.w3.org/2000/svg" width="30" fill="currentColor" viewBox="0 0 30 30"><path fill-rule="evenodd" d="M15.1.413a14.81 14.81 0 0 0-4.684 28.862c.742.138 1.012-.32 1.012-.712 0-.35-.013-1.283-.02-2.518-4.12.893-4.99-1.987-4.99-1.987-.675-1.71-1.643-2.165-1.643-2.165-1.345-.918.1-.9.1-.9 1.488.105 2.27 1.525 2.27 1.525 1.32 2.265 3.466 1.61 4.31 1.23.133-.955.515-1.608.94-1.978-3.29-.375-6.747-1.645-6.747-7.32 0-1.615.577-2.937 1.525-3.975-.15-.372-.66-1.88.145-3.917 0 0 1.242-.4 4.075 1.517a14.3 14.3 0 0 1 3.705-.5 14.2 14.2 0 0 1 3.707.5c2.826-1.915 4.068-1.517 4.068-1.517.807 2.037.3 3.545.15 3.92.95 1.035 1.52 2.357 1.52 3.975 0 5.687-3.462 6.94-6.76 7.305.53.457 1.005 1.36 1.005 2.742 0 1.98-.02 3.575-.02 4.063 0 .395.267.857 1.02.712A14.816 14.816 0 0 0 15.101.413" clip-rule="evenodd"></path></svg></a><a href="https://npmjs.com/package/sofa-api" target="_blank" rel="noreferrer"><svg xmlns="http://www.w3.org/2000/svg" width="30" height="30" fill="currentColor"><path fill-rule="evenodd" d="M0 0v30h30V0zm24.375 5.625H5.625v18.75H15v-15h5.625v15h3.75z" clip-rule="evenodd"></path></svg></a></div><div class="gap-2 flex roboto-mono"><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=javascript">JavaScript</a><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=tools">Tools</a></div><span class="[&_a]:text-primary grow line-clamp-4 lg:text-lg">Generate REST API from your GraphQL API.</span><div class="flex items-center gap-5 max-md:text-xs [&>:not(:last-child)]:border-r [&>:not(:last-child)]:border-gray-500 [&>:not(:last-child)]:pr-5"><span>Last release <!-- -->11 months ago</span><span class="flex items-center gap-1"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="19" fill="currentColor" class="text-primary"><path d="m10 .5 2.997 5.874L19.51 7.41l-4.66 4.666 1.027 6.514L10 15.6l-5.878 2.99 1.028-6.514L.489 7.41l6.513-1.036z"></path></svg>1k</span><span>MIT License</span></div></div></div><div class="border border-zinc-200 dark:border-[#414141] p-8 lg:p-12 bg-white dark:bg-neutral-800 rounded-none !p-0 h-max min-w-0"><div class="p-8 lg:p-12 flex flex-col gap-7 grow"><div class="flex items-center gap-6 [&_a:hover]:text-primary [&_a]:transition-colors"><span class="text-3xl font-extrabold grow break-all">Elide</span><a href="https://elide.io" target="_blank" rel="noreferrer"><svg xmlns="http://www.w3.org/2000/svg" fill="currentColor" viewBox="0 0 24 24"><path d="M23.332 15.948C23.764 14.711 24 13.383 24 12a12 12 0 0 0-.706-4.056C21.627 3.317 17.194 0 12 0S2.373 3.317.706 7.944A11.949 11.949 0 0 0 0 12a12 12 0 0 0 .706 4.056C2.373 20.683 6.806 24 12 24s9.627-3.317 11.294-7.944a1 1 0 0 0 .038-.108M12 22.28c-.457 0-1.194-.827-1.81-2.675a19 19 0 0 1-.708-3.031h5.036a19 19 0 0 1-.708 3.031c-.616 1.848-1.353 2.675-1.81 2.675m-2.727-7.427A32 32 0 0 1 9.147 12c0-.98.043-1.936.126-2.853h5.454c.083.917.126 1.874.126 2.853s-.043 1.936-.126 2.854zM1.72 12c0-.99.141-1.947.403-2.853h5.425a33.5 33.5 0 0 0 0 5.707H2.123A10.3 10.3 0 0 1 1.72 12M12 1.72c.457 0 1.194.827 1.81 2.675.297.892.535 1.917.708 3.032H9.482c.173-1.115.411-2.14.708-3.032.616-1.848 1.353-2.675 1.81-2.675m4.452 7.427h5.425c.262.906.403 1.864.403 2.853s-.141 1.947-.403 2.854h-5.425a33.5 33.5 0 0 0 0-5.707m4.752-1.72h-4.95c-.305-2.11-.83-4.003-1.566-5.35 2.855.775 5.22 2.75 6.516 5.35M9.313 2.077c-.736 1.347-1.261 3.24-1.567 5.35h-4.95a10.33 10.33 0 0 1 6.517-5.35M2.795 16.574h4.95c.306 2.11.83 4.002 1.567 5.349a10.33 10.33 0 0 1-6.517-5.35m11.893 5.349c.736-1.347 1.261-3.24 1.567-5.35h4.95a10.33 10.33 0 0 1-6.517 5.35"></path></svg></a><a href="https://github.com/yahoo/elide" target="_blank" rel="noreferrer"><svg xmlns="http://www.w3.org/2000/svg" width="30" fill="currentColor" viewBox="0 0 30 30"><path fill-rule="evenodd" d="M15.1.413a14.81 14.81 0 0 0-4.684 28.862c.742.138 1.012-.32 1.012-.712 0-.35-.013-1.283-.02-2.518-4.12.893-4.99-1.987-4.99-1.987-.675-1.71-1.643-2.165-1.643-2.165-1.345-.918.1-.9.1-.9 1.488.105 2.27 1.525 2.27 1.525 1.32 2.265 3.466 1.61 4.31 1.23.133-.955.515-1.608.94-1.978-3.29-.375-6.747-1.645-6.747-7.32 0-1.615.577-2.937 1.525-3.975-.15-.372-.66-1.88.145-3.917 0 0 1.242-.4 4.075 1.517a14.3 14.3 0 0 1 3.705-.5 14.2 14.2 0 0 1 3.707.5c2.826-1.915 4.068-1.517 4.068-1.517.807 2.037.3 3.545.15 3.92.95 1.035 1.52 2.357 1.52 3.975 0 5.687-3.462 6.94-6.76 7.305.53.457 1.005 1.36 1.005 2.742 0 1.98-.02 3.575-.02 4.063 0 .395.267.857 1.02.712A14.816 14.816 0 0 0 15.101.413" clip-rule="evenodd"></path></svg></a></div><div class="gap-2 flex roboto-mono"><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=services">Services</a></div><span class="[&_a]:text-primary grow line-clamp-4 lg:text-lg">A Java library that can expose a JPA annotated data model as a GraphQL service over any relational database.</span><div class="flex items-center gap-5 max-md:text-xs [&>:not(:last-child)]:border-r [&>:not(:last-child)]:border-gray-500 [&>:not(:last-child)]:pr-5"><span>Last release <!-- -->2 months ago</span><span class="flex items-center gap-1"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="19" fill="currentColor" class="text-primary"><path d="m10 .5 2.997 5.874L19.51 7.41l-4.66 4.666 1.027 6.514L10 15.6l-5.878 2.99 1.028-6.514L.489 7.41l6.513-1.036z"></path></svg>1k</span><span>Other</span></div></div></div><div class="border border-zinc-200 dark:border-[#414141] p-8 lg:p-12 bg-white dark:bg-neutral-800 rounded-none !p-0 h-max min-w-0"><div class="p-8 lg:p-12 flex flex-col gap-7 grow"><div class="flex items-center gap-6 [&_a:hover]:text-primary [&_a]:transition-colors"><span class="text-3xl font-extrabold grow break-all">Caliban</span><a href="https://ghostdogpr.github.io/caliban/" target="_blank" rel="noreferrer"><svg xmlns="http://www.w3.org/2000/svg" fill="currentColor" viewBox="0 0 24 24"><path d="M23.332 15.948C23.764 14.711 24 13.383 24 12a12 12 0 0 0-.706-4.056C21.627 3.317 17.194 0 12 0S2.373 3.317.706 7.944A11.949 11.949 0 0 0 0 12a12 12 0 0 0 .706 4.056C2.373 20.683 6.806 24 12 24s9.627-3.317 11.294-7.944a1 1 0 0 0 .038-.108M12 22.28c-.457 0-1.194-.827-1.81-2.675a19 19 0 0 1-.708-3.031h5.036a19 19 0 0 1-.708 3.031c-.616 1.848-1.353 2.675-1.81 2.675m-2.727-7.427A32 32 0 0 1 9.147 12c0-.98.043-1.936.126-2.853h5.454c.083.917.126 1.874.126 2.853s-.043 1.936-.126 2.854zM1.72 12c0-.99.141-1.947.403-2.853h5.425a33.5 33.5 0 0 0 0 5.707H2.123A10.3 10.3 0 0 1 1.72 12M12 1.72c.457 0 1.194.827 1.81 2.675.297.892.535 1.917.708 3.032H9.482c.173-1.115.411-2.14.708-3.032.616-1.848 1.353-2.675 1.81-2.675m4.452 7.427h5.425c.262.906.403 1.864.403 2.853s-.141 1.947-.403 2.854h-5.425a33.5 33.5 0 0 0 0-5.707m4.752-1.72h-4.95c-.305-2.11-.83-4.003-1.566-5.35 2.855.775 5.22 2.75 6.516 5.35M9.313 2.077c-.736 1.347-1.261 3.24-1.567 5.35h-4.95a10.33 10.33 0 0 1 6.517-5.35M2.795 16.574h4.95c.306 2.11.83 4.002 1.567 5.349a10.33 10.33 0 0 1-6.517-5.35m11.893 5.349c.736-1.347 1.261-3.24 1.567-5.35h4.95a10.33 10.33 0 0 1-6.517 5.35"></path></svg></a><a href="https://github.com/ghostdogpr/caliban" target="_blank" rel="noreferrer"><svg xmlns="http://www.w3.org/2000/svg" width="30" fill="currentColor" viewBox="0 0 30 30"><path fill-rule="evenodd" d="M15.1.413a14.81 14.81 0 0 0-4.684 28.862c.742.138 1.012-.32 1.012-.712 0-.35-.013-1.283-.02-2.518-4.12.893-4.99-1.987-4.99-1.987-.675-1.71-1.643-2.165-1.643-2.165-1.345-.918.1-.9.1-.9 1.488.105 2.27 1.525 2.27 1.525 1.32 2.265 3.466 1.61 4.31 1.23.133-.955.515-1.608.94-1.978-3.29-.375-6.747-1.645-6.747-7.32 0-1.615.577-2.937 1.525-3.975-.15-.372-.66-1.88.145-3.917 0 0 1.242-.4 4.075 1.517a14.3 14.3 0 0 1 3.705-.5 14.2 14.2 0 0 1 3.707.5c2.826-1.915 4.068-1.517 4.068-1.517.807 2.037.3 3.545.15 3.92.95 1.035 1.52 2.357 1.52 3.975 0 5.687-3.462 6.94-6.76 7.305.53.457 1.005 1.36 1.005 2.742 0 1.98-.02 3.575-.02 4.063 0 .395.267.857 1.02.712A14.816 14.816 0 0 0 15.101.413" clip-rule="evenodd"></path></svg></a></div><div class="gap-2 flex roboto-mono"><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=scala">Scala</a><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=client">Client</a></div><span class="[&_a]:text-primary grow line-clamp-4 lg:text-lg">Caliban is a functional library for building GraphQL servers and clients in Scala. It offers with client code generation and type-safe queries.</span><div class="flex items-center gap-5 max-md:text-xs [&>:not(:last-child)]:border-r [&>:not(:last-child)]:border-gray-500 [&>:not(:last-child)]:pr-5"><span>Last release <!-- -->2 months ago</span><span class="flex items-center gap-1"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="19" fill="currentColor" class="text-primary"><path d="m10 .5 2.997 5.874L19.51 7.41l-4.66 4.666 1.027 6.514L10 15.6l-5.878 2.99 1.028-6.514L.489 7.41l6.513-1.036z"></path></svg>1k</span><span>Apache License 2.0</span></div></div><details class="bg-[#f0f0f0] dark:bg-[#2f2f2f]"><summary class="flex justify-between font-bold text-primary px-8 lg:px-12 py-5 dark:[[open]>&]:shadow-[-5px_10px_30px_20px_#1b1b1b4d] [[open]>&]:shadow-[0_6px_21px_0_#1b1b1b33] cursor-pointer">README<svg xmlns="http://www.w3.org/2000/svg" fill="currentColor" viewBox="0 0 15 15" class="size-5 -rotate-90 [[open]>*>&]:rotate-90 transition-transform"><path fill-rule="evenodd" d="M8.842 3.135a.5.5 0 0 1 .023.707L5.435 7.5l3.43 3.658a.5.5 0 0 1-.73.684l-3.75-4a.5.5 0 0 1 0-.684l3.75-4a.5.5 0 0 1 .707-.023" clip-rule="evenodd"></path></svg></summary><div class="px-8 lg:px-12 py-5"><p class="[&:not(:first-child)]:_mt-6 _leading-7">An example of defining a GraphQL query and running it with <code class="nextra-code" dir="ltr">caliban</code>:</p> <div class="nextra-code _relative [&:not(:first-child)]:_mt-6"><pre class="_overflow-x-auto _subpixel-antialiased _text-[.9em] _bg-white dark:_bg-black _py-4 _ring-1 _ring-inset _ring-gray-300 dark:_ring-neutral-700 contrast-more:_ring-gray-900 contrast-more:dark:_ring-gray-50 contrast-more:_contrast-150 _rounded-md" tabindex="0"><code class="nextra-code" dir="ltr"><span><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D">// define your query using Scala</span></span> <span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">val</span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70"> query</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">:</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> SelectionBuilder</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">[</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">RootQuery</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">, </span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">List</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">[</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">CharacterView</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">]] </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span></span> <span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> Query</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">.characters {</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> (</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">Character</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">.name </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">~</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> Character</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">.nicknames </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">~</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> Character</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">.origin)</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> .mapN(</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">CharacterView</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">)</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> }</span></span> <span> </span> <span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">import</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> sttp</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">client3</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">_</span></span> <span><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D">// run the query and get the result already parsed into a case class</span></span> <span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">val</span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70"> result</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> =</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> query.toRequest(</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">uri</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">"http://someUrl"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">).send(</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">HttpClientSyncBackend</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">()).body</span></span></code></pre><div class="_opacity-0 _transition [div:hover>&]:_opacity-100 focus-within:_opacity-100 _flex _gap-1 _absolute _right-4 _top-2"><button class="_transition _rounded-md _p-1.5 _border _border-gray-300 dark:_border-neutral-700 contrast-more:_border-gray-900 contrast-more:dark:_border-gray-50 md:_hidden" title="Toggle word wrap"><svg viewBox="0 0 24 24" width="24" height="24" class="_h-4 _w-auto"><path fill="currentColor" d="M4 19h6v-2H4v2zM20 5H4v2h16V5zm-3 6H4v2h13.25c1.1 0 2 .9 2 2s-.9 2-2 2H15v-2l-3 3l3 3v-2h2c2.21 0 4-1.79 4-4s-1.79-4-4-4z"></path></svg></button></div></div></div></details></div><div class="border border-zinc-200 dark:border-[#414141] p-8 lg:p-12 bg-white dark:bg-neutral-800 rounded-none !p-0 h-max min-w-0"><div class="p-8 lg:p-12 flex flex-col gap-7 grow"><div class="flex items-center gap-6 [&_a:hover]:text-primary [&_a]:transition-colors"><span class="text-3xl font-extrabold grow break-all">Caliban</span><a href="https://ghostdogpr.github.io/caliban/" target="_blank" rel="noreferrer"><svg xmlns="http://www.w3.org/2000/svg" fill="currentColor" viewBox="0 0 24 24"><path d="M23.332 15.948C23.764 14.711 24 13.383 24 12a12 12 0 0 0-.706-4.056C21.627 3.317 17.194 0 12 0S2.373 3.317.706 7.944A11.949 11.949 0 0 0 0 12a12 12 0 0 0 .706 4.056C2.373 20.683 6.806 24 12 24s9.627-3.317 11.294-7.944a1 1 0 0 0 .038-.108M12 22.28c-.457 0-1.194-.827-1.81-2.675a19 19 0 0 1-.708-3.031h5.036a19 19 0 0 1-.708 3.031c-.616 1.848-1.353 2.675-1.81 2.675m-2.727-7.427A32 32 0 0 1 9.147 12c0-.98.043-1.936.126-2.853h5.454c.083.917.126 1.874.126 2.853s-.043 1.936-.126 2.854zM1.72 12c0-.99.141-1.947.403-2.853h5.425a33.5 33.5 0 0 0 0 5.707H2.123A10.3 10.3 0 0 1 1.72 12M12 1.72c.457 0 1.194.827 1.81 2.675.297.892.535 1.917.708 3.032H9.482c.173-1.115.411-2.14.708-3.032.616-1.848 1.353-2.675 1.81-2.675m4.452 7.427h5.425c.262.906.403 1.864.403 2.853s-.141 1.947-.403 2.854h-5.425a33.5 33.5 0 0 0 0-5.707m4.752-1.72h-4.95c-.305-2.11-.83-4.003-1.566-5.35 2.855.775 5.22 2.75 6.516 5.35M9.313 2.077c-.736 1.347-1.261 3.24-1.567 5.35h-4.95a10.33 10.33 0 0 1 6.517-5.35M2.795 16.574h4.95c.306 2.11.83 4.002 1.567 5.349a10.33 10.33 0 0 1-6.517-5.35m11.893 5.349c.736-1.347 1.261-3.24 1.567-5.35h4.95a10.33 10.33 0 0 1-6.517 5.35"></path></svg></a><a href="https://github.com/ghostdogpr/caliban" target="_blank" rel="noreferrer"><svg xmlns="http://www.w3.org/2000/svg" width="30" fill="currentColor" viewBox="0 0 30 30"><path fill-rule="evenodd" d="M15.1.413a14.81 14.81 0 0 0-4.684 28.862c.742.138 1.012-.32 1.012-.712 0-.35-.013-1.283-.02-2.518-4.12.893-4.99-1.987-4.99-1.987-.675-1.71-1.643-2.165-1.643-2.165-1.345-.918.1-.9.1-.9 1.488.105 2.27 1.525 2.27 1.525 1.32 2.265 3.466 1.61 4.31 1.23.133-.955.515-1.608.94-1.978-3.29-.375-6.747-1.645-6.747-7.32 0-1.615.577-2.937 1.525-3.975-.15-.372-.66-1.88.145-3.917 0 0 1.242-.4 4.075 1.517a14.3 14.3 0 0 1 3.705-.5 14.2 14.2 0 0 1 3.707.5c2.826-1.915 4.068-1.517 4.068-1.517.807 2.037.3 3.545.15 3.92.95 1.035 1.52 2.357 1.52 3.975 0 5.687-3.462 6.94-6.76 7.305.53.457 1.005 1.36 1.005 2.742 0 1.98-.02 3.575-.02 4.063 0 .395.267.857 1.02.712A14.816 14.816 0 0 0 15.101.413" clip-rule="evenodd"></path></svg></a></div><div class="gap-2 flex roboto-mono"><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=scala">Scala</a><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=server">Server</a></div><span class="[&_a]:text-primary grow line-clamp-4 lg:text-lg">Caliban is a functional library for building GraphQL servers and clients in Scala. It offers minimal boilerplate and excellent interoperability.</span><div class="flex items-center gap-5 max-md:text-xs [&>:not(:last-child)]:border-r [&>:not(:last-child)]:border-gray-500 [&>:not(:last-child)]:pr-5"><span>Last release <!-- -->2 months ago</span><span class="flex items-center gap-1"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="19" fill="currentColor" class="text-primary"><path d="m10 .5 2.997 5.874L19.51 7.41l-4.66 4.666 1.027 6.514L10 15.6l-5.878 2.99 1.028-6.514L.489 7.41l6.513-1.036z"></path></svg>1k</span><span>Apache License 2.0</span></div></div><details class="bg-[#f0f0f0] dark:bg-[#2f2f2f]"><summary class="flex justify-between font-bold text-primary px-8 lg:px-12 py-5 dark:[[open]>&]:shadow-[-5px_10px_30px_20px_#1b1b1b4d] [[open]>&]:shadow-[0_6px_21px_0_#1b1b1b33] cursor-pointer">README<svg xmlns="http://www.w3.org/2000/svg" fill="currentColor" viewBox="0 0 15 15" class="size-5 -rotate-90 [[open]>*>&]:rotate-90 transition-transform"><path fill-rule="evenodd" d="M8.842 3.135a.5.5 0 0 1 .023.707L5.435 7.5l3.43 3.658a.5.5 0 0 1-.73.684l-3.75-4a.5.5 0 0 1 0-.684l3.75-4a.5.5 0 0 1 .707-.023" clip-rule="evenodd"></path></svg></summary><div class="px-8 lg:px-12 py-5"><p class="[&:not(:first-child)]:_mt-6 _leading-7">An example of a simple GraphQL schema and query with <code class="nextra-code" dir="ltr">caliban</code>:</p> <div class="nextra-code _relative [&:not(:first-child)]:_mt-6"><pre class="_overflow-x-auto _subpixel-antialiased _text-[.9em] _bg-white dark:_bg-black _py-4 _ring-1 _ring-inset _ring-gray-300 dark:_ring-neutral-700 contrast-more:_ring-gray-900 contrast-more:dark:_ring-gray-50 contrast-more:_contrast-150 _rounded-md" tabindex="0"><code class="nextra-code" dir="ltr"><span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">import</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> caliban</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">_</span></span> <span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">import</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> caliban</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">schema</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">Schema</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">auto</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">_</span></span> <span> </span> <span><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D">// schema</span></span> <span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">case</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> class</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> Query</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(</span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70">hello</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">: </span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">String</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">)</span></span> <span> </span> <span><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D">// resolver</span></span> <span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">val</span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70"> resolver</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> =</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> RootResolver</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">Query</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">"Hello world!"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">))</span></span> <span> </span> <span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">val</span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70"> api</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> =</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> graphQL(resolver)</span></span> <span> </span> <span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">for</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> {</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> interpreter </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"><-</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> api.interpreter</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> result </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"><-</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> interpreter.execute(</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">"{ hello }"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">)</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">} </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">yield</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> result</span></span></code></pre><div class="_opacity-0 _transition [div:hover>&]:_opacity-100 focus-within:_opacity-100 _flex _gap-1 _absolute _right-4 _top-2"><button class="_transition _rounded-md _p-1.5 _border _border-gray-300 dark:_border-neutral-700 contrast-more:_border-gray-900 contrast-more:dark:_border-gray-50 md:_hidden" title="Toggle word wrap"><svg viewBox="0 0 24 24" width="24" height="24" class="_h-4 _w-auto"><path fill="currentColor" d="M4 19h6v-2H4v2zM20 5H4v2h16V5zm-3 6H4v2h13.25c1.1 0 2 .9 2 2s-.9 2-2 2H15v-2l-3 3l3 3v-2h2c2.21 0 4-1.79 4-4s-1.79-4-4-4z"></path></svg></button></div></div></div></details></div><div class="border border-zinc-200 dark:border-[#414141] p-8 lg:p-12 bg-white dark:bg-neutral-800 rounded-none !p-0 h-max min-w-0"><div class="p-8 lg:p-12 flex flex-col gap-7 grow"><div class="flex items-center gap-6 [&_a:hover]:text-primary [&_a]:transition-colors"><span class="text-3xl font-extrabold grow break-all">machinebox/graphql</span><a href="https://github.com/machinebox/graphql" target="_blank" rel="noreferrer"><svg xmlns="http://www.w3.org/2000/svg" width="30" fill="currentColor" viewBox="0 0 30 30"><path fill-rule="evenodd" d="M15.1.413a14.81 14.81 0 0 0-4.684 28.862c.742.138 1.012-.32 1.012-.712 0-.35-.013-1.283-.02-2.518-4.12.893-4.99-1.987-4.99-1.987-.675-1.71-1.643-2.165-1.643-2.165-1.345-.918.1-.9.1-.9 1.488.105 2.27 1.525 2.27 1.525 1.32 2.265 3.466 1.61 4.31 1.23.133-.955.515-1.608.94-1.978-3.29-.375-6.747-1.645-6.747-7.32 0-1.615.577-2.937 1.525-3.975-.15-.372-.66-1.88.145-3.917 0 0 1.242-.4 4.075 1.517a14.3 14.3 0 0 1 3.705-.5 14.2 14.2 0 0 1 3.707.5c2.826-1.915 4.068-1.517 4.068-1.517.807 2.037.3 3.545.15 3.92.95 1.035 1.52 2.357 1.52 3.975 0 5.687-3.462 6.94-6.76 7.305.53.457 1.005 1.36 1.005 2.742 0 1.98-.02 3.575-.02 4.063 0 .395.267.857 1.02.712A14.816 14.816 0 0 0 15.101.413" clip-rule="evenodd"></path></svg></a></div><div class="gap-2 flex roboto-mono"><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=go">Go</a><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=client">Client</a></div><span class="[&_a]:text-primary grow line-clamp-4 lg:text-lg">An elegant low-level HTTP client for GraphQL.</span><div class="flex items-center gap-5 max-md:text-xs [&>:not(:last-child)]:border-r [&>:not(:last-child)]:border-gray-500 [&>:not(:last-child)]:pr-5"><span>Last release <!-- -->6 years ago</span><span class="flex items-center gap-1"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="19" fill="currentColor" class="text-primary"><path d="m10 .5 2.997 5.874L19.51 7.41l-4.66 4.666 1.027 6.514L10 15.6l-5.878 2.99 1.028-6.514L.489 7.41l6.513-1.036z"></path></svg>1k</span><span>Apache License 2.0</span></div></div></div><div class="border border-zinc-200 dark:border-[#414141] p-8 lg:p-12 bg-white dark:bg-neutral-800 rounded-none !p-0 h-max min-w-0"><div class="p-8 lg:p-12 flex flex-col gap-7 grow"><div class="flex items-center gap-6 [&_a:hover]:text-primary [&_a]:transition-colors"><span class="text-3xl font-extrabold grow break-all">GQty</span><a href="http://gqty.dev/" target="_blank" rel="noreferrer"><svg xmlns="http://www.w3.org/2000/svg" fill="currentColor" viewBox="0 0 24 24"><path d="M23.332 15.948C23.764 14.711 24 13.383 24 12a12 12 0 0 0-.706-4.056C21.627 3.317 17.194 0 12 0S2.373 3.317.706 7.944A11.949 11.949 0 0 0 0 12a12 12 0 0 0 .706 4.056C2.373 20.683 6.806 24 12 24s9.627-3.317 11.294-7.944a1 1 0 0 0 .038-.108M12 22.28c-.457 0-1.194-.827-1.81-2.675a19 19 0 0 1-.708-3.031h5.036a19 19 0 0 1-.708 3.031c-.616 1.848-1.353 2.675-1.81 2.675m-2.727-7.427A32 32 0 0 1 9.147 12c0-.98.043-1.936.126-2.853h5.454c.083.917.126 1.874.126 2.853s-.043 1.936-.126 2.854zM1.72 12c0-.99.141-1.947.403-2.853h5.425a33.5 33.5 0 0 0 0 5.707H2.123A10.3 10.3 0 0 1 1.72 12M12 1.72c.457 0 1.194.827 1.81 2.675.297.892.535 1.917.708 3.032H9.482c.173-1.115.411-2.14.708-3.032.616-1.848 1.353-2.675 1.81-2.675m4.452 7.427h5.425c.262.906.403 1.864.403 2.853s-.141 1.947-.403 2.854h-5.425a33.5 33.5 0 0 0 0-5.707m4.752-1.72h-4.95c-.305-2.11-.83-4.003-1.566-5.35 2.855.775 5.22 2.75 6.516 5.35M9.313 2.077c-.736 1.347-1.261 3.24-1.567 5.35h-4.95a10.33 10.33 0 0 1 6.517-5.35M2.795 16.574h4.95c.306 2.11.83 4.002 1.567 5.349a10.33 10.33 0 0 1-6.517-5.35m11.893 5.349c.736-1.347 1.261-3.24 1.567-5.35h4.95a10.33 10.33 0 0 1-6.517 5.35"></path></svg></a><a href="https://github.com/gqty-dev/gqty" target="_blank" rel="noreferrer"><svg xmlns="http://www.w3.org/2000/svg" width="30" fill="currentColor" viewBox="0 0 30 30"><path fill-rule="evenodd" d="M15.1.413a14.81 14.81 0 0 0-4.684 28.862c.742.138 1.012-.32 1.012-.712 0-.35-.013-1.283-.02-2.518-4.12.893-4.99-1.987-4.99-1.987-.675-1.71-1.643-2.165-1.643-2.165-1.345-.918.1-.9.1-.9 1.488.105 2.27 1.525 2.27 1.525 1.32 2.265 3.466 1.61 4.31 1.23.133-.955.515-1.608.94-1.978-3.29-.375-6.747-1.645-6.747-7.32 0-1.615.577-2.937 1.525-3.975-.15-.372-.66-1.88.145-3.917 0 0 1.242-.4 4.075 1.517a14.3 14.3 0 0 1 3.705-.5 14.2 14.2 0 0 1 3.707.5c2.826-1.915 4.068-1.517 4.068-1.517.807 2.037.3 3.545.15 3.92.95 1.035 1.52 2.357 1.52 3.975 0 5.687-3.462 6.94-6.76 7.305.53.457 1.005 1.36 1.005 2.742 0 1.98-.02 3.575-.02 4.063 0 .395.267.857 1.02.712A14.816 14.816 0 0 0 15.101.413" clip-rule="evenodd"></path></svg></a><a href="https://npmjs.com/package/gqty" target="_blank" rel="noreferrer"><svg xmlns="http://www.w3.org/2000/svg" width="30" height="30" fill="currentColor"><path fill-rule="evenodd" d="M0 0v30h30V0zm24.375 5.625H5.625v18.75H15v-15h5.625v15h3.75z" clip-rule="evenodd"></path></svg></a></div><div class="gap-2 flex roboto-mono"><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=javascript">JavaScript</a><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=client">Client</a></div><span class="[&_a]:text-primary grow line-clamp-4 lg:text-lg">The No-GraphQL client for TypeScript.</span><div class="flex items-center gap-5 max-md:text-xs [&>:not(:last-child)]:border-r [&>:not(:last-child)]:border-gray-500 [&>:not(:last-child)]:pr-5"><span>Last release <!-- -->1 week ago</span><span class="flex items-center gap-1"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="19" fill="currentColor" class="text-primary"><path d="m10 .5 2.997 5.874L19.51 7.41l-4.66 4.666 1.027 6.514L10 15.6l-5.878 2.99 1.028-6.514L.489 7.41l6.513-1.036z"></path></svg>1k</span><span>MIT License</span></div></div><details class="bg-[#f0f0f0] dark:bg-[#2f2f2f]"><summary class="flex justify-between font-bold text-primary px-8 lg:px-12 py-5 dark:[[open]>&]:shadow-[-5px_10px_30px_20px_#1b1b1b4d] [[open]>&]:shadow-[0_6px_21px_0_#1b1b1b33] cursor-pointer">README<svg xmlns="http://www.w3.org/2000/svg" fill="currentColor" viewBox="0 0 15 15" class="size-5 -rotate-90 [[open]>*>&]:rotate-90 transition-transform"><path fill-rule="evenodd" d="M8.842 3.135a.5.5 0 0 1 .023.707L5.435 7.5l3.43 3.658a.5.5 0 0 1-.73.684l-3.75-4a.5.5 0 0 1 0-.684l3.75-4a.5.5 0 0 1 .707-.023" clip-rule="evenodd"></path></svg></summary><div class="px-8 lg:px-12 py-5"><p class="[&:not(:first-child)]:_mt-6 _leading-7">GQty is a query builder, a query fetcher and a cache manager solution all-in-one.</p> <p class="[&:not(:first-child)]:_mt-6 _leading-7">You interact with your GraphQL endpoint via Proxy objects. Under the hood, GQty captures what is being read, checks cache validity, fetch missing contents and then updates the cache for you.</p> <p class="[&:not(:first-child)]:_mt-6 _leading-7">Start using GQty by simply running our interactive codegen:</p> <div class="nextra-code _relative [&:not(:first-child)]:_mt-6"><pre class="_overflow-x-auto _subpixel-antialiased _text-[.9em] _bg-white dark:_bg-black _py-4 _ring-1 _ring-inset _ring-gray-300 dark:_ring-neutral-700 contrast-more:_ring-gray-900 contrast-more:dark:_ring-gray-50 contrast-more:_contrast-150 _rounded-md" tabindex="0"><code class="nextra-code" dir="ltr"><span><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D"># npm</span></span> <span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">npx</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> @gqty/cli</span></span> <span> </span> <span><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D"># yarn</span></span> <span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">yarn</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> dlx</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> @gqty/cli</span></span> <span> </span> <span><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D"># pnpm</span></span> <span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">pnpm</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> dlx</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> @gqty/cli</span></span></code></pre><div class="_opacity-0 _transition [div:hover>&]:_opacity-100 focus-within:_opacity-100 _flex _gap-1 _absolute _right-4 _top-2"><button class="_transition _rounded-md _p-1.5 _border _border-gray-300 dark:_border-neutral-700 contrast-more:_border-gray-900 contrast-more:dark:_border-gray-50 md:_hidden" title="Toggle word wrap"><svg viewBox="0 0 24 24" width="24" height="24" class="_h-4 _w-auto"><path fill="currentColor" d="M4 19h6v-2H4v2zM20 5H4v2h16V5zm-3 6H4v2h13.25c1.1 0 2 .9 2 2s-.9 2-2 2H15v-2l-3 3l3 3v-2h2c2.21 0 4-1.79 4-4s-1.79-4-4-4z"></path></svg></button></div></div> <p class="[&:not(:first-child)]:_mt-6 _leading-7">GQty also provides framework specific integrations such as <code class="nextra-code" dir="ltr">@gqty/react</code> and <code class="nextra-code" dir="ltr">@gqty/solid</code>, which can be installed via our CLI.</p></div></details></div><div class="border border-zinc-200 dark:border-[#414141] p-8 lg:p-12 bg-white dark:bg-neutral-800 rounded-none !p-0 h-max min-w-0"><div class="p-8 lg:p-12 flex flex-col gap-7 grow"><div class="flex items-center gap-6 [&_a:hover]:text-primary [&_a]:transition-colors"><span class="text-3xl font-extrabold grow break-all">Agoo</span><a href="https://github.com/ohler55/agoo" target="_blank" rel="noreferrer"><svg xmlns="http://www.w3.org/2000/svg" width="30" fill="currentColor" viewBox="0 0 30 30"><path fill-rule="evenodd" d="M15.1.413a14.81 14.81 0 0 0-4.684 28.862c.742.138 1.012-.32 1.012-.712 0-.35-.013-1.283-.02-2.518-4.12.893-4.99-1.987-4.99-1.987-.675-1.71-1.643-2.165-1.643-2.165-1.345-.918.1-.9.1-.9 1.488.105 2.27 1.525 2.27 1.525 1.32 2.265 3.466 1.61 4.31 1.23.133-.955.515-1.608.94-1.978-3.29-.375-6.747-1.645-6.747-7.32 0-1.615.577-2.937 1.525-3.975-.15-.372-.66-1.88.145-3.917 0 0 1.242-.4 4.075 1.517a14.3 14.3 0 0 1 3.705-.5 14.2 14.2 0 0 1 3.707.5c2.826-1.915 4.068-1.517 4.068-1.517.807 2.037.3 3.545.15 3.92.95 1.035 1.52 2.357 1.52 3.975 0 5.687-3.462 6.94-6.76 7.305.53.457 1.005 1.36 1.005 2.742 0 1.98-.02 3.575-.02 4.063 0 .395.267.857 1.02.712A14.816 14.816 0 0 0 15.101.413" clip-rule="evenodd"></path></svg></a><a href="https://rubygems.org/gems/agoo" target="_blank" rel="noreferrer"><svg xmlns="http://www.w3.org/2000/svg" width="28" height="30" fill="currentColor"><path d="m8.752 9.976-.016-.017-3.698 3.698 8.977 8.96 3.698-3.68 5.28-5.28-3.698-3.697v-.017H8.735z"></path><path d="M13.982.1.908 7.595v14.989l13.074 7.494 13.074-7.494V7.594zM24.558 21.15l-10.576 6.096-10.576-6.096V8.994l10.576-6.096 10.576 6.096z"></path></svg></a></div><div class="gap-2 flex roboto-mono"><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=ruby">Ruby</a><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=server">Server</a></div><span class="[&_a]:text-primary grow line-clamp-4 lg:text-lg">A high performance web server with support for GraphQL. Agoo strives for a simple, easy to use API for GraphQL.</span><div class="flex items-center gap-5 max-md:text-xs [&>:not(:last-child)]:border-r [&>:not(:last-child)]:border-gray-500 [&>:not(:last-child)]:pr-5"><span class="flex items-center gap-1"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="19" fill="currentColor" class="text-primary"><path d="m10 .5 2.997 5.874L19.51 7.41l-4.66 4.666 1.027 6.514L10 15.6l-5.878 2.99 1.028-6.514L.489 7.41l6.513-1.036z"></path></svg>1k</span><span>MIT License</span></div></div><details class="bg-[#f0f0f0] dark:bg-[#2f2f2f]"><summary class="flex justify-between font-bold text-primary px-8 lg:px-12 py-5 dark:[[open]>&]:shadow-[-5px_10px_30px_20px_#1b1b1b4d] [[open]>&]:shadow-[0_6px_21px_0_#1b1b1b33] cursor-pointer">README<svg xmlns="http://www.w3.org/2000/svg" fill="currentColor" viewBox="0 0 15 15" class="size-5 -rotate-90 [[open]>*>&]:rotate-90 transition-transform"><path fill-rule="evenodd" d="M8.842 3.135a.5.5 0 0 1 .023.707L5.435 7.5l3.43 3.658a.5.5 0 0 1-.73.684l-3.75-4a.5.5 0 0 1 0-.684l3.75-4a.5.5 0 0 1 .707-.023" clip-rule="evenodd"></path></svg></summary><div class="px-8 lg:px-12 py-5"><div class="nextra-code _relative [&:not(:first-child)]:_mt-6"><pre class="_overflow-x-auto _subpixel-antialiased _text-[.9em] _bg-white dark:_bg-black _py-4 _ring-1 _ring-inset _ring-gray-300 dark:_ring-neutral-700 contrast-more:_ring-gray-900 contrast-more:dark:_ring-gray-50 contrast-more:_contrast-150 _rounded-md" tabindex="0"><code class="nextra-code" dir="ltr"><span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">require</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> 'agoo'</span></span> <span> </span> <span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">class</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> Query</span></span> <span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> def</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> hello</span></span> <span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> 'hello'</span></span> <span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> end</span></span> <span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">end</span></span> <span> </span> <span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">class</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> Schema</span></span> <span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> attr_reader</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> :query</span></span> <span> </span> <span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> def</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> initialize</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> @query </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> Query</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">.</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">new</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">()</span></span> <span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> end</span></span> <span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">end</span></span> <span> </span> <span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">Agoo</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">::</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">Server</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">.init(</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">6464</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">, </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">'root'</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">, </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">thread_count:</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> 1</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">, </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">graphql:</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> '/graphql'</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">)</span></span> <span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">Agoo</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">::</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">Server</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">.start()</span></span> <span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">Agoo</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">::</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">GraphQL</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">.schema(</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">Schema</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">.</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">new</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">) {</span></span> <span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> Agoo</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">::</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">GraphQL</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">.</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">load</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">%^type Query { hello: String }^</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">)</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">}</span></span> <span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">sleep</span></span> <span> </span> <span><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D"># To run this GraphQL example type the following then go to a browser and enter</span></span> <span><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D"># a URL of localhost:6464/graphql?query={hello}</span></span> <span><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D">#</span></span> <span><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D"># ruby hello.rb</span></span></code></pre><div class="_opacity-0 _transition [div:hover>&]:_opacity-100 focus-within:_opacity-100 _flex _gap-1 _absolute _right-4 _top-2"><button class="_transition _rounded-md _p-1.5 _border _border-gray-300 dark:_border-neutral-700 contrast-more:_border-gray-900 contrast-more:dark:_border-gray-50 md:_hidden" title="Toggle word wrap"><svg viewBox="0 0 24 24" width="24" height="24" class="_h-4 _w-auto"><path fill="currentColor" d="M4 19h6v-2H4v2zM20 5H4v2h16V5zm-3 6H4v2h13.25c1.1 0 2 .9 2 2s-.9 2-2 2H15v-2l-3 3l3 3v-2h2c2.21 0 4-1.79 4-4s-1.79-4-4-4z"></path></svg></button></div></div></div></details></div><div class="border border-zinc-200 dark:border-[#414141] p-8 lg:p-12 bg-white dark:bg-neutral-800 rounded-none !p-0 h-max min-w-0"><div class="p-8 lg:p-12 flex flex-col gap-7 grow"><div class="flex items-center gap-6 [&_a:hover]:text-primary [&_a]:transition-colors"><span class="text-3xl font-extrabold grow break-all">graphql-net</span><a href="https://github.com/chkimes/graphql-net" target="_blank" rel="noreferrer"><svg xmlns="http://www.w3.org/2000/svg" width="30" fill="currentColor" viewBox="0 0 30 30"><path fill-rule="evenodd" d="M15.1.413a14.81 14.81 0 0 0-4.684 28.862c.742.138 1.012-.32 1.012-.712 0-.35-.013-1.283-.02-2.518-4.12.893-4.99-1.987-4.99-1.987-.675-1.71-1.643-2.165-1.643-2.165-1.345-.918.1-.9.1-.9 1.488.105 2.27 1.525 2.27 1.525 1.32 2.265 3.466 1.61 4.31 1.23.133-.955.515-1.608.94-1.978-3.29-.375-6.747-1.645-6.747-7.32 0-1.615.577-2.937 1.525-3.975-.15-.372-.66-1.88.145-3.917 0 0 1.242-.4 4.075 1.517a14.3 14.3 0 0 1 3.705-.5 14.2 14.2 0 0 1 3.707.5c2.826-1.915 4.068-1.517 4.068-1.517.807 2.037.3 3.545.15 3.92.95 1.035 1.52 2.357 1.52 3.975 0 5.687-3.462 6.94-6.76 7.305.53.457 1.005 1.36 1.005 2.742 0 1.98-.02 3.575-.02 4.063 0 .395.267.857 1.02.712A14.816 14.816 0 0 0 15.101.413" clip-rule="evenodd"></path></svg></a></div><div class="gap-2 flex roboto-mono"><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=c-net">C# / .NET</a><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=server">Server</a></div><span class="[&_a]:text-primary grow line-clamp-4 lg:text-lg">Convert GraphQL to IQueryable</span><div class="flex items-center gap-5 max-md:text-xs [&>:not(:last-child)]:border-r [&>:not(:last-child)]:border-gray-500 [&>:not(:last-child)]:pr-5"><span class="flex items-center gap-1"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="19" fill="currentColor" class="text-primary"><path d="m10 .5 2.997 5.874L19.51 7.41l-4.66 4.666 1.027 6.514L10 15.6l-5.878 2.99 1.028-6.514L.489 7.41l6.513-1.036z"></path></svg>1k</span><span>MIT License</span></div></div></div><div class="border border-zinc-200 dark:border-[#414141] p-8 lg:p-12 bg-white dark:bg-neutral-800 rounded-none !p-0 h-max min-w-0"><div class="p-8 lg:p-12 flex flex-col gap-7 grow"><div class="flex items-center gap-6 [&_a:hover]:text-primary [&_a]:transition-colors"><span class="text-3xl font-extrabold grow break-all">Jimmer</span><a href="https://babyfish-ct.github.io/jimmer/" target="_blank" rel="noreferrer"><svg xmlns="http://www.w3.org/2000/svg" fill="currentColor" viewBox="0 0 24 24"><path d="M23.332 15.948C23.764 14.711 24 13.383 24 12a12 12 0 0 0-.706-4.056C21.627 3.317 17.194 0 12 0S2.373 3.317.706 7.944A11.949 11.949 0 0 0 0 12a12 12 0 0 0 .706 4.056C2.373 20.683 6.806 24 12 24s9.627-3.317 11.294-7.944a1 1 0 0 0 .038-.108M12 22.28c-.457 0-1.194-.827-1.81-2.675a19 19 0 0 1-.708-3.031h5.036a19 19 0 0 1-.708 3.031c-.616 1.848-1.353 2.675-1.81 2.675m-2.727-7.427A32 32 0 0 1 9.147 12c0-.98.043-1.936.126-2.853h5.454c.083.917.126 1.874.126 2.853s-.043 1.936-.126 2.854zM1.72 12c0-.99.141-1.947.403-2.853h5.425a33.5 33.5 0 0 0 0 5.707H2.123A10.3 10.3 0 0 1 1.72 12M12 1.72c.457 0 1.194.827 1.81 2.675.297.892.535 1.917.708 3.032H9.482c.173-1.115.411-2.14.708-3.032.616-1.848 1.353-2.675 1.81-2.675m4.452 7.427h5.425c.262.906.403 1.864.403 2.853s-.141 1.947-.403 2.854h-5.425a33.5 33.5 0 0 0 0-5.707m4.752-1.72h-4.95c-.305-2.11-.83-4.003-1.566-5.35 2.855.775 5.22 2.75 6.516 5.35M9.313 2.077c-.736 1.347-1.261 3.24-1.567 5.35h-4.95a10.33 10.33 0 0 1 6.517-5.35M2.795 16.574h4.95c.306 2.11.83 4.002 1.567 5.349a10.33 10.33 0 0 1-6.517-5.35m11.893 5.349c.736-1.347 1.261-3.24 1.567-5.35h4.95a10.33 10.33 0 0 1-6.517 5.35"></path></svg></a><a href="https://github.com/babyfish-ct/jimmer" target="_blank" rel="noreferrer"><svg xmlns="http://www.w3.org/2000/svg" width="30" fill="currentColor" viewBox="0 0 30 30"><path fill-rule="evenodd" d="M15.1.413a14.81 14.81 0 0 0-4.684 28.862c.742.138 1.012-.32 1.012-.712 0-.35-.013-1.283-.02-2.518-4.12.893-4.99-1.987-4.99-1.987-.675-1.71-1.643-2.165-1.643-2.165-1.345-.918.1-.9.1-.9 1.488.105 2.27 1.525 2.27 1.525 1.32 2.265 3.466 1.61 4.31 1.23.133-.955.515-1.608.94-1.978-3.29-.375-6.747-1.645-6.747-7.32 0-1.615.577-2.937 1.525-3.975-.15-.372-.66-1.88.145-3.917 0 0 1.242-.4 4.075 1.517a14.3 14.3 0 0 1 3.705-.5 14.2 14.2 0 0 1 3.707.5c2.826-1.915 4.068-1.517 4.068-1.517.807 2.037.3 3.545.15 3.92.95 1.035 1.52 2.357 1.52 3.975 0 5.687-3.462 6.94-6.76 7.305.53.457 1.005 1.36 1.005 2.742 0 1.98-.02 3.575-.02 4.063 0 .395.267.857 1.02.712A14.816 14.816 0 0 0 15.101.413" clip-rule="evenodd"></path></svg></a></div><div class="gap-2 flex roboto-mono"><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=java-kotlin-android">Java / Kotlin</a><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=server">Server</a></div><span class="[&_a]:text-primary grow line-clamp-4 lg:text-lg">A revolutionary ORM framework for both java and kotlin, it also provides specialized API for rapid development of Spring GraphQL-based applications.</span><div class="flex items-center gap-5 max-md:text-xs [&>:not(:last-child)]:border-r [&>:not(:last-child)]:border-gray-500 [&>:not(:last-child)]:pr-5"><span>Last release <!-- -->16 hours ago</span><span class="flex items-center gap-1"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="19" fill="currentColor" class="text-primary"><path d="m10 .5 2.997 5.874L19.51 7.41l-4.66 4.666 1.027 6.514L10 15.6l-5.878 2.99 1.028-6.514L.489 7.41l6.513-1.036z"></path></svg>1k</span><span>Apache License 2.0</span></div></div><details class="bg-[#f0f0f0] dark:bg-[#2f2f2f]"><summary class="flex justify-between font-bold text-primary px-8 lg:px-12 py-5 dark:[[open]>&]:shadow-[-5px_10px_30px_20px_#1b1b1b4d] [[open]>&]:shadow-[0_6px_21px_0_#1b1b1b33] cursor-pointer">README<svg xmlns="http://www.w3.org/2000/svg" fill="currentColor" viewBox="0 0 15 15" class="size-5 -rotate-90 [[open]>*>&]:rotate-90 transition-transform"><path fill-rule="evenodd" d="M8.842 3.135a.5.5 0 0 1 .023.707L5.435 7.5l3.43 3.658a.5.5 0 0 1-.73.684l-3.75-4a.5.5 0 0 1 0-.684l3.75-4a.5.5 0 0 1 .707-.023" clip-rule="evenodd"></path></svg></summary><div class="px-8 lg:px-12 py-5"><h2 class="_font-semibold _tracking-tight _text-slate-900 dark:_text-slate-100 _mt-10 _border-b _pb-1 _text-3xl _border-neutral-200/70 contrast-more:_border-neutral-400 dark:_border-primary-100/10 contrast-more:dark:_border-neutral-400">Introduce<a href="#introduce" id="introduce" class="subheading-anchor" aria-label="Permalink for this section"></a></h2> <ol class="[:is(ol,ul)_&]:_my-3 [&:not(:first-child)]:_mt-6 _list-decimal ltr:_ml-6 rtl:_mr-6"> <li class="_my-2"> <p class="[&:not(:first-child)]:_mt-6 _leading-7">SpringBoot has introduced Spring GraphQL since 2.7. Jimmer provides specialized API for rapid development of Spring GraphQL-based applications.</p> </li> <li class="_my-2"> <p class="[&:not(:first-child)]:_mt-6 _leading-7">Support two APIs: Java API & kotlin API.</p> </li> <li class="_my-2"> <p class="[&:not(:first-child)]:_mt-6 _leading-7">Powerful and GraphQL friendly caching support.</p> </li> <li class="_my-2"> <p class="[&:not(:first-child)]:_mt-6 _leading-7">Faster than other popular ORM solutions, please see the benchmark: <a href="https://babyfish-ct.github.io/jimmer/docs/benchmark/" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">https://babyfish-ct.github.io/jimmer/docs/benchmark/</a></p> </li> <li class="_my-2"> <p class="[&:not(:first-child)]:_mt-6 _leading-7">More powerful than other popular ORM solutions.</p> <p class="[&:not(:first-child)]:_mt-6 _leading-7">Three aspects should be considered in ORM design:</p> <p class="[&:not(:first-child)]:_mt-6 _leading-7">a. Query. b. Update. c. Cache.</p> <p class="[&:not(:first-child)]:_mt-6 _leading-7">Each aspect is aimed at object trees with arbitrary depth rather than simple objects. This distinctive design brings convenience unmatched by other popular solutions.</p> </li> </ol> <h2 class="_font-semibold _tracking-tight _text-slate-900 dark:_text-slate-100 _mt-10 _border-b _pb-1 _text-3xl _border-neutral-200/70 contrast-more:_border-neutral-400 dark:_border-primary-100/10 contrast-more:dark:_border-neutral-400">Links<a href="#links" id="links" class="subheading-anchor" aria-label="Permalink for this section"></a></h2> <ul class="[:is(ol,ul)_&]:_my-3 [&:not(:first-child)]:_mt-6 _list-disc ltr:_ml-6 rtl:_mr-6"> <li class="_my-2"> <p class="[&:not(:first-child)]:_mt-6 _leading-7">Youtube video: <a href="https://www.youtube.com/watch?v=Rt5zNv0YR2E" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">https://www.youtube.com/watch?v=Rt5zNv0YR2E</a></p> </li> <li class="_my-2"> <p class="[&:not(:first-child)]:_mt-6 _leading-7">Documentation: <a href="https://babyfish-ct.github.io/jimmer/" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">https://babyfish-ct.github.io/jimmer/</a></p> </li> <li class="_my-2"> <p class="[&:not(:first-child)]:_mt-6 _leading-7">Project Home: <a href="https://github.com/babyfish-ct/jimmer" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">https://github.com/babyfish-ct/jimmer</a></p> </li> <li class="_my-2"> <p class="[&:not(:first-child)]:_mt-6 _leading-7">GraphQL example for Java: <a href="https://github.com/babyfish-ct/jimmer/tree/main/example/java/jimmer-sql-graphql" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">https://github.com/babyfish-ct/jimmer/tree/main/example/java/jimmer-sql-graphql</a></p> </li> <li class="_my-2"> <p class="[&:not(:first-child)]:_mt-6 _leading-7">GraphQL example for Kotlin: <a href="https://github.com/babyfish-ct/jimmer/tree/main/example/kotlin/jimmer-sql-graphql-kt" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">https://github.com/babyfish-ct/jimmer/tree/main/example/kotlin/jimmer-sql-graphql-kt</a></p> </li> </ul></div></details></div><div class="border border-zinc-200 dark:border-[#414141] p-8 lg:p-12 bg-white dark:bg-neutral-800 rounded-none !p-0 h-max min-w-0"><div class="p-8 lg:p-12 flex flex-col gap-7 grow"><div class="flex items-center gap-6 [&_a:hover]:text-primary [&_a]:transition-colors"><span class="text-3xl font-extrabold grow break-all">graphql-elixir</span><a href="https://github.com/graphql-elixir/graphql" target="_blank" rel="noreferrer"><svg xmlns="http://www.w3.org/2000/svg" width="30" fill="currentColor" viewBox="0 0 30 30"><path fill-rule="evenodd" d="M15.1.413a14.81 14.81 0 0 0-4.684 28.862c.742.138 1.012-.32 1.012-.712 0-.35-.013-1.283-.02-2.518-4.12.893-4.99-1.987-4.99-1.987-.675-1.71-1.643-2.165-1.643-2.165-1.345-.918.1-.9.1-.9 1.488.105 2.27 1.525 2.27 1.525 1.32 2.265 3.466 1.61 4.31 1.23.133-.955.515-1.608.94-1.978-3.29-.375-6.747-1.645-6.747-7.32 0-1.615.577-2.937 1.525-3.975-.15-.372-.66-1.88.145-3.917 0 0 1.242-.4 4.075 1.517a14.3 14.3 0 0 1 3.705-.5 14.2 14.2 0 0 1 3.707.5c2.826-1.915 4.068-1.517 4.068-1.517.807 2.037.3 3.545.15 3.92.95 1.035 1.52 2.357 1.52 3.975 0 5.687-3.462 6.94-6.76 7.305.53.457 1.005 1.36 1.005 2.742 0 1.98-.02 3.575-.02 4.063 0 .395.267.857 1.02.712A14.816 14.816 0 0 0 15.101.413" clip-rule="evenodd"></path></svg></a></div><div class="gap-2 flex roboto-mono"><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=elixir">Elixir</a><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=server">Server</a></div><span class="[&_a]:text-primary grow line-clamp-4 lg:text-lg">An Elixir implementation of Facebook's GraphQL.</span><div class="flex items-center gap-5 max-md:text-xs [&>:not(:last-child)]:border-r [&>:not(:last-child)]:border-gray-500 [&>:not(:last-child)]:pr-5"><span>Last release <!-- -->8 years ago</span><span class="flex items-center gap-1"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="19" fill="currentColor" class="text-primary"><path d="m10 .5 2.997 5.874L19.51 7.41l-4.66 4.666 1.027 6.514L10 15.6l-5.878 2.99 1.028-6.514L.489 7.41l6.513-1.036z"></path></svg>1k</span><span>Other</span></div></div></div><div class="border border-zinc-200 dark:border-[#414141] p-8 lg:p-12 bg-white dark:bg-neutral-800 rounded-none !p-0 h-max min-w-0"><div class="p-8 lg:p-12 flex flex-col gap-7 grow"><div class="flex items-center gap-6 [&_a:hover]:text-primary [&_a]:transition-colors"><span class="text-3xl font-extrabold grow break-all">Tartiflette</span><a href="https://tartiflette.io" target="_blank" rel="noreferrer"><svg xmlns="http://www.w3.org/2000/svg" fill="currentColor" viewBox="0 0 24 24"><path d="M23.332 15.948C23.764 14.711 24 13.383 24 12a12 12 0 0 0-.706-4.056C21.627 3.317 17.194 0 12 0S2.373 3.317.706 7.944A11.949 11.949 0 0 0 0 12a12 12 0 0 0 .706 4.056C2.373 20.683 6.806 24 12 24s9.627-3.317 11.294-7.944a1 1 0 0 0 .038-.108M12 22.28c-.457 0-1.194-.827-1.81-2.675a19 19 0 0 1-.708-3.031h5.036a19 19 0 0 1-.708 3.031c-.616 1.848-1.353 2.675-1.81 2.675m-2.727-7.427A32 32 0 0 1 9.147 12c0-.98.043-1.936.126-2.853h5.454c.083.917.126 1.874.126 2.853s-.043 1.936-.126 2.854zM1.72 12c0-.99.141-1.947.403-2.853h5.425a33.5 33.5 0 0 0 0 5.707H2.123A10.3 10.3 0 0 1 1.72 12M12 1.72c.457 0 1.194.827 1.81 2.675.297.892.535 1.917.708 3.032H9.482c.173-1.115.411-2.14.708-3.032.616-1.848 1.353-2.675 1.81-2.675m4.452 7.427h5.425c.262.906.403 1.864.403 2.853s-.141 1.947-.403 2.854h-5.425a33.5 33.5 0 0 0 0-5.707m4.752-1.72h-4.95c-.305-2.11-.83-4.003-1.566-5.35 2.855.775 5.22 2.75 6.516 5.35M9.313 2.077c-.736 1.347-1.261 3.24-1.567 5.35h-4.95a10.33 10.33 0 0 1 6.517-5.35M2.795 16.574h4.95c.306 2.11.83 4.002 1.567 5.349a10.33 10.33 0 0 1-6.517-5.35m11.893 5.349c.736-1.347 1.261-3.24 1.567-5.35h4.95a10.33 10.33 0 0 1-6.517 5.35"></path></svg></a><a href="https://github.com/tartiflette/tartiflette" target="_blank" rel="noreferrer"><svg xmlns="http://www.w3.org/2000/svg" width="30" fill="currentColor" viewBox="0 0 30 30"><path fill-rule="evenodd" d="M15.1.413a14.81 14.81 0 0 0-4.684 28.862c.742.138 1.012-.32 1.012-.712 0-.35-.013-1.283-.02-2.518-4.12.893-4.99-1.987-4.99-1.987-.675-1.71-1.643-2.165-1.643-2.165-1.345-.918.1-.9.1-.9 1.488.105 2.27 1.525 2.27 1.525 1.32 2.265 3.466 1.61 4.31 1.23.133-.955.515-1.608.94-1.978-3.29-.375-6.747-1.645-6.747-7.32 0-1.615.577-2.937 1.525-3.975-.15-.372-.66-1.88.145-3.917 0 0 1.242-.4 4.075 1.517a14.3 14.3 0 0 1 3.705-.5 14.2 14.2 0 0 1 3.707.5c2.826-1.915 4.068-1.517 4.068-1.517.807 2.037.3 3.545.15 3.92.95 1.035 1.52 2.357 1.52 3.975 0 5.687-3.462 6.94-6.76 7.305.53.457 1.005 1.36 1.005 2.742 0 1.98-.02 3.575-.02 4.063 0 .395.267.857 1.02.712A14.816 14.816 0 0 0 15.101.413" clip-rule="evenodd"></path></svg></a></div><div class="gap-2 flex roboto-mono"><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=python">Python</a><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=server">Server</a></div><span class="[&_a]:text-primary grow line-clamp-4 lg:text-lg">A Python 3.6+ <em>(asyncio)</em> library for building GraphQL APIs.</span><div class="flex items-center gap-5 max-md:text-xs [&>:not(:last-child)]:border-r [&>:not(:last-child)]:border-gray-500 [&>:not(:last-child)]:pr-5"><span>Last release <!-- -->3 years ago</span><span class="flex items-center gap-1"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="19" fill="currentColor" class="text-primary"><path d="m10 .5 2.997 5.874L19.51 7.41l-4.66 4.666 1.027 6.514L10 15.6l-5.878 2.99 1.028-6.514L.489 7.41l6.513-1.036z"></path></svg>1k</span><span>MIT License</span></div></div><details class="bg-[#f0f0f0] dark:bg-[#2f2f2f]"><summary class="flex justify-between font-bold text-primary px-8 lg:px-12 py-5 dark:[[open]>&]:shadow-[-5px_10px_30px_20px_#1b1b1b4d] [[open]>&]:shadow-[0_6px_21px_0_#1b1b1b33] cursor-pointer">README<svg xmlns="http://www.w3.org/2000/svg" fill="currentColor" viewBox="0 0 15 15" class="size-5 -rotate-90 [[open]>*>&]:rotate-90 transition-transform"><path fill-rule="evenodd" d="M8.842 3.135a.5.5 0 0 1 .023.707L5.435 7.5l3.43 3.658a.5.5 0 0 1-.73.684l-3.75-4a.5.5 0 0 1 0-.684l3.75-4a.5.5 0 0 1 .707-.023" clip-rule="evenodd"></path></svg></summary><div class="px-8 lg:px-12 py-5"><p class="[&:not(:first-child)]:_mt-6 _leading-7">To run a tartiflette hello world script:</p> <div class="nextra-code _relative [&:not(:first-child)]:_mt-6"><pre class="_overflow-x-auto _subpixel-antialiased _text-[.9em] _bg-white dark:_bg-black _py-4 _ring-1 _ring-inset _ring-gray-300 dark:_ring-neutral-700 contrast-more:_ring-gray-900 contrast-more:dark:_ring-gray-50 contrast-more:_contrast-150 _rounded-md" tabindex="0"><code class="nextra-code" dir="ltr"><span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">pip</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> install</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> tartiflette</span></span></code></pre><div class="_opacity-0 _transition [div:hover>&]:_opacity-100 focus-within:_opacity-100 _flex _gap-1 _absolute _right-4 _top-2"><button class="_transition _rounded-md _p-1.5 _border _border-gray-300 dark:_border-neutral-700 contrast-more:_border-gray-900 contrast-more:dark:_border-gray-50 md:_hidden" title="Toggle word wrap"><svg viewBox="0 0 24 24" width="24" height="24" class="_h-4 _w-auto"><path fill="currentColor" d="M4 19h6v-2H4v2zM20 5H4v2h16V5zm-3 6H4v2h13.25c1.1 0 2 .9 2 2s-.9 2-2 2H15v-2l-3 3l3 3v-2h2c2.21 0 4-1.79 4-4s-1.79-4-4-4z"></path></svg></button></div></div> <p class="[&:not(:first-child)]:_mt-6 _leading-7">Then run <code class="nextra-code" dir="ltr">python hello.py</code> with this code in <code class="nextra-code" dir="ltr">hello.py</code>:</p> <div class="nextra-code _relative [&:not(:first-child)]:_mt-6"><pre class="_overflow-x-auto _subpixel-antialiased _text-[.9em] _bg-white dark:_bg-black _py-4 _ring-1 _ring-inset _ring-gray-300 dark:_ring-neutral-700 contrast-more:_ring-gray-900 contrast-more:dark:_ring-gray-50 contrast-more:_contrast-150 _rounded-md" tabindex="0"><code class="nextra-code" dir="ltr"><span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">import</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> asyncio</span></span> <span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">from</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> tartiflette </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">import</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> Engine, Resolver</span></span> <span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">@Resolver</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">"Query.hello"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">)</span></span> <span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">async</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> def</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> resolver_hello</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(parent, args, ctx, info):</span></span> <span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> return</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> "hello "</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> +</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> args[</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">"name"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">]</span></span> <span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">async</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> def</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> run</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">():</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> tftt_engine </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> Engine(</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">"""</span></span> <span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> type Query {</span></span> <span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> hello(name: String): String</span></span> <span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> }</span></span> <span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> """</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">)</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> result </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> await</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> tftt_engine.execute(</span></span> <span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70"> query</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">'query { hello(name: "Chuck") }'</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> )</span></span> <span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> print</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(result)</span></span> <span><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D"> # {'data': {'hello': 'hello Chuck'}}</span></span> <span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">if</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> __name__</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> ==</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> "__main__"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">:</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> loop </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> asyncio.get_event_loop()</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> loop.run_until_complete(run())</span></span></code></pre><div class="_opacity-0 _transition [div:hover>&]:_opacity-100 focus-within:_opacity-100 _flex _gap-1 _absolute _right-4 _top-2"><button class="_transition _rounded-md _p-1.5 _border _border-gray-300 dark:_border-neutral-700 contrast-more:_border-gray-900 contrast-more:dark:_border-gray-50 md:_hidden" title="Toggle word wrap"><svg viewBox="0 0 24 24" width="24" height="24" class="_h-4 _w-auto"><path fill="currentColor" d="M4 19h6v-2H4v2zM20 5H4v2h16V5zm-3 6H4v2h13.25c1.1 0 2 .9 2 2s-.9 2-2 2H15v-2l-3 3l3 3v-2h2c2.21 0 4-1.79 4-4s-1.79-4-4-4z"></path></svg></button></div></div> <p class="[&:not(:first-child)]:_mt-6 _leading-7">There is also a nice <a href="https://github.com/dailymotion/tartiflette-aiohttp" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">HTTP wrapper</a>.</p></div></details></div><div class="border border-zinc-200 dark:border-[#414141] p-8 lg:p-12 bg-white dark:bg-neutral-800 rounded-none !p-0 h-max min-w-0"><div class="p-8 lg:p-12 flex flex-col gap-7 grow"><div class="flex items-center gap-6 [&_a:hover]:text-primary [&_a]:transition-colors"><span class="text-3xl font-extrabold grow break-all">GraphQL-ESLint</span><a href="https://github.com/dimaMachina/graphql-eslint/" target="_blank" rel="noreferrer"><svg xmlns="http://www.w3.org/2000/svg" width="30" fill="currentColor" viewBox="0 0 30 30"><path fill-rule="evenodd" d="M15.1.413a14.81 14.81 0 0 0-4.684 28.862c.742.138 1.012-.32 1.012-.712 0-.35-.013-1.283-.02-2.518-4.12.893-4.99-1.987-4.99-1.987-.675-1.71-1.643-2.165-1.643-2.165-1.345-.918.1-.9.1-.9 1.488.105 2.27 1.525 2.27 1.525 1.32 2.265 3.466 1.61 4.31 1.23.133-.955.515-1.608.94-1.978-3.29-.375-6.747-1.645-6.747-7.32 0-1.615.577-2.937 1.525-3.975-.15-.372-.66-1.88.145-3.917 0 0 1.242-.4 4.075 1.517a14.3 14.3 0 0 1 3.705-.5 14.2 14.2 0 0 1 3.707.5c2.826-1.915 4.068-1.517 4.068-1.517.807 2.037.3 3.545.15 3.92.95 1.035 1.52 2.357 1.52 3.975 0 5.687-3.462 6.94-6.76 7.305.53.457 1.005 1.36 1.005 2.742 0 1.98-.02 3.575-.02 4.063 0 .395.267.857 1.02.712A14.816 14.816 0 0 0 15.101.413" clip-rule="evenodd"></path></svg></a><a href="https://npmjs.com/package/@graphql-eslint/eslint-plugin" target="_blank" rel="noreferrer"><svg xmlns="http://www.w3.org/2000/svg" width="30" height="30" fill="currentColor"><path fill-rule="evenodd" d="M0 0v30h30V0zm24.375 5.625H5.625v18.75H15v-15h5.625v15h3.75z" clip-rule="evenodd"></path></svg></a></div><div class="gap-2 flex roboto-mono"><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=javascript">JavaScript</a><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=tools">Tools</a></div><span class="[&_a]:text-primary grow line-clamp-4 lg:text-lg">GraphQL-ESLint integrates GraphQL AST in the ESLint core (as a parser).</span><div class="flex items-center gap-5 max-md:text-xs [&>:not(:last-child)]:border-r [&>:not(:last-child)]:border-gray-500 [&>:not(:last-child)]:pr-5"><span>Last release <!-- -->6 hours ago</span><span class="flex items-center gap-1"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="19" fill="currentColor" class="text-primary"><path d="m10 .5 2.997 5.874L19.51 7.41l-4.66 4.666 1.027 6.514L10 15.6l-5.878 2.99 1.028-6.514L.489 7.41l6.513-1.036z"></path></svg>1k</span><span>MIT License</span></div></div></div><div class="border border-zinc-200 dark:border-[#414141] p-8 lg:p-12 bg-white dark:bg-neutral-800 rounded-none !p-0 h-max min-w-0"><div class="p-8 lg:p-12 flex flex-col gap-7 grow"><div class="flex items-center gap-6 [&_a:hover]:text-primary [&_a]:transition-colors"><span class="text-3xl font-extrabold grow break-all">GraphQLBundle</span><a href="https://github.com/overblog/GraphQLBundle" target="_blank" rel="noreferrer"><svg xmlns="http://www.w3.org/2000/svg" width="30" fill="currentColor" viewBox="0 0 30 30"><path fill-rule="evenodd" d="M15.1.413a14.81 14.81 0 0 0-4.684 28.862c.742.138 1.012-.32 1.012-.712 0-.35-.013-1.283-.02-2.518-4.12.893-4.99-1.987-4.99-1.987-.675-1.71-1.643-2.165-1.643-2.165-1.345-.918.1-.9.1-.9 1.488.105 2.27 1.525 2.27 1.525 1.32 2.265 3.466 1.61 4.31 1.23.133-.955.515-1.608.94-1.978-3.29-.375-6.747-1.645-6.747-7.32 0-1.615.577-2.937 1.525-3.975-.15-.372-.66-1.88.145-3.917 0 0 1.242-.4 4.075 1.517a14.3 14.3 0 0 1 3.705-.5 14.2 14.2 0 0 1 3.707.5c2.826-1.915 4.068-1.517 4.068-1.517.807 2.037.3 3.545.15 3.92.95 1.035 1.52 2.357 1.52 3.975 0 5.687-3.462 6.94-6.76 7.305.53.457 1.005 1.36 1.005 2.742 0 1.98-.02 3.575-.02 4.063 0 .395.267.857 1.02.712A14.816 14.816 0 0 0 15.101.413" clip-rule="evenodd"></path></svg></a></div><div class="gap-2 flex roboto-mono"><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=php">PHP</a><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=server">Server</a></div><span class="[&_a]:text-primary grow line-clamp-4 lg:text-lg">A GraphQL server for Symfony</span><div class="flex items-center gap-5 max-md:text-xs [&>:not(:last-child)]:border-r [&>:not(:last-child)]:border-gray-500 [&>:not(:last-child)]:pr-5"><span>Last release <!-- -->2 months ago</span><span class="flex items-center gap-1"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="19" fill="currentColor" class="text-primary"><path d="m10 .5 2.997 5.874L19.51 7.41l-4.66 4.666 1.027 6.514L10 15.6l-5.878 2.99 1.028-6.514L.489 7.41l6.513-1.036z"></path></svg>1k</span><span>MIT License</span></div></div></div><div class="border border-zinc-200 dark:border-[#414141] p-8 lg:p-12 bg-white dark:bg-neutral-800 rounded-none !p-0 h-max min-w-0"><div class="p-8 lg:p-12 flex flex-col gap-7 grow"><div class="flex items-center gap-6 [&_a:hover]:text-primary [&_a]:transition-colors"><span class="text-3xl font-extrabold grow break-all">dillonkearns/elm-graphql</span><a href="https://github.com/dillonkearns/elm-graphql" target="_blank" rel="noreferrer"><svg xmlns="http://www.w3.org/2000/svg" width="30" fill="currentColor" viewBox="0 0 30 30"><path fill-rule="evenodd" d="M15.1.413a14.81 14.81 0 0 0-4.684 28.862c.742.138 1.012-.32 1.012-.712 0-.35-.013-1.283-.02-2.518-4.12.893-4.99-1.987-4.99-1.987-.675-1.71-1.643-2.165-1.643-2.165-1.345-.918.1-.9.1-.9 1.488.105 2.27 1.525 2.27 1.525 1.32 2.265 3.466 1.61 4.31 1.23.133-.955.515-1.608.94-1.978-3.29-.375-6.747-1.645-6.747-7.32 0-1.615.577-2.937 1.525-3.975-.15-.372-.66-1.88.145-3.917 0 0 1.242-.4 4.075 1.517a14.3 14.3 0 0 1 3.705-.5 14.2 14.2 0 0 1 3.707.5c2.826-1.915 4.068-1.517 4.068-1.517.807 2.037.3 3.545.15 3.92.95 1.035 1.52 2.357 1.52 3.975 0 5.687-3.462 6.94-6.76 7.305.53.457 1.005 1.36 1.005 2.742 0 1.98-.02 3.575-.02 4.063 0 .395.267.857 1.02.712A14.816 14.816 0 0 0 15.101.413" clip-rule="evenodd"></path></svg></a></div><div class="gap-2 flex roboto-mono"><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=elm">Elm</a><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=client">Client</a></div><span class="[&_a]:text-primary grow line-clamp-4 lg:text-lg">Library and command-line code generator to create type-safe Elm code for a GraphQL endpoint.</span><div class="flex items-center gap-5 max-md:text-xs [&>:not(:last-child)]:border-r [&>:not(:last-child)]:border-gray-500 [&>:not(:last-child)]:pr-5"><span class="flex items-center gap-1"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="19" fill="currentColor" class="text-primary"><path d="m10 .5 2.997 5.874L19.51 7.41l-4.66 4.666 1.027 6.514L10 15.6l-5.878 2.99 1.028-6.514L.489 7.41l6.513-1.036z"></path></svg>1k</span><span>BSD 3-Clause "New" or "Revised" License</span></div></div></div><div class="border border-zinc-200 dark:border-[#414141] p-8 lg:p-12 bg-white dark:bg-neutral-800 rounded-none !p-0 h-max min-w-0"><div class="p-8 lg:p-12 flex flex-col gap-7 grow"><div class="flex items-center gap-6 [&_a:hover]:text-primary [&_a]:transition-colors"><span class="text-3xl font-extrabold grow break-all">graphql</span><a href="https://github.com/shurcooL/graphql" target="_blank" rel="noreferrer"><svg xmlns="http://www.w3.org/2000/svg" width="30" fill="currentColor" viewBox="0 0 30 30"><path fill-rule="evenodd" d="M15.1.413a14.81 14.81 0 0 0-4.684 28.862c.742.138 1.012-.32 1.012-.712 0-.35-.013-1.283-.02-2.518-4.12.893-4.99-1.987-4.99-1.987-.675-1.71-1.643-2.165-1.643-2.165-1.345-.918.1-.9.1-.9 1.488.105 2.27 1.525 2.27 1.525 1.32 2.265 3.466 1.61 4.31 1.23.133-.955.515-1.608.94-1.978-3.29-.375-6.747-1.645-6.747-7.32 0-1.615.577-2.937 1.525-3.975-.15-.372-.66-1.88.145-3.917 0 0 1.242-.4 4.075 1.517a14.3 14.3 0 0 1 3.705-.5 14.2 14.2 0 0 1 3.707.5c2.826-1.915 4.068-1.517 4.068-1.517.807 2.037.3 3.545.15 3.92.95 1.035 1.52 2.357 1.52 3.975 0 5.687-3.462 6.94-6.76 7.305.53.457 1.005 1.36 1.005 2.742 0 1.98-.02 3.575-.02 4.063 0 .395.267.857 1.02.712A14.816 14.816 0 0 0 15.101.413" clip-rule="evenodd"></path></svg></a></div><div class="gap-2 flex roboto-mono"><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=go">Go</a><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=client">Client</a></div><span class="[&_a]:text-primary grow line-clamp-4 lg:text-lg">A GraphQL client implementation in Go.</span><div class="flex items-center gap-5 max-md:text-xs [&>:not(:last-child)]:border-r [&>:not(:last-child)]:border-gray-500 [&>:not(:last-child)]:pr-5"><span class="flex items-center gap-1"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="19" fill="currentColor" class="text-primary"><path d="m10 .5 2.997 5.874L19.51 7.41l-4.66 4.666 1.027 6.514L10 15.6l-5.878 2.99 1.028-6.514L.489 7.41l6.513-1.036z"></path></svg>1k</span><span>MIT License</span></div></div></div><div class="border border-zinc-200 dark:border-[#414141] p-8 lg:p-12 bg-white dark:bg-neutral-800 rounded-none !p-0 h-max min-w-0"><div class="p-8 lg:p-12 flex flex-col gap-7 grow"><div class="flex items-center gap-6 [&_a:hover]:text-primary [&_a]:transition-colors"><span class="text-3xl font-extrabold grow break-all">graphql-go-tools</span><a href="https://github.com/wundergraph/graphql-go-tools" target="_blank" rel="noreferrer"><svg xmlns="http://www.w3.org/2000/svg" width="30" fill="currentColor" viewBox="0 0 30 30"><path fill-rule="evenodd" d="M15.1.413a14.81 14.81 0 0 0-4.684 28.862c.742.138 1.012-.32 1.012-.712 0-.35-.013-1.283-.02-2.518-4.12.893-4.99-1.987-4.99-1.987-.675-1.71-1.643-2.165-1.643-2.165-1.345-.918.1-.9.1-.9 1.488.105 2.27 1.525 2.27 1.525 1.32 2.265 3.466 1.61 4.31 1.23.133-.955.515-1.608.94-1.978-3.29-.375-6.747-1.645-6.747-7.32 0-1.615.577-2.937 1.525-3.975-.15-.372-.66-1.88.145-3.917 0 0 1.242-.4 4.075 1.517a14.3 14.3 0 0 1 3.705-.5 14.2 14.2 0 0 1 3.707.5c2.826-1.915 4.068-1.517 4.068-1.517.807 2.037.3 3.545.15 3.92.95 1.035 1.52 2.357 1.52 3.975 0 5.687-3.462 6.94-6.76 7.305.53.457 1.005 1.36 1.005 2.742 0 1.98-.02 3.575-.02 4.063 0 .395.267.857 1.02.712A14.816 14.816 0 0 0 15.101.413" clip-rule="evenodd"></path></svg></a></div><div class="gap-2 flex roboto-mono"><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=go">Go</a><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=server">Server</a></div><span class="[&_a]:text-primary grow line-clamp-4 lg:text-lg">A collection of tools for building GraphQL Servers, Gateways, Proxy Servers and Middleware in Go.</span><div class="flex items-center gap-5 max-md:text-xs [&>:not(:last-child)]:border-r [&>:not(:last-child)]:border-gray-500 [&>:not(:last-child)]:pr-5"><span>Last release <!-- -->1 day ago</span><span class="flex items-center gap-1"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="19" fill="currentColor" class="text-primary"><path d="m10 .5 2.997 5.874L19.51 7.41l-4.66 4.666 1.027 6.514L10 15.6l-5.878 2.99 1.028-6.514L.489 7.41l6.513-1.036z"></path></svg>1k</span><span>MIT License</span></div></div><details class="bg-[#f0f0f0] dark:bg-[#2f2f2f]"><summary class="flex justify-between font-bold text-primary px-8 lg:px-12 py-5 dark:[[open]>&]:shadow-[-5px_10px_30px_20px_#1b1b1b4d] [[open]>&]:shadow-[0_6px_21px_0_#1b1b1b33] cursor-pointer">README<svg xmlns="http://www.w3.org/2000/svg" fill="currentColor" viewBox="0 0 15 15" class="size-5 -rotate-90 [[open]>*>&]:rotate-90 transition-transform"><path fill-rule="evenodd" d="M8.842 3.135a.5.5 0 0 1 .023.707L5.435 7.5l3.43 3.658a.5.5 0 0 1-.73.684l-3.75-4a.5.5 0 0 1 0-.684l3.75-4a.5.5 0 0 1 .707-.023" clip-rule="evenodd"></path></svg></summary><div class="px-8 lg:px-12 py-5"><p class="[&:not(:first-child)]:_mt-6 _leading-7">graphql-go-tools implements all basic blocks for building GraphQL Servers, Gateways and Proxy Servers. From lexing, parsing, validation, normalization, all the way up to query planning and execution.</p> <p class="[&:not(:first-child)]:_mt-6 _leading-7">It can also be understood as a GraphQL Compiler, with the ability to add your own backends. Just by implementing a few interfaces, you’re able to teach the compiler how to talk GraphQL to any backend.</p> <p class="[&:not(:first-child)]:_mt-6 _leading-7">The following backends are already implemented: <a href="https://github.com/wundergraph/graphql-go-tools/tree/master/pkg/engine/datasource/graphql_datasource" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">GraphQL</a>, with support for Apollo Federation / Supergraph. <a href="https://github.com/wundergraph/wundergraph/tree/main/pkg/datasources/database" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">Databases</a>: PostgreSQL, MySQL, SQLite, CockroachDB, MongoDB, SQLServer, <a href="https://github.com/wundergraph/wundergraph/tree/main/pkg/datasources/oas" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">OpenAPI / REST</a> and <a href="https://github.com/wundergraph/graphql-go-tools/tree/master/pkg/engine/datasource/kafka_datasource" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">Kafka</a>.</p> <p class="[&:not(:first-child)]:_mt-6 _leading-7">To get a sense on how to implement a new backend, check out the <a href="https://github.com/wundergraph/graphql-go-tools/tree/master/pkg/engine/datasource/staticdatasource" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">Static Data Source</a>, as it’s the simplest one.</p> <p class="[&:not(:first-child)]:_mt-6 _leading-7">It’s used in production by many enterprises for multiple years now, battle tested and actively maintained.</p></div></details></div><div class="border border-zinc-200 dark:border-[#414141] p-8 lg:p-12 bg-white dark:bg-neutral-800 rounded-none !p-0 h-max min-w-0"><div class="p-8 lg:p-12 flex flex-col gap-7 grow"><div class="flex items-center gap-6 [&_a:hover]:text-primary [&_a]:transition-colors"><span class="text-3xl font-extrabold grow break-all">GraphQL.Client</span><a href="https://github.com/graphql-dotnet/graphql-client" target="_blank" rel="noreferrer"><svg xmlns="http://www.w3.org/2000/svg" width="30" fill="currentColor" viewBox="0 0 30 30"><path fill-rule="evenodd" d="M15.1.413a14.81 14.81 0 0 0-4.684 28.862c.742.138 1.012-.32 1.012-.712 0-.35-.013-1.283-.02-2.518-4.12.893-4.99-1.987-4.99-1.987-.675-1.71-1.643-2.165-1.643-2.165-1.345-.918.1-.9.1-.9 1.488.105 2.27 1.525 2.27 1.525 1.32 2.265 3.466 1.61 4.31 1.23.133-.955.515-1.608.94-1.978-3.29-.375-6.747-1.645-6.747-7.32 0-1.615.577-2.937 1.525-3.975-.15-.372-.66-1.88.145-3.917 0 0 1.242-.4 4.075 1.517a14.3 14.3 0 0 1 3.705-.5 14.2 14.2 0 0 1 3.707.5c2.826-1.915 4.068-1.517 4.068-1.517.807 2.037.3 3.545.15 3.92.95 1.035 1.52 2.357 1.52 3.975 0 5.687-3.462 6.94-6.76 7.305.53.457 1.005 1.36 1.005 2.742 0 1.98-.02 3.575-.02 4.063 0 .395.267.857 1.02.712A14.816 14.816 0 0 0 15.101.413" clip-rule="evenodd"></path></svg></a></div><div class="gap-2 flex roboto-mono"><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=c-net">C# / .NET</a><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=client">Client</a></div><span class="[&_a]:text-primary grow line-clamp-4 lg:text-lg">A GraphQL Client for .NET.</span><div class="flex items-center gap-5 max-md:text-xs [&>:not(:last-child)]:border-r [&>:not(:last-child)]:border-gray-500 [&>:not(:last-child)]:pr-5"><span>Last release <!-- -->6 months ago</span><span class="flex items-center gap-1"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="19" fill="currentColor" class="text-primary"><path d="m10 .5 2.997 5.874L19.51 7.41l-4.66 4.666 1.027 6.514L10 15.6l-5.878 2.99 1.028-6.514L.489 7.41l6.513-1.036z"></path></svg>1k</span><span>MIT License</span></div></div></div><div class="border border-zinc-200 dark:border-[#414141] p-8 lg:p-12 bg-white dark:bg-neutral-800 rounded-none !p-0 h-max min-w-0"><div class="p-8 lg:p-12 flex flex-col gap-7 grow"><div class="flex items-center gap-6 [&_a:hover]:text-primary [&_a]:transition-colors"><span class="text-3xl font-extrabold grow break-all">ocaml-graphql-server</span><a href="https://github.com/andreas/ocaml-graphql-server" target="_blank" rel="noreferrer"><svg xmlns="http://www.w3.org/2000/svg" width="30" fill="currentColor" viewBox="0 0 30 30"><path fill-rule="evenodd" d="M15.1.413a14.81 14.81 0 0 0-4.684 28.862c.742.138 1.012-.32 1.012-.712 0-.35-.013-1.283-.02-2.518-4.12.893-4.99-1.987-4.99-1.987-.675-1.71-1.643-2.165-1.643-2.165-1.345-.918.1-.9.1-.9 1.488.105 2.27 1.525 2.27 1.525 1.32 2.265 3.466 1.61 4.31 1.23.133-.955.515-1.608.94-1.978-3.29-.375-6.747-1.645-6.747-7.32 0-1.615.577-2.937 1.525-3.975-.15-.372-.66-1.88.145-3.917 0 0 1.242-.4 4.075 1.517a14.3 14.3 0 0 1 3.705-.5 14.2 14.2 0 0 1 3.707.5c2.826-1.915 4.068-1.517 4.068-1.517.807 2.037.3 3.545.15 3.92.95 1.035 1.52 2.357 1.52 3.975 0 5.687-3.462 6.94-6.76 7.305.53.457 1.005 1.36 1.005 2.742 0 1.98-.02 3.575-.02 4.063 0 .395.267.857 1.02.712A14.816 14.816 0 0 0 15.101.413" clip-rule="evenodd"></path></svg></a></div><div class="gap-2 flex roboto-mono"><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=ocaml-reason">OCaml / Reason</a><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=server">Server</a></div><span class="[&_a]:text-primary grow line-clamp-4 lg:text-lg">GraphQL server library for OCaml and Reason</span><div class="flex items-center gap-5 max-md:text-xs [&>:not(:last-child)]:border-r [&>:not(:last-child)]:border-gray-500 [&>:not(:last-child)]:pr-5"><span>Last release <!-- -->2 years ago</span><span class="flex items-center gap-1"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="19" fill="currentColor" class="text-primary"><path d="m10 .5 2.997 5.874L19.51 7.41l-4.66 4.666 1.027 6.514L10 15.6l-5.878 2.99 1.028-6.514L.489 7.41l6.513-1.036z"></path></svg>1k</span><span>MIT License</span></div></div></div><div class="border border-zinc-200 dark:border-[#414141] p-8 lg:p-12 bg-white dark:bg-neutral-800 rounded-none !p-0 h-max min-w-0"><div class="p-8 lg:p-12 flex flex-col gap-7 grow"><div class="flex items-center gap-6 [&_a:hover]:text-primary [&_a]:transition-colors"><span class="text-3xl font-extrabold grow break-all">Ferry</span><a href="https://ferrygraphql.com/" target="_blank" rel="noreferrer"><svg xmlns="http://www.w3.org/2000/svg" fill="currentColor" viewBox="0 0 24 24"><path d="M23.332 15.948C23.764 14.711 24 13.383 24 12a12 12 0 0 0-.706-4.056C21.627 3.317 17.194 0 12 0S2.373 3.317.706 7.944A11.949 11.949 0 0 0 0 12a12 12 0 0 0 .706 4.056C2.373 20.683 6.806 24 12 24s9.627-3.317 11.294-7.944a1 1 0 0 0 .038-.108M12 22.28c-.457 0-1.194-.827-1.81-2.675a19 19 0 0 1-.708-3.031h5.036a19 19 0 0 1-.708 3.031c-.616 1.848-1.353 2.675-1.81 2.675m-2.727-7.427A32 32 0 0 1 9.147 12c0-.98.043-1.936.126-2.853h5.454c.083.917.126 1.874.126 2.853s-.043 1.936-.126 2.854zM1.72 12c0-.99.141-1.947.403-2.853h5.425a33.5 33.5 0 0 0 0 5.707H2.123A10.3 10.3 0 0 1 1.72 12M12 1.72c.457 0 1.194.827 1.81 2.675.297.892.535 1.917.708 3.032H9.482c.173-1.115.411-2.14.708-3.032.616-1.848 1.353-2.675 1.81-2.675m4.452 7.427h5.425c.262.906.403 1.864.403 2.853s-.141 1.947-.403 2.854h-5.425a33.5 33.5 0 0 0 0-5.707m4.752-1.72h-4.95c-.305-2.11-.83-4.003-1.566-5.35 2.855.775 5.22 2.75 6.516 5.35M9.313 2.077c-.736 1.347-1.261 3.24-1.567 5.35h-4.95a10.33 10.33 0 0 1 6.517-5.35M2.795 16.574h4.95c.306 2.11.83 4.002 1.567 5.349a10.33 10.33 0 0 1-6.517-5.35m11.893 5.349c.736-1.347 1.261-3.24 1.567-5.35h4.95a10.33 10.33 0 0 1-6.517 5.35"></path></svg></a><a href="https://github.com/gql-dart/ferry" target="_blank" rel="noreferrer"><svg xmlns="http://www.w3.org/2000/svg" width="30" fill="currentColor" viewBox="0 0 30 30"><path fill-rule="evenodd" d="M15.1.413a14.81 14.81 0 0 0-4.684 28.862c.742.138 1.012-.32 1.012-.712 0-.35-.013-1.283-.02-2.518-4.12.893-4.99-1.987-4.99-1.987-.675-1.71-1.643-2.165-1.643-2.165-1.345-.918.1-.9.1-.9 1.488.105 2.27 1.525 2.27 1.525 1.32 2.265 3.466 1.61 4.31 1.23.133-.955.515-1.608.94-1.978-3.29-.375-6.747-1.645-6.747-7.32 0-1.615.577-2.937 1.525-3.975-.15-.372-.66-1.88.145-3.917 0 0 1.242-.4 4.075 1.517a14.3 14.3 0 0 1 3.705-.5 14.2 14.2 0 0 1 3.707.5c2.826-1.915 4.068-1.517 4.068-1.517.807 2.037.3 3.545.15 3.92.95 1.035 1.52 2.357 1.52 3.975 0 5.687-3.462 6.94-6.76 7.305.53.457 1.005 1.36 1.005 2.742 0 1.98-.02 3.575-.02 4.063 0 .395.267.857 1.02.712A14.816 14.816 0 0 0 15.101.413" clip-rule="evenodd"></path></svg></a></div><div class="gap-2 flex roboto-mono"><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=flutter">Flutter</a><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=client">Client</a></div><span class="[&_a]:text-primary grow line-clamp-4 lg:text-lg">Ferry is a simple, powerful GraphQL Client for Flutter and Dart.</span><div class="flex items-center gap-5 max-md:text-xs [&>:not(:last-child)]:border-r [&>:not(:last-child)]:border-gray-500 [&>:not(:last-child)]:pr-5"><span class="flex items-center gap-1"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="19" fill="currentColor" class="text-primary"><path d="m10 .5 2.997 5.874L19.51 7.41l-4.66 4.666 1.027 6.514L10 15.6l-5.878 2.99 1.028-6.514L.489 7.41l6.513-1.036z"></path></svg>1k</span><span>MIT License</span></div></div></div><div class="border border-zinc-200 dark:border-[#414141] p-8 lg:p-12 bg-white dark:bg-neutral-800 rounded-none !p-0 h-max min-w-0"><div class="p-8 lg:p-12 flex flex-col gap-7 grow"><div class="flex items-center gap-6 [&_a:hover]:text-primary [&_a]:transition-colors"><span class="text-3xl font-extrabold grow break-all">SwiftGraphQL</span><a href="https://github.com/maticzav/swift-graphql" target="_blank" rel="noreferrer"><svg xmlns="http://www.w3.org/2000/svg" width="30" fill="currentColor" viewBox="0 0 30 30"><path fill-rule="evenodd" d="M15.1.413a14.81 14.81 0 0 0-4.684 28.862c.742.138 1.012-.32 1.012-.712 0-.35-.013-1.283-.02-2.518-4.12.893-4.99-1.987-4.99-1.987-.675-1.71-1.643-2.165-1.643-2.165-1.345-.918.1-.9.1-.9 1.488.105 2.27 1.525 2.27 1.525 1.32 2.265 3.466 1.61 4.31 1.23.133-.955.515-1.608.94-1.978-3.29-.375-6.747-1.645-6.747-7.32 0-1.615.577-2.937 1.525-3.975-.15-.372-.66-1.88.145-3.917 0 0 1.242-.4 4.075 1.517a14.3 14.3 0 0 1 3.705-.5 14.2 14.2 0 0 1 3.707.5c2.826-1.915 4.068-1.517 4.068-1.517.807 2.037.3 3.545.15 3.92.95 1.035 1.52 2.357 1.52 3.975 0 5.687-3.462 6.94-6.76 7.305.53.457 1.005 1.36 1.005 2.742 0 1.98-.02 3.575-.02 4.063 0 .395.267.857 1.02.712A14.816 14.816 0 0 0 15.101.413" clip-rule="evenodd"></path></svg></a></div><div class="gap-2 flex roboto-mono"><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=swift-objective-c-ios">Swift / Objective-C</a><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=client">Client</a></div><span class="[&_a]:text-primary grow line-clamp-4 lg:text-lg">A GraphQL client that lets you forget about GraphQL.</span><div class="flex items-center gap-5 max-md:text-xs [&>:not(:last-child)]:border-r [&>:not(:last-child)]:border-gray-500 [&>:not(:last-child)]:pr-5"><span>Last release <!-- -->6 months ago</span><span class="flex items-center gap-1"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="19" fill="currentColor" class="text-primary"><path d="m10 .5 2.997 5.874L19.51 7.41l-4.66 4.666 1.027 6.514L10 15.6l-5.878 2.99 1.028-6.514L.489 7.41l6.513-1.036z"></path></svg>1k</span><span>MIT License</span></div></div><details class="bg-[#f0f0f0] dark:bg-[#2f2f2f]"><summary class="flex justify-between font-bold text-primary px-8 lg:px-12 py-5 dark:[[open]>&]:shadow-[-5px_10px_30px_20px_#1b1b1b4d] [[open]>&]:shadow-[0_6px_21px_0_#1b1b1b33] cursor-pointer">README<svg xmlns="http://www.w3.org/2000/svg" fill="currentColor" viewBox="0 0 15 15" class="size-5 -rotate-90 [[open]>*>&]:rotate-90 transition-transform"><path fill-rule="evenodd" d="M8.842 3.135a.5.5 0 0 1 .023.707L5.435 7.5l3.43 3.658a.5.5 0 0 1-.73.684l-3.75-4a.5.5 0 0 1 0-.684l3.75-4a.5.5 0 0 1 .707-.023" clip-rule="evenodd"></path></svg></summary><div class="px-8 lg:px-12 py-5"><p class="[&:not(:first-child)]:_mt-6 _leading-7">SwiftGraphQL is a Swift code generator and a lightweight GraphQL client. It lets you create queries using Swift, and guarantees that every query you create is valid.</p> <p class="[&:not(:first-child)]:_mt-6 _leading-7">The library is centered around three core principles:</p> <p class="[&:not(:first-child)]:_mt-6 _leading-7">🚀 If your project compiles, your queries work. 🦉 Use Swift in favour of GraphQL wherever possible. 🌳 Your application model should be independent of your schema.</p> <p class="[&:not(:first-child)]:_mt-6 _leading-7">Here’s a short preview of the SwiftGraphQL code</p> <div class="nextra-code _relative [&:not(:first-child)]:_mt-6"><pre class="_overflow-x-auto _subpixel-antialiased _text-[.9em] _bg-white dark:_bg-black _py-4 _ring-1 _ring-inset _ring-gray-300 dark:_ring-neutral-700 contrast-more:_ring-gray-900 contrast-more:dark:_ring-gray-50 contrast-more:_contrast-150 _rounded-md" tabindex="0"><code class="nextra-code" dir="ltr"><span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">import</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> SwiftGraphQL</span></span> <span> </span> <span><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D">// Define a Swift model.</span></span> <span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">struct</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> Human</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">: </span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">Identifiable </span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">{</span></span> <span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> let</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> id: </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">String</span></span> <span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> let</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> name: </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">String</span></span> <span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> let</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> homePlanet: </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">String</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">?</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">}</span></span> <span> </span> <span><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D">// Create a selection.</span></span> <span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">let</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> human </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> Selection.</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">Human</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> {</span></span> <span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> Human</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(</span></span> <span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> id</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">: </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">try</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> $0</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">.</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">id</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(),</span></span> <span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> name</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">: </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">try</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> $0</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">.</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">name</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(),</span></span> <span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> homePlanet</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">: </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">try</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> $0</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">.</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">homePlanet</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">()</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> )</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">}</span></span> <span> </span> <span><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D">// Construct a query.</span></span> <span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">let</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> query </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> Selection.</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">Query</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> {</span></span> <span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> try</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> $0</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">.</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">humans</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(human.list)</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">}</span></span> <span> </span> <span><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D">// Perform the query.</span></span> <span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">send</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(query, </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">to</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">"http://swift-graphql.heroku.com"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">) { result </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">in</span></span> <span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> if</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> let</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> data </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> try?</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> result.</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">get</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">() {</span></span> <span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> print</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(data) </span><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D">// [Human]</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> }</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">}</span></span></code></pre><div class="_opacity-0 _transition [div:hover>&]:_opacity-100 focus-within:_opacity-100 _flex _gap-1 _absolute _right-4 _top-2"><button class="_transition _rounded-md _p-1.5 _border _border-gray-300 dark:_border-neutral-700 contrast-more:_border-gray-900 contrast-more:dark:_border-gray-50 md:_hidden" title="Toggle word wrap"><svg viewBox="0 0 24 24" width="24" height="24" class="_h-4 _w-auto"><path fill="currentColor" d="M4 19h6v-2H4v2zM20 5H4v2h16V5zm-3 6H4v2h13.25c1.1 0 2 .9 2 2s-.9 2-2 2H15v-2l-3 3l3 3v-2h2c2.21 0 4-1.79 4-4s-1.79-4-4-4z"></path></svg></button></div></div></div></details></div><div class="border border-zinc-200 dark:border-[#414141] p-8 lg:p-12 bg-white dark:bg-neutral-800 rounded-none !p-0 h-max min-w-0"><div class="p-8 lg:p-12 flex flex-col gap-7 grow"><div class="flex items-center gap-6 [&_a:hover]:text-primary [&_a]:transition-colors"><span class="text-3xl font-extrabold grow break-all">GraphQLite</span><a href="https://graphqlite.thecodingmachine.io" target="_blank" rel="noreferrer"><svg xmlns="http://www.w3.org/2000/svg" fill="currentColor" viewBox="0 0 24 24"><path d="M23.332 15.948C23.764 14.711 24 13.383 24 12a12 12 0 0 0-.706-4.056C21.627 3.317 17.194 0 12 0S2.373 3.317.706 7.944A11.949 11.949 0 0 0 0 12a12 12 0 0 0 .706 4.056C2.373 20.683 6.806 24 12 24s9.627-3.317 11.294-7.944a1 1 0 0 0 .038-.108M12 22.28c-.457 0-1.194-.827-1.81-2.675a19 19 0 0 1-.708-3.031h5.036a19 19 0 0 1-.708 3.031c-.616 1.848-1.353 2.675-1.81 2.675m-2.727-7.427A32 32 0 0 1 9.147 12c0-.98.043-1.936.126-2.853h5.454c.083.917.126 1.874.126 2.853s-.043 1.936-.126 2.854zM1.72 12c0-.99.141-1.947.403-2.853h5.425a33.5 33.5 0 0 0 0 5.707H2.123A10.3 10.3 0 0 1 1.72 12M12 1.72c.457 0 1.194.827 1.81 2.675.297.892.535 1.917.708 3.032H9.482c.173-1.115.411-2.14.708-3.032.616-1.848 1.353-2.675 1.81-2.675m4.452 7.427h5.425c.262.906.403 1.864.403 2.853s-.141 1.947-.403 2.854h-5.425a33.5 33.5 0 0 0 0-5.707m4.752-1.72h-4.95c-.305-2.11-.83-4.003-1.566-5.35 2.855.775 5.22 2.75 6.516 5.35M9.313 2.077c-.736 1.347-1.261 3.24-1.567 5.35h-4.95a10.33 10.33 0 0 1 6.517-5.35M2.795 16.574h4.95c.306 2.11.83 4.002 1.567 5.349a10.33 10.33 0 0 1-6.517-5.35m11.893 5.349c.736-1.347 1.261-3.24 1.567-5.35h4.95a10.33 10.33 0 0 1-6.517 5.35"></path></svg></a><a href="https://github.com/thecodingmachine/graphqlite" target="_blank" rel="noreferrer"><svg xmlns="http://www.w3.org/2000/svg" width="30" fill="currentColor" viewBox="0 0 30 30"><path fill-rule="evenodd" d="M15.1.413a14.81 14.81 0 0 0-4.684 28.862c.742.138 1.012-.32 1.012-.712 0-.35-.013-1.283-.02-2.518-4.12.893-4.99-1.987-4.99-1.987-.675-1.71-1.643-2.165-1.643-2.165-1.345-.918.1-.9.1-.9 1.488.105 2.27 1.525 2.27 1.525 1.32 2.265 3.466 1.61 4.31 1.23.133-.955.515-1.608.94-1.978-3.29-.375-6.747-1.645-6.747-7.32 0-1.615.577-2.937 1.525-3.975-.15-.372-.66-1.88.145-3.917 0 0 1.242-.4 4.075 1.517a14.3 14.3 0 0 1 3.705-.5 14.2 14.2 0 0 1 3.707.5c2.826-1.915 4.068-1.517 4.068-1.517.807 2.037.3 3.545.15 3.92.95 1.035 1.52 2.357 1.52 3.975 0 5.687-3.462 6.94-6.76 7.305.53.457 1.005 1.36 1.005 2.742 0 1.98-.02 3.575-.02 4.063 0 .395.267.857 1.02.712A14.816 14.816 0 0 0 15.101.413" clip-rule="evenodd"></path></svg></a></div><div class="gap-2 flex roboto-mono"><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=php">PHP</a><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=server">Server</a></div><span class="[&_a]:text-primary grow line-clamp-4 lg:text-lg">GraphQLite is a library that offers an annotations-based syntax for GraphQL schema definition.</span><div class="flex items-center gap-5 max-md:text-xs [&>:not(:last-child)]:border-r [&>:not(:last-child)]:border-gray-500 [&>:not(:last-child)]:pr-5"><span>Last release <!-- -->8 months ago</span><span class="flex items-center gap-1"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="19" fill="currentColor" class="text-primary"><path d="m10 .5 2.997 5.874L19.51 7.41l-4.66 4.666 1.027 6.514L10 15.6l-5.878 2.99 1.028-6.514L.489 7.41l6.513-1.036z"></path></svg>1k</span><span>MIT License</span></div></div><details class="bg-[#f0f0f0] dark:bg-[#2f2f2f]"><summary class="flex justify-between font-bold text-primary px-8 lg:px-12 py-5 dark:[[open]>&]:shadow-[-5px_10px_30px_20px_#1b1b1b4d] [[open]>&]:shadow-[0_6px_21px_0_#1b1b1b33] cursor-pointer">README<svg xmlns="http://www.w3.org/2000/svg" fill="currentColor" viewBox="0 0 15 15" class="size-5 -rotate-90 [[open]>*>&]:rotate-90 transition-transform"><path fill-rule="evenodd" d="M8.842 3.135a.5.5 0 0 1 .023.707L5.435 7.5l3.43 3.658a.5.5 0 0 1-.73.684l-3.75-4a.5.5 0 0 1 0-.684l3.75-4a.5.5 0 0 1 .707-.023" clip-rule="evenodd"></path></svg></summary><div class="px-8 lg:px-12 py-5"><p class="[&:not(:first-child)]:_mt-6 _leading-7">It is framework agnostic with bindings available for Symfony and Laravel. This code declares a “product” query and a “Product” Type:</p> <div class="nextra-code _relative [&:not(:first-child)]:_mt-6"><pre class="_overflow-x-auto _subpixel-antialiased _text-[.9em] _bg-white dark:_bg-black _py-4 _ring-1 _ring-inset _ring-gray-300 dark:_ring-neutral-700 contrast-more:_ring-gray-900 contrast-more:dark:_ring-gray-50 contrast-more:_contrast-150 _rounded-md" tabindex="0"><code class="nextra-code" dir="ltr"><span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">class</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> ProductController</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">{</span></span> <span><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D"> /**</span></span> <span><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D"> * @Query()</span></span> <span><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D"> */</span></span> <span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> public</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> function</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> product</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">string</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> $id)</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">:</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> Product</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> {</span></span> <span><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D"> // Some code that looks for a product and returns it.</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> }</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">}</span></span> <span> </span> <span><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D">/**</span></span> <span><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D"> * @Type()</span></span> <span><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D"> */</span></span> <span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">class</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> Product</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">{</span></span> <span><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D"> /**</span></span> <span><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D"> * @Field()</span></span> <span><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D"> */</span></span> <span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> public</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> function</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> getName</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">()</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">:</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> string</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> {</span></span> <span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> return</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> $this</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">-></span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">name;</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> }</span></span> <span><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D"> // ...</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">}</span></span></code></pre><div class="_opacity-0 _transition [div:hover>&]:_opacity-100 focus-within:_opacity-100 _flex _gap-1 _absolute _right-4 _top-2"><button class="_transition _rounded-md _p-1.5 _border _border-gray-300 dark:_border-neutral-700 contrast-more:_border-gray-900 contrast-more:dark:_border-gray-50 md:_hidden" title="Toggle word wrap"><svg viewBox="0 0 24 24" width="24" height="24" class="_h-4 _w-auto"><path fill="currentColor" d="M4 19h6v-2H4v2zM20 5H4v2h16V5zm-3 6H4v2h13.25c1.1 0 2 .9 2 2s-.9 2-2 2H15v-2l-3 3l3 3v-2h2c2.21 0 4-1.79 4-4s-1.79-4-4-4z"></path></svg></button></div></div> <p class="[&:not(:first-child)]:_mt-6 _leading-7">Other GraphQLite features include validation, security, error handling, loading via data-loader pattern…</p></div></details></div><div class="border border-zinc-200 dark:border-[#414141] p-8 lg:p-12 bg-white dark:bg-neutral-800 rounded-none !p-0 h-max min-w-0"><div class="p-8 lg:p-12 flex flex-col gap-7 grow"><div class="flex items-center gap-6 [&_a:hover]:text-primary [&_a]:transition-colors"><span class="text-3xl font-extrabold grow break-all">Graphiti</span><a href="https://github.com/GraphQLSwift/Graphiti" target="_blank" rel="noreferrer"><svg xmlns="http://www.w3.org/2000/svg" width="30" fill="currentColor" viewBox="0 0 30 30"><path fill-rule="evenodd" d="M15.1.413a14.81 14.81 0 0 0-4.684 28.862c.742.138 1.012-.32 1.012-.712 0-.35-.013-1.283-.02-2.518-4.12.893-4.99-1.987-4.99-1.987-.675-1.71-1.643-2.165-1.643-2.165-1.345-.918.1-.9.1-.9 1.488.105 2.27 1.525 2.27 1.525 1.32 2.265 3.466 1.61 4.31 1.23.133-.955.515-1.608.94-1.978-3.29-.375-6.747-1.645-6.747-7.32 0-1.615.577-2.937 1.525-3.975-.15-.372-.66-1.88.145-3.917 0 0 1.242-.4 4.075 1.517a14.3 14.3 0 0 1 3.705-.5 14.2 14.2 0 0 1 3.707.5c2.826-1.915 4.068-1.517 4.068-1.517.807 2.037.3 3.545.15 3.92.95 1.035 1.52 2.357 1.52 3.975 0 5.687-3.462 6.94-6.76 7.305.53.457 1.005 1.36 1.005 2.742 0 1.98-.02 3.575-.02 4.063 0 .395.267.857 1.02.712A14.816 14.816 0 0 0 15.101.413" clip-rule="evenodd"></path></svg></a></div><div class="gap-2 flex roboto-mono"><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=swift-objective-c-ios">Swift / Objective-C</a><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=server">Server</a></div><span class="[&_a]:text-primary grow line-clamp-4 lg:text-lg">Swift library for building GraphQL schemas/types fast, safely and easily.</span><div class="flex items-center gap-5 max-md:text-xs [&>:not(:last-child)]:border-r [&>:not(:last-child)]:border-gray-500 [&>:not(:last-child)]:pr-5"><span>Last release <!-- -->4 months ago</span><span class="flex items-center gap-1"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="19" fill="currentColor" class="text-primary"><path d="m10 .5 2.997 5.874L19.51 7.41l-4.66 4.666 1.027 6.514L10 15.6l-5.878 2.99 1.028-6.514L.489 7.41l6.513-1.036z"></path></svg>1k</span><span>MIT License</span></div></div></div><div class="border border-zinc-200 dark:border-[#414141] p-8 lg:p-12 bg-white dark:bg-neutral-800 rounded-none !p-0 h-max min-w-0"><div class="p-8 lg:p-12 flex flex-col gap-7 grow"><div class="flex items-center gap-6 [&_a:hover]:text-primary [&_a]:transition-colors"><span class="text-3xl font-extrabold grow break-all">sgqlc</span><a href="https://github.com/profusion/sgqlc" target="_blank" rel="noreferrer"><svg xmlns="http://www.w3.org/2000/svg" width="30" fill="currentColor" viewBox="0 0 30 30"><path fill-rule="evenodd" d="M15.1.413a14.81 14.81 0 0 0-4.684 28.862c.742.138 1.012-.32 1.012-.712 0-.35-.013-1.283-.02-2.518-4.12.893-4.99-1.987-4.99-1.987-.675-1.71-1.643-2.165-1.643-2.165-1.345-.918.1-.9.1-.9 1.488.105 2.27 1.525 2.27 1.525 1.32 2.265 3.466 1.61 4.31 1.23.133-.955.515-1.608.94-1.978-3.29-.375-6.747-1.645-6.747-7.32 0-1.615.577-2.937 1.525-3.975-.15-.372-.66-1.88.145-3.917 0 0 1.242-.4 4.075 1.517a14.3 14.3 0 0 1 3.705-.5 14.2 14.2 0 0 1 3.707.5c2.826-1.915 4.068-1.517 4.068-1.517.807 2.037.3 3.545.15 3.92.95 1.035 1.52 2.357 1.52 3.975 0 5.687-3.462 6.94-6.76 7.305.53.457 1.005 1.36 1.005 2.742 0 1.98-.02 3.575-.02 4.063 0 .395.267.857 1.02.712A14.816 14.816 0 0 0 15.101.413" clip-rule="evenodd"></path></svg></a></div><div class="gap-2 flex roboto-mono"><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=python">Python</a><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=client">Client</a></div><span class="[&_a]:text-primary grow line-clamp-4 lg:text-lg">A simple Python GraphQL client. Supports generating code generation for types defined in a GraphQL schema.</span><div class="flex items-center gap-5 max-md:text-xs [&>:not(:last-child)]:border-r [&>:not(:last-child)]:border-gray-500 [&>:not(:last-child)]:pr-5"><span class="flex items-center gap-1"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="19" fill="currentColor" class="text-primary"><path d="m10 .5 2.997 5.874L19.51 7.41l-4.66 4.666 1.027 6.514L10 15.6l-5.878 2.99 1.028-6.514L.489 7.41l6.513-1.036z"></path></svg>1k</span><span>ISC License</span></div></div></div><div class="border border-zinc-200 dark:border-[#414141] p-8 lg:p-12 bg-white dark:bg-neutral-800 rounded-none !p-0 h-max min-w-0"><div class="p-8 lg:p-12 flex flex-col gap-7 grow"><div class="flex items-center gap-6 [&_a:hover]:text-primary [&_a]:transition-colors"><span class="text-3xl font-extrabold grow break-all">GraphQL Armor</span><a href="https://github.com/Escape-Technologies/graphql-armor" target="_blank" rel="noreferrer"><svg xmlns="http://www.w3.org/2000/svg" width="30" fill="currentColor" viewBox="0 0 30 30"><path fill-rule="evenodd" d="M15.1.413a14.81 14.81 0 0 0-4.684 28.862c.742.138 1.012-.32 1.012-.712 0-.35-.013-1.283-.02-2.518-4.12.893-4.99-1.987-4.99-1.987-.675-1.71-1.643-2.165-1.643-2.165-1.345-.918.1-.9.1-.9 1.488.105 2.27 1.525 2.27 1.525 1.32 2.265 3.466 1.61 4.31 1.23.133-.955.515-1.608.94-1.978-3.29-.375-6.747-1.645-6.747-7.32 0-1.615.577-2.937 1.525-3.975-.15-.372-.66-1.88.145-3.917 0 0 1.242-.4 4.075 1.517a14.3 14.3 0 0 1 3.705-.5 14.2 14.2 0 0 1 3.707.5c2.826-1.915 4.068-1.517 4.068-1.517.807 2.037.3 3.545.15 3.92.95 1.035 1.52 2.357 1.52 3.975 0 5.687-3.462 6.94-6.76 7.305.53.457 1.005 1.36 1.005 2.742 0 1.98-.02 3.575-.02 4.063 0 .395.267.857 1.02.712A14.816 14.816 0 0 0 15.101.413" clip-rule="evenodd"></path></svg></a><a href="https://npmjs.com/package/@Escape-Technologies/graphql-armor" target="_blank" rel="noreferrer"><svg xmlns="http://www.w3.org/2000/svg" width="30" height="30" fill="currentColor"><path fill-rule="evenodd" d="M0 0v30h30V0zm24.375 5.625H5.625v18.75H15v-15h5.625v15h3.75z" clip-rule="evenodd"></path></svg></a></div><div class="gap-2 flex roboto-mono"><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=tools">Tools</a><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=general">General</a></div><span class="[&_a]:text-primary grow line-clamp-4 lg:text-lg">The missing GraphQL security layer for Apollo GraphQL and Yoga / Envelop servers.</span><div class="flex items-center gap-5 max-md:text-xs [&>:not(:last-child)]:border-r [&>:not(:last-child)]:border-gray-500 [&>:not(:last-child)]:pr-5"><span>Last release <!-- -->1 month ago</span><span class="flex items-center gap-1"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="19" fill="currentColor" class="text-primary"><path d="m10 .5 2.997 5.874L19.51 7.41l-4.66 4.666 1.027 6.514L10 15.6l-5.878 2.99 1.028-6.514L.489 7.41l6.513-1.036z"></path></svg>1k</span><span>MIT License</span></div></div></div><div class="border border-zinc-200 dark:border-[#414141] p-8 lg:p-12 bg-white dark:bg-neutral-800 rounded-none !p-0 h-max min-w-0"><div class="p-8 lg:p-12 flex flex-col gap-7 grow"><div class="flex items-center gap-6 [&_a:hover]:text-primary [&_a]:transition-colors"><span class="text-3xl font-extrabold grow break-all">Graphaello</span><a href="https://github.com/nerdsupremacist/Graphaello" target="_blank" rel="noreferrer"><svg xmlns="http://www.w3.org/2000/svg" width="30" fill="currentColor" viewBox="0 0 30 30"><path fill-rule="evenodd" d="M15.1.413a14.81 14.81 0 0 0-4.684 28.862c.742.138 1.012-.32 1.012-.712 0-.35-.013-1.283-.02-2.518-4.12.893-4.99-1.987-4.99-1.987-.675-1.71-1.643-2.165-1.643-2.165-1.345-.918.1-.9.1-.9 1.488.105 2.27 1.525 2.27 1.525 1.32 2.265 3.466 1.61 4.31 1.23.133-.955.515-1.608.94-1.978-3.29-.375-6.747-1.645-6.747-7.32 0-1.615.577-2.937 1.525-3.975-.15-.372-.66-1.88.145-3.917 0 0 1.242-.4 4.075 1.517a14.3 14.3 0 0 1 3.705-.5 14.2 14.2 0 0 1 3.707.5c2.826-1.915 4.068-1.517 4.068-1.517.807 2.037.3 3.545.15 3.92.95 1.035 1.52 2.357 1.52 3.975 0 5.687-3.462 6.94-6.76 7.305.53.457 1.005 1.36 1.005 2.742 0 1.98-.02 3.575-.02 4.063 0 .395.267.857 1.02.712A14.816 14.816 0 0 0 15.101.413" clip-rule="evenodd"></path></svg></a></div><div class="gap-2 flex roboto-mono"><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=swift-objective-c-ios">Swift / Objective-C</a><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=client">Client</a></div><span class="[&_a]:text-primary grow line-clamp-4 lg:text-lg">A Tool for Writing Declarative, Type-Safe and Data-Driven Applications in SwiftUI using GraphQL and Apollo</span><div class="flex items-center gap-5 max-md:text-xs [&>:not(:last-child)]:border-r [&>:not(:last-child)]:border-gray-500 [&>:not(:last-child)]:pr-5"><span>Last release <!-- -->2 years ago</span><span class="flex items-center gap-1"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="19" fill="currentColor" class="text-primary"><path d="m10 .5 2.997 5.874L19.51 7.41l-4.66 4.666 1.027 6.514L10 15.6l-5.878 2.99 1.028-6.514L.489 7.41l6.513-1.036z"></path></svg>492</span><span>MIT License</span></div></div></div><div class="border border-zinc-200 dark:border-[#414141] p-8 lg:p-12 bg-white dark:bg-neutral-800 rounded-none !p-0 h-max min-w-0"><div class="p-8 lg:p-12 flex flex-col gap-7 grow"><div class="flex items-center gap-6 [&_a:hover]:text-primary [&_a]:transition-colors"><span class="text-3xl font-extrabold grow break-all">gqt</span><a href="https://github.com/eerimoq/gqt" target="_blank" rel="noreferrer"><svg xmlns="http://www.w3.org/2000/svg" width="30" fill="currentColor" viewBox="0 0 30 30"><path fill-rule="evenodd" d="M15.1.413a14.81 14.81 0 0 0-4.684 28.862c.742.138 1.012-.32 1.012-.712 0-.35-.013-1.283-.02-2.518-4.12.893-4.99-1.987-4.99-1.987-.675-1.71-1.643-2.165-1.643-2.165-1.345-.918.1-.9.1-.9 1.488.105 2.27 1.525 2.27 1.525 1.32 2.265 3.466 1.61 4.31 1.23.133-.955.515-1.608.94-1.978-3.29-.375-6.747-1.645-6.747-7.32 0-1.615.577-2.937 1.525-3.975-.15-.372-.66-1.88.145-3.917 0 0 1.242-.4 4.075 1.517a14.3 14.3 0 0 1 3.705-.5 14.2 14.2 0 0 1 3.707.5c2.826-1.915 4.068-1.517 4.068-1.517.807 2.037.3 3.545.15 3.92.95 1.035 1.52 2.357 1.52 3.975 0 5.687-3.462 6.94-6.76 7.305.53.457 1.005 1.36 1.005 2.742 0 1.98-.02 3.575-.02 4.063 0 .395.267.857 1.02.712A14.816 14.816 0 0 0 15.101.413" clip-rule="evenodd"></path></svg></a></div><div class="gap-2 flex roboto-mono"><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=tools">Tools</a><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=general">General</a></div><span class="[&_a]:text-primary grow line-clamp-4 lg:text-lg">Build and execute GraphQL queries in the terminal.</span><div class="flex items-center gap-5 max-md:text-xs [&>:not(:last-child)]:border-r [&>:not(:last-child)]:border-gray-500 [&>:not(:last-child)]:pr-5"><span class="flex items-center gap-1"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="19" fill="currentColor" class="text-primary"><path d="m10 .5 2.997 5.874L19.51 7.41l-4.66 4.666 1.027 6.514L10 15.6l-5.878 2.99 1.028-6.514L.489 7.41l6.513-1.036z"></path></svg>464</span><span>MIT License</span></div></div><details class="bg-[#f0f0f0] dark:bg-[#2f2f2f]"><summary class="flex justify-between font-bold text-primary px-8 lg:px-12 py-5 dark:[[open]>&]:shadow-[-5px_10px_30px_20px_#1b1b1b4d] [[open]>&]:shadow-[0_6px_21px_0_#1b1b1b33] cursor-pointer">README<svg xmlns="http://www.w3.org/2000/svg" fill="currentColor" viewBox="0 0 15 15" class="size-5 -rotate-90 [[open]>*>&]:rotate-90 transition-transform"><path fill-rule="evenodd" d="M8.842 3.135a.5.5 0 0 1 .023.707L5.435 7.5l3.43 3.658a.5.5 0 0 1-.73.684l-3.75-4a.5.5 0 0 1 0-.684l3.75-4a.5.5 0 0 1 .707-.023" clip-rule="evenodd"></path></svg></summary><div class="px-8 lg:px-12 py-5"><p class="[&:not(:first-child)]:_mt-6 _leading-7">Run <code class="nextra-code" dir="ltr">gqt</code> against your GraphQL endpoint. Build your query in an intuitive TUI and execute it. The response from the server is written to standard output.</p> <div class="nextra-code _relative [&:not(:first-child)]:_mt-6"><pre class="_overflow-x-auto _subpixel-antialiased _text-[.9em] _bg-white dark:_bg-black _py-4 _ring-1 _ring-inset _ring-gray-300 dark:_ring-neutral-700 contrast-more:_ring-gray-900 contrast-more:dark:_ring-gray-50 contrast-more:_contrast-150 _rounded-md" tabindex="0"><code class="nextra-code" dir="ltr"><span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">gqt</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> -e</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> https://your.app.com/graphql</span></span></code></pre><div class="_opacity-0 _transition [div:hover>&]:_opacity-100 focus-within:_opacity-100 _flex _gap-1 _absolute _right-4 _top-2"><button class="_transition _rounded-md _p-1.5 _border _border-gray-300 dark:_border-neutral-700 contrast-more:_border-gray-900 contrast-more:dark:_border-gray-50 md:_hidden" title="Toggle word wrap"><svg viewBox="0 0 24 24" width="24" height="24" class="_h-4 _w-auto"><path fill="currentColor" d="M4 19h6v-2H4v2zM20 5H4v2h16V5zm-3 6H4v2h13.25c1.1 0 2 .9 2 2s-.9 2-2 2H15v-2l-3 3l3 3v-2h2c2.21 0 4-1.79 4-4s-1.79-4-4-4z"></path></svg></button></div></div></div></details></div><div class="border border-zinc-200 dark:border-[#414141] p-8 lg:p-12 bg-white dark:bg-neutral-800 rounded-none !p-0 h-max min-w-0"><div class="p-8 lg:p-12 flex flex-col gap-7 grow"><div class="flex items-center gap-6 [&_a:hover]:text-primary [&_a]:transition-colors"><span class="text-3xl font-extrabold grow break-all">regraph</span><a href="https://github.com/oliyh/re-graph" target="_blank" rel="noreferrer"><svg xmlns="http://www.w3.org/2000/svg" width="30" fill="currentColor" viewBox="0 0 30 30"><path fill-rule="evenodd" d="M15.1.413a14.81 14.81 0 0 0-4.684 28.862c.742.138 1.012-.32 1.012-.712 0-.35-.013-1.283-.02-2.518-4.12.893-4.99-1.987-4.99-1.987-.675-1.71-1.643-2.165-1.643-2.165-1.345-.918.1-.9.1-.9 1.488.105 2.27 1.525 2.27 1.525 1.32 2.265 3.466 1.61 4.31 1.23.133-.955.515-1.608.94-1.978-3.29-.375-6.747-1.645-6.747-7.32 0-1.615.577-2.937 1.525-3.975-.15-.372-.66-1.88.145-3.917 0 0 1.242-.4 4.075 1.517a14.3 14.3 0 0 1 3.705-.5 14.2 14.2 0 0 1 3.707.5c2.826-1.915 4.068-1.517 4.068-1.517.807 2.037.3 3.545.15 3.92.95 1.035 1.52 2.357 1.52 3.975 0 5.687-3.462 6.94-6.76 7.305.53.457 1.005 1.36 1.005 2.742 0 1.98-.02 3.575-.02 4.063 0 .395.267.857 1.02.712A14.816 14.816 0 0 0 15.101.413" clip-rule="evenodd"></path></svg></a></div><div class="gap-2 flex roboto-mono"><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=clojure">Clojure</a><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=client">Client</a></div><span class="[&_a]:text-primary grow line-clamp-4 lg:text-lg">A GraphQL client implemented in Clojurescript with support for websockets.</span><div class="flex items-center gap-5 max-md:text-xs [&>:not(:last-child)]:border-r [&>:not(:last-child)]:border-gray-500 [&>:not(:last-child)]:pr-5"><span>Last release <!-- -->2 years ago</span><span class="flex items-center gap-1"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="19" fill="currentColor" class="text-primary"><path d="m10 .5 2.997 5.874L19.51 7.41l-4.66 4.666 1.027 6.514L10 15.6l-5.878 2.99 1.028-6.514L.489 7.41l6.513-1.036z"></path></svg>462</span><span>Unknown</span></div></div></div><div class="border border-zinc-200 dark:border-[#414141] p-8 lg:p-12 bg-white dark:bg-neutral-800 rounded-none !p-0 h-max min-w-0"><div class="p-8 lg:p-12 flex flex-col gap-7 grow"><div class="flex items-center gap-6 [&_a:hover]:text-primary [&_a]:transition-colors"><span class="text-3xl font-extrabold grow break-all">GraphQL Live Query</span><a href="https://github.com/n1ru4l/graphql-live-query" target="_blank" rel="noreferrer"><svg xmlns="http://www.w3.org/2000/svg" width="30" fill="currentColor" viewBox="0 0 30 30"><path fill-rule="evenodd" d="M15.1.413a14.81 14.81 0 0 0-4.684 28.862c.742.138 1.012-.32 1.012-.712 0-.35-.013-1.283-.02-2.518-4.12.893-4.99-1.987-4.99-1.987-.675-1.71-1.643-2.165-1.643-2.165-1.345-.918.1-.9.1-.9 1.488.105 2.27 1.525 2.27 1.525 1.32 2.265 3.466 1.61 4.31 1.23.133-.955.515-1.608.94-1.978-3.29-.375-6.747-1.645-6.747-7.32 0-1.615.577-2.937 1.525-3.975-.15-.372-.66-1.88.145-3.917 0 0 1.242-.4 4.075 1.517a14.3 14.3 0 0 1 3.705-.5 14.2 14.2 0 0 1 3.707.5c2.826-1.915 4.068-1.517 4.068-1.517.807 2.037.3 3.545.15 3.92.95 1.035 1.52 2.357 1.52 3.975 0 5.687-3.462 6.94-6.76 7.305.53.457 1.005 1.36 1.005 2.742 0 1.98-.02 3.575-.02 4.063 0 .395.267.857 1.02.712A14.816 14.816 0 0 0 15.101.413" clip-rule="evenodd"></path></svg></a><a href="https://npmjs.com/package/@n1ru4l/graphql-live-query" target="_blank" rel="noreferrer"><svg xmlns="http://www.w3.org/2000/svg" width="30" height="30" fill="currentColor"><path fill-rule="evenodd" d="M0 0v30h30V0zm24.375 5.625H5.625v18.75H15v-15h5.625v15h3.75z" clip-rule="evenodd"></path></svg></a></div><div class="gap-2 flex roboto-mono"><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=javascript">JavaScript</a><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=tools">Tools</a></div><span class="[&_a]:text-primary grow line-clamp-4 lg:text-lg">Real-Time with GraphQL for any GraphQL schema or transport.</span><div class="flex items-center gap-5 max-md:text-xs [&>:not(:last-child)]:border-r [&>:not(:last-child)]:border-gray-500 [&>:not(:last-child)]:pr-5"><span>Last release <!-- -->2 years ago</span><span class="flex items-center gap-1"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="19" fill="currentColor" class="text-primary"><path d="m10 .5 2.997 5.874L19.51 7.41l-4.66 4.666 1.027 6.514L10 15.6l-5.878 2.99 1.028-6.514L.489 7.41l6.513-1.036z"></path></svg>437</span><span>MIT License</span></div></div></div><div class="border border-zinc-200 dark:border-[#414141] p-8 lg:p-12 bg-white dark:bg-neutral-800 rounded-none !p-0 h-max min-w-0"><div class="p-8 lg:p-12 flex flex-col gap-7 grow"><div class="flex items-center gap-6 [&_a:hover]:text-primary [&_a]:transition-colors"><span class="text-3xl font-extrabold grow break-all">Hive</span><a href="https://the-guild.dev/graphql/hive" target="_blank" rel="noreferrer"><svg xmlns="http://www.w3.org/2000/svg" fill="currentColor" viewBox="0 0 24 24"><path d="M23.332 15.948C23.764 14.711 24 13.383 24 12a12 12 0 0 0-.706-4.056C21.627 3.317 17.194 0 12 0S2.373 3.317.706 7.944A11.949 11.949 0 0 0 0 12a12 12 0 0 0 .706 4.056C2.373 20.683 6.806 24 12 24s9.627-3.317 11.294-7.944a1 1 0 0 0 .038-.108M12 22.28c-.457 0-1.194-.827-1.81-2.675a19 19 0 0 1-.708-3.031h5.036a19 19 0 0 1-.708 3.031c-.616 1.848-1.353 2.675-1.81 2.675m-2.727-7.427A32 32 0 0 1 9.147 12c0-.98.043-1.936.126-2.853h5.454c.083.917.126 1.874.126 2.853s-.043 1.936-.126 2.854zM1.72 12c0-.99.141-1.947.403-2.853h5.425a33.5 33.5 0 0 0 0 5.707H2.123A10.3 10.3 0 0 1 1.72 12M12 1.72c.457 0 1.194.827 1.81 2.675.297.892.535 1.917.708 3.032H9.482c.173-1.115.411-2.14.708-3.032.616-1.848 1.353-2.675 1.81-2.675m4.452 7.427h5.425c.262.906.403 1.864.403 2.853s-.141 1.947-.403 2.854h-5.425a33.5 33.5 0 0 0 0-5.707m4.752-1.72h-4.95c-.305-2.11-.83-4.003-1.566-5.35 2.855.775 5.22 2.75 6.516 5.35M9.313 2.077c-.736 1.347-1.261 3.24-1.567 5.35h-4.95a10.33 10.33 0 0 1 6.517-5.35M2.795 16.574h4.95c.306 2.11.83 4.002 1.567 5.349a10.33 10.33 0 0 1-6.517-5.35m11.893 5.349c.736-1.347 1.261-3.24 1.567-5.35h4.95a10.33 10.33 0 0 1-6.517 5.35"></path></svg></a><a href="https://github.com/graphql-hive/platform" target="_blank" rel="noreferrer"><svg xmlns="http://www.w3.org/2000/svg" width="30" fill="currentColor" viewBox="0 0 30 30"><path fill-rule="evenodd" d="M15.1.413a14.81 14.81 0 0 0-4.684 28.862c.742.138 1.012-.32 1.012-.712 0-.35-.013-1.283-.02-2.518-4.12.893-4.99-1.987-4.99-1.987-.675-1.71-1.643-2.165-1.643-2.165-1.345-.918.1-.9.1-.9 1.488.105 2.27 1.525 2.27 1.525 1.32 2.265 3.466 1.61 4.31 1.23.133-.955.515-1.608.94-1.978-3.29-.375-6.747-1.645-6.747-7.32 0-1.615.577-2.937 1.525-3.975-.15-.372-.66-1.88.145-3.917 0 0 1.242-.4 4.075 1.517a14.3 14.3 0 0 1 3.705-.5 14.2 14.2 0 0 1 3.707.5c2.826-1.915 4.068-1.517 4.068-1.517.807 2.037.3 3.545.15 3.92.95 1.035 1.52 2.357 1.52 3.975 0 5.687-3.462 6.94-6.76 7.305.53.457 1.005 1.36 1.005 2.742 0 1.98-.02 3.575-.02 4.063 0 .395.267.857 1.02.712A14.816 14.816 0 0 0 15.101.413" clip-rule="evenodd"></path></svg></a></div><div class="gap-2 flex roboto-mono"><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=services">Services</a></div><span class="[&_a]:text-primary grow line-clamp-4 lg:text-lg">Hive is a fully open-source schema registry, analytics and gateway for GraphQL federation and other GraphQL APIs.</span><div class="flex items-center gap-5 max-md:text-xs [&>:not(:last-child)]:border-r [&>:not(:last-child)]:border-gray-500 [&>:not(:last-child)]:pr-5"><span>Last release <!-- -->1 week ago</span><span class="flex items-center gap-1"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="19" fill="currentColor" class="text-primary"><path d="m10 .5 2.997 5.874L19.51 7.41l-4.66 4.666 1.027 6.514L10 15.6l-5.878 2.99 1.028-6.514L.489 7.41l6.513-1.036z"></path></svg>427</span><span>MIT License</span></div></div></div><div class="border border-zinc-200 dark:border-[#414141] p-8 lg:p-12 bg-white dark:bg-neutral-800 rounded-none !p-0 h-max min-w-0"><div class="p-8 lg:p-12 flex flex-col gap-7 grow"><div class="flex items-center gap-6 [&_a:hover]:text-primary [&_a]:transition-colors"><span class="text-3xl font-extrabold grow break-all">graphql-relay-go</span><a href="https://github.com/graphql-go/relay" target="_blank" rel="noreferrer"><svg xmlns="http://www.w3.org/2000/svg" width="30" fill="currentColor" viewBox="0 0 30 30"><path fill-rule="evenodd" d="M15.1.413a14.81 14.81 0 0 0-4.684 28.862c.742.138 1.012-.32 1.012-.712 0-.35-.013-1.283-.02-2.518-4.12.893-4.99-1.987-4.99-1.987-.675-1.71-1.643-2.165-1.643-2.165-1.345-.918.1-.9.1-.9 1.488.105 2.27 1.525 2.27 1.525 1.32 2.265 3.466 1.61 4.31 1.23.133-.955.515-1.608.94-1.978-3.29-.375-6.747-1.645-6.747-7.32 0-1.615.577-2.937 1.525-3.975-.15-.372-.66-1.88.145-3.917 0 0 1.242-.4 4.075 1.517a14.3 14.3 0 0 1 3.705-.5 14.2 14.2 0 0 1 3.707.5c2.826-1.915 4.068-1.517 4.068-1.517.807 2.037.3 3.545.15 3.92.95 1.035 1.52 2.357 1.52 3.975 0 5.687-3.462 6.94-6.76 7.305.53.457 1.005 1.36 1.005 2.742 0 1.98-.02 3.575-.02 4.063 0 .395.267.857 1.02.712A14.816 14.816 0 0 0 15.101.413" clip-rule="evenodd"></path></svg></a></div><div class="gap-2 flex roboto-mono"><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=go">Go</a><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=server">Server</a></div><span class="[&_a]:text-primary grow line-clamp-4 lg:text-lg">A Go/Golang library to help construct a graphql-go server supporting react-relay.</span><div class="flex items-center gap-5 max-md:text-xs [&>:not(:last-child)]:border-r [&>:not(:last-child)]:border-gray-500 [&>:not(:last-child)]:pr-5"><span class="flex items-center gap-1"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="19" fill="currentColor" class="text-primary"><path d="m10 .5 2.997 5.874L19.51 7.41l-4.66 4.666 1.027 6.514L10 15.6l-5.878 2.99 1.028-6.514L.489 7.41l6.513-1.036z"></path></svg>424</span><span>MIT License</span></div></div></div><div class="border border-zinc-200 dark:border-[#414141] p-8 lg:p-12 bg-white dark:bg-neutral-800 rounded-none !p-0 h-max min-w-0"><div class="p-8 lg:p-12 flex flex-col gap-7 grow"><div class="flex items-center gap-6 [&_a:hover]:text-primary [&_a]:transition-colors"><span class="text-3xl font-extrabold grow break-all">nanographql</span><a href="https://github.com/choojs/nanographql" target="_blank" rel="noreferrer"><svg xmlns="http://www.w3.org/2000/svg" width="30" fill="currentColor" viewBox="0 0 30 30"><path fill-rule="evenodd" d="M15.1.413a14.81 14.81 0 0 0-4.684 28.862c.742.138 1.012-.32 1.012-.712 0-.35-.013-1.283-.02-2.518-4.12.893-4.99-1.987-4.99-1.987-.675-1.71-1.643-2.165-1.643-2.165-1.345-.918.1-.9.1-.9 1.488.105 2.27 1.525 2.27 1.525 1.32 2.265 3.466 1.61 4.31 1.23.133-.955.515-1.608.94-1.978-3.29-.375-6.747-1.645-6.747-7.32 0-1.615.577-2.937 1.525-3.975-.15-.372-.66-1.88.145-3.917 0 0 1.242-.4 4.075 1.517a14.3 14.3 0 0 1 3.705-.5 14.2 14.2 0 0 1 3.707.5c2.826-1.915 4.068-1.517 4.068-1.517.807 2.037.3 3.545.15 3.92.95 1.035 1.52 2.357 1.52 3.975 0 5.687-3.462 6.94-6.76 7.305.53.457 1.005 1.36 1.005 2.742 0 1.98-.02 3.575-.02 4.063 0 .395.267.857 1.02.712A14.816 14.816 0 0 0 15.101.413" clip-rule="evenodd"></path></svg></a><a href="https://npmjs.com/package/nanographql" target="_blank" rel="noreferrer"><svg xmlns="http://www.w3.org/2000/svg" width="30" height="30" fill="currentColor"><path fill-rule="evenodd" d="M0 0v30h30V0zm24.375 5.625H5.625v18.75H15v-15h5.625v15h3.75z" clip-rule="evenodd"></path></svg></a></div><div class="gap-2 flex roboto-mono"><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=javascript">JavaScript</a><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=client">Client</a></div><span class="[&_a]:text-primary grow line-clamp-4 lg:text-lg">Tiny GraphQL client library using template strings.</span><div class="flex items-center gap-5 max-md:text-xs [&>:not(:last-child)]:border-r [&>:not(:last-child)]:border-gray-500 [&>:not(:last-child)]:pr-5"><span class="flex items-center gap-1"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="19" fill="currentColor" class="text-primary"><path d="m10 .5 2.997 5.874L19.51 7.41l-4.66 4.666 1.027 6.514L10 15.6l-5.878 2.99 1.028-6.514L.489 7.41l6.513-1.036z"></path></svg>422</span><span>MIT License</span></div></div></div><div class="border border-zinc-200 dark:border-[#414141] p-8 lg:p-12 bg-white dark:bg-neutral-800 rounded-none !p-0 h-max min-w-0"><div class="p-8 lg:p-12 flex flex-col gap-7 grow"><div class="flex items-center gap-6 [&_a:hover]:text-primary [&_a]:transition-colors"><span class="text-3xl font-extrabold grow break-all">GraphQL Language Service</span><a href="https://github.com/graphql/graphql-language-service" target="_blank" rel="noreferrer"><svg xmlns="http://www.w3.org/2000/svg" width="30" fill="currentColor" viewBox="0 0 30 30"><path fill-rule="evenodd" d="M15.1.413a14.81 14.81 0 0 0-4.684 28.862c.742.138 1.012-.32 1.012-.712 0-.35-.013-1.283-.02-2.518-4.12.893-4.99-1.987-4.99-1.987-.675-1.71-1.643-2.165-1.643-2.165-1.345-.918.1-.9.1-.9 1.488.105 2.27 1.525 2.27 1.525 1.32 2.265 3.466 1.61 4.31 1.23.133-.955.515-1.608.94-1.978-3.29-.375-6.747-1.645-6.747-7.32 0-1.615.577-2.937 1.525-3.975-.15-.372-.66-1.88.145-3.917 0 0 1.242-.4 4.075 1.517a14.3 14.3 0 0 1 3.705-.5 14.2 14.2 0 0 1 3.707.5c2.826-1.915 4.068-1.517 4.068-1.517.807 2.037.3 3.545.15 3.92.95 1.035 1.52 2.357 1.52 3.975 0 5.687-3.462 6.94-6.76 7.305.53.457 1.005 1.36 1.005 2.742 0 1.98-.02 3.575-.02 4.063 0 .395.267.857 1.02.712A14.816 14.816 0 0 0 15.101.413" clip-rule="evenodd"></path></svg></a><a href="https://npmjs.com/package/graphql-language-service" target="_blank" rel="noreferrer"><svg xmlns="http://www.w3.org/2000/svg" width="30" height="30" fill="currentColor"><path fill-rule="evenodd" d="M0 0v30h30V0zm24.375 5.625H5.625v18.75H15v-15h5.625v15h3.75z" clip-rule="evenodd"></path></svg></a></div><div class="gap-2 flex roboto-mono"><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=javascript">JavaScript</a><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=tools">Tools</a></div><span class="[&_a]:text-primary grow line-clamp-4 lg:text-lg">An interface for building GraphQL language services for IDEs (diagnostics, autocomplete etc).</span><div class="flex items-center gap-5 max-md:text-xs [&>:not(:last-child)]:border-r [&>:not(:last-child)]:border-gray-500 [&>:not(:last-child)]:pr-5"><span class="flex items-center gap-1"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="19" fill="currentColor" class="text-primary"><path d="m10 .5 2.997 5.874L19.51 7.41l-4.66 4.666 1.027 6.514L10 15.6l-5.878 2.99 1.028-6.514L.489 7.41l6.513-1.036z"></path></svg>420</span><span>Unknown</span></div></div></div><div class="border border-zinc-200 dark:border-[#414141] p-8 lg:p-12 bg-white dark:bg-neutral-800 rounded-none !p-0 h-max min-w-0"><div class="p-8 lg:p-12 flex flex-col gap-7 grow"><div class="flex items-center gap-6 [&_a:hover]:text-primary [&_a]:transition-colors"><span class="text-3xl font-extrabold grow break-all">Entity GraphQL</span><a href="https://entitygraphql.github.io" target="_blank" rel="noreferrer"><svg xmlns="http://www.w3.org/2000/svg" fill="currentColor" viewBox="0 0 24 24"><path d="M23.332 15.948C23.764 14.711 24 13.383 24 12a12 12 0 0 0-.706-4.056C21.627 3.317 17.194 0 12 0S2.373 3.317.706 7.944A11.949 11.949 0 0 0 0 12a12 12 0 0 0 .706 4.056C2.373 20.683 6.806 24 12 24s9.627-3.317 11.294-7.944a1 1 0 0 0 .038-.108M12 22.28c-.457 0-1.194-.827-1.81-2.675a19 19 0 0 1-.708-3.031h5.036a19 19 0 0 1-.708 3.031c-.616 1.848-1.353 2.675-1.81 2.675m-2.727-7.427A32 32 0 0 1 9.147 12c0-.98.043-1.936.126-2.853h5.454c.083.917.126 1.874.126 2.853s-.043 1.936-.126 2.854zM1.72 12c0-.99.141-1.947.403-2.853h5.425a33.5 33.5 0 0 0 0 5.707H2.123A10.3 10.3 0 0 1 1.72 12M12 1.72c.457 0 1.194.827 1.81 2.675.297.892.535 1.917.708 3.032H9.482c.173-1.115.411-2.14.708-3.032.616-1.848 1.353-2.675 1.81-2.675m4.452 7.427h5.425c.262.906.403 1.864.403 2.853s-.141 1.947-.403 2.854h-5.425a33.5 33.5 0 0 0 0-5.707m4.752-1.72h-4.95c-.305-2.11-.83-4.003-1.566-5.35 2.855.775 5.22 2.75 6.516 5.35M9.313 2.077c-.736 1.347-1.261 3.24-1.567 5.35h-4.95a10.33 10.33 0 0 1 6.517-5.35M2.795 16.574h4.95c.306 2.11.83 4.002 1.567 5.349a10.33 10.33 0 0 1-6.517-5.35m11.893 5.349c.736-1.347 1.261-3.24 1.567-5.35h4.95a10.33 10.33 0 0 1-6.517 5.35"></path></svg></a><a href="https://github.com/EntityGraphQL/EntityGraphQL" target="_blank" rel="noreferrer"><svg xmlns="http://www.w3.org/2000/svg" width="30" fill="currentColor" viewBox="0 0 30 30"><path fill-rule="evenodd" d="M15.1.413a14.81 14.81 0 0 0-4.684 28.862c.742.138 1.012-.32 1.012-.712 0-.35-.013-1.283-.02-2.518-4.12.893-4.99-1.987-4.99-1.987-.675-1.71-1.643-2.165-1.643-2.165-1.345-.918.1-.9.1-.9 1.488.105 2.27 1.525 2.27 1.525 1.32 2.265 3.466 1.61 4.31 1.23.133-.955.515-1.608.94-1.978-3.29-.375-6.747-1.645-6.747-7.32 0-1.615.577-2.937 1.525-3.975-.15-.372-.66-1.88.145-3.917 0 0 1.242-.4 4.075 1.517a14.3 14.3 0 0 1 3.705-.5 14.2 14.2 0 0 1 3.707.5c2.826-1.915 4.068-1.517 4.068-1.517.807 2.037.3 3.545.15 3.92.95 1.035 1.52 2.357 1.52 3.975 0 5.687-3.462 6.94-6.76 7.305.53.457 1.005 1.36 1.005 2.742 0 1.98-.02 3.575-.02 4.063 0 .395.267.857 1.02.712A14.816 14.816 0 0 0 15.101.413" clip-rule="evenodd"></path></svg></a></div><div class="gap-2 flex roboto-mono"><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=c-net">C# / .NET</a><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=server">Server</a></div><span class="[&_a]:text-primary grow line-clamp-4 lg:text-lg">A GraphQL library for .NET Core. Easily expose you data model as a GraphQL API or bring together multiple data sources into a single GraphQL schema.</span><div class="flex items-center gap-5 max-md:text-xs [&>:not(:last-child)]:border-r [&>:not(:last-child)]:border-gray-500 [&>:not(:last-child)]:pr-5"><span>Last release <!-- -->1 day ago</span><span class="flex items-center gap-1"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="19" fill="currentColor" class="text-primary"><path d="m10 .5 2.997 5.874L19.51 7.41l-4.66 4.666 1.027 6.514L10 15.6l-5.878 2.99 1.028-6.514L.489 7.41l6.513-1.036z"></path></svg>417</span><span>MIT License</span></div></div><details class="bg-[#f0f0f0] dark:bg-[#2f2f2f]"><summary class="flex justify-between font-bold text-primary px-8 lg:px-12 py-5 dark:[[open]>&]:shadow-[-5px_10px_30px_20px_#1b1b1b4d] [[open]>&]:shadow-[0_6px_21px_0_#1b1b1b33] cursor-pointer">README<svg xmlns="http://www.w3.org/2000/svg" fill="currentColor" viewBox="0 0 15 15" class="size-5 -rotate-90 [[open]>*>&]:rotate-90 transition-transform"><path fill-rule="evenodd" d="M8.842 3.135a.5.5 0 0 1 .023.707L5.435 7.5l3.43 3.658a.5.5 0 0 1-.73.684l-3.75-4a.5.5 0 0 1 0-.684l3.75-4a.5.5 0 0 1 .707-.023" clip-rule="evenodd"></path></svg></summary><div class="px-8 lg:px-12 py-5"><div class="nextra-code _relative [&:not(:first-child)]:_mt-6"><pre class="_overflow-x-auto _subpixel-antialiased _text-[.9em] _bg-white dark:_bg-black _py-4 _ring-1 _ring-inset _ring-gray-300 dark:_ring-neutral-700 contrast-more:_ring-gray-900 contrast-more:dark:_ring-gray-50 contrast-more:_contrast-150 _rounded-md" tabindex="0"><code class="nextra-code" dir="ltr"><span><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D">// expose an existing data model with ASP.NET & EF Core</span></span> <span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">public</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> class</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> Startup</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> {</span></span> <span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> public</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> void</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> ConfigureServices</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">IServiceCollection</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> services</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">)</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> {</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> services.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">AddDbContext</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"><</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">DemoContext</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">>();</span></span> <span><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D"> // Auto build a schema from DemoContext. Alternatively you can build one from scratch</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> services.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">AddGraphQLSchema</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"><</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">DemoContext</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">>(</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">options</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> =></span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> {</span></span> <span><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D"> // modify the schema (add/remove fields or types), add other services</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> });</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> }</span></span> <span> </span> <span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> public</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> void</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> Configure</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">IApplicationBuilder</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> app</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">, </span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">DemoContext</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> db</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">)</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> {</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> app.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">UseRouting</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">();</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> app.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">UseEndpoints</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">endpoints</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> =></span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> {</span></span> <span><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D"> // defaults to /graphql endpoint</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> endpoints.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">MapGraphQL</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"><</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">DemoContext</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">>();</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> });</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> }</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">}</span></span></code></pre><div class="_opacity-0 _transition [div:hover>&]:_opacity-100 focus-within:_opacity-100 _flex _gap-1 _absolute _right-4 _top-2"><button class="_transition _rounded-md _p-1.5 _border _border-gray-300 dark:_border-neutral-700 contrast-more:_border-gray-900 contrast-more:dark:_border-gray-50 md:_hidden" title="Toggle word wrap"><svg viewBox="0 0 24 24" width="24" height="24" class="_h-4 _w-auto"><path fill="currentColor" d="M4 19h6v-2H4v2zM20 5H4v2h16V5zm-3 6H4v2h13.25c1.1 0 2 .9 2 2s-.9 2-2 2H15v-2l-3 3l3 3v-2h2c2.21 0 4-1.79 4-4s-1.79-4-4-4z"></path></svg></button></div></div></div></details></div><div class="border border-zinc-200 dark:border-[#414141] p-8 lg:p-12 bg-white dark:bg-neutral-800 rounded-none !p-0 h-max min-w-0"><div class="p-8 lg:p-12 flex flex-col gap-7 grow"><div class="flex items-center gap-6 [&_a:hover]:text-primary [&_a]:transition-colors"><span class="text-3xl font-extrabold grow break-all">morpheus-graphql-client</span><a href="https://github.com/morpheusgraphql/morpheus-graphql" target="_blank" rel="noreferrer"><svg xmlns="http://www.w3.org/2000/svg" width="30" fill="currentColor" viewBox="0 0 30 30"><path fill-rule="evenodd" d="M15.1.413a14.81 14.81 0 0 0-4.684 28.862c.742.138 1.012-.32 1.012-.712 0-.35-.013-1.283-.02-2.518-4.12.893-4.99-1.987-4.99-1.987-.675-1.71-1.643-2.165-1.643-2.165-1.345-.918.1-.9.1-.9 1.488.105 2.27 1.525 2.27 1.525 1.32 2.265 3.466 1.61 4.31 1.23.133-.955.515-1.608.94-1.978-3.29-.375-6.747-1.645-6.747-7.32 0-1.615.577-2.937 1.525-3.975-.15-.372-.66-1.88.145-3.917 0 0 1.242-.4 4.075 1.517a14.3 14.3 0 0 1 3.705-.5 14.2 14.2 0 0 1 3.707.5c2.826-1.915 4.068-1.517 4.068-1.517.807 2.037.3 3.545.15 3.92.95 1.035 1.52 2.357 1.52 3.975 0 5.687-3.462 6.94-6.76 7.305.53.457 1.005 1.36 1.005 2.742 0 1.98-.02 3.575-.02 4.063 0 .395.267.857 1.02.712A14.816 14.816 0 0 0 15.101.413" clip-rule="evenodd"></path></svg></a></div><div class="gap-2 flex roboto-mono"><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=haskell">Haskell</a><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=client">Client</a></div><span class="[&_a]:text-primary grow line-clamp-4 lg:text-lg">A strongly-typed GraphQL client implementation in Haksell.</span><div class="flex items-center gap-5 max-md:text-xs [&>:not(:last-child)]:border-r [&>:not(:last-child)]:border-gray-500 [&>:not(:last-child)]:pr-5"><span>Last release <!-- -->5 months ago</span><span class="flex items-center gap-1"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="19" fill="currentColor" class="text-primary"><path d="m10 .5 2.997 5.874L19.51 7.41l-4.66 4.666 1.027 6.514L10 15.6l-5.878 2.99 1.028-6.514L.489 7.41l6.513-1.036z"></path></svg>412</span><span>MIT License</span></div></div></div><div class="border border-zinc-200 dark:border-[#414141] p-8 lg:p-12 bg-white dark:bg-neutral-800 rounded-none !p-0 h-max min-w-0"><div class="p-8 lg:p-12 flex flex-col gap-7 grow"><div class="flex items-center gap-6 [&_a:hover]:text-primary [&_a]:transition-colors"><span class="text-3xl font-extrabold grow break-all">Morpheus GraphQL</span><a href="https://github.com/morpheusgraphql/morpheus-graphql" target="_blank" rel="noreferrer"><svg xmlns="http://www.w3.org/2000/svg" width="30" fill="currentColor" viewBox="0 0 30 30"><path fill-rule="evenodd" d="M15.1.413a14.81 14.81 0 0 0-4.684 28.862c.742.138 1.012-.32 1.012-.712 0-.35-.013-1.283-.02-2.518-4.12.893-4.99-1.987-4.99-1.987-.675-1.71-1.643-2.165-1.643-2.165-1.345-.918.1-.9.1-.9 1.488.105 2.27 1.525 2.27 1.525 1.32 2.265 3.466 1.61 4.31 1.23.133-.955.515-1.608.94-1.978-3.29-.375-6.747-1.645-6.747-7.32 0-1.615.577-2.937 1.525-3.975-.15-.372-.66-1.88.145-3.917 0 0 1.242-.4 4.075 1.517a14.3 14.3 0 0 1 3.705-.5 14.2 14.2 0 0 1 3.707.5c2.826-1.915 4.068-1.517 4.068-1.517.807 2.037.3 3.545.15 3.92.95 1.035 1.52 2.357 1.52 3.975 0 5.687-3.462 6.94-6.76 7.305.53.457 1.005 1.36 1.005 2.742 0 1.98-.02 3.575-.02 4.063 0 .395.267.857 1.02.712A14.816 14.816 0 0 0 15.101.413" clip-rule="evenodd"></path></svg></a></div><div class="gap-2 flex roboto-mono"><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=haskell">Haskell</a><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=server">Server</a></div><span class="[&_a]:text-primary grow line-clamp-4 lg:text-lg">A Haskell library for building GraphQL APIs.</span><div class="flex items-center gap-5 max-md:text-xs [&>:not(:last-child)]:border-r [&>:not(:last-child)]:border-gray-500 [&>:not(:last-child)]:pr-5"><span>Last release <!-- -->5 months ago</span><span class="flex items-center gap-1"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="19" fill="currentColor" class="text-primary"><path d="m10 .5 2.997 5.874L19.51 7.41l-4.66 4.666 1.027 6.514L10 15.6l-5.878 2.99 1.028-6.514L.489 7.41l6.513-1.036z"></path></svg>412</span><span>MIT License</span></div></div><details class="bg-[#f0f0f0] dark:bg-[#2f2f2f]"><summary class="flex justify-between font-bold text-primary px-8 lg:px-12 py-5 dark:[[open]>&]:shadow-[-5px_10px_30px_20px_#1b1b1b4d] [[open]>&]:shadow-[0_6px_21px_0_#1b1b1b33] cursor-pointer">README<svg xmlns="http://www.w3.org/2000/svg" fill="currentColor" viewBox="0 0 15 15" class="size-5 -rotate-90 [[open]>*>&]:rotate-90 transition-transform"><path fill-rule="evenodd" d="M8.842 3.135a.5.5 0 0 1 .023.707L5.435 7.5l3.43 3.658a.5.5 0 0 1-.73.684l-3.75-4a.5.5 0 0 1 0-.684l3.75-4a.5.5 0 0 1 .707-.023" clip-rule="evenodd"></path></svg></summary><div class="px-8 lg:px-12 py-5"><p class="[&:not(:first-child)]:_mt-6 _leading-7">Hello world example with <code class="nextra-code" dir="ltr">morpheus-graphql</code>:</p> <div class="nextra-code _relative [&:not(:first-child)]:_mt-6"><pre class="_overflow-x-auto _subpixel-antialiased _text-[.9em] _bg-white dark:_bg-black _py-4 _ring-1 _ring-inset _ring-gray-300 dark:_ring-neutral-700 contrast-more:_ring-gray-900 contrast-more:dark:_ring-gray-50 contrast-more:_contrast-150 _rounded-md" tabindex="0"><code class="nextra-code" dir="ltr"><span><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D"># schema.gql</span></span> <span><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D">"""</span></span> <span><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D">A supernatural being considered divine and sacred</span></span> <span><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D">"""</span></span> <span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">type</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> Deity</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> {</span></span> <span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70"> name</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">: </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">String</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">!</span></span> <span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70"> power</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">: </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">String</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> @deprecated</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(</span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70">reason</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">"no more supported"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">)</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">}</span></span> <span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">type</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> Query</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> {</span></span> <span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70"> deity</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(</span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70">name</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">: </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">String</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">!</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> = </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">"Morpheus"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">): </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">Deity</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">!</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">}</span></span></code></pre><div class="_opacity-0 _transition [div:hover>&]:_opacity-100 focus-within:_opacity-100 _flex _gap-1 _absolute _right-4 _top-2"><button class="_transition _rounded-md _p-1.5 _border _border-gray-300 dark:_border-neutral-700 contrast-more:_border-gray-900 contrast-more:dark:_border-gray-50 md:_hidden" title="Toggle word wrap"><svg viewBox="0 0 24 24" width="24" height="24" class="_h-4 _w-auto"><path fill="currentColor" d="M4 19h6v-2H4v2zM20 5H4v2h16V5zm-3 6H4v2h13.25c1.1 0 2 .9 2 2s-.9 2-2 2H15v-2l-3 3l3 3v-2h2c2.21 0 4-1.79 4-4s-1.79-4-4-4z"></path></svg></button></div></div> <div class="nextra-code _relative [&:not(:first-child)]:_mt-6"><pre class="_overflow-x-auto _subpixel-antialiased _text-[.9em] _bg-white dark:_bg-black _py-4 _ring-1 _ring-inset _ring-gray-300 dark:_ring-neutral-700 contrast-more:_ring-gray-900 contrast-more:dark:_ring-gray-50 contrast-more:_contrast-150 _rounded-md" tabindex="0"><code class="nextra-code" dir="ltr"><span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">{-# </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">LANGUAGE</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> DeriveGeneric</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> #-}</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">{-# </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">LANGUAGE</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> DuplicateRecordFields</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> #-}</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">{-# </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">LANGUAGE</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> FlexibleContexts</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> #-}</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">{-# </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">LANGUAGE</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> FlexibleInstances</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> #-}</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">{-# </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">LANGUAGE</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> MultiParamTypeClasses</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> #-}</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">{-# </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">LANGUAGE</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> NamedFieldPuns</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> #-}</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">{-# </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">LANGUAGE</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> OverloadedStrings</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> #-}</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">{-# </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">LANGUAGE</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> ScopedTypeVariables</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> #-}</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">{-# </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">LANGUAGE</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> TemplateHaskell</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> #-}</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">{-# </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">LANGUAGE</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> TypeFamilies</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> #-}</span></span> <span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">module</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> API</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> (</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">api</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">) </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">where</span></span> <span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">import</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> Data.ByteString.Lazy.Char8</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> (</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">ByteString</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">)</span></span> <span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">import</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> Data.Morpheus</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> (</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">interpreter</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">)</span></span> <span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">import</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> Data.Morpheus.Document</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> (</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">importGQLDocument</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">)</span></span> <span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">import</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> Data.Morpheus.Types</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> (</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">RootResolver</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> (..), </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">Undefined</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> (..))</span></span> <span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">import</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> Data.Text</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> (</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">Text</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">)</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">importGQLDocument </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">"schema.gql"</span></span> <span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">rootResolver</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> ::</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> RootResolver</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> IO</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> ()</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> Query</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> Undefined</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> Undefined</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">rootResolver </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span></span> <span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> RootResolver</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> { queryResolver </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> Query</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> {deity},</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> mutationResolver </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> Undefined</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">,</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> subscriptionResolver </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> Undefined</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> }</span></span> <span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> where</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> deity </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">DeityArgs</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> {name} </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> pure</span></span> <span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> Deity</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> { name </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> pure name,</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> power </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> pure (</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">Just</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> "Shapeshifting"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">)</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> }</span></span> <span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">api</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> ::</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> ByteString</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> -></span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> IO</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> ByteString</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">api </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> interpreter rootResolver</span></span></code></pre><div class="_opacity-0 _transition [div:hover>&]:_opacity-100 focus-within:_opacity-100 _flex _gap-1 _absolute _right-4 _top-2"><button class="_transition _rounded-md _p-1.5 _border _border-gray-300 dark:_border-neutral-700 contrast-more:_border-gray-900 contrast-more:dark:_border-gray-50 md:_hidden" title="Toggle word wrap"><svg viewBox="0 0 24 24" width="24" height="24" class="_h-4 _w-auto"><path fill="currentColor" d="M4 19h6v-2H4v2zM20 5H4v2h16V5zm-3 6H4v2h13.25c1.1 0 2 .9 2 2s-.9 2-2 2H15v-2l-3 3l3 3v-2h2c2.21 0 4-1.79 4-4s-1.79-4-4-4z"></path></svg></button></div></div> <p class="[&:not(:first-child)]:_mt-6 _leading-7">See <a href="https://github.com/morpheusgraphql/morpheus-graphql" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">morpheus-graphql-examples</a> for more sophisticated APIs.</p></div></details></div><div class="border border-zinc-200 dark:border-[#414141] p-8 lg:p-12 bg-white dark:bg-neutral-800 rounded-none !p-0 h-max min-w-0"><div class="p-8 lg:p-12 flex flex-col gap-7 grow"><div class="flex items-center gap-6 [&_a:hover]:text-primary [&_a]:transition-colors"><span class="text-3xl font-extrabold grow break-all">go-graphql-client</span><a href="https://github.com/hasura/go-graphql-client" target="_blank" rel="noreferrer"><svg xmlns="http://www.w3.org/2000/svg" width="30" fill="currentColor" viewBox="0 0 30 30"><path fill-rule="evenodd" d="M15.1.413a14.81 14.81 0 0 0-4.684 28.862c.742.138 1.012-.32 1.012-.712 0-.35-.013-1.283-.02-2.518-4.12.893-4.99-1.987-4.99-1.987-.675-1.71-1.643-2.165-1.643-2.165-1.345-.918.1-.9.1-.9 1.488.105 2.27 1.525 2.27 1.525 1.32 2.265 3.466 1.61 4.31 1.23.133-.955.515-1.608.94-1.978-3.29-.375-6.747-1.645-6.747-7.32 0-1.615.577-2.937 1.525-3.975-.15-.372-.66-1.88.145-3.917 0 0 1.242-.4 4.075 1.517a14.3 14.3 0 0 1 3.705-.5 14.2 14.2 0 0 1 3.707.5c2.826-1.915 4.068-1.517 4.068-1.517.807 2.037.3 3.545.15 3.92.95 1.035 1.52 2.357 1.52 3.975 0 5.687-3.462 6.94-6.76 7.305.53.457 1.005 1.36 1.005 2.742 0 1.98-.02 3.575-.02 4.063 0 .395.267.857 1.02.712A14.816 14.816 0 0 0 15.101.413" clip-rule="evenodd"></path></svg></a></div><div class="gap-2 flex roboto-mono"><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=go">Go</a><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=client">Client</a></div><span class="[&_a]:text-primary grow line-clamp-4 lg:text-lg">A GraphQL Go client with Mutation, Query and Subscription support.</span><div class="flex items-center gap-5 max-md:text-xs [&>:not(:last-child)]:border-r [&>:not(:last-child)]:border-gray-500 [&>:not(:last-child)]:pr-5"><span>Last release <!-- -->2 months ago</span><span class="flex items-center gap-1"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="19" fill="currentColor" class="text-primary"><path d="m10 .5 2.997 5.874L19.51 7.41l-4.66 4.666 1.027 6.514L10 15.6l-5.878 2.99 1.028-6.514L.489 7.41l6.513-1.036z"></path></svg>410</span><span>MIT License</span></div></div></div><div class="border border-zinc-200 dark:border-[#414141] p-8 lg:p-12 bg-white dark:bg-neutral-800 rounded-none !p-0 h-max min-w-0"><div class="p-8 lg:p-12 flex flex-col gap-7 grow"><div class="flex items-center gap-6 [&_a:hover]:text-primary [&_a]:transition-colors"><span class="text-3xl font-extrabold grow break-all">GraphQL-SSE</span><a href="https://github.com/enisdenjo/graphql-sse" target="_blank" rel="noreferrer"><svg xmlns="http://www.w3.org/2000/svg" width="30" fill="currentColor" viewBox="0 0 30 30"><path fill-rule="evenodd" d="M15.1.413a14.81 14.81 0 0 0-4.684 28.862c.742.138 1.012-.32 1.012-.712 0-.35-.013-1.283-.02-2.518-4.12.893-4.99-1.987-4.99-1.987-.675-1.71-1.643-2.165-1.643-2.165-1.345-.918.1-.9.1-.9 1.488.105 2.27 1.525 2.27 1.525 1.32 2.265 3.466 1.61 4.31 1.23.133-.955.515-1.608.94-1.978-3.29-.375-6.747-1.645-6.747-7.32 0-1.615.577-2.937 1.525-3.975-.15-.372-.66-1.88.145-3.917 0 0 1.242-.4 4.075 1.517a14.3 14.3 0 0 1 3.705-.5 14.2 14.2 0 0 1 3.707.5c2.826-1.915 4.068-1.517 4.068-1.517.807 2.037.3 3.545.15 3.92.95 1.035 1.52 2.357 1.52 3.975 0 5.687-3.462 6.94-6.76 7.305.53.457 1.005 1.36 1.005 2.742 0 1.98-.02 3.575-.02 4.063 0 .395.267.857 1.02.712A14.816 14.816 0 0 0 15.101.413" clip-rule="evenodd"></path></svg></a><a href="https://npmjs.com/package/graphql-sse" target="_blank" rel="noreferrer"><svg xmlns="http://www.w3.org/2000/svg" width="30" height="30" fill="currentColor"><path fill-rule="evenodd" d="M0 0v30h30V0zm24.375 5.625H5.625v18.75H15v-15h5.625v15h3.75z" clip-rule="evenodd"></path></svg></a></div><div class="gap-2 flex roboto-mono"><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=javascript">JavaScript</a><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=client">Client</a></div><span class="[&_a]:text-primary grow line-clamp-4 lg:text-lg">Zero-dependency, HTTP/1 safe, simple, GraphQL over Server-Sent Events Protocol server and client.</span><div class="flex items-center gap-5 max-md:text-xs [&>:not(:last-child)]:border-r [&>:not(:last-child)]:border-gray-500 [&>:not(:last-child)]:pr-5"><span>Last release <!-- -->8 months ago</span><span class="flex items-center gap-1"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="19" fill="currentColor" class="text-primary"><path d="m10 .5 2.997 5.874L19.51 7.41l-4.66 4.666 1.027 6.514L10 15.6l-5.878 2.99 1.028-6.514L.489 7.41l6.513-1.036z"></path></svg>390</span><span>MIT License</span></div></div></div><div class="border border-zinc-200 dark:border-[#414141] p-8 lg:p-12 bg-white dark:bg-neutral-800 rounded-none !p-0 h-max min-w-0"><div class="p-8 lg:p-12 flex flex-col gap-7 grow"><div class="flex items-center gap-6 [&_a:hover]:text-primary [&_a]:transition-colors"><span class="text-3xl font-extrabold grow break-all">GraphQL-SSE</span><a href="https://github.com/enisdenjo/graphql-sse" target="_blank" rel="noreferrer"><svg xmlns="http://www.w3.org/2000/svg" width="30" fill="currentColor" viewBox="0 0 30 30"><path fill-rule="evenodd" d="M15.1.413a14.81 14.81 0 0 0-4.684 28.862c.742.138 1.012-.32 1.012-.712 0-.35-.013-1.283-.02-2.518-4.12.893-4.99-1.987-4.99-1.987-.675-1.71-1.643-2.165-1.643-2.165-1.345-.918.1-.9.1-.9 1.488.105 2.27 1.525 2.27 1.525 1.32 2.265 3.466 1.61 4.31 1.23.133-.955.515-1.608.94-1.978-3.29-.375-6.747-1.645-6.747-7.32 0-1.615.577-2.937 1.525-3.975-.15-.372-.66-1.88.145-3.917 0 0 1.242-.4 4.075 1.517a14.3 14.3 0 0 1 3.705-.5 14.2 14.2 0 0 1 3.707.5c2.826-1.915 4.068-1.517 4.068-1.517.807 2.037.3 3.545.15 3.92.95 1.035 1.52 2.357 1.52 3.975 0 5.687-3.462 6.94-6.76 7.305.53.457 1.005 1.36 1.005 2.742 0 1.98-.02 3.575-.02 4.063 0 .395.267.857 1.02.712A14.816 14.816 0 0 0 15.101.413" clip-rule="evenodd"></path></svg></a><a href="https://npmjs.com/package/graphql-sse" target="_blank" rel="noreferrer"><svg xmlns="http://www.w3.org/2000/svg" width="30" height="30" fill="currentColor"><path fill-rule="evenodd" d="M0 0v30h30V0zm24.375 5.625H5.625v18.75H15v-15h5.625v15h3.75z" clip-rule="evenodd"></path></svg></a></div><div class="gap-2 flex roboto-mono"><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=javascript">JavaScript</a><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=server">Server</a></div><span class="[&_a]:text-primary grow line-clamp-4 lg:text-lg">Zero-dependency, HTTP/1 safe, simple, GraphQL over Server-Sent Events Protocol server and client.</span><div class="flex items-center gap-5 max-md:text-xs [&>:not(:last-child)]:border-r [&>:not(:last-child)]:border-gray-500 [&>:not(:last-child)]:pr-5"><span>Last release <!-- -->8 months ago</span><span class="flex items-center gap-1"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="19" fill="currentColor" class="text-primary"><path d="m10 .5 2.997 5.874L19.51 7.41l-4.66 4.666 1.027 6.514L10 15.6l-5.878 2.99 1.028-6.514L.489 7.41l6.513-1.036z"></path></svg>390</span><span>MIT License</span></div></div></div><div class="border border-zinc-200 dark:border-[#414141] p-8 lg:p-12 bg-white dark:bg-neutral-800 rounded-none !p-0 h-max min-w-0"><div class="p-8 lg:p-12 flex flex-col gap-7 grow"><div class="flex items-center gap-6 [&_a:hover]:text-primary [&_a]:transition-colors"><span class="text-3xl font-extrabold grow break-all">cynic</span><a href="https://cynic-rs.dev" target="_blank" rel="noreferrer"><svg xmlns="http://www.w3.org/2000/svg" fill="currentColor" viewBox="0 0 24 24"><path d="M23.332 15.948C23.764 14.711 24 13.383 24 12a12 12 0 0 0-.706-4.056C21.627 3.317 17.194 0 12 0S2.373 3.317.706 7.944A11.949 11.949 0 0 0 0 12a12 12 0 0 0 .706 4.056C2.373 20.683 6.806 24 12 24s9.627-3.317 11.294-7.944a1 1 0 0 0 .038-.108M12 22.28c-.457 0-1.194-.827-1.81-2.675a19 19 0 0 1-.708-3.031h5.036a19 19 0 0 1-.708 3.031c-.616 1.848-1.353 2.675-1.81 2.675m-2.727-7.427A32 32 0 0 1 9.147 12c0-.98.043-1.936.126-2.853h5.454c.083.917.126 1.874.126 2.853s-.043 1.936-.126 2.854zM1.72 12c0-.99.141-1.947.403-2.853h5.425a33.5 33.5 0 0 0 0 5.707H2.123A10.3 10.3 0 0 1 1.72 12M12 1.72c.457 0 1.194.827 1.81 2.675.297.892.535 1.917.708 3.032H9.482c.173-1.115.411-2.14.708-3.032.616-1.848 1.353-2.675 1.81-2.675m4.452 7.427h5.425c.262.906.403 1.864.403 2.853s-.141 1.947-.403 2.854h-5.425a33.5 33.5 0 0 0 0-5.707m4.752-1.72h-4.95c-.305-2.11-.83-4.003-1.566-5.35 2.855.775 5.22 2.75 6.516 5.35M9.313 2.077c-.736 1.347-1.261 3.24-1.567 5.35h-4.95a10.33 10.33 0 0 1 6.517-5.35M2.795 16.574h4.95c.306 2.11.83 4.002 1.567 5.349a10.33 10.33 0 0 1-6.517-5.35m11.893 5.349c.736-1.347 1.261-3.24 1.567-5.35h4.95a10.33 10.33 0 0 1-6.517 5.35"></path></svg></a><a href="https://github.com/obmarg/cynic" target="_blank" rel="noreferrer"><svg xmlns="http://www.w3.org/2000/svg" width="30" fill="currentColor" viewBox="0 0 30 30"><path fill-rule="evenodd" d="M15.1.413a14.81 14.81 0 0 0-4.684 28.862c.742.138 1.012-.32 1.012-.712 0-.35-.013-1.283-.02-2.518-4.12.893-4.99-1.987-4.99-1.987-.675-1.71-1.643-2.165-1.643-2.165-1.345-.918.1-.9.1-.9 1.488.105 2.27 1.525 2.27 1.525 1.32 2.265 3.466 1.61 4.31 1.23.133-.955.515-1.608.94-1.978-3.29-.375-6.747-1.645-6.747-7.32 0-1.615.577-2.937 1.525-3.975-.15-.372-.66-1.88.145-3.917 0 0 1.242-.4 4.075 1.517a14.3 14.3 0 0 1 3.705-.5 14.2 14.2 0 0 1 3.707.5c2.826-1.915 4.068-1.517 4.068-1.517.807 2.037.3 3.545.15 3.92.95 1.035 1.52 2.357 1.52 3.975 0 5.687-3.462 6.94-6.76 7.305.53.457 1.005 1.36 1.005 2.742 0 1.98-.02 3.575-.02 4.063 0 .395.267.857 1.02.712A14.816 14.816 0 0 0 15.101.413" clip-rule="evenodd"></path></svg></a></div><div class="gap-2 flex roboto-mono"><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=rust">Rust</a><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=client">Client</a></div><span class="[&_a]:text-primary grow line-clamp-4 lg:text-lg">A bring your own types GraphQL client for Rust</span><div class="flex items-center gap-5 max-md:text-xs [&>:not(:last-child)]:border-r [&>:not(:last-child)]:border-gray-500 [&>:not(:last-child)]:pr-5"><span>Last release <!-- -->6 days ago</span><span class="flex items-center gap-1"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="19" fill="currentColor" class="text-primary"><path d="m10 .5 2.997 5.874L19.51 7.41l-4.66 4.666 1.027 6.514L10 15.6l-5.878 2.99 1.028-6.514L.489 7.41l6.513-1.036z"></path></svg>381</span><span>Mozilla Public License 2.0</span></div></div><details class="bg-[#f0f0f0] dark:bg-[#2f2f2f]"><summary class="flex justify-between font-bold text-primary px-8 lg:px-12 py-5 dark:[[open]>&]:shadow-[-5px_10px_30px_20px_#1b1b1b4d] [[open]>&]:shadow-[0_6px_21px_0_#1b1b1b33] cursor-pointer">README<svg xmlns="http://www.w3.org/2000/svg" fill="currentColor" viewBox="0 0 15 15" class="size-5 -rotate-90 [[open]>*>&]:rotate-90 transition-transform"><path fill-rule="evenodd" d="M8.842 3.135a.5.5 0 0 1 .023.707L5.435 7.5l3.43 3.658a.5.5 0 0 1-.73.684l-3.75-4a.5.5 0 0 1 0-.684l3.75-4a.5.5 0 0 1 .707-.023" clip-rule="evenodd"></path></svg></summary><div class="px-8 lg:px-12 py-5"><p class="[&:not(:first-child)]:_mt-6 _leading-7">A client library for rust that generates queries from types you provide, verifying that the types match the shape of your schema.</p> <p class="[&:not(:first-child)]:_mt-6 _leading-7">It provides <a href="https://generator.cynic-rs.dev" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">a generator</a> to bootstrap types from existing GraphQL queries.</p> <p class="[&:not(:first-child)]:_mt-6 _leading-7">Usage example:</p> <div class="nextra-code _relative [&:not(:first-child)]:_mt-6"><pre class="_overflow-x-auto _subpixel-antialiased _text-[.9em] _bg-white dark:_bg-black _py-4 _ring-1 _ring-inset _ring-gray-300 dark:_ring-neutral-700 contrast-more:_ring-gray-900 contrast-more:dark:_ring-gray-50 contrast-more:_contrast-150 _rounded-md" tabindex="0"><code class="nextra-code" dir="ltr"><span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">#[derive(cynic</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">::</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">QueryFragment</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">, </span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">Debug</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">)]</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">#[cynic(</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> schema_path </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> "../schemas/starwars.schema.graphql"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">,</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> query_module </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> "query_dsl"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">,</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> graphql_type </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> "Root"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">,</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> argument_struct </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> "FilmArguments"</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">)]</span></span> <span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">struct</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> FilmDirectorQuery</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> {</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> #[arguments(id </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> &</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">args</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">.</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">id)]</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> film</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">:</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> Option</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"><</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">Film</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">>,</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">}</span></span> <span> </span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">#[derive(cynic</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">::</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">QueryFragment</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">, </span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">Debug</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">)]</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">#[cynic(</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> schema_path </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> "../schemas/starwars.schema.graphql"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">,</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> query_module </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> "query_dsl"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">,</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> graphql_type </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> "Film"</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">)]</span></span> <span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">struct</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> Film</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> {</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> title</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">:</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> Option</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"><</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">String</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">>,</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> director</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">:</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> Option</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"><</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">String</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">>,</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">}</span></span> <span> </span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">#[derive(cynic</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">::</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">FragmentArguments</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">)]</span></span> <span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">struct</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> FilmArguments</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> {</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> id</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">:</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> Option</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"><cynic</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">::</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">Id</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">>,</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">}</span></span> <span> </span> <span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">fn</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> main</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">() {</span></span> <span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> use</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> cynic</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">::</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">{</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">QueryBuilder</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">, </span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">http</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">::</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">ReqwestBlockingExt</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">};</span></span> <span> </span> <span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> let</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> query </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> FilmDirectorQuery</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">::</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">build</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">&</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">FilmArguments</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> {</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> id</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">:</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> Some</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">"ZmlsbXM6MQ=="</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">into</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">()),</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> })</span></span> <span> </span> <span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> reqwest</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">::</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">blocking</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">::</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">Client</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">::</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">new</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">()</span></span> <span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> .</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">post</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">"https://swapi-graphql.netlify.com/.netlify/functions/index"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">)</span></span> <span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> .</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">run_graphql</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(query)</span></span> <span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> .</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">unwrap</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">()</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">}</span></span> <span> </span> <span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">mod</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> query_dsl</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> {</span></span> <span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> cynic</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">::</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">query_dsl!</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">"../schemas/starwars.schema.graphql"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">);</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">}</span></span></code></pre><div class="_opacity-0 _transition [div:hover>&]:_opacity-100 focus-within:_opacity-100 _flex _gap-1 _absolute _right-4 _top-2"><button class="_transition _rounded-md _p-1.5 _border _border-gray-300 dark:_border-neutral-700 contrast-more:_border-gray-900 contrast-more:dark:_border-gray-50 md:_hidden" title="Toggle word wrap"><svg viewBox="0 0 24 24" width="24" height="24" class="_h-4 _w-auto"><path fill="currentColor" d="M4 19h6v-2H4v2zM20 5H4v2h16V5zm-3 6H4v2h13.25c1.1 0 2 .9 2 2s-.9 2-2 2H15v-2l-3 3l3 3v-2h2c2.21 0 4-1.79 4-4s-1.79-4-4-4z"></path></svg></button></div></div></div></details></div><div class="border border-zinc-200 dark:border-[#414141] p-8 lg:p-12 bg-white dark:bg-neutral-800 rounded-none !p-0 h-max min-w-0"><div class="p-8 lg:p-12 flex flex-col gap-7 grow"><div class="flex items-center gap-6 [&_a:hover]:text-primary [&_a]:transition-colors"><span class="text-3xl font-extrabold grow break-all">Gato GraphQL</span><a href="https://gatographql.com" target="_blank" rel="noreferrer"><svg xmlns="http://www.w3.org/2000/svg" fill="currentColor" viewBox="0 0 24 24"><path d="M23.332 15.948C23.764 14.711 24 13.383 24 12a12 12 0 0 0-.706-4.056C21.627 3.317 17.194 0 12 0S2.373 3.317.706 7.944A11.949 11.949 0 0 0 0 12a12 12 0 0 0 .706 4.056C2.373 20.683 6.806 24 12 24s9.627-3.317 11.294-7.944a1 1 0 0 0 .038-.108M12 22.28c-.457 0-1.194-.827-1.81-2.675a19 19 0 0 1-.708-3.031h5.036a19 19 0 0 1-.708 3.031c-.616 1.848-1.353 2.675-1.81 2.675m-2.727-7.427A32 32 0 0 1 9.147 12c0-.98.043-1.936.126-2.853h5.454c.083.917.126 1.874.126 2.853s-.043 1.936-.126 2.854zM1.72 12c0-.99.141-1.947.403-2.853h5.425a33.5 33.5 0 0 0 0 5.707H2.123A10.3 10.3 0 0 1 1.72 12M12 1.72c.457 0 1.194.827 1.81 2.675.297.892.535 1.917.708 3.032H9.482c.173-1.115.411-2.14.708-3.032.616-1.848 1.353-2.675 1.81-2.675m4.452 7.427h5.425c.262.906.403 1.864.403 2.853s-.141 1.947-.403 2.854h-5.425a33.5 33.5 0 0 0 0-5.707m4.752-1.72h-4.95c-.305-2.11-.83-4.003-1.566-5.35 2.855.775 5.22 2.75 6.516 5.35M9.313 2.077c-.736 1.347-1.261 3.24-1.567 5.35h-4.95a10.33 10.33 0 0 1 6.517-5.35M2.795 16.574h4.95c.306 2.11.83 4.002 1.567 5.349a10.33 10.33 0 0 1-6.517-5.35m11.893 5.349c.736-1.347 1.261-3.24 1.567-5.35h4.95a10.33 10.33 0 0 1-6.517 5.35"></path></svg></a><a href="https://github.com/GatoGraphQL/GatoGraphQL" target="_blank" rel="noreferrer"><svg xmlns="http://www.w3.org/2000/svg" width="30" fill="currentColor" viewBox="0 0 30 30"><path fill-rule="evenodd" d="M15.1.413a14.81 14.81 0 0 0-4.684 28.862c.742.138 1.012-.32 1.012-.712 0-.35-.013-1.283-.02-2.518-4.12.893-4.99-1.987-4.99-1.987-.675-1.71-1.643-2.165-1.643-2.165-1.345-.918.1-.9.1-.9 1.488.105 2.27 1.525 2.27 1.525 1.32 2.265 3.466 1.61 4.31 1.23.133-.955.515-1.608.94-1.978-3.29-.375-6.747-1.645-6.747-7.32 0-1.615.577-2.937 1.525-3.975-.15-.372-.66-1.88.145-3.917 0 0 1.242-.4 4.075 1.517a14.3 14.3 0 0 1 3.705-.5 14.2 14.2 0 0 1 3.707.5c2.826-1.915 4.068-1.517 4.068-1.517.807 2.037.3 3.545.15 3.92.95 1.035 1.52 2.357 1.52 3.975 0 5.687-3.462 6.94-6.76 7.305.53.457 1.005 1.36 1.005 2.742 0 1.98-.02 3.575-.02 4.063 0 .395.267.857 1.02.712A14.816 14.816 0 0 0 15.101.413" clip-rule="evenodd"></path></svg></a></div><div class="gap-2 flex roboto-mono"><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=php">PHP</a><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=server">Server</a></div><span class="[&_a]:text-primary grow line-clamp-4 lg:text-lg">Interact with all your data in WordPress</span><div class="flex items-center gap-5 max-md:text-xs [&>:not(:last-child)]:border-r [&>:not(:last-child)]:border-gray-500 [&>:not(:last-child)]:pr-5"><span>Last release <!-- -->1 day ago</span><span class="flex items-center gap-1"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="19" fill="currentColor" class="text-primary"><path d="m10 .5 2.997 5.874L19.51 7.41l-4.66 4.666 1.027 6.514L10 15.6l-5.878 2.99 1.028-6.514L.489 7.41l6.513-1.036z"></path></svg>360</span><span>GNU General Public License v2.0</span></div></div></div><div class="border border-zinc-200 dark:border-[#414141] p-8 lg:p-12 bg-white dark:bg-neutral-800 rounded-none !p-0 h-max min-w-0"><div class="p-8 lg:p-12 flex flex-col gap-7 grow"><div class="flex items-center gap-6 [&_a:hover]:text-primary [&_a]:transition-colors"><span class="text-3xl font-extrabold grow break-all">Railt</span><a href="https://github.com/railt/railt" target="_blank" rel="noreferrer"><svg xmlns="http://www.w3.org/2000/svg" width="30" fill="currentColor" viewBox="0 0 30 30"><path fill-rule="evenodd" d="M15.1.413a14.81 14.81 0 0 0-4.684 28.862c.742.138 1.012-.32 1.012-.712 0-.35-.013-1.283-.02-2.518-4.12.893-4.99-1.987-4.99-1.987-.675-1.71-1.643-2.165-1.643-2.165-1.345-.918.1-.9.1-.9 1.488.105 2.27 1.525 2.27 1.525 1.32 2.265 3.466 1.61 4.31 1.23.133-.955.515-1.608.94-1.978-3.29-.375-6.747-1.645-6.747-7.32 0-1.615.577-2.937 1.525-3.975-.15-.372-.66-1.88.145-3.917 0 0 1.242-.4 4.075 1.517a14.3 14.3 0 0 1 3.705-.5 14.2 14.2 0 0 1 3.707.5c2.826-1.915 4.068-1.517 4.068-1.517.807 2.037.3 3.545.15 3.92.95 1.035 1.52 2.357 1.52 3.975 0 5.687-3.462 6.94-6.76 7.305.53.457 1.005 1.36 1.005 2.742 0 1.98-.02 3.575-.02 4.063 0 .395.267.857 1.02.712A14.816 14.816 0 0 0 15.101.413" clip-rule="evenodd"></path></svg></a></div><div class="gap-2 flex roboto-mono"><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=php">PHP</a><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=server">Server</a></div><span class="[&_a]:text-primary grow line-clamp-4 lg:text-lg">A PHP GraphQL Framework.</span><div class="flex items-center gap-5 max-md:text-xs [&>:not(:last-child)]:border-r [&>:not(:last-child)]:border-gray-500 [&>:not(:last-child)]:pr-5"><span>Last release <!-- -->5 years ago</span><span class="flex items-center gap-1"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="19" fill="currentColor" class="text-primary"><path d="m10 .5 2.997 5.874L19.51 7.41l-4.66 4.666 1.027 6.514L10 15.6l-5.878 2.99 1.028-6.514L.489 7.41l6.513-1.036z"></path></svg>360</span><span>MIT License</span></div></div></div><div class="border border-zinc-200 dark:border-[#414141] p-8 lg:p-12 bg-white dark:bg-neutral-800 rounded-none !p-0 h-max min-w-0"><div class="p-8 lg:p-12 flex flex-col gap-7 grow"><div class="flex items-center gap-6 [&_a:hover]:text-primary [&_a]:transition-colors"><span class="text-3xl font-extrabold grow break-all">Mu-Haskell with Mu-GraphQL</span><a href="https://higherkindness.io/mu-haskell/" target="_blank" rel="noreferrer"><svg xmlns="http://www.w3.org/2000/svg" fill="currentColor" viewBox="0 0 24 24"><path d="M23.332 15.948C23.764 14.711 24 13.383 24 12a12 12 0 0 0-.706-4.056C21.627 3.317 17.194 0 12 0S2.373 3.317.706 7.944A11.949 11.949 0 0 0 0 12a12 12 0 0 0 .706 4.056C2.373 20.683 6.806 24 12 24s9.627-3.317 11.294-7.944a1 1 0 0 0 .038-.108M12 22.28c-.457 0-1.194-.827-1.81-2.675a19 19 0 0 1-.708-3.031h5.036a19 19 0 0 1-.708 3.031c-.616 1.848-1.353 2.675-1.81 2.675m-2.727-7.427A32 32 0 0 1 9.147 12c0-.98.043-1.936.126-2.853h5.454c.083.917.126 1.874.126 2.853s-.043 1.936-.126 2.854zM1.72 12c0-.99.141-1.947.403-2.853h5.425a33.5 33.5 0 0 0 0 5.707H2.123A10.3 10.3 0 0 1 1.72 12M12 1.72c.457 0 1.194.827 1.81 2.675.297.892.535 1.917.708 3.032H9.482c.173-1.115.411-2.14.708-3.032.616-1.848 1.353-2.675 1.81-2.675m4.452 7.427h5.425c.262.906.403 1.864.403 2.853s-.141 1.947-.403 2.854h-5.425a33.5 33.5 0 0 0 0-5.707m4.752-1.72h-4.95c-.305-2.11-.83-4.003-1.566-5.35 2.855.775 5.22 2.75 6.516 5.35M9.313 2.077c-.736 1.347-1.261 3.24-1.567 5.35h-4.95a10.33 10.33 0 0 1 6.517-5.35M2.795 16.574h4.95c.306 2.11.83 4.002 1.567 5.349a10.33 10.33 0 0 1-6.517-5.35m11.893 5.349c.736-1.347 1.261-3.24 1.567-5.35h4.95a10.33 10.33 0 0 1-6.517 5.35"></path></svg></a><a href="https://github.com/higherkindness/mu-haskell" target="_blank" rel="noreferrer"><svg xmlns="http://www.w3.org/2000/svg" width="30" fill="currentColor" viewBox="0 0 30 30"><path fill-rule="evenodd" d="M15.1.413a14.81 14.81 0 0 0-4.684 28.862c.742.138 1.012-.32 1.012-.712 0-.35-.013-1.283-.02-2.518-4.12.893-4.99-1.987-4.99-1.987-.675-1.71-1.643-2.165-1.643-2.165-1.345-.918.1-.9.1-.9 1.488.105 2.27 1.525 2.27 1.525 1.32 2.265 3.466 1.61 4.31 1.23.133-.955.515-1.608.94-1.978-3.29-.375-6.747-1.645-6.747-7.32 0-1.615.577-2.937 1.525-3.975-.15-.372-.66-1.88.145-3.917 0 0 1.242-.4 4.075 1.517a14.3 14.3 0 0 1 3.705-.5 14.2 14.2 0 0 1 3.707.5c2.826-1.915 4.068-1.517 4.068-1.517.807 2.037.3 3.545.15 3.92.95 1.035 1.52 2.357 1.52 3.975 0 5.687-3.462 6.94-6.76 7.305.53.457 1.005 1.36 1.005 2.742 0 1.98-.02 3.575-.02 4.063 0 .395.267.857 1.02.712A14.816 14.816 0 0 0 15.101.413" clip-rule="evenodd"></path></svg></a></div><div class="gap-2 flex roboto-mono"><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=haskell">Haskell</a><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=server">Server</a></div><span class="[&_a]:text-primary grow line-clamp-4 lg:text-lg">A Haskell library for building microservices (gRPC, HTTP) and GraphQL APIs.</span><div class="flex items-center gap-5 max-md:text-xs [&>:not(:last-child)]:border-r [&>:not(:last-child)]:border-gray-500 [&>:not(:last-child)]:pr-5"><span>Last release <!-- -->3 years ago</span><span class="flex items-center gap-1"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="19" fill="currentColor" class="text-primary"><path d="m10 .5 2.997 5.874L19.51 7.41l-4.66 4.666 1.027 6.514L10 15.6l-5.878 2.99 1.028-6.514L.489 7.41l6.513-1.036z"></path></svg>333</span><span>Apache License 2.0</span></div></div><details class="bg-[#f0f0f0] dark:bg-[#2f2f2f]"><summary class="flex justify-between font-bold text-primary px-8 lg:px-12 py-5 dark:[[open]>&]:shadow-[-5px_10px_30px_20px_#1b1b1b4d] [[open]>&]:shadow-[0_6px_21px_0_#1b1b1b33] cursor-pointer">README<svg xmlns="http://www.w3.org/2000/svg" fill="currentColor" viewBox="0 0 15 15" class="size-5 -rotate-90 [[open]>*>&]:rotate-90 transition-transform"><path fill-rule="evenodd" d="M8.842 3.135a.5.5 0 0 1 .023.707L5.435 7.5l3.43 3.658a.5.5 0 0 1-.73.684l-3.75-4a.5.5 0 0 1 0-.684l3.75-4a.5.5 0 0 1 .707-.023" clip-rule="evenodd"></path></svg></summary><div class="px-8 lg:px-12 py-5"><p class="[&:not(:first-child)]:_mt-6 _leading-7">Example implementation of a GraphQL server with type-level representation of the schema auto-generated:</p> <div class="nextra-code _relative [&:not(:first-child)]:_mt-6"><pre class="_overflow-x-auto _subpixel-antialiased _text-[.9em] _bg-white dark:_bg-black _py-4 _ring-1 _ring-inset _ring-gray-300 dark:_ring-neutral-700 contrast-more:_ring-gray-900 contrast-more:dark:_ring-gray-50 contrast-more:_contrast-150 _rounded-md" tabindex="0"><code class="nextra-code" dir="ltr"><span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">{-# </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">LANGUAGE</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> DataKinds</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> #-}</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">{-# </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">LANGUAGE</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> NamedFieldPuns</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> #-}</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">{-# </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">LANGUAGE</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> OverloadedStrings</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> #-}</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">{-# </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">LANGUAGE</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> PartialTypeSignatures</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> #-}</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">{-# </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">LANGUAGE</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> TypeApplications</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> #-}</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">{-# </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">LANGUAGE</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> TypeFamilies</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> #-}</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">{-# </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">LANGUAGE</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> TypeOperators</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> #-}</span></span> <span> </span> <span><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D">-- imports omitted for brevity...</span></span> <span> </span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">graphql </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">"Library"</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> "library.graphql"</span><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D"> -- all the magic happens here! 🪄🎩</span></span> <span> </span> <span><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D">-- ... a bit more code...</span></span> <span> </span> <span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">libraryServer</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> ::</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> SqlBackend</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> -></span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> ServerT</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> ObjectMapping</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> i </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">Library</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> ServerErrorIO</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> _</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">libraryServer conn </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> resolver</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> ( object </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">@</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">"Book"</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> ( field </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">@</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">"id"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> bookId,</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> field </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">@</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">"title"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> bookTitle,</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> field </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">@</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">"author"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> bookAuthor,</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> field </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">@</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">"imageUrl"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> bookImage</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> ),</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> object </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">@</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">"Author"</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> ( field </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">@</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">"id"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> authorId,</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> field </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">@</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">"name"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> authorName,</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> field </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">@</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">"books"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> authorBooks</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> ),</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> object </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">@</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">"Query"</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> ( method </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">@</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">"authors"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> allAuthors,</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> method </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">@</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">"books"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> allBooks</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> ),</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> object </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">@</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">"Mutation"</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> ( method </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">@</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">"newAuthor"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> newAuthor,</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> method </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">@</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">"newBook"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> newBook</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> ),</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> object </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">@</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">"Subscription"</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> (method </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">@</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">"allBooks"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> allBooksConduit)</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> )</span></span> <span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> where</span></span> <span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> bookId</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> ::</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> Entity</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> Book</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> -></span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> ServerErrorIO</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> Integer</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> bookId (</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">Entity</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> (</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">BookKey</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> k) _) </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> pure </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">$</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> toInteger k</span></span> <span><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D"> -- ... more resolvers...</span></span></code></pre><div class="_opacity-0 _transition [div:hover>&]:_opacity-100 focus-within:_opacity-100 _flex _gap-1 _absolute _right-4 _top-2"><button class="_transition _rounded-md _p-1.5 _border _border-gray-300 dark:_border-neutral-700 contrast-more:_border-gray-900 contrast-more:dark:_border-gray-50 md:_hidden" title="Toggle word wrap"><svg viewBox="0 0 24 24" width="24" height="24" class="_h-4 _w-auto"><path fill="currentColor" d="M4 19h6v-2H4v2zM20 5H4v2h16V5zm-3 6H4v2h13.25c1.1 0 2 .9 2 2s-.9 2-2 2H15v-2l-3 3l3 3v-2h2c2.21 0 4-1.79 4-4s-1.79-4-4-4z"></path></svg></button></div></div> <p class="[&:not(:first-child)]:_mt-6 _leading-7">See <a href="https://higherkindness.io/mu-haskell/graphql/" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">our docs</a> for more information about how to build your own GraphQL server and <a href="https://github.com/higherkindness/mu-graphql-example-elm" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">the library example</a> for a more end-to-end example that includes a client written in Elm!</p></div></details></div><div class="border border-zinc-200 dark:border-[#414141] p-8 lg:p-12 bg-white dark:bg-neutral-800 rounded-none !p-0 h-max min-w-0"><div class="p-8 lg:p-12 flex flex-col gap-7 grow"><div class="flex items-center gap-6 [&_a:hover]:text-primary [&_a]:transition-colors"><span class="text-3xl font-extrabold grow break-all">Neuron</span><a href="https://github.com/uesteibar/neuron" target="_blank" rel="noreferrer"><svg xmlns="http://www.w3.org/2000/svg" width="30" fill="currentColor" viewBox="0 0 30 30"><path fill-rule="evenodd" d="M15.1.413a14.81 14.81 0 0 0-4.684 28.862c.742.138 1.012-.32 1.012-.712 0-.35-.013-1.283-.02-2.518-4.12.893-4.99-1.987-4.99-1.987-.675-1.71-1.643-2.165-1.643-2.165-1.345-.918.1-.9.1-.9 1.488.105 2.27 1.525 2.27 1.525 1.32 2.265 3.466 1.61 4.31 1.23.133-.955.515-1.608.94-1.978-3.29-.375-6.747-1.645-6.747-7.32 0-1.615.577-2.937 1.525-3.975-.15-.372-.66-1.88.145-3.917 0 0 1.242-.4 4.075 1.517a14.3 14.3 0 0 1 3.705-.5 14.2 14.2 0 0 1 3.707.5c2.826-1.915 4.068-1.517 4.068-1.517.807 2.037.3 3.545.15 3.92.95 1.035 1.52 2.357 1.52 3.975 0 5.687-3.462 6.94-6.76 7.305.53.457 1.005 1.36 1.005 2.742 0 1.98-.02 3.575-.02 4.063 0 .395.267.857 1.02.712A14.816 14.816 0 0 0 15.101.413" clip-rule="evenodd"></path></svg></a></div><div class="gap-2 flex roboto-mono"><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=elixir">Elixir</a><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=client">Client</a></div><span class="[&_a]:text-primary grow line-clamp-4 lg:text-lg">A GraphQL client for Elixir</span><div class="flex items-center gap-5 max-md:text-xs [&>:not(:last-child)]:border-r [&>:not(:last-child)]:border-gray-500 [&>:not(:last-child)]:pr-5"><span class="flex items-center gap-1"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="19" fill="currentColor" class="text-primary"><path d="m10 .5 2.997 5.874L19.51 7.41l-4.66 4.666 1.027 6.514L10 15.6l-5.878 2.99 1.028-6.514L.489 7.41l6.513-1.036z"></path></svg>331</span><span>Other</span></div></div></div><div class="border border-zinc-200 dark:border-[#414141] p-8 lg:p-12 bg-white dark:bg-neutral-800 rounded-none !p-0 h-max min-w-0"><div class="p-8 lg:p-12 flex flex-col gap-7 grow"><div class="flex items-center gap-6 [&_a:hover]:text-primary [&_a]:transition-colors"><span class="text-3xl font-extrabold grow break-all">GraphQL-HTTP</span><a href="https://github.com/graphql/graphql-http" target="_blank" rel="noreferrer"><svg xmlns="http://www.w3.org/2000/svg" width="30" fill="currentColor" viewBox="0 0 30 30"><path fill-rule="evenodd" d="M15.1.413a14.81 14.81 0 0 0-4.684 28.862c.742.138 1.012-.32 1.012-.712 0-.35-.013-1.283-.02-2.518-4.12.893-4.99-1.987-4.99-1.987-.675-1.71-1.643-2.165-1.643-2.165-1.345-.918.1-.9.1-.9 1.488.105 2.27 1.525 2.27 1.525 1.32 2.265 3.466 1.61 4.31 1.23.133-.955.515-1.608.94-1.978-3.29-.375-6.747-1.645-6.747-7.32 0-1.615.577-2.937 1.525-3.975-.15-.372-.66-1.88.145-3.917 0 0 1.242-.4 4.075 1.517a14.3 14.3 0 0 1 3.705-.5 14.2 14.2 0 0 1 3.707.5c2.826-1.915 4.068-1.517 4.068-1.517.807 2.037.3 3.545.15 3.92.95 1.035 1.52 2.357 1.52 3.975 0 5.687-3.462 6.94-6.76 7.305.53.457 1.005 1.36 1.005 2.742 0 1.98-.02 3.575-.02 4.063 0 .395.267.857 1.02.712A14.816 14.816 0 0 0 15.101.413" clip-rule="evenodd"></path></svg></a><a href="https://npmjs.com/package/graphql-http" target="_blank" rel="noreferrer"><svg xmlns="http://www.w3.org/2000/svg" width="30" height="30" fill="currentColor"><path fill-rule="evenodd" d="M0 0v30h30V0zm24.375 5.625H5.625v18.75H15v-15h5.625v15h3.75z" clip-rule="evenodd"></path></svg></a></div><div class="gap-2 flex roboto-mono"><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=javascript">JavaScript</a><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=client">Client</a></div><span class="[&_a]:text-primary grow line-clamp-4 lg:text-lg">Simple, pluggable, zero-dependency, GraphQL over HTTP spec compliant server, client and audit suite.</span><div class="flex items-center gap-5 max-md:text-xs [&>:not(:last-child)]:border-r [&>:not(:last-child)]:border-gray-500 [&>:not(:last-child)]:pr-5"><span>Last release <!-- -->6 days ago</span><span class="flex items-center gap-1"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="19" fill="currentColor" class="text-primary"><path d="m10 .5 2.997 5.874L19.51 7.41l-4.66 4.666 1.027 6.514L10 15.6l-5.878 2.99 1.028-6.514L.489 7.41l6.513-1.036z"></path></svg>319</span><span>MIT License</span></div></div></div><div class="border border-zinc-200 dark:border-[#414141] p-8 lg:p-12 bg-white dark:bg-neutral-800 rounded-none !p-0 h-max min-w-0"><div class="p-8 lg:p-12 flex flex-col gap-7 grow"><div class="flex items-center gap-6 [&_a:hover]:text-primary [&_a]:transition-colors"><span class="text-3xl font-extrabold grow break-all">GraphQL-HTTP</span><a href="https://github.com/graphql/graphql-http" target="_blank" rel="noreferrer"><svg xmlns="http://www.w3.org/2000/svg" width="30" fill="currentColor" viewBox="0 0 30 30"><path fill-rule="evenodd" d="M15.1.413a14.81 14.81 0 0 0-4.684 28.862c.742.138 1.012-.32 1.012-.712 0-.35-.013-1.283-.02-2.518-4.12.893-4.99-1.987-4.99-1.987-.675-1.71-1.643-2.165-1.643-2.165-1.345-.918.1-.9.1-.9 1.488.105 2.27 1.525 2.27 1.525 1.32 2.265 3.466 1.61 4.31 1.23.133-.955.515-1.608.94-1.978-3.29-.375-6.747-1.645-6.747-7.32 0-1.615.577-2.937 1.525-3.975-.15-.372-.66-1.88.145-3.917 0 0 1.242-.4 4.075 1.517a14.3 14.3 0 0 1 3.705-.5 14.2 14.2 0 0 1 3.707.5c2.826-1.915 4.068-1.517 4.068-1.517.807 2.037.3 3.545.15 3.92.95 1.035 1.52 2.357 1.52 3.975 0 5.687-3.462 6.94-6.76 7.305.53.457 1.005 1.36 1.005 2.742 0 1.98-.02 3.575-.02 4.063 0 .395.267.857 1.02.712A14.816 14.816 0 0 0 15.101.413" clip-rule="evenodd"></path></svg></a><a href="https://npmjs.com/package/graphql-http" target="_blank" rel="noreferrer"><svg xmlns="http://www.w3.org/2000/svg" width="30" height="30" fill="currentColor"><path fill-rule="evenodd" d="M0 0v30h30V0zm24.375 5.625H5.625v18.75H15v-15h5.625v15h3.75z" clip-rule="evenodd"></path></svg></a></div><div class="gap-2 flex roboto-mono"><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=javascript">JavaScript</a><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=server">Server</a></div><span class="[&_a]:text-primary grow line-clamp-4 lg:text-lg">Simple, pluggable, zero-dependency, GraphQL over HTTP spec compliant server, client and audit suite.</span><div class="flex items-center gap-5 max-md:text-xs [&>:not(:last-child)]:border-r [&>:not(:last-child)]:border-gray-500 [&>:not(:last-child)]:pr-5"><span>Last release <!-- -->6 days ago</span><span class="flex items-center gap-1"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="19" fill="currentColor" class="text-primary"><path d="m10 .5 2.997 5.874L19.51 7.41l-4.66 4.666 1.027 6.514L10 15.6l-5.878 2.99 1.028-6.514L.489 7.41l6.513-1.036z"></path></svg>319</span><span>MIT License</span></div></div></div><div class="border border-zinc-200 dark:border-[#414141] p-8 lg:p-12 bg-white dark:bg-neutral-800 rounded-none !p-0 h-max min-w-0"><div class="p-8 lg:p-12 flex flex-col gap-7 grow"><div class="flex items-center gap-6 [&_a:hover]:text-primary [&_a]:transition-colors"><span class="text-3xl font-extrabold grow break-all">GraphQL-HTTP</span><a href="https://github.com/graphql/graphql-http" target="_blank" rel="noreferrer"><svg xmlns="http://www.w3.org/2000/svg" width="30" fill="currentColor" viewBox="0 0 30 30"><path fill-rule="evenodd" d="M15.1.413a14.81 14.81 0 0 0-4.684 28.862c.742.138 1.012-.32 1.012-.712 0-.35-.013-1.283-.02-2.518-4.12.893-4.99-1.987-4.99-1.987-.675-1.71-1.643-2.165-1.643-2.165-1.345-.918.1-.9.1-.9 1.488.105 2.27 1.525 2.27 1.525 1.32 2.265 3.466 1.61 4.31 1.23.133-.955.515-1.608.94-1.978-3.29-.375-6.747-1.645-6.747-7.32 0-1.615.577-2.937 1.525-3.975-.15-.372-.66-1.88.145-3.917 0 0 1.242-.4 4.075 1.517a14.3 14.3 0 0 1 3.705-.5 14.2 14.2 0 0 1 3.707.5c2.826-1.915 4.068-1.517 4.068-1.517.807 2.037.3 3.545.15 3.92.95 1.035 1.52 2.357 1.52 3.975 0 5.687-3.462 6.94-6.76 7.305.53.457 1.005 1.36 1.005 2.742 0 1.98-.02 3.575-.02 4.063 0 .395.267.857 1.02.712A14.816 14.816 0 0 0 15.101.413" clip-rule="evenodd"></path></svg></a><a href="https://npmjs.com/package/graphql-http" target="_blank" rel="noreferrer"><svg xmlns="http://www.w3.org/2000/svg" width="30" height="30" fill="currentColor"><path fill-rule="evenodd" d="M0 0v30h30V0zm24.375 5.625H5.625v18.75H15v-15h5.625v15h3.75z" clip-rule="evenodd"></path></svg></a></div><div class="gap-2 flex roboto-mono"><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=javascript">JavaScript</a><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=tools">Tools</a></div><span class="[&_a]:text-primary grow line-clamp-4 lg:text-lg">Simple, pluggable, zero-dependency, GraphQL over HTTP spec compliant server, client and audit suite.</span><div class="flex items-center gap-5 max-md:text-xs [&>:not(:last-child)]:border-r [&>:not(:last-child)]:border-gray-500 [&>:not(:last-child)]:pr-5"><span>Last release <!-- -->6 days ago</span><span class="flex items-center gap-1"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="19" fill="currentColor" class="text-primary"><path d="m10 .5 2.997 5.874L19.51 7.41l-4.66 4.666 1.027 6.514L10 15.6l-5.878 2.99 1.028-6.514L.489 7.41l6.513-1.036z"></path></svg>319</span><span>MIT License</span></div></div></div><div class="border border-zinc-200 dark:border-[#414141] p-8 lg:p-12 bg-white dark:bg-neutral-800 rounded-none !p-0 h-max min-w-0"><div class="p-8 lg:p-12 flex flex-col gap-7 grow"><div class="flex items-center gap-6 [&_a:hover]:text-primary [&_a]:transition-colors"><span class="text-3xl font-extrabold grow break-all">graphql-erlang</span><a href="https://github.com/jlouis/graphql-erlang" target="_blank" rel="noreferrer"><svg xmlns="http://www.w3.org/2000/svg" width="30" fill="currentColor" viewBox="0 0 30 30"><path fill-rule="evenodd" d="M15.1.413a14.81 14.81 0 0 0-4.684 28.862c.742.138 1.012-.32 1.012-.712 0-.35-.013-1.283-.02-2.518-4.12.893-4.99-1.987-4.99-1.987-.675-1.71-1.643-2.165-1.643-2.165-1.345-.918.1-.9.1-.9 1.488.105 2.27 1.525 2.27 1.525 1.32 2.265 3.466 1.61 4.31 1.23.133-.955.515-1.608.94-1.978-3.29-.375-6.747-1.645-6.747-7.32 0-1.615.577-2.937 1.525-3.975-.15-.372-.66-1.88.145-3.917 0 0 1.242-.4 4.075 1.517a14.3 14.3 0 0 1 3.705-.5 14.2 14.2 0 0 1 3.707.5c2.826-1.915 4.068-1.517 4.068-1.517.807 2.037.3 3.545.15 3.92.95 1.035 1.52 2.357 1.52 3.975 0 5.687-3.462 6.94-6.76 7.305.53.457 1.005 1.36 1.005 2.742 0 1.98-.02 3.575-.02 4.063 0 .395.267.857 1.02.712A14.816 14.816 0 0 0 15.101.413" clip-rule="evenodd"></path></svg></a></div><div class="gap-2 flex roboto-mono"><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=erlang">Erlang</a><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=server">Server</a></div><span class="[&_a]:text-primary grow line-clamp-4 lg:text-lg">GraphQL implementation in Erlang.</span><div class="flex items-center gap-5 max-md:text-xs [&>:not(:last-child)]:border-r [&>:not(:last-child)]:border-gray-500 [&>:not(:last-child)]:pr-5"><span>Last release <!-- -->6 years ago</span><span class="flex items-center gap-1"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="19" fill="currentColor" class="text-primary"><path d="m10 .5 2.997 5.874L19.51 7.41l-4.66 4.666 1.027 6.514L10 15.6l-5.878 2.99 1.028-6.514L.489 7.41l6.513-1.036z"></path></svg>313</span><span>Other</span></div></div></div><div class="border border-zinc-200 dark:border-[#414141] p-8 lg:p-12 bg-white dark:bg-neutral-800 rounded-none !p-0 h-max min-w-0"><div class="p-8 lg:p-12 flex flex-col gap-7 grow"><div class="flex items-center gap-6 [&_a:hover]:text-primary [&_a]:transition-colors"><span class="text-3xl font-extrabold grow break-all">Nodes</span><a href="https://github.com/americanexpress/nodes" target="_blank" rel="noreferrer"><svg xmlns="http://www.w3.org/2000/svg" width="30" fill="currentColor" viewBox="0 0 30 30"><path fill-rule="evenodd" d="M15.1.413a14.81 14.81 0 0 0-4.684 28.862c.742.138 1.012-.32 1.012-.712 0-.35-.013-1.283-.02-2.518-4.12.893-4.99-1.987-4.99-1.987-.675-1.71-1.643-2.165-1.643-2.165-1.345-.918.1-.9.1-.9 1.488.105 2.27 1.525 2.27 1.525 1.32 2.265 3.466 1.61 4.31 1.23.133-.955.515-1.608.94-1.978-3.29-.375-6.747-1.645-6.747-7.32 0-1.615.577-2.937 1.525-3.975-.15-.372-.66-1.88.145-3.917 0 0 1.242-.4 4.075 1.517a14.3 14.3 0 0 1 3.705-.5 14.2 14.2 0 0 1 3.707.5c2.826-1.915 4.068-1.517 4.068-1.517.807 2.037.3 3.545.15 3.92.95 1.035 1.52 2.357 1.52 3.975 0 5.687-3.462 6.94-6.76 7.305.53.457 1.005 1.36 1.005 2.742 0 1.98-.02 3.575-.02 4.063 0 .395.267.857 1.02.712A14.816 14.816 0 0 0 15.101.413" clip-rule="evenodd"></path></svg></a></div><div class="gap-2 flex roboto-mono"><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=java-kotlin-android">Java / Kotlin</a><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=client">Client</a></div><span class="[&_a]:text-primary grow line-clamp-4 lg:text-lg">A GraphQL JVM Client designed for constructing queries from standard model definitions. By American Express.</span><div class="flex items-center gap-5 max-md:text-xs [&>:not(:last-child)]:border-r [&>:not(:last-child)]:border-gray-500 [&>:not(:last-child)]:pr-5"><span>Last release <!-- -->5 years ago</span><span class="flex items-center gap-1"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="19" fill="currentColor" class="text-primary"><path d="m10 .5 2.997 5.874L19.51 7.41l-4.66 4.666 1.027 6.514L10 15.6l-5.878 2.99 1.028-6.514L.489 7.41l6.513-1.036z"></path></svg>308</span><span>Apache License 2.0</span></div></div></div><div class="border border-zinc-200 dark:border-[#414141] p-8 lg:p-12 bg-white dark:bg-neutral-800 rounded-none !p-0 h-max min-w-0"><div class="p-8 lg:p-12 flex flex-col gap-7 grow"><div class="flex items-center gap-6 [&_a:hover]:text-primary [&_a]:transition-colors"><span class="text-3xl font-extrabold grow break-all">KGraphQL</span><a href="https://kgraphql.io/" target="_blank" rel="noreferrer"><svg xmlns="http://www.w3.org/2000/svg" fill="currentColor" viewBox="0 0 24 24"><path d="M23.332 15.948C23.764 14.711 24 13.383 24 12a12 12 0 0 0-.706-4.056C21.627 3.317 17.194 0 12 0S2.373 3.317.706 7.944A11.949 11.949 0 0 0 0 12a12 12 0 0 0 .706 4.056C2.373 20.683 6.806 24 12 24s9.627-3.317 11.294-7.944a1 1 0 0 0 .038-.108M12 22.28c-.457 0-1.194-.827-1.81-2.675a19 19 0 0 1-.708-3.031h5.036a19 19 0 0 1-.708 3.031c-.616 1.848-1.353 2.675-1.81 2.675m-2.727-7.427A32 32 0 0 1 9.147 12c0-.98.043-1.936.126-2.853h5.454c.083.917.126 1.874.126 2.853s-.043 1.936-.126 2.854zM1.72 12c0-.99.141-1.947.403-2.853h5.425a33.5 33.5 0 0 0 0 5.707H2.123A10.3 10.3 0 0 1 1.72 12M12 1.72c.457 0 1.194.827 1.81 2.675.297.892.535 1.917.708 3.032H9.482c.173-1.115.411-2.14.708-3.032.616-1.848 1.353-2.675 1.81-2.675m4.452 7.427h5.425c.262.906.403 1.864.403 2.853s-.141 1.947-.403 2.854h-5.425a33.5 33.5 0 0 0 0-5.707m4.752-1.72h-4.95c-.305-2.11-.83-4.003-1.566-5.35 2.855.775 5.22 2.75 6.516 5.35M9.313 2.077c-.736 1.347-1.261 3.24-1.567 5.35h-4.95a10.33 10.33 0 0 1 6.517-5.35M2.795 16.574h4.95c.306 2.11.83 4.002 1.567 5.349a10.33 10.33 0 0 1-6.517-5.35m11.893 5.349c.736-1.347 1.261-3.24 1.567-5.35h4.95a10.33 10.33 0 0 1-6.517 5.35"></path></svg></a><a href="https://github.com/aPureBase/KGraphQL" target="_blank" rel="noreferrer"><svg xmlns="http://www.w3.org/2000/svg" width="30" fill="currentColor" viewBox="0 0 30 30"><path fill-rule="evenodd" d="M15.1.413a14.81 14.81 0 0 0-4.684 28.862c.742.138 1.012-.32 1.012-.712 0-.35-.013-1.283-.02-2.518-4.12.893-4.99-1.987-4.99-1.987-.675-1.71-1.643-2.165-1.643-2.165-1.345-.918.1-.9.1-.9 1.488.105 2.27 1.525 2.27 1.525 1.32 2.265 3.466 1.61 4.31 1.23.133-.955.515-1.608.94-1.978-3.29-.375-6.747-1.645-6.747-7.32 0-1.615.577-2.937 1.525-3.975-.15-.372-.66-1.88.145-3.917 0 0 1.242-.4 4.075 1.517a14.3 14.3 0 0 1 3.705-.5 14.2 14.2 0 0 1 3.707.5c2.826-1.915 4.068-1.517 4.068-1.517.807 2.037.3 3.545.15 3.92.95 1.035 1.52 2.357 1.52 3.975 0 5.687-3.462 6.94-6.76 7.305.53.457 1.005 1.36 1.005 2.742 0 1.98-.02 3.575-.02 4.063 0 .395.267.857 1.02.712A14.816 14.816 0 0 0 15.101.413" clip-rule="evenodd"></path></svg></a></div><div class="gap-2 flex roboto-mono"><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=java-kotlin-android">Java / Kotlin</a><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=server">Server</a></div><span class="[&_a]:text-primary grow line-clamp-4 lg:text-lg">KGraphQL is a Kotlin implementation of GraphQL. It provides a rich DSL to set up the GraphQL schema.</span><div class="flex items-center gap-5 max-md:text-xs [&>:not(:last-child)]:border-r [&>:not(:last-child)]:border-gray-500 [&>:not(:last-child)]:pr-5"><span>Last release <!-- -->1 year ago</span><span class="flex items-center gap-1"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="19" fill="currentColor" class="text-primary"><path d="m10 .5 2.997 5.874L19.51 7.41l-4.66 4.666 1.027 6.514L10 15.6l-5.878 2.99 1.028-6.514L.489 7.41l6.513-1.036z"></path></svg>307</span><span>MIT License</span></div></div><details class="bg-[#f0f0f0] dark:bg-[#2f2f2f]"><summary class="flex justify-between font-bold text-primary px-8 lg:px-12 py-5 dark:[[open]>&]:shadow-[-5px_10px_30px_20px_#1b1b1b4d] [[open]>&]:shadow-[0_6px_21px_0_#1b1b1b33] cursor-pointer">README<svg xmlns="http://www.w3.org/2000/svg" fill="currentColor" viewBox="0 0 15 15" class="size-5 -rotate-90 [[open]>*>&]:rotate-90 transition-transform"><path fill-rule="evenodd" d="M8.842 3.135a.5.5 0 0 1 .023.707L5.435 7.5l3.43 3.658a.5.5 0 0 1-.73.684l-3.75-4a.5.5 0 0 1 0-.684l3.75-4a.5.5 0 0 1 .707-.023" clip-rule="evenodd"></path></svg></summary><div class="px-8 lg:px-12 py-5"><p class="[&:not(:first-child)]:_mt-6 _leading-7">Here’s an example on how to create a simple schema based on a kotlin data class plus a property resolver that gets applied onto your class.</p> <div class="nextra-code _relative [&:not(:first-child)]:_mt-6"><pre class="_overflow-x-auto _subpixel-antialiased _text-[.9em] _bg-white dark:_bg-black _py-4 _ring-1 _ring-inset _ring-gray-300 dark:_ring-neutral-700 contrast-more:_ring-gray-900 contrast-more:dark:_ring-gray-50 contrast-more:_contrast-150 _rounded-md" tabindex="0"><code class="nextra-code" dir="ltr"><span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">data</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> class</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> Article</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">val</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> id: </span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">Int</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">, </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">val</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> text: </span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">String</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">)</span></span> <span> </span> <span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">fun</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> main</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">() {</span></span> <span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> val</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> schema </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> KGraphQL.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">schema</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> {</span></span> <span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> query</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">"article"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">) {</span></span> <span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> resolver</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> { id: </span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">Int</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">?, text: </span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">String</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> -></span></span> <span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> Article</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(id ?: </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">-</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">1</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">, text)</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> }</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> }</span></span> <span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> type</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"><</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">Article</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">> {</span></span> <span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> property</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"><</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">String</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">>(</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">"fullText"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">) {</span></span> <span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> resolver</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> { article: </span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">Article</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> -></span></span> <span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> "${article.id}: ${article.text}"</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> }</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> }</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> }</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> }</span></span> <span> </span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> schema.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">execute</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">"""</span></span> <span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> {</span></span> <span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> article(id: 5, text: "Hello World") {</span></span> <span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> id</span></span> <span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> fullText</span></span> <span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> }</span></span> <span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> }</span></span> <span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> """</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">).</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">let</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(::</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">println</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">)</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">}</span></span></code></pre><div class="_opacity-0 _transition [div:hover>&]:_opacity-100 focus-within:_opacity-100 _flex _gap-1 _absolute _right-4 _top-2"><button class="_transition _rounded-md _p-1.5 _border _border-gray-300 dark:_border-neutral-700 contrast-more:_border-gray-900 contrast-more:dark:_border-gray-50 md:_hidden" title="Toggle word wrap"><svg viewBox="0 0 24 24" width="24" height="24" class="_h-4 _w-auto"><path fill="currentColor" d="M4 19h6v-2H4v2zM20 5H4v2h16V5zm-3 6H4v2h13.25c1.1 0 2 .9 2 2s-.9 2-2 2H15v-2l-3 3l3 3v-2h2c2.21 0 4-1.79 4-4s-1.79-4-4-4z"></path></svg></button></div></div> <p class="[&:not(:first-child)]:_mt-6 _leading-7">KGraphQL is using coroutines behind the scenes to provide great asynchronous performance.</p> <p class="[&:not(:first-child)]:_mt-6 _leading-7">See <a href="https://kgraphql.io/Installation/" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">KGraphQL docs</a> for more in depth usage.</p> <h2 class="_font-semibold _tracking-tight _text-slate-900 dark:_text-slate-100 _mt-10 _border-b _pb-1 _text-3xl _border-neutral-200/70 contrast-more:_border-neutral-400 dark:_border-primary-100/10 contrast-more:dark:_border-neutral-400">Ktor Plugin<a href="#ktor-plugin" id="ktor-plugin" class="subheading-anchor" aria-label="Permalink for this section"></a></h2> <p class="[&:not(:first-child)]:_mt-6 _leading-7">KGraphQL has a Ktor plugin which gives you a fully functional GraphQL server with a single <a href="https://ktor.io/docs/zfeatures.html" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">install</a> function call. Example below shows how to set up a GraphQL server within Ktor and it will give you a <a href="https://github.com/graphql/graphql-playground" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">GraphQL Playground</a> out of the box by entering <code class="nextra-code" dir="ltr">localhost:8080/graphql</code>.</p> <div class="nextra-code _relative [&:not(:first-child)]:_mt-6"><pre class="_overflow-x-auto _subpixel-antialiased _text-[.9em] _bg-white dark:_bg-black _py-4 _ring-1 _ring-inset _ring-gray-300 dark:_ring-neutral-700 contrast-more:_ring-gray-900 contrast-more:dark:_ring-gray-50 contrast-more:_contrast-150 _rounded-md" tabindex="0"><code class="nextra-code" dir="ltr"><span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">fun</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> Application</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">module</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">() {</span></span> <span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> install</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(GraphQL) {</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> playground </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> true</span></span> <span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> schema</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> {</span></span> <span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> query</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">"hello"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">) {</span></span> <span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> resolver</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> { </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">-></span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> "World!"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> }</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> }</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> }</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> }</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">}</span></span></code></pre><div class="_opacity-0 _transition [div:hover>&]:_opacity-100 focus-within:_opacity-100 _flex _gap-1 _absolute _right-4 _top-2"><button class="_transition _rounded-md _p-1.5 _border _border-gray-300 dark:_border-neutral-700 contrast-more:_border-gray-900 contrast-more:dark:_border-gray-50 md:_hidden" title="Toggle word wrap"><svg viewBox="0 0 24 24" width="24" height="24" class="_h-4 _w-auto"><path fill="currentColor" d="M4 19h6v-2H4v2zM20 5H4v2h16V5zm-3 6H4v2h13.25c1.1 0 2 .9 2 2s-.9 2-2 2H15v-2l-3 3l3 3v-2h2c2.21 0 4-1.79 4-4s-1.79-4-4-4z"></path></svg></button></div></div> <p class="[&:not(:first-child)]:_mt-6 _leading-7">You can follow the <a href="https://kgraphql.io/Tutorials/ktor/" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">Ktor tutorial</a> to set up a KGraphQL server with ktor from scratch up.</p></div></details></div><div class="border border-zinc-200 dark:border-[#414141] p-8 lg:p-12 bg-white dark:bg-neutral-800 rounded-none !p-0 h-max min-w-0"><div class="p-8 lg:p-12 flex flex-col gap-7 grow"><div class="flex items-center gap-6 [&_a:hover]:text-primary [&_a]:transition-colors"><span class="text-3xl font-extrabold grow break-all">graphql-clj</span><a href="https://github.com/tendant/graphql-clj" target="_blank" rel="noreferrer"><svg xmlns="http://www.w3.org/2000/svg" width="30" fill="currentColor" viewBox="0 0 30 30"><path fill-rule="evenodd" d="M15.1.413a14.81 14.81 0 0 0-4.684 28.862c.742.138 1.012-.32 1.012-.712 0-.35-.013-1.283-.02-2.518-4.12.893-4.99-1.987-4.99-1.987-.675-1.71-1.643-2.165-1.643-2.165-1.345-.918.1-.9.1-.9 1.488.105 2.27 1.525 2.27 1.525 1.32 2.265 3.466 1.61 4.31 1.23.133-.955.515-1.608.94-1.978-3.29-.375-6.747-1.645-6.747-7.32 0-1.615.577-2.937 1.525-3.975-.15-.372-.66-1.88.145-3.917 0 0 1.242-.4 4.075 1.517a14.3 14.3 0 0 1 3.705-.5 14.2 14.2 0 0 1 3.707.5c2.826-1.915 4.068-1.517 4.068-1.517.807 2.037.3 3.545.15 3.92.95 1.035 1.52 2.357 1.52 3.975 0 5.687-3.462 6.94-6.76 7.305.53.457 1.005 1.36 1.005 2.742 0 1.98-.02 3.575-.02 4.063 0 .395.267.857 1.02.712A14.816 14.816 0 0 0 15.101.413" clip-rule="evenodd"></path></svg></a></div><div class="gap-2 flex roboto-mono"><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=clojure">Clojure</a><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=server">Server</a></div><span class="[&_a]:text-primary grow line-clamp-4 lg:text-lg">A Clojure library that provides a GraphQL implementation.</span><div class="flex items-center gap-5 max-md:text-xs [&>:not(:last-child)]:border-r [&>:not(:last-child)]:border-gray-500 [&>:not(:last-child)]:pr-5"><span class="flex items-center gap-1"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="19" fill="currentColor" class="text-primary"><path d="m10 .5 2.997 5.874L19.51 7.41l-4.66 4.666 1.027 6.514L10 15.6l-5.878 2.99 1.028-6.514L.489 7.41l6.513-1.036z"></path></svg>285</span><span>Eclipse Public License 1.0</span></div></div><details class="bg-[#f0f0f0] dark:bg-[#2f2f2f]"><summary class="flex justify-between font-bold text-primary px-8 lg:px-12 py-5 dark:[[open]>&]:shadow-[-5px_10px_30px_20px_#1b1b1b4d] [[open]>&]:shadow-[0_6px_21px_0_#1b1b1b33] cursor-pointer">README<svg xmlns="http://www.w3.org/2000/svg" fill="currentColor" viewBox="0 0 15 15" class="size-5 -rotate-90 [[open]>*>&]:rotate-90 transition-transform"><path fill-rule="evenodd" d="M8.842 3.135a.5.5 0 0 1 .023.707L5.435 7.5l3.43 3.658a.5.5 0 0 1-.73.684l-3.75-4a.5.5 0 0 1 0-.684l3.75-4a.5.5 0 0 1 .707-.023" clip-rule="evenodd"></path></svg></summary><div class="px-8 lg:px-12 py-5"><p class="[&:not(:first-child)]:_mt-6 _leading-7">Code that executes a hello world GraphQL query with <code class="nextra-code" dir="ltr">graphql-clj</code>:</p> <div class="nextra-code _relative [&:not(:first-child)]:_mt-6"><pre class="_overflow-x-auto _subpixel-antialiased _text-[.9em] _bg-white dark:_bg-black _py-4 _ring-1 _ring-inset _ring-gray-300 dark:_ring-neutral-700 contrast-more:_ring-gray-900 contrast-more:dark:_ring-gray-50 contrast-more:_contrast-150 _rounded-md" tabindex="0"><code class="nextra-code" dir="ltr"><span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">def</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> schema</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> "type QueryRoot {</span></span> <span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> hello: String</span></span> <span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> }"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">)</span></span> <span> </span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">defn</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> resolver-fn</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> [type-name field-name]</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> (</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">get-in</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> {</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">"QueryRoot"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> {</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">"hello"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> (</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">fn</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> [context parent & rest]</span></span> <span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> "Hello world!"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">)}}</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> [type-name field-name]))</span></span> <span> </span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">require</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> '[graphql-clj.executor </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">:as</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> executor])</span></span> <span> </span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">executor/execute</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> nil</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> schema resolver-fn </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">"{ hello }"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">)</span></span></code></pre><div class="_opacity-0 _transition [div:hover>&]:_opacity-100 focus-within:_opacity-100 _flex _gap-1 _absolute _right-4 _top-2"><button class="_transition _rounded-md _p-1.5 _border _border-gray-300 dark:_border-neutral-700 contrast-more:_border-gray-900 contrast-more:dark:_border-gray-50 md:_hidden" title="Toggle word wrap"><svg viewBox="0 0 24 24" width="24" height="24" class="_h-4 _w-auto"><path fill="currentColor" d="M4 19h6v-2H4v2zM20 5H4v2h16V5zm-3 6H4v2h13.25c1.1 0 2 .9 2 2s-.9 2-2 2H15v-2l-3 3l3 3v-2h2c2.21 0 4-1.79 4-4s-1.79-4-4-4z"></path></svg></button></div></div></div></details></div><div class="border border-zinc-200 dark:border-[#414141] p-8 lg:p-12 bg-white dark:bg-neutral-800 rounded-none !p-0 h-max min-w-0"><div class="p-8 lg:p-12 flex flex-col gap-7 grow"><div class="flex items-center gap-6 [&_a:hover]:text-primary [&_a]:transition-colors"><span class="text-3xl font-extrabold grow break-all">ZeroQL</span><a href="https://github.com/byme8/ZeroQL" target="_blank" rel="noreferrer"><svg xmlns="http://www.w3.org/2000/svg" width="30" fill="currentColor" viewBox="0 0 30 30"><path fill-rule="evenodd" d="M15.1.413a14.81 14.81 0 0 0-4.684 28.862c.742.138 1.012-.32 1.012-.712 0-.35-.013-1.283-.02-2.518-4.12.893-4.99-1.987-4.99-1.987-.675-1.71-1.643-2.165-1.643-2.165-1.345-.918.1-.9.1-.9 1.488.105 2.27 1.525 2.27 1.525 1.32 2.265 3.466 1.61 4.31 1.23.133-.955.515-1.608.94-1.978-3.29-.375-6.747-1.645-6.747-7.32 0-1.615.577-2.937 1.525-3.975-.15-.372-.66-1.88.145-3.917 0 0 1.242-.4 4.075 1.517a14.3 14.3 0 0 1 3.705-.5 14.2 14.2 0 0 1 3.707.5c2.826-1.915 4.068-1.517 4.068-1.517.807 2.037.3 3.545.15 3.92.95 1.035 1.52 2.357 1.52 3.975 0 5.687-3.462 6.94-6.76 7.305.53.457 1.005 1.36 1.005 2.742 0 1.98-.02 3.575-.02 4.063 0 .395.267.857 1.02.712A14.816 14.816 0 0 0 15.101.413" clip-rule="evenodd"></path></svg></a></div><div class="gap-2 flex roboto-mono"><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=c-net">C# / .NET</a><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=client">Client</a></div><span class="[&_a]:text-primary grow line-clamp-4 lg:text-lg">ZeroQL is a open-source GraphQL client for C#</span><div class="flex items-center gap-5 max-md:text-xs [&>:not(:last-child)]:border-r [&>:not(:last-child)]:border-gray-500 [&>:not(:last-child)]:pr-5"><span>Last release <!-- -->3 months ago</span><span class="flex items-center gap-1"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="19" fill="currentColor" class="text-primary"><path d="m10 .5 2.997 5.874L19.51 7.41l-4.66 4.666 1.027 6.514L10 15.6l-5.878 2.99 1.028-6.514L.489 7.41l6.513-1.036z"></path></svg>278</span><span>MIT License</span></div></div><details class="bg-[#f0f0f0] dark:bg-[#2f2f2f]"><summary class="flex justify-between font-bold text-primary px-8 lg:px-12 py-5 dark:[[open]>&]:shadow-[-5px_10px_30px_20px_#1b1b1b4d] [[open]>&]:shadow-[0_6px_21px_0_#1b1b1b33] cursor-pointer">README<svg xmlns="http://www.w3.org/2000/svg" fill="currentColor" viewBox="0 0 15 15" class="size-5 -rotate-90 [[open]>*>&]:rotate-90 transition-transform"><path fill-rule="evenodd" d="M8.842 3.135a.5.5 0 0 1 .023.707L5.435 7.5l3.43 3.658a.5.5 0 0 1-.73.684l-3.75-4a.5.5 0 0 1 0-.684l3.75-4a.5.5 0 0 1 .707-.023" clip-rule="evenodd"></path></svg></summary><div class="px-8 lg:px-12 py-5"><p class="[&:not(:first-child)]:_mt-6 _leading-7">The ZeroQL is a high-performance C#-friendly GraphQL client. It supports Linq-like syntax, and doesn’t require Reflection.Emit or expressions. As a result, at runtime provides performance very close to a raw HTTP call.</p> <p class="[&:not(:first-child)]:_mt-6 _leading-7">You can use ZeroQL to:</p> <ul class="[:is(ol,ul)_&]:_my-3 [&:not(:first-child)]:_mt-6 _list-disc ltr:_ml-6 rtl:_mr-6"> <li class="_my-2">Generate a C# client from GraphQL schema.</li> <li class="_my-2">Generate and execute graphql queries from your C# code.</li> <li class="_my-2">Don’t require writing GraphQL manually.</li> <li class="_my-2">Supports .Net Core, .Net Framework, Xamarin, Unity apps.</li> </ul> <div class="nextra-code _relative [&:not(:first-child)]:_mt-6"><pre class="_overflow-x-auto _subpixel-antialiased _text-[.9em] _bg-white dark:_bg-black _py-4 _ring-1 _ring-inset _ring-gray-300 dark:_ring-neutral-700 contrast-more:_ring-gray-900 contrast-more:dark:_ring-gray-50 contrast-more:_contrast-150 _rounded-md" tabindex="0"><code class="nextra-code" dir="ltr"><span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">var</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> userId</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> =</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> 10</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">;</span></span> <span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">var</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> response</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> =</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> await</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> qlClient.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">Query</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">q</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> =></span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> q</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> .</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">User</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(userId, </span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">o</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> =></span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> new</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> {</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> o.Id,</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> o.FirstName,</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> o.LastName</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> }));</span></span></code></pre><div class="_opacity-0 _transition [div:hover>&]:_opacity-100 focus-within:_opacity-100 _flex _gap-1 _absolute _right-4 _top-2"><button class="_transition _rounded-md _p-1.5 _border _border-gray-300 dark:_border-neutral-700 contrast-more:_border-gray-900 contrast-more:dark:_border-gray-50 md:_hidden" title="Toggle word wrap"><svg viewBox="0 0 24 24" width="24" height="24" class="_h-4 _w-auto"><path fill="currentColor" d="M4 19h6v-2H4v2zM20 5H4v2h16V5zm-3 6H4v2h13.25c1.1 0 2 .9 2 2s-.9 2-2 2H15v-2l-3 3l3 3v-2h2c2.21 0 4-1.79 4-4s-1.79-4-4-4z"></path></svg></button></div></div></div></details></div><div class="border border-zinc-200 dark:border-[#414141] p-8 lg:p-12 bg-white dark:bg-neutral-800 rounded-none !p-0 h-max min-w-0"><div class="p-8 lg:p-12 flex flex-col gap-7 grow"><div class="flex items-center gap-6 [&_a:hover]:text-primary [&_a]:transition-colors"><span class="text-3xl font-extrabold grow break-all">Grafoo</span><a href="https://github.com/grafoojs/grafoo" target="_blank" rel="noreferrer"><svg xmlns="http://www.w3.org/2000/svg" width="30" fill="currentColor" viewBox="0 0 30 30"><path fill-rule="evenodd" d="M15.1.413a14.81 14.81 0 0 0-4.684 28.862c.742.138 1.012-.32 1.012-.712 0-.35-.013-1.283-.02-2.518-4.12.893-4.99-1.987-4.99-1.987-.675-1.71-1.643-2.165-1.643-2.165-1.345-.918.1-.9.1-.9 1.488.105 2.27 1.525 2.27 1.525 1.32 2.265 3.466 1.61 4.31 1.23.133-.955.515-1.608.94-1.978-3.29-.375-6.747-1.645-6.747-7.32 0-1.615.577-2.937 1.525-3.975-.15-.372-.66-1.88.145-3.917 0 0 1.242-.4 4.075 1.517a14.3 14.3 0 0 1 3.705-.5 14.2 14.2 0 0 1 3.707.5c2.826-1.915 4.068-1.517 4.068-1.517.807 2.037.3 3.545.15 3.92.95 1.035 1.52 2.357 1.52 3.975 0 5.687-3.462 6.94-6.76 7.305.53.457 1.005 1.36 1.005 2.742 0 1.98-.02 3.575-.02 4.063 0 .395.267.857 1.02.712A14.816 14.816 0 0 0 15.101.413" clip-rule="evenodd"></path></svg></a><a href="https://npmjs.com/package/@grafoo/core" target="_blank" rel="noreferrer"><svg xmlns="http://www.w3.org/2000/svg" width="30" height="30" fill="currentColor"><path fill-rule="evenodd" d="M0 0v30h30V0zm24.375 5.625H5.625v18.75H15v-15h5.625v15h3.75z" clip-rule="evenodd"></path></svg></a></div><div class="gap-2 flex roboto-mono"><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=javascript">JavaScript</a><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=client">Client</a></div><span class="[&_a]:text-primary grow line-clamp-4 lg:text-lg">An all purpose GraphQL client with view layer integrations for multiple frameworks in just 1.6kb.</span><div class="flex items-center gap-5 max-md:text-xs [&>:not(:last-child)]:border-r [&>:not(:last-child)]:border-gray-500 [&>:not(:last-child)]:pr-5"><span>Last release <!-- -->6 years ago</span><span class="flex items-center gap-1"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="19" fill="currentColor" class="text-primary"><path d="m10 .5 2.997 5.874L19.51 7.41l-4.66 4.666 1.027 6.514L10 15.6l-5.878 2.99 1.028-6.514L.489 7.41l6.513-1.036z"></path></svg>274</span><span>MIT License</span></div></div></div><div class="border border-zinc-200 dark:border-[#414141] p-8 lg:p-12 bg-white dark:bg-neutral-800 rounded-none !p-0 h-max min-w-0"><div class="p-8 lg:p-12 flex flex-col gap-7 grow"><div class="flex items-center gap-6 [&_a:hover]:text-primary [&_a]:transition-colors"><span class="text-3xl font-extrabold grow break-all">Ariadne Codegen</span><a href="https://github.com/mirumee/ariadne-codegen" target="_blank" rel="noreferrer"><svg xmlns="http://www.w3.org/2000/svg" width="30" fill="currentColor" viewBox="0 0 30 30"><path fill-rule="evenodd" d="M15.1.413a14.81 14.81 0 0 0-4.684 28.862c.742.138 1.012-.32 1.012-.712 0-.35-.013-1.283-.02-2.518-4.12.893-4.99-1.987-4.99-1.987-.675-1.71-1.643-2.165-1.643-2.165-1.345-.918.1-.9.1-.9 1.488.105 2.27 1.525 2.27 1.525 1.32 2.265 3.466 1.61 4.31 1.23.133-.955.515-1.608.94-1.978-3.29-.375-6.747-1.645-6.747-7.32 0-1.615.577-2.937 1.525-3.975-.15-.372-.66-1.88.145-3.917 0 0 1.242-.4 4.075 1.517a14.3 14.3 0 0 1 3.705-.5 14.2 14.2 0 0 1 3.707.5c2.826-1.915 4.068-1.517 4.068-1.517.807 2.037.3 3.545.15 3.92.95 1.035 1.52 2.357 1.52 3.975 0 5.687-3.462 6.94-6.76 7.305.53.457 1.005 1.36 1.005 2.742 0 1.98-.02 3.575-.02 4.063 0 .395.267.857 1.02.712A14.816 14.816 0 0 0 15.101.413" clip-rule="evenodd"></path></svg></a></div><div class="gap-2 flex roboto-mono"><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=python">Python</a><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=client">Client</a></div><span class="[&_a]:text-primary grow line-clamp-4 lg:text-lg">Generate fully typed Python GraphQL client from any schema and queries.</span><div class="flex items-center gap-5 max-md:text-xs [&>:not(:last-child)]:border-r [&>:not(:last-child)]:border-gray-500 [&>:not(:last-child)]:pr-5"><span>Last release <!-- -->4 months ago</span><span class="flex items-center gap-1"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="19" fill="currentColor" class="text-primary"><path d="m10 .5 2.997 5.874L19.51 7.41l-4.66 4.666 1.027 6.514L10 15.6l-5.878 2.99 1.028-6.514L.489 7.41l6.513-1.036z"></path></svg>274</span><span>BSD 3-Clause "New" or "Revised" License</span></div></div><details class="bg-[#f0f0f0] dark:bg-[#2f2f2f]"><summary class="flex justify-between font-bold text-primary px-8 lg:px-12 py-5 dark:[[open]>&]:shadow-[-5px_10px_30px_20px_#1b1b1b4d] [[open]>&]:shadow-[0_6px_21px_0_#1b1b1b33] cursor-pointer">README<svg xmlns="http://www.w3.org/2000/svg" fill="currentColor" viewBox="0 0 15 15" class="size-5 -rotate-90 [[open]>*>&]:rotate-90 transition-transform"><path fill-rule="evenodd" d="M8.842 3.135a.5.5 0 0 1 .023.707L5.435 7.5l3.43 3.658a.5.5 0 0 1-.73.684l-3.75-4a.5.5 0 0 1 0-.684l3.75-4a.5.5 0 0 1 .707-.023" clip-rule="evenodd"></path></svg></summary><div class="px-8 lg:px-12 py-5"><p class="[&:not(:first-child)]:_mt-6 _leading-7">Install Ariadne Codegen:</p> <div class="nextra-code _relative [&:not(:first-child)]:_mt-6"><pre class="_overflow-x-auto _subpixel-antialiased _text-[.9em] _bg-white dark:_bg-black _py-4 _ring-1 _ring-inset _ring-gray-300 dark:_ring-neutral-700 contrast-more:_ring-gray-900 contrast-more:dark:_ring-gray-50 contrast-more:_contrast-150 _rounded-md"><code class="nextra-code" dir="ltr">$ pip install ariadne-codegen </code></pre><div class="_opacity-0 _transition [div:hover>&]:_opacity-100 focus-within:_opacity-100 _flex _gap-1 _absolute _right-4 _top-2"><button class="_transition _rounded-md _p-1.5 _border _border-gray-300 dark:_border-neutral-700 contrast-more:_border-gray-900 contrast-more:dark:_border-gray-50 md:_hidden" title="Toggle word wrap"><svg viewBox="0 0 24 24" width="24" height="24" class="_h-4 _w-auto"><path fill="currentColor" d="M4 19h6v-2H4v2zM20 5H4v2h16V5zm-3 6H4v2h13.25c1.1 0 2 .9 2 2s-.9 2-2 2H15v-2l-3 3l3 3v-2h2c2.21 0 4-1.79 4-4s-1.79-4-4-4z"></path></svg></button></div></div> <p class="[&:not(:first-child)]:_mt-6 _leading-7">Create <code class="nextra-code" dir="ltr">queries.graphql</code> file:</p> <div class="nextra-code _relative [&:not(:first-child)]:_mt-6"><pre class="_overflow-x-auto _subpixel-antialiased _text-[.9em] _bg-white dark:_bg-black _py-4 _ring-1 _ring-inset _ring-gray-300 dark:_ring-neutral-700 contrast-more:_ring-gray-900 contrast-more:dark:_ring-gray-50 contrast-more:_contrast-150 _rounded-md" tabindex="0"><code class="nextra-code" dir="ltr"><span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">mutation</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> CreateToken</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(</span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70">$username</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">: </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">String</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">!</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">, </span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70">$password</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">: </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">String</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">!</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">) {</span></span> <span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70"> createToken</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(</span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70">username</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">: </span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70">$username</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">, </span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70">password</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">: </span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70">$password</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">) {</span></span> <span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70"> token</span></span> <span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70"> errors</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> {</span></span> <span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70"> field</span></span> <span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70"> message</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> }</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> }</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">}</span></span></code></pre><div class="_opacity-0 _transition [div:hover>&]:_opacity-100 focus-within:_opacity-100 _flex _gap-1 _absolute _right-4 _top-2"><button class="_transition _rounded-md _p-1.5 _border _border-gray-300 dark:_border-neutral-700 contrast-more:_border-gray-900 contrast-more:dark:_border-gray-50 md:_hidden" title="Toggle word wrap"><svg viewBox="0 0 24 24" width="24" height="24" class="_h-4 _w-auto"><path fill="currentColor" d="M4 19h6v-2H4v2zM20 5H4v2h16V5zm-3 6H4v2h13.25c1.1 0 2 .9 2 2s-.9 2-2 2H15v-2l-3 3l3 3v-2h2c2.21 0 4-1.79 4-4s-1.79-4-4-4z"></path></svg></button></div></div> <p class="[&:not(:first-child)]:_mt-6 _leading-7">Add <code class="nextra-code" dir="ltr">[ariadne-codegen]</code> section to your <code class="nextra-code" dir="ltr">pyproject.toml</code>:</p> <div class="nextra-code _relative [&:not(:first-child)]:_mt-6"><pre class="_overflow-x-auto _subpixel-antialiased _text-[.9em] _bg-white dark:_bg-black _py-4 _ring-1 _ring-inset _ring-gray-300 dark:_ring-neutral-700 contrast-more:_ring-gray-900 contrast-more:dark:_ring-gray-50 contrast-more:_contrast-150 _rounded-md"><code class="nextra-code" dir="ltr">[ariadne-codegen] queries_path = "queries.graphql" remote_schema_url = "http://example.com/graphql/" </code></pre><div class="_opacity-0 _transition [div:hover>&]:_opacity-100 focus-within:_opacity-100 _flex _gap-1 _absolute _right-4 _top-2"><button class="_transition _rounded-md _p-1.5 _border _border-gray-300 dark:_border-neutral-700 contrast-more:_border-gray-900 contrast-more:dark:_border-gray-50 md:_hidden" title="Toggle word wrap"><svg viewBox="0 0 24 24" width="24" height="24" class="_h-4 _w-auto"><path fill="currentColor" d="M4 19h6v-2H4v2zM20 5H4v2h16V5zm-3 6H4v2h13.25c1.1 0 2 .9 2 2s-.9 2-2 2H15v-2l-3 3l3 3v-2h2c2.21 0 4-1.79 4-4s-1.79-4-4-4z"></path></svg></button></div></div> <p class="[&:not(:first-child)]:_mt-6 _leading-7">Generate client:</p> <div class="nextra-code _relative [&:not(:first-child)]:_mt-6"><pre class="_overflow-x-auto _subpixel-antialiased _text-[.9em] _bg-white dark:_bg-black _py-4 _ring-1 _ring-inset _ring-gray-300 dark:_ring-neutral-700 contrast-more:_ring-gray-900 contrast-more:dark:_ring-gray-50 contrast-more:_contrast-150 _rounded-md"><code class="nextra-code" dir="ltr">$ ariadne-codegen </code></pre><div class="_opacity-0 _transition [div:hover>&]:_opacity-100 focus-within:_opacity-100 _flex _gap-1 _absolute _right-4 _top-2"><button class="_transition _rounded-md _p-1.5 _border _border-gray-300 dark:_border-neutral-700 contrast-more:_border-gray-900 contrast-more:dark:_border-gray-50 md:_hidden" title="Toggle word wrap"><svg viewBox="0 0 24 24" width="24" height="24" class="_h-4 _w-auto"><path fill="currentColor" d="M4 19h6v-2H4v2zM20 5H4v2h16V5zm-3 6H4v2h13.25c1.1 0 2 .9 2 2s-.9 2-2 2H15v-2l-3 3l3 3v-2h2c2.21 0 4-1.79 4-4s-1.79-4-4-4z"></path></svg></button></div></div> <p class="[&:not(:first-child)]:_mt-6 _leading-7">And use it in your Python projects:</p> <div class="nextra-code _relative [&:not(:first-child)]:_mt-6"><pre class="_overflow-x-auto _subpixel-antialiased _text-[.9em] _bg-white dark:_bg-black _py-4 _ring-1 _ring-inset _ring-gray-300 dark:_ring-neutral-700 contrast-more:_ring-gray-900 contrast-more:dark:_ring-gray-50 contrast-more:_contrast-150 _rounded-md" tabindex="0"><code class="nextra-code" dir="ltr"><span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">from</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> graphql_client </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">import</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> Client</span></span> <span> </span> <span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">with</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> Client(</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">"http://example.com/graphql/"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">) </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">as</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> client:</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> result </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> client.create_token(</span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70">username</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">"Admin"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">, </span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70">password</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">"Example123)</span></span> <span> </span> <span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> if</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> result.errors:</span></span> <span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70"> error</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> =</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> result.errors[</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">0</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">]</span></span> <span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> raise</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> ValidationError({error.field: error.message})</span></span> <span> </span> <span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70"> auth_token</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> =</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> result.token</span></span></code></pre><div class="_opacity-0 _transition [div:hover>&]:_opacity-100 focus-within:_opacity-100 _flex _gap-1 _absolute _right-4 _top-2"><button class="_transition _rounded-md _p-1.5 _border _border-gray-300 dark:_border-neutral-700 contrast-more:_border-gray-900 contrast-more:dark:_border-gray-50 md:_hidden" title="Toggle word wrap"><svg viewBox="0 0 24 24" width="24" height="24" class="_h-4 _w-auto"><path fill="currentColor" d="M4 19h6v-2H4v2zM20 5H4v2h16V5zm-3 6H4v2h13.25c1.1 0 2 .9 2 2s-.9 2-2 2H15v-2l-3 3l3 3v-2h2c2.21 0 4-1.79 4-4s-1.79-4-4-4z"></path></svg></button></div></div></div></details></div><div class="border border-zinc-200 dark:border-[#414141] p-8 lg:p-12 bg-white dark:bg-neutral-800 rounded-none !p-0 h-max min-w-0"><div class="p-8 lg:p-12 flex flex-col gap-7 grow"><div class="flex items-center gap-6 [&_a:hover]:text-primary [&_a]:transition-colors"><span class="text-3xl font-extrabold grow break-all">graphql-relay-php</span><a href="https://github.com/ivome/graphql-relay-php" target="_blank" rel="noreferrer"><svg xmlns="http://www.w3.org/2000/svg" width="30" fill="currentColor" viewBox="0 0 30 30"><path fill-rule="evenodd" d="M15.1.413a14.81 14.81 0 0 0-4.684 28.862c.742.138 1.012-.32 1.012-.712 0-.35-.013-1.283-.02-2.518-4.12.893-4.99-1.987-4.99-1.987-.675-1.71-1.643-2.165-1.643-2.165-1.345-.918.1-.9.1-.9 1.488.105 2.27 1.525 2.27 1.525 1.32 2.265 3.466 1.61 4.31 1.23.133-.955.515-1.608.94-1.978-3.29-.375-6.747-1.645-6.747-7.32 0-1.615.577-2.937 1.525-3.975-.15-.372-.66-1.88.145-3.917 0 0 1.242-.4 4.075 1.517a14.3 14.3 0 0 1 3.705-.5 14.2 14.2 0 0 1 3.707.5c2.826-1.915 4.068-1.517 4.068-1.517.807 2.037.3 3.545.15 3.92.95 1.035 1.52 2.357 1.52 3.975 0 5.687-3.462 6.94-6.76 7.305.53.457 1.005 1.36 1.005 2.742 0 1.98-.02 3.575-.02 4.063 0 .395.267.857 1.02.712A14.816 14.816 0 0 0 15.101.413" clip-rule="evenodd"></path></svg></a></div><div class="gap-2 flex roboto-mono"><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=php">PHP</a><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=server">Server</a></div><span class="[&_a]:text-primary grow line-clamp-4 lg:text-lg">A library to help construct a graphql-php server supporting react-relay.</span><div class="flex items-center gap-5 max-md:text-xs [&>:not(:last-child)]:border-r [&>:not(:last-child)]:border-gray-500 [&>:not(:last-child)]:pr-5"><span>Last release <!-- -->3 years ago</span><span class="flex items-center gap-1"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="19" fill="currentColor" class="text-primary"><path d="m10 .5 2.997 5.874L19.51 7.41l-4.66 4.666 1.027 6.514L10 15.6l-5.878 2.99 1.028-6.514L.489 7.41l6.513-1.036z"></path></svg>271</span><span>BSD 3-Clause "New" or "Revised" License</span></div></div></div><div class="border border-zinc-200 dark:border-[#414141] p-8 lg:p-12 bg-white dark:bg-neutral-800 rounded-none !p-0 h-max min-w-0"><div class="p-8 lg:p-12 flex flex-col gap-7 grow"><div class="flex items-center gap-6 [&_a:hover]:text-primary [&_a]:transition-colors"><span class="text-3xl font-extrabold grow break-all">Apollo Studio</span><a href="https://www.apollographql.com/docs/studio/" target="_blank" rel="noreferrer"><svg xmlns="http://www.w3.org/2000/svg" fill="currentColor" viewBox="0 0 24 24"><path d="M23.332 15.948C23.764 14.711 24 13.383 24 12a12 12 0 0 0-.706-4.056C21.627 3.317 17.194 0 12 0S2.373 3.317.706 7.944A11.949 11.949 0 0 0 0 12a12 12 0 0 0 .706 4.056C2.373 20.683 6.806 24 12 24s9.627-3.317 11.294-7.944a1 1 0 0 0 .038-.108M12 22.28c-.457 0-1.194-.827-1.81-2.675a19 19 0 0 1-.708-3.031h5.036a19 19 0 0 1-.708 3.031c-.616 1.848-1.353 2.675-1.81 2.675m-2.727-7.427A32 32 0 0 1 9.147 12c0-.98.043-1.936.126-2.853h5.454c.083.917.126 1.874.126 2.853s-.043 1.936-.126 2.854zM1.72 12c0-.99.141-1.947.403-2.853h5.425a33.5 33.5 0 0 0 0 5.707H2.123A10.3 10.3 0 0 1 1.72 12M12 1.72c.457 0 1.194.827 1.81 2.675.297.892.535 1.917.708 3.032H9.482c.173-1.115.411-2.14.708-3.032.616-1.848 1.353-2.675 1.81-2.675m4.452 7.427h5.425c.262.906.403 1.864.403 2.853s-.141 1.947-.403 2.854h-5.425a33.5 33.5 0 0 0 0-5.707m4.752-1.72h-4.95c-.305-2.11-.83-4.003-1.566-5.35 2.855.775 5.22 2.75 6.516 5.35M9.313 2.077c-.736 1.347-1.261 3.24-1.567 5.35h-4.95a10.33 10.33 0 0 1 6.517-5.35M2.795 16.574h4.95c.306 2.11.83 4.002 1.567 5.349a10.33 10.33 0 0 1-6.517-5.35m11.893 5.349c.736-1.347 1.261-3.24 1.567-5.35h4.95a10.33 10.33 0 0 1-6.517 5.35"></path></svg></a><a href="https://github.com/apollographql/apollo-studio-community" target="_blank" rel="noreferrer"><svg xmlns="http://www.w3.org/2000/svg" width="30" fill="currentColor" viewBox="0 0 30 30"><path fill-rule="evenodd" d="M15.1.413a14.81 14.81 0 0 0-4.684 28.862c.742.138 1.012-.32 1.012-.712 0-.35-.013-1.283-.02-2.518-4.12.893-4.99-1.987-4.99-1.987-.675-1.71-1.643-2.165-1.643-2.165-1.345-.918.1-.9.1-.9 1.488.105 2.27 1.525 2.27 1.525 1.32 2.265 3.466 1.61 4.31 1.23.133-.955.515-1.608.94-1.978-3.29-.375-6.747-1.645-6.747-7.32 0-1.615.577-2.937 1.525-3.975-.15-.372-.66-1.88.145-3.917 0 0 1.242-.4 4.075 1.517a14.3 14.3 0 0 1 3.705-.5 14.2 14.2 0 0 1 3.707.5c2.826-1.915 4.068-1.517 4.068-1.517.807 2.037.3 3.545.15 3.92.95 1.035 1.52 2.357 1.52 3.975 0 5.687-3.462 6.94-6.76 7.305.53.457 1.005 1.36 1.005 2.742 0 1.98-.02 3.575-.02 4.063 0 .395.267.857 1.02.712A14.816 14.816 0 0 0 15.101.413" clip-rule="evenodd"></path></svg></a></div><div class="gap-2 flex roboto-mono"><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=services">Services</a></div><span class="[&_a]:text-primary grow line-clamp-4 lg:text-lg">A cloud service that helps you build, validate, monitor and secure your organizations data graph.</span><div class="flex items-center gap-5 max-md:text-xs [&>:not(:last-child)]:border-r [&>:not(:last-child)]:border-gray-500 [&>:not(:last-child)]:pr-5"><span class="flex items-center gap-1"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="19" fill="currentColor" class="text-primary"><path d="m10 .5 2.997 5.874L19.51 7.41l-4.66 4.666 1.027 6.514L10 15.6l-5.878 2.99 1.028-6.514L.489 7.41l6.513-1.036z"></path></svg>250</span><span>Unknown</span></div></div></div><div class="border border-zinc-200 dark:border-[#414141] p-8 lg:p-12 bg-white dark:bg-neutral-800 rounded-none !p-0 h-max min-w-0"><div class="p-8 lg:p-12 flex flex-col gap-7 grow"><div class="flex items-center gap-6 [&_a:hover]:text-primary [&_a]:transition-colors"><span class="text-3xl font-extrabold grow break-all">Rails GraphQL</span><a href="https://www.rails-graphql.dev/" target="_blank" rel="noreferrer"><svg xmlns="http://www.w3.org/2000/svg" fill="currentColor" viewBox="0 0 24 24"><path d="M23.332 15.948C23.764 14.711 24 13.383 24 12a12 12 0 0 0-.706-4.056C21.627 3.317 17.194 0 12 0S2.373 3.317.706 7.944A11.949 11.949 0 0 0 0 12a12 12 0 0 0 .706 4.056C2.373 20.683 6.806 24 12 24s9.627-3.317 11.294-7.944a1 1 0 0 0 .038-.108M12 22.28c-.457 0-1.194-.827-1.81-2.675a19 19 0 0 1-.708-3.031h5.036a19 19 0 0 1-.708 3.031c-.616 1.848-1.353 2.675-1.81 2.675m-2.727-7.427A32 32 0 0 1 9.147 12c0-.98.043-1.936.126-2.853h5.454c.083.917.126 1.874.126 2.853s-.043 1.936-.126 2.854zM1.72 12c0-.99.141-1.947.403-2.853h5.425a33.5 33.5 0 0 0 0 5.707H2.123A10.3 10.3 0 0 1 1.72 12M12 1.72c.457 0 1.194.827 1.81 2.675.297.892.535 1.917.708 3.032H9.482c.173-1.115.411-2.14.708-3.032.616-1.848 1.353-2.675 1.81-2.675m4.452 7.427h5.425c.262.906.403 1.864.403 2.853s-.141 1.947-.403 2.854h-5.425a33.5 33.5 0 0 0 0-5.707m4.752-1.72h-4.95c-.305-2.11-.83-4.003-1.566-5.35 2.855.775 5.22 2.75 6.516 5.35M9.313 2.077c-.736 1.347-1.261 3.24-1.567 5.35h-4.95a10.33 10.33 0 0 1 6.517-5.35M2.795 16.574h4.95c.306 2.11.83 4.002 1.567 5.349a10.33 10.33 0 0 1-6.517-5.35m11.893 5.349c.736-1.347 1.261-3.24 1.567-5.35h4.95a10.33 10.33 0 0 1-6.517 5.35"></path></svg></a><a href="https://github.com/virtualshield/rails-graphql" target="_blank" rel="noreferrer"><svg xmlns="http://www.w3.org/2000/svg" width="30" fill="currentColor" viewBox="0 0 30 30"><path fill-rule="evenodd" d="M15.1.413a14.81 14.81 0 0 0-4.684 28.862c.742.138 1.012-.32 1.012-.712 0-.35-.013-1.283-.02-2.518-4.12.893-4.99-1.987-4.99-1.987-.675-1.71-1.643-2.165-1.643-2.165-1.345-.918.1-.9.1-.9 1.488.105 2.27 1.525 2.27 1.525 1.32 2.265 3.466 1.61 4.31 1.23.133-.955.515-1.608.94-1.978-3.29-.375-6.747-1.645-6.747-7.32 0-1.615.577-2.937 1.525-3.975-.15-.372-.66-1.88.145-3.917 0 0 1.242-.4 4.075 1.517a14.3 14.3 0 0 1 3.705-.5 14.2 14.2 0 0 1 3.707.5c2.826-1.915 4.068-1.517 4.068-1.517.807 2.037.3 3.545.15 3.92.95 1.035 1.52 2.357 1.52 3.975 0 5.687-3.462 6.94-6.76 7.305.53.457 1.005 1.36 1.005 2.742 0 1.98-.02 3.575-.02 4.063 0 .395.267.857 1.02.712A14.816 14.816 0 0 0 15.101.413" clip-rule="evenodd"></path></svg></a><a href="https://rubygems.org/gems/rails-graphql" target="_blank" rel="noreferrer"><svg xmlns="http://www.w3.org/2000/svg" width="28" height="30" fill="currentColor"><path d="m8.752 9.976-.016-.017-3.698 3.698 8.977 8.96 3.698-3.68 5.28-5.28-3.698-3.697v-.017H8.735z"></path><path d="M13.982.1.908 7.595v14.989l13.074 7.494 13.074-7.494V7.594zM24.558 21.15l-10.576 6.096-10.576-6.096V8.994l10.576-6.096 10.576 6.096z"></path></svg></a></div><div class="gap-2 flex roboto-mono"><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=ruby">Ruby</a><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=server">Server</a></div><span class="[&_a]:text-primary grow line-clamp-4 lg:text-lg">A Fresh new GraphQL server for Rails applications, with a focus on natural and Ruby-like DSL</span><div class="flex items-center gap-5 max-md:text-xs [&>:not(:last-child)]:border-r [&>:not(:last-child)]:border-gray-500 [&>:not(:last-child)]:pr-5"><span>Last release <!-- -->6 months ago</span><span class="flex items-center gap-1"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="19" fill="currentColor" class="text-primary"><path d="m10 .5 2.997 5.874L19.51 7.41l-4.66 4.666 1.027 6.514L10 15.6l-5.878 2.99 1.028-6.514L.489 7.41l6.513-1.036z"></path></svg>175</span><span>MIT License</span></div></div><details class="bg-[#f0f0f0] dark:bg-[#2f2f2f]"><summary class="flex justify-between font-bold text-primary px-8 lg:px-12 py-5 dark:[[open]>&]:shadow-[-5px_10px_30px_20px_#1b1b1b4d] [[open]>&]:shadow-[0_6px_21px_0_#1b1b1b33] cursor-pointer">README<svg xmlns="http://www.w3.org/2000/svg" fill="currentColor" viewBox="0 0 15 15" class="size-5 -rotate-90 [[open]>*>&]:rotate-90 transition-transform"><path fill-rule="evenodd" d="M8.842 3.135a.5.5 0 0 1 .023.707L5.435 7.5l3.43 3.658a.5.5 0 0 1-.73.684l-3.75-4a.5.5 0 0 1 0-.684l3.75-4a.5.5 0 0 1 .707-.023" clip-rule="evenodd"></path></svg></summary><div class="px-8 lg:px-12 py-5"><div class="nextra-code _relative [&:not(:first-child)]:_mt-6"><pre class="_overflow-x-auto _subpixel-antialiased _text-[.9em] _bg-white dark:_bg-black _py-4 _ring-1 _ring-inset _ring-gray-300 dark:_ring-neutral-700 contrast-more:_ring-gray-900 contrast-more:dark:_ring-gray-50 contrast-more:_contrast-150 _rounded-md" tabindex="0"><code class="nextra-code" dir="ltr"><span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">require</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> 'rails-graphql'</span></span> <span> </span> <span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">class</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> GraphQL::AppSchema</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> <</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> GraphQL::Schema</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> query_fields </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">do</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> field(</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">:hello</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">).resolve { </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">'Hello World!'</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> }</span></span> <span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> end</span></span> <span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">end</span></span> <span> </span> <span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">puts</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> GraphQL</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">::</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">AppSchema</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">.execute(</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">'{ hello }'</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">)</span></span></code></pre><div class="_opacity-0 _transition [div:hover>&]:_opacity-100 focus-within:_opacity-100 _flex _gap-1 _absolute _right-4 _top-2"><button class="_transition _rounded-md _p-1.5 _border _border-gray-300 dark:_border-neutral-700 contrast-more:_border-gray-900 contrast-more:dark:_border-gray-50 md:_hidden" title="Toggle word wrap"><svg viewBox="0 0 24 24" width="24" height="24" class="_h-4 _w-auto"><path fill="currentColor" d="M4 19h6v-2H4v2zM20 5H4v2h16V5zm-3 6H4v2h13.25c1.1 0 2 .9 2 2s-.9 2-2 2H15v-2l-3 3l3 3v-2h2c2.21 0 4-1.79 4-4s-1.79-4-4-4z"></path></svg></button></div></div> <p class="[&:not(:first-child)]:_mt-6 _leading-7">Less is more! Please check it out the <a href="https://www.rails-graphql.dev/?utm_source=graphql_org" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">docs</a>.</p></div></details></div><div class="border border-zinc-200 dark:border-[#414141] p-8 lg:p-12 bg-white dark:bg-neutral-800 rounded-none !p-0 h-max min-w-0"><div class="p-8 lg:p-12 flex flex-col gap-7 grow"><div class="flex items-center gap-6 [&_a:hover]:text-primary [&_a]:transition-colors"><span class="text-3xl font-extrabold grow break-all">Pylon</span><a href="https://pylon.cronit.io" target="_blank" rel="noreferrer"><svg xmlns="http://www.w3.org/2000/svg" fill="currentColor" viewBox="0 0 24 24"><path d="M23.332 15.948C23.764 14.711 24 13.383 24 12a12 12 0 0 0-.706-4.056C21.627 3.317 17.194 0 12 0S2.373 3.317.706 7.944A11.949 11.949 0 0 0 0 12a12 12 0 0 0 .706 4.056C2.373 20.683 6.806 24 12 24s9.627-3.317 11.294-7.944a1 1 0 0 0 .038-.108M12 22.28c-.457 0-1.194-.827-1.81-2.675a19 19 0 0 1-.708-3.031h5.036a19 19 0 0 1-.708 3.031c-.616 1.848-1.353 2.675-1.81 2.675m-2.727-7.427A32 32 0 0 1 9.147 12c0-.98.043-1.936.126-2.853h5.454c.083.917.126 1.874.126 2.853s-.043 1.936-.126 2.854zM1.72 12c0-.99.141-1.947.403-2.853h5.425a33.5 33.5 0 0 0 0 5.707H2.123A10.3 10.3 0 0 1 1.72 12M12 1.72c.457 0 1.194.827 1.81 2.675.297.892.535 1.917.708 3.032H9.482c.173-1.115.411-2.14.708-3.032.616-1.848 1.353-2.675 1.81-2.675m4.452 7.427h5.425c.262.906.403 1.864.403 2.853s-.141 1.947-.403 2.854h-5.425a33.5 33.5 0 0 0 0-5.707m4.752-1.72h-4.95c-.305-2.11-.83-4.003-1.566-5.35 2.855.775 5.22 2.75 6.516 5.35M9.313 2.077c-.736 1.347-1.261 3.24-1.567 5.35h-4.95a10.33 10.33 0 0 1 6.517-5.35M2.795 16.574h4.95c.306 2.11.83 4.002 1.567 5.349a10.33 10.33 0 0 1-6.517-5.35m11.893 5.349c.736-1.347 1.261-3.24 1.567-5.35h4.95a10.33 10.33 0 0 1-6.517 5.35"></path></svg></a><a href="https://github.com/getcronit/pylon" target="_blank" rel="noreferrer"><svg xmlns="http://www.w3.org/2000/svg" width="30" fill="currentColor" viewBox="0 0 30 30"><path fill-rule="evenodd" d="M15.1.413a14.81 14.81 0 0 0-4.684 28.862c.742.138 1.012-.32 1.012-.712 0-.35-.013-1.283-.02-2.518-4.12.893-4.99-1.987-4.99-1.987-.675-1.71-1.643-2.165-1.643-2.165-1.345-.918.1-.9.1-.9 1.488.105 2.27 1.525 2.27 1.525 1.32 2.265 3.466 1.61 4.31 1.23.133-.955.515-1.608.94-1.978-3.29-.375-6.747-1.645-6.747-7.32 0-1.615.577-2.937 1.525-3.975-.15-.372-.66-1.88.145-3.917 0 0 1.242-.4 4.075 1.517a14.3 14.3 0 0 1 3.705-.5 14.2 14.2 0 0 1 3.707.5c2.826-1.915 4.068-1.517 4.068-1.517.807 2.037.3 3.545.15 3.92.95 1.035 1.52 2.357 1.52 3.975 0 5.687-3.462 6.94-6.76 7.305.53.457 1.005 1.36 1.005 2.742 0 1.98-.02 3.575-.02 4.063 0 .395.267.857 1.02.712A14.816 14.816 0 0 0 15.101.413" clip-rule="evenodd"></path></svg></a></div><div class="gap-2 flex roboto-mono"><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=javascript">JavaScript</a><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=server">Server</a></div><span class="[&_a]:text-primary grow line-clamp-4 lg:text-lg">A code-first framework for GraphQL API development, where your schema reflects your functionality. Run <code>npm create pylon@latest</code> to get started.</span><div class="flex items-center gap-5 max-md:text-xs [&>:not(:last-child)]:border-r [&>:not(:last-child)]:border-gray-500 [&>:not(:last-child)]:pr-5"><span>Last release <!-- -->12 hours ago</span><span class="flex items-center gap-1"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="19" fill="currentColor" class="text-primary"><path d="m10 .5 2.997 5.874L19.51 7.41l-4.66 4.666 1.027 6.514L10 15.6l-5.878 2.99 1.028-6.514L.489 7.41l6.513-1.036z"></path></svg>174</span><span>Apache License 2.0</span></div></div><details class="bg-[#f0f0f0] dark:bg-[#2f2f2f]"><summary class="flex justify-between font-bold text-primary px-8 lg:px-12 py-5 dark:[[open]>&]:shadow-[-5px_10px_30px_20px_#1b1b1b4d] [[open]>&]:shadow-[0_6px_21px_0_#1b1b1b33] cursor-pointer">README<svg xmlns="http://www.w3.org/2000/svg" fill="currentColor" viewBox="0 0 15 15" class="size-5 -rotate-90 [[open]>*>&]:rotate-90 transition-transform"><path fill-rule="evenodd" d="M8.842 3.135a.5.5 0 0 1 .023.707L5.435 7.5l3.43 3.658a.5.5 0 0 1-.73.684l-3.75-4a.5.5 0 0 1 0-.684l3.75-4a.5.5 0 0 1 .707-.023" clip-rule="evenodd"></path></svg></summary><div class="px-8 lg:px-12 py-5"><ol class="[:is(ol,ul)_&]:_my-3 [&:not(:first-child)]:_mt-6 _list-decimal ltr:_ml-6 rtl:_mr-6"> <li class="_my-2"><strong>Create</strong></li> </ol> <div class="nextra-code _relative [&:not(:first-child)]:_mt-6"><pre class="_overflow-x-auto _subpixel-antialiased _text-[.9em] _bg-white dark:_bg-black _py-4 _ring-1 _ring-inset _ring-gray-300 dark:_ring-neutral-700 contrast-more:_ring-gray-900 contrast-more:dark:_ring-gray-50 contrast-more:_contrast-150 _rounded-md" tabindex="0"><code class="nextra-code" dir="ltr"><span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">npm</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> create</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> pylon@latest</span></span></code></pre><div class="_opacity-0 _transition [div:hover>&]:_opacity-100 focus-within:_opacity-100 _flex _gap-1 _absolute _right-4 _top-2"><button class="_transition _rounded-md _p-1.5 _border _border-gray-300 dark:_border-neutral-700 contrast-more:_border-gray-900 contrast-more:dark:_border-gray-50 md:_hidden" title="Toggle word wrap"><svg viewBox="0 0 24 24" width="24" height="24" class="_h-4 _w-auto"><path fill="currentColor" d="M4 19h6v-2H4v2zM20 5H4v2h16V5zm-3 6H4v2h13.25c1.1 0 2 .9 2 2s-.9 2-2 2H15v-2l-3 3l3 3v-2h2c2.21 0 4-1.79 4-4s-1.79-4-4-4z"></path></svg></button></div></div> <ol class="[:is(ol,ul)_&]:_my-3 [&:not(:first-child)]:_mt-6 _list-decimal ltr:_ml-6 rtl:_mr-6" start="2"> <li class="_my-2"><strong>Develop</strong></li> </ol> <p class="[&:not(:first-child)]:_mt-6 _leading-7">Example service:</p> <div class="nextra-code _relative [&:not(:first-child)]:_mt-6"><pre class="_overflow-x-auto _subpixel-antialiased _text-[.9em] _bg-white dark:_bg-black _py-4 _ring-1 _ring-inset _ring-gray-300 dark:_ring-neutral-700 contrast-more:_ring-gray-900 contrast-more:dark:_ring-gray-50 contrast-more:_contrast-150 _rounded-md" tabindex="0"><code class="nextra-code" dir="ltr"><span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">import</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> { app } </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">from</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> "@getcronit/pylon"</span></span> <span> </span> <span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">class</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> User</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> {</span></span> <span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70"> name</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">:</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> string</span></span> <span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70"> email</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">:</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> string</span></span> <span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> constructor</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(</span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70">name</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">:</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> string</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">, </span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70">email</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">:</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> string</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">) {</span></span> <span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> this</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">.name </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> name</span></span> <span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> this</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">.email </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> email</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> }</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">}</span></span> <span> </span> <span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">const</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> users</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> =</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> [</span></span> <span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> new</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> User</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">"Alice"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">, </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">"alice@example.com"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">),</span></span> <span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> new</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> User</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">"Bob"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">, </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">"bob@example.com"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">),</span></span> <span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> new</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> User</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">"Charlie"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">, </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">"charlie@example.com"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">),</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">]</span></span> <span> </span> <span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">export</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> const</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> graphql</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> =</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> {</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> Query: {</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> users,</span></span> <span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> user</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">: (</span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70">name</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">:</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> string</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">) </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=></span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> {</span></span> <span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> return</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> users.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">find</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(</span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70">user</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> =></span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> user.name </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">===</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> name)</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> },</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> },</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> Mutation: {</span></span> <span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> addUser</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">: (</span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70">name</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">:</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> string</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">, </span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70">email</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">:</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> string</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">) </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=></span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> {</span></span> <span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> const</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> user</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> =</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> new</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> User</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(name, email)</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> users.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">push</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(user)</span></span> <span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> return</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> user</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> },</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> },</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">}</span></span> <span> </span> <span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">export</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> default</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> app</span></span></code></pre><div class="_opacity-0 _transition [div:hover>&]:_opacity-100 focus-within:_opacity-100 _flex _gap-1 _absolute _right-4 _top-2"><button class="_transition _rounded-md _p-1.5 _border _border-gray-300 dark:_border-neutral-700 contrast-more:_border-gray-900 contrast-more:dark:_border-gray-50 md:_hidden" title="Toggle word wrap"><svg viewBox="0 0 24 24" width="24" height="24" class="_h-4 _w-auto"><path fill="currentColor" d="M4 19h6v-2H4v2zM20 5H4v2h16V5zm-3 6H4v2h13.25c1.1 0 2 .9 2 2s-.9 2-2 2H15v-2l-3 3l3 3v-2h2c2.21 0 4-1.79 4-4s-1.79-4-4-4z"></path></svg></button></div></div> <ol class="[:is(ol,ul)_&]:_my-3 [&:not(:first-child)]:_mt-6 _list-decimal ltr:_ml-6 rtl:_mr-6" start="3"> <li class="_my-2"><strong>Query</strong></li> </ol> <div class="nextra-code _relative [&:not(:first-child)]:_mt-6"><pre class="_overflow-x-auto _subpixel-antialiased _text-[.9em] _bg-white dark:_bg-black _py-4 _ring-1 _ring-inset _ring-gray-300 dark:_ring-neutral-700 contrast-more:_ring-gray-900 contrast-more:dark:_ring-gray-50 contrast-more:_contrast-150 _rounded-md" tabindex="0"><code class="nextra-code" dir="ltr"><span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">query</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> User</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> {</span></span> <span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70"> user</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(</span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70">name</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">"Alice"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">) {</span></span> <span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70"> name</span></span> <span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70"> email</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> }</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">}</span></span> <span> </span> <span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">query</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> Users</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> {</span></span> <span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70"> users</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> {</span></span> <span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70"> name</span></span> <span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70"> email</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> }</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">}</span></span> <span> </span> <span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">mutation</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> AddUser</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> {</span></span> <span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70"> addUser</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(</span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70">name</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">"Corina"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">, </span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70">email</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">"corina@example.com"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">) {</span></span> <span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70"> name</span></span> <span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70"> email</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> }</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">}</span></span></code></pre><div class="_opacity-0 _transition [div:hover>&]:_opacity-100 focus-within:_opacity-100 _flex _gap-1 _absolute _right-4 _top-2"><button class="_transition _rounded-md _p-1.5 _border _border-gray-300 dark:_border-neutral-700 contrast-more:_border-gray-900 contrast-more:dark:_border-gray-50 md:_hidden" title="Toggle word wrap"><svg viewBox="0 0 24 24" width="24" height="24" class="_h-4 _w-auto"><path fill="currentColor" d="M4 19h6v-2H4v2zM20 5H4v2h16V5zm-3 6H4v2h13.25c1.1 0 2 .9 2 2s-.9 2-2 2H15v-2l-3 3l3 3v-2h2c2.21 0 4-1.79 4-4s-1.79-4-4-4z"></path></svg></button></div></div></div></details></div><div class="border border-zinc-200 dark:border-[#414141] p-8 lg:p-12 bg-white dark:bg-neutral-800 rounded-none !p-0 h-max min-w-0"><div class="p-8 lg:p-12 flex flex-col gap-7 grow"><div class="flex items-center gap-6 [&_a:hover]:text-primary [&_a]:transition-colors"><span class="text-3xl font-extrabold grow break-all">python-graphql-client</span><a href="https://github.com/prisma/python-graphql-client" target="_blank" rel="noreferrer"><svg xmlns="http://www.w3.org/2000/svg" fill="currentColor" viewBox="0 0 24 24"><path d="M23.332 15.948C23.764 14.711 24 13.383 24 12a12 12 0 0 0-.706-4.056C21.627 3.317 17.194 0 12 0S2.373 3.317.706 7.944A11.949 11.949 0 0 0 0 12a12 12 0 0 0 .706 4.056C2.373 20.683 6.806 24 12 24s9.627-3.317 11.294-7.944a1 1 0 0 0 .038-.108M12 22.28c-.457 0-1.194-.827-1.81-2.675a19 19 0 0 1-.708-3.031h5.036a19 19 0 0 1-.708 3.031c-.616 1.848-1.353 2.675-1.81 2.675m-2.727-7.427A32 32 0 0 1 9.147 12c0-.98.043-1.936.126-2.853h5.454c.083.917.126 1.874.126 2.853s-.043 1.936-.126 2.854zM1.72 12c0-.99.141-1.947.403-2.853h5.425a33.5 33.5 0 0 0 0 5.707H2.123A10.3 10.3 0 0 1 1.72 12M12 1.72c.457 0 1.194.827 1.81 2.675.297.892.535 1.917.708 3.032H9.482c.173-1.115.411-2.14.708-3.032.616-1.848 1.353-2.675 1.81-2.675m4.452 7.427h5.425c.262.906.403 1.864.403 2.853s-.141 1.947-.403 2.854h-5.425a33.5 33.5 0 0 0 0-5.707m4.752-1.72h-4.95c-.305-2.11-.83-4.003-1.566-5.35 2.855.775 5.22 2.75 6.516 5.35M9.313 2.077c-.736 1.347-1.261 3.24-1.567 5.35h-4.95a10.33 10.33 0 0 1 6.517-5.35M2.795 16.574h4.95c.306 2.11.83 4.002 1.567 5.349a10.33 10.33 0 0 1-6.517-5.35m11.893 5.349c.736-1.347 1.261-3.24 1.567-5.35h4.95a10.33 10.33 0 0 1-6.517 5.35"></path></svg></a><a href="https://github.com/prisma-labs/python-graphql-client" target="_blank" rel="noreferrer"><svg xmlns="http://www.w3.org/2000/svg" width="30" fill="currentColor" viewBox="0 0 30 30"><path fill-rule="evenodd" d="M15.1.413a14.81 14.81 0 0 0-4.684 28.862c.742.138 1.012-.32 1.012-.712 0-.35-.013-1.283-.02-2.518-4.12.893-4.99-1.987-4.99-1.987-.675-1.71-1.643-2.165-1.643-2.165-1.345-.918.1-.9.1-.9 1.488.105 2.27 1.525 2.27 1.525 1.32 2.265 3.466 1.61 4.31 1.23.133-.955.515-1.608.94-1.978-3.29-.375-6.747-1.645-6.747-7.32 0-1.615.577-2.937 1.525-3.975-.15-.372-.66-1.88.145-3.917 0 0 1.242-.4 4.075 1.517a14.3 14.3 0 0 1 3.705-.5 14.2 14.2 0 0 1 3.707.5c2.826-1.915 4.068-1.517 4.068-1.517.807 2.037.3 3.545.15 3.92.95 1.035 1.52 2.357 1.52 3.975 0 5.687-3.462 6.94-6.76 7.305.53.457 1.005 1.36 1.005 2.742 0 1.98-.02 3.575-.02 4.063 0 .395.267.857 1.02.712A14.816 14.816 0 0 0 15.101.413" clip-rule="evenodd"></path></svg></a></div><div class="gap-2 flex roboto-mono"><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=python">Python</a><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=client">Client</a></div><span class="[&_a]:text-primary grow line-clamp-4 lg:text-lg">Simple GraphQL client for Python 2.7+.</span><div class="flex items-center gap-5 max-md:text-xs [&>:not(:last-child)]:border-r [&>:not(:last-child)]:border-gray-500 [&>:not(:last-child)]:pr-5"><span class="flex items-center gap-1"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="19" fill="currentColor" class="text-primary"><path d="m10 .5 2.997 5.874L19.51 7.41l-4.66 4.666 1.027 6.514L10 15.6l-5.878 2.99 1.028-6.514L.489 7.41l6.513-1.036z"></path></svg>155</span><span>MIT License</span></div></div></div><div class="border border-zinc-200 dark:border-[#414141] p-8 lg:p-12 bg-white dark:bg-neutral-800 rounded-none !p-0 h-max min-w-0"><div class="p-8 lg:p-12 flex flex-col gap-7 grow"><div class="flex items-center gap-6 [&_a:hover]:text-primary [&_a]:transition-colors"><span class="text-3xl font-extrabold grow break-all">alumbra</span><a href="https://github.com/alumbra/alumbra" target="_blank" rel="noreferrer"><svg xmlns="http://www.w3.org/2000/svg" width="30" fill="currentColor" viewBox="0 0 30 30"><path fill-rule="evenodd" d="M15.1.413a14.81 14.81 0 0 0-4.684 28.862c.742.138 1.012-.32 1.012-.712 0-.35-.013-1.283-.02-2.518-4.12.893-4.99-1.987-4.99-1.987-.675-1.71-1.643-2.165-1.643-2.165-1.345-.918.1-.9.1-.9 1.488.105 2.27 1.525 2.27 1.525 1.32 2.265 3.466 1.61 4.31 1.23.133-.955.515-1.608.94-1.978-3.29-.375-6.747-1.645-6.747-7.32 0-1.615.577-2.937 1.525-3.975-.15-.372-.66-1.88.145-3.917 0 0 1.242-.4 4.075 1.517a14.3 14.3 0 0 1 3.705-.5 14.2 14.2 0 0 1 3.707.5c2.826-1.915 4.068-1.517 4.068-1.517.807 2.037.3 3.545.15 3.92.95 1.035 1.52 2.357 1.52 3.975 0 5.687-3.462 6.94-6.76 7.305.53.457 1.005 1.36 1.005 2.742 0 1.98-.02 3.575-.02 4.063 0 .395.267.857 1.02.712A14.816 14.816 0 0 0 15.101.413" clip-rule="evenodd"></path></svg></a></div><div class="gap-2 flex roboto-mono"><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=clojure">Clojure</a><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=server">Server</a></div><span class="[&_a]:text-primary grow line-clamp-4 lg:text-lg">A set of reusable GraphQL components for Clojure conforming to the data structures given in <a href="https://github.com/alumbra/alumbra.spec">alumbra.spec</a>.</span><div class="flex items-center gap-5 max-md:text-xs [&>:not(:last-child)]:border-r [&>:not(:last-child)]:border-gray-500 [&>:not(:last-child)]:pr-5"><span>Last release <!-- -->7 years ago</span><span class="flex items-center gap-1"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="19" fill="currentColor" class="text-primary"><path d="m10 .5 2.997 5.874L19.51 7.41l-4.66 4.666 1.027 6.514L10 15.6l-5.878 2.99 1.028-6.514L.489 7.41l6.513-1.036z"></path></svg>148</span><span>MIT License</span></div></div><details class="bg-[#f0f0f0] dark:bg-[#2f2f2f]"><summary class="flex justify-between font-bold text-primary px-8 lg:px-12 py-5 dark:[[open]>&]:shadow-[-5px_10px_30px_20px_#1b1b1b4d] [[open]>&]:shadow-[0_6px_21px_0_#1b1b1b33] cursor-pointer">README<svg xmlns="http://www.w3.org/2000/svg" fill="currentColor" viewBox="0 0 15 15" class="size-5 -rotate-90 [[open]>*>&]:rotate-90 transition-transform"><path fill-rule="evenodd" d="M8.842 3.135a.5.5 0 0 1 .023.707L5.435 7.5l3.43 3.658a.5.5 0 0 1-.73.684l-3.75-4a.5.5 0 0 1 0-.684l3.75-4a.5.5 0 0 1 .707-.023" clip-rule="evenodd"></path></svg></summary><div class="px-8 lg:px-12 py-5"><div class="nextra-code _relative [&:not(:first-child)]:_mt-6"><pre class="_overflow-x-auto _subpixel-antialiased _text-[.9em] _bg-white dark:_bg-black _py-4 _ring-1 _ring-inset _ring-gray-300 dark:_ring-neutral-700 contrast-more:_ring-gray-900 contrast-more:dark:_ring-gray-50 contrast-more:_contrast-150 _rounded-md" tabindex="0"><code class="nextra-code" dir="ltr"><span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">require</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> '[alumbra.core </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">:as</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> alumbra]</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> '[claro.data </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">:as</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> data])</span></span> <span> </span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">def</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> schema</span></span> <span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> "type Person { name: String!, friends: [Person!]! }</span></span> <span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> type QueryRoot { person(id: ID!): Person, me: Person! }</span></span> <span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> schema { query: QueryRoot }"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">)</span></span> <span> </span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">defrecord</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> Person</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> [id]</span></span> <span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> data</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">/</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">Resolvable</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> (</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">resolve!</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> [_ _]</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> {</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">:name</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> (</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">str</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> "Person #"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> id)</span></span> <span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> :friends</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> (</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">map</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> ->Person (</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">range</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> (</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">inc</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> id) (</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">+</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> id </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">3</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">)))}))</span></span> <span> </span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">def</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> QueryRoot</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> {</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">:person</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> (</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">map->Person</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> {})</span></span> <span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> :me</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> (</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">map->Person</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> {</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">:id</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> 0</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">})})</span></span> <span> </span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">def</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> app</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> (</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">alumbra/handler</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> {</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">:schema</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> schema</span></span> <span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> :query</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> QueryRoot}))</span></span> <span> </span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">defonce</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> my-graphql-server</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> (</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">aleph.http/start-server</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> #'app {</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">:port</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> 3000</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">}))</span></span></code></pre><div class="_opacity-0 _transition [div:hover>&]:_opacity-100 focus-within:_opacity-100 _flex _gap-1 _absolute _right-4 _top-2"><button class="_transition _rounded-md _p-1.5 _border _border-gray-300 dark:_border-neutral-700 contrast-more:_border-gray-900 contrast-more:dark:_border-gray-50 md:_hidden" title="Toggle word wrap"><svg viewBox="0 0 24 24" width="24" height="24" class="_h-4 _w-auto"><path fill="currentColor" d="M4 19h6v-2H4v2zM20 5H4v2h16V5zm-3 6H4v2h13.25c1.1 0 2 .9 2 2s-.9 2-2 2H15v-2l-3 3l3 3v-2h2c2.21 0 4-1.79 4-4s-1.79-4-4-4z"></path></svg></button></div></div> <div class="nextra-code _relative [&:not(:first-child)]:_mt-6"><pre class="_overflow-x-auto _subpixel-antialiased _text-[.9em] _bg-white dark:_bg-black _py-4 _ring-1 _ring-inset _ring-gray-300 dark:_ring-neutral-700 contrast-more:_ring-gray-900 contrast-more:dark:_ring-gray-50 contrast-more:_contrast-150 _rounded-md" tabindex="0"><code class="nextra-code" dir="ltr"><span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">$</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> curl</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> -XPOST</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> "http://0:3000"</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> -H</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">'Content-Type: application/json'</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> -d</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">'{</span></span> <span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> "query": "{ me { name, friends { name } } }"</span></span> <span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">}'</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">{</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">"data"</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">:</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">{"</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">me</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">":{"</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">name</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">":"</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">Person</span><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D"> #0","friends":[{"name":"Person #1"},{"name":"Person #2"}]}}}</span></span></code></pre><div class="_opacity-0 _transition [div:hover>&]:_opacity-100 focus-within:_opacity-100 _flex _gap-1 _absolute _right-4 _top-2"><button class="_transition _rounded-md _p-1.5 _border _border-gray-300 dark:_border-neutral-700 contrast-more:_border-gray-900 contrast-more:dark:_border-gray-50 md:_hidden" title="Toggle word wrap"><svg viewBox="0 0 24 24" width="24" height="24" class="_h-4 _w-auto"><path fill="currentColor" d="M4 19h6v-2H4v2zM20 5H4v2h16V5zm-3 6H4v2h13.25c1.1 0 2 .9 2 2s-.9 2-2 2H15v-2l-3 3l3 3v-2h2c2.21 0 4-1.79 4-4s-1.79-4-4-4z"></path></svg></button></div></div></div></details></div><div class="border border-zinc-200 dark:border-[#414141] p-8 lg:p-12 bg-white dark:bg-neutral-800 rounded-none !p-0 h-max min-w-0"><div class="p-8 lg:p-12 flex flex-col gap-7 grow"><div class="flex items-center gap-6 [&_a:hover]:text-primary [&_a]:transition-colors"><span class="text-3xl font-extrabold grow break-all">graphql-ts-client</span><a href="https://github.com/babyfish-ct/graphql-ts-client" target="_blank" rel="noreferrer"><svg xmlns="http://www.w3.org/2000/svg" width="30" fill="currentColor" viewBox="0 0 30 30"><path fill-rule="evenodd" d="M15.1.413a14.81 14.81 0 0 0-4.684 28.862c.742.138 1.012-.32 1.012-.712 0-.35-.013-1.283-.02-2.518-4.12.893-4.99-1.987-4.99-1.987-.675-1.71-1.643-2.165-1.643-2.165-1.345-.918.1-.9.1-.9 1.488.105 2.27 1.525 2.27 1.525 1.32 2.265 3.466 1.61 4.31 1.23.133-.955.515-1.608.94-1.978-3.29-.375-6.747-1.645-6.747-7.32 0-1.615.577-2.937 1.525-3.975-.15-.372-.66-1.88.145-3.917 0 0 1.242-.4 4.075 1.517a14.3 14.3 0 0 1 3.705-.5 14.2 14.2 0 0 1 3.707.5c2.826-1.915 4.068-1.517 4.068-1.517.807 2.037.3 3.545.15 3.92.95 1.035 1.52 2.357 1.52 3.975 0 5.687-3.462 6.94-6.76 7.305.53.457 1.005 1.36 1.005 2.742 0 1.98-.02 3.575-.02 4.063 0 .395.267.857 1.02.712A14.816 14.816 0 0 0 15.101.413" clip-rule="evenodd"></path></svg></a><a href="https://npmjs.com/package/graphql-ts-client-api" target="_blank" rel="noreferrer"><svg xmlns="http://www.w3.org/2000/svg" width="30" height="30" fill="currentColor"><path fill-rule="evenodd" d="M0 0v30h30V0zm24.375 5.625H5.625v18.75H15v-15h5.625v15h3.75z" clip-rule="evenodd"></path></svg></a></div><div class="gap-2 flex roboto-mono"><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=javascript">JavaScript</a><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=client">Client</a></div><span class="[&_a]:text-primary grow line-clamp-4 lg:text-lg">GraphQL client for TypeScript, automatically infers the type of the returned data according to the strongly typed query request</span><div class="flex items-center gap-5 max-md:text-xs [&>:not(:last-child)]:border-r [&>:not(:last-child)]:border-gray-500 [&>:not(:last-child)]:pr-5"><span>Last release <!-- -->11 months ago</span><span class="flex items-center gap-1"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="19" fill="currentColor" class="text-primary"><path d="m10 .5 2.997 5.874L19.51 7.41l-4.66 4.666 1.027 6.514L10 15.6l-5.878 2.99 1.028-6.514L.489 7.41l6.513-1.036z"></path></svg>148</span><span>MIT License</span></div></div></div><div class="border border-zinc-200 dark:border-[#414141] p-8 lg:p-12 bg-white dark:bg-neutral-800 rounded-none !p-0 h-max min-w-0"><div class="p-8 lg:p-12 flex flex-col gap-7 grow"><div class="flex items-center gap-6 [&_a:hover]:text-primary [&_a]:transition-colors"><span class="text-3xl font-extrabold grow break-all">ghql</span><a href="https://github.com/ropensci/ghql" target="_blank" rel="noreferrer"><svg xmlns="http://www.w3.org/2000/svg" width="30" fill="currentColor" viewBox="0 0 30 30"><path fill-rule="evenodd" d="M15.1.413a14.81 14.81 0 0 0-4.684 28.862c.742.138 1.012-.32 1.012-.712 0-.35-.013-1.283-.02-2.518-4.12.893-4.99-1.987-4.99-1.987-.675-1.71-1.643-2.165-1.643-2.165-1.345-.918.1-.9.1-.9 1.488.105 2.27 1.525 2.27 1.525 1.32 2.265 3.466 1.61 4.31 1.23.133-.955.515-1.608.94-1.978-3.29-.375-6.747-1.645-6.747-7.32 0-1.615.577-2.937 1.525-3.975-.15-.372-.66-1.88.145-3.917 0 0 1.242-.4 4.075 1.517a14.3 14.3 0 0 1 3.705-.5 14.2 14.2 0 0 1 3.707.5c2.826-1.915 4.068-1.517 4.068-1.517.807 2.037.3 3.545.15 3.92.95 1.035 1.52 2.357 1.52 3.975 0 5.687-3.462 6.94-6.76 7.305.53.457 1.005 1.36 1.005 2.742 0 1.98-.02 3.575-.02 4.063 0 .395.267.857 1.02.712A14.816 14.816 0 0 0 15.101.413" clip-rule="evenodd"></path></svg></a></div><div class="gap-2 flex roboto-mono"><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=r">R</a><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=server">Server</a></div><span class="[&_a]:text-primary grow line-clamp-4 lg:text-lg">General purpose GraphQL R client</span><div class="flex items-center gap-5 max-md:text-xs [&>:not(:last-child)]:border-r [&>:not(:last-child)]:border-gray-500 [&>:not(:last-child)]:pr-5"><span>Last release <!-- -->4 years ago</span><span class="flex items-center gap-1"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="19" fill="currentColor" class="text-primary"><path d="m10 .5 2.997 5.874L19.51 7.41l-4.66 4.666 1.027 6.514L10 15.6l-5.878 2.99 1.028-6.514L.489 7.41l6.513-1.036z"></path></svg>146</span><span>Other</span></div></div></div><div class="border border-zinc-200 dark:border-[#414141] p-8 lg:p-12 bg-white dark:bg-neutral-800 rounded-none !p-0 h-max min-w-0"><div class="p-8 lg:p-12 flex flex-col gap-7 grow"><div class="flex items-center gap-6 [&_a:hover]:text-primary [&_a]:transition-colors"><span class="text-3xl font-extrabold grow break-all">GraphZahl</span><a href="https://github.com/nerdsupremacist/GraphZahl" target="_blank" rel="noreferrer"><svg xmlns="http://www.w3.org/2000/svg" width="30" fill="currentColor" viewBox="0 0 30 30"><path fill-rule="evenodd" d="M15.1.413a14.81 14.81 0 0 0-4.684 28.862c.742.138 1.012-.32 1.012-.712 0-.35-.013-1.283-.02-2.518-4.12.893-4.99-1.987-4.99-1.987-.675-1.71-1.643-2.165-1.643-2.165-1.345-.918.1-.9.1-.9 1.488.105 2.27 1.525 2.27 1.525 1.32 2.265 3.466 1.61 4.31 1.23.133-.955.515-1.608.94-1.978-3.29-.375-6.747-1.645-6.747-7.32 0-1.615.577-2.937 1.525-3.975-.15-.372-.66-1.88.145-3.917 0 0 1.242-.4 4.075 1.517a14.3 14.3 0 0 1 3.705-.5 14.2 14.2 0 0 1 3.707.5c2.826-1.915 4.068-1.517 4.068-1.517.807 2.037.3 3.545.15 3.92.95 1.035 1.52 2.357 1.52 3.975 0 5.687-3.462 6.94-6.76 7.305.53.457 1.005 1.36 1.005 2.742 0 1.98-.02 3.575-.02 4.063 0 .395.267.857 1.02.712A14.816 14.816 0 0 0 15.101.413" clip-rule="evenodd"></path></svg></a></div><div class="gap-2 flex roboto-mono"><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=swift-objective-c-ios">Swift / Objective-C</a><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=server">Server</a></div><span class="[&_a]:text-primary grow line-clamp-4 lg:text-lg">Swift library for writing Declarative, Type-Safe GraphQL APIs with Zero Boilerplate.</span><div class="flex items-center gap-5 max-md:text-xs [&>:not(:last-child)]:border-r [&>:not(:last-child)]:border-gray-500 [&>:not(:last-child)]:pr-5"><span>Last release <!-- -->3 years ago</span><span class="flex items-center gap-1"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="19" fill="currentColor" class="text-primary"><path d="m10 .5 2.997 5.874L19.51 7.41l-4.66 4.666 1.027 6.514L10 15.6l-5.878 2.99 1.028-6.514L.489 7.41l6.513-1.036z"></path></svg>143</span><span>MIT License</span></div></div></div><div class="border border-zinc-200 dark:border-[#414141] p-8 lg:p-12 bg-white dark:bg-neutral-800 rounded-none !p-0 h-max min-w-0"><div class="p-8 lg:p-12 flex flex-col gap-7 grow"><div class="flex items-center gap-6 [&_a:hover]:text-primary [&_a]:transition-colors"><span class="text-3xl font-extrabold grow break-all">ballerina-graphql</span><a href="https://lib.ballerina.io/ballerina/graphql/latest" target="_blank" rel="noreferrer"><svg xmlns="http://www.w3.org/2000/svg" fill="currentColor" viewBox="0 0 24 24"><path d="M23.332 15.948C23.764 14.711 24 13.383 24 12a12 12 0 0 0-.706-4.056C21.627 3.317 17.194 0 12 0S2.373 3.317.706 7.944A11.949 11.949 0 0 0 0 12a12 12 0 0 0 .706 4.056C2.373 20.683 6.806 24 12 24s9.627-3.317 11.294-7.944a1 1 0 0 0 .038-.108M12 22.28c-.457 0-1.194-.827-1.81-2.675a19 19 0 0 1-.708-3.031h5.036a19 19 0 0 1-.708 3.031c-.616 1.848-1.353 2.675-1.81 2.675m-2.727-7.427A32 32 0 0 1 9.147 12c0-.98.043-1.936.126-2.853h5.454c.083.917.126 1.874.126 2.853s-.043 1.936-.126 2.854zM1.72 12c0-.99.141-1.947.403-2.853h5.425a33.5 33.5 0 0 0 0 5.707H2.123A10.3 10.3 0 0 1 1.72 12M12 1.72c.457 0 1.194.827 1.81 2.675.297.892.535 1.917.708 3.032H9.482c.173-1.115.411-2.14.708-3.032.616-1.848 1.353-2.675 1.81-2.675m4.452 7.427h5.425c.262.906.403 1.864.403 2.853s-.141 1.947-.403 2.854h-5.425a33.5 33.5 0 0 0 0-5.707m4.752-1.72h-4.95c-.305-2.11-.83-4.003-1.566-5.35 2.855.775 5.22 2.75 6.516 5.35M9.313 2.077c-.736 1.347-1.261 3.24-1.567 5.35h-4.95a10.33 10.33 0 0 1 6.517-5.35M2.795 16.574h4.95c.306 2.11.83 4.002 1.567 5.349a10.33 10.33 0 0 1-6.517-5.35m11.893 5.349c.736-1.347 1.261-3.24 1.567-5.35h4.95a10.33 10.33 0 0 1-6.517 5.35"></path></svg></a><a href="https://github.com/ballerina-platform/module-ballerina-graphql" target="_blank" rel="noreferrer"><svg xmlns="http://www.w3.org/2000/svg" width="30" fill="currentColor" viewBox="0 0 30 30"><path fill-rule="evenodd" d="M15.1.413a14.81 14.81 0 0 0-4.684 28.862c.742.138 1.012-.32 1.012-.712 0-.35-.013-1.283-.02-2.518-4.12.893-4.99-1.987-4.99-1.987-.675-1.71-1.643-2.165-1.643-2.165-1.345-.918.1-.9.1-.9 1.488.105 2.27 1.525 2.27 1.525 1.32 2.265 3.466 1.61 4.31 1.23.133-.955.515-1.608.94-1.978-3.29-.375-6.747-1.645-6.747-7.32 0-1.615.577-2.937 1.525-3.975-.15-.372-.66-1.88.145-3.917 0 0 1.242-.4 4.075 1.517a14.3 14.3 0 0 1 3.705-.5 14.2 14.2 0 0 1 3.707.5c2.826-1.915 4.068-1.517 4.068-1.517.807 2.037.3 3.545.15 3.92.95 1.035 1.52 2.357 1.52 3.975 0 5.687-3.462 6.94-6.76 7.305.53.457 1.005 1.36 1.005 2.742 0 1.98-.02 3.575-.02 4.063 0 .395.267.857 1.02.712A14.816 14.816 0 0 0 15.101.413" clip-rule="evenodd"></path></svg></a></div><div class="gap-2 flex roboto-mono"><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=ballerina">Ballerina</a><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=client">Client</a></div><span class="[&_a]:text-primary grow line-clamp-4 lg:text-lg">The Ballerina Standard Library Package for consume GraphQL services.</span><div class="flex items-center gap-5 max-md:text-xs [&>:not(:last-child)]:border-r [&>:not(:last-child)]:border-gray-500 [&>:not(:last-child)]:pr-5"><span>Last release <!-- -->3 weeks ago</span><span class="flex items-center gap-1"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="19" fill="currentColor" class="text-primary"><path d="m10 .5 2.997 5.874L19.51 7.41l-4.66 4.666 1.027 6.514L10 15.6l-5.878 2.99 1.028-6.514L.489 7.41l6.513-1.036z"></path></svg>139</span><span>Apache License 2.0</span></div></div><details class="bg-[#f0f0f0] dark:bg-[#2f2f2f]"><summary class="flex justify-between font-bold text-primary px-8 lg:px-12 py-5 dark:[[open]>&]:shadow-[-5px_10px_30px_20px_#1b1b1b4d] [[open]>&]:shadow-[0_6px_21px_0_#1b1b1b33] cursor-pointer">README<svg xmlns="http://www.w3.org/2000/svg" fill="currentColor" viewBox="0 0 15 15" class="size-5 -rotate-90 [[open]>*>&]:rotate-90 transition-transform"><path fill-rule="evenodd" d="M8.842 3.135a.5.5 0 0 1 .023.707L5.435 7.5l3.43 3.658a.5.5 0 0 1-.73.684l-3.75-4a.5.5 0 0 1 0-.684l3.75-4a.5.5 0 0 1 .707-.023" clip-rule="evenodd"></path></svg></summary><div class="px-8 lg:px-12 py-5"><p class="[&:not(:first-child)]:_mt-6 _leading-7">To run a <code class="nextra-code" dir="ltr">ballerina-graphql</code> client:</p> <ul class="[:is(ol,ul)_&]:_my-3 [&:not(:first-child)]:_mt-6 _list-disc ltr:_ml-6 rtl:_mr-6"> <li class="_my-2">Download and install <a href="https://ballerina.io/downloads" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">Ballerina Language</a></li> <li class="_my-2">Then run <code class="nextra-code" dir="ltr">bal run graphql_client.bal</code> to run the service, with this code in the <code class="nextra-code" dir="ltr">graphql_client.bal</code> file:</li> </ul> <div class="nextra-code _relative [&:not(:first-child)]:_mt-6"><pre class="_overflow-x-auto _subpixel-antialiased _text-[.9em] _bg-white dark:_bg-black _py-4 _ring-1 _ring-inset _ring-gray-300 dark:_ring-neutral-700 contrast-more:_ring-gray-900 contrast-more:dark:_ring-gray-50 contrast-more:_contrast-150 _rounded-md" tabindex="0"><code class="nextra-code" dir="ltr"><span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">import</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> ballerina/graphql;</span></span> <span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">import</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> ballerina/io;</span></span> <span> </span> <span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">type</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> Response</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> record</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> {</span></span> <span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> record</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> { </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">string</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> hello; } data;</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">};</span></span> <span> </span> <span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">public</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> function</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> main</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">() </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">returns</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> error?</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> {</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> graphql</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">:</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">Client helloClient </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> check</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> new</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> (</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">"localhost:9090/graphql"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">);</span></span> <span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> string</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> document </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> "{ hello }"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">;</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> Response response </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> check</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> helloClient</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">-></span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">execute</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(</span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70">document</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">);</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> io</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">:</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">println</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(response.data.hello);</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">}</span></span></code></pre><div class="_opacity-0 _transition [div:hover>&]:_opacity-100 focus-within:_opacity-100 _flex _gap-1 _absolute _right-4 _top-2"><button class="_transition _rounded-md _p-1.5 _border _border-gray-300 dark:_border-neutral-700 contrast-more:_border-gray-900 contrast-more:dark:_border-gray-50 md:_hidden" title="Toggle word wrap"><svg viewBox="0 0 24 24" width="24" height="24" class="_h-4 _w-auto"><path fill="currentColor" d="M4 19h6v-2H4v2zM20 5H4v2h16V5zm-3 6H4v2h13.25c1.1 0 2 .9 2 2s-.9 2-2 2H15v-2l-3 3l3 3v-2h2c2.21 0 4-1.79 4-4s-1.79-4-4-4z"></path></svg></button></div></div> <h2 class="_font-semibold _tracking-tight _text-slate-900 dark:_text-slate-100 _mt-10 _border-b _pb-1 _text-3xl _border-neutral-200/70 contrast-more:_border-neutral-400 dark:_border-primary-100/10 contrast-more:dark:_border-neutral-400">Features<a href="#features" id="features" class="subheading-anchor" aria-label="Permalink for this section"></a></h2> <ul class="[:is(ol,ul)_&]:_my-3 [&:not(:first-child)]:_mt-6 _list-disc ltr:_ml-6 rtl:_mr-6"> <li class="_my-2">Dependently-typed response retrieval with Ballerina type inferring</li> <li class="_my-2">Custom client generation support</li> </ul></div></details></div><div class="border border-zinc-200 dark:border-[#414141] p-8 lg:p-12 bg-white dark:bg-neutral-800 rounded-none !p-0 h-max min-w-0"><div class="p-8 lg:p-12 flex flex-col gap-7 grow"><div class="flex items-center gap-6 [&_a:hover]:text-primary [&_a]:transition-colors"><span class="text-3xl font-extrabold grow break-all">ballerina-graphql</span><a href="https://lib.ballerina.io/ballerina/graphql/latest" target="_blank" rel="noreferrer"><svg xmlns="http://www.w3.org/2000/svg" fill="currentColor" viewBox="0 0 24 24"><path d="M23.332 15.948C23.764 14.711 24 13.383 24 12a12 12 0 0 0-.706-4.056C21.627 3.317 17.194 0 12 0S2.373 3.317.706 7.944A11.949 11.949 0 0 0 0 12a12 12 0 0 0 .706 4.056C2.373 20.683 6.806 24 12 24s9.627-3.317 11.294-7.944a1 1 0 0 0 .038-.108M12 22.28c-.457 0-1.194-.827-1.81-2.675a19 19 0 0 1-.708-3.031h5.036a19 19 0 0 1-.708 3.031c-.616 1.848-1.353 2.675-1.81 2.675m-2.727-7.427A32 32 0 0 1 9.147 12c0-.98.043-1.936.126-2.853h5.454c.083.917.126 1.874.126 2.853s-.043 1.936-.126 2.854zM1.72 12c0-.99.141-1.947.403-2.853h5.425a33.5 33.5 0 0 0 0 5.707H2.123A10.3 10.3 0 0 1 1.72 12M12 1.72c.457 0 1.194.827 1.81 2.675.297.892.535 1.917.708 3.032H9.482c.173-1.115.411-2.14.708-3.032.616-1.848 1.353-2.675 1.81-2.675m4.452 7.427h5.425c.262.906.403 1.864.403 2.853s-.141 1.947-.403 2.854h-5.425a33.5 33.5 0 0 0 0-5.707m4.752-1.72h-4.95c-.305-2.11-.83-4.003-1.566-5.35 2.855.775 5.22 2.75 6.516 5.35M9.313 2.077c-.736 1.347-1.261 3.24-1.567 5.35h-4.95a10.33 10.33 0 0 1 6.517-5.35M2.795 16.574h4.95c.306 2.11.83 4.002 1.567 5.349a10.33 10.33 0 0 1-6.517-5.35m11.893 5.349c.736-1.347 1.261-3.24 1.567-5.35h4.95a10.33 10.33 0 0 1-6.517 5.35"></path></svg></a><a href="https://github.com/ballerina-platform/module-ballerina-graphql" target="_blank" rel="noreferrer"><svg xmlns="http://www.w3.org/2000/svg" width="30" fill="currentColor" viewBox="0 0 30 30"><path fill-rule="evenodd" d="M15.1.413a14.81 14.81 0 0 0-4.684 28.862c.742.138 1.012-.32 1.012-.712 0-.35-.013-1.283-.02-2.518-4.12.893-4.99-1.987-4.99-1.987-.675-1.71-1.643-2.165-1.643-2.165-1.345-.918.1-.9.1-.9 1.488.105 2.27 1.525 2.27 1.525 1.32 2.265 3.466 1.61 4.31 1.23.133-.955.515-1.608.94-1.978-3.29-.375-6.747-1.645-6.747-7.32 0-1.615.577-2.937 1.525-3.975-.15-.372-.66-1.88.145-3.917 0 0 1.242-.4 4.075 1.517a14.3 14.3 0 0 1 3.705-.5 14.2 14.2 0 0 1 3.707.5c2.826-1.915 4.068-1.517 4.068-1.517.807 2.037.3 3.545.15 3.92.95 1.035 1.52 2.357 1.52 3.975 0 5.687-3.462 6.94-6.76 7.305.53.457 1.005 1.36 1.005 2.742 0 1.98-.02 3.575-.02 4.063 0 .395.267.857 1.02.712A14.816 14.816 0 0 0 15.101.413" clip-rule="evenodd"></path></svg></a></div><div class="gap-2 flex roboto-mono"><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=ballerina">Ballerina</a><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=server">Server</a></div><span class="[&_a]:text-primary grow line-clamp-4 lg:text-lg">The Ballerina Standard Library Package for write GraphQL services.</span><div class="flex items-center gap-5 max-md:text-xs [&>:not(:last-child)]:border-r [&>:not(:last-child)]:border-gray-500 [&>:not(:last-child)]:pr-5"><span>Last release <!-- -->3 weeks ago</span><span class="flex items-center gap-1"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="19" fill="currentColor" class="text-primary"><path d="m10 .5 2.997 5.874L19.51 7.41l-4.66 4.666 1.027 6.514L10 15.6l-5.878 2.99 1.028-6.514L.489 7.41l6.513-1.036z"></path></svg>139</span><span>Apache License 2.0</span></div></div><details class="bg-[#f0f0f0] dark:bg-[#2f2f2f]"><summary class="flex justify-between font-bold text-primary px-8 lg:px-12 py-5 dark:[[open]>&]:shadow-[-5px_10px_30px_20px_#1b1b1b4d] [[open]>&]:shadow-[0_6px_21px_0_#1b1b1b33] cursor-pointer">README<svg xmlns="http://www.w3.org/2000/svg" fill="currentColor" viewBox="0 0 15 15" class="size-5 -rotate-90 [[open]>*>&]:rotate-90 transition-transform"><path fill-rule="evenodd" d="M8.842 3.135a.5.5 0 0 1 .023.707L5.435 7.5l3.43 3.658a.5.5 0 0 1-.73.684l-3.75-4a.5.5 0 0 1 0-.684l3.75-4a.5.5 0 0 1 .707-.023" clip-rule="evenodd"></path></svg></summary><div class="px-8 lg:px-12 py-5"><p class="[&:not(:first-child)]:_mt-6 _leading-7">To run a <code class="nextra-code" dir="ltr">ballerina-graphql</code> hello world server:</p> <ul class="[:is(ol,ul)_&]:_my-3 [&:not(:first-child)]:_mt-6 _list-disc ltr:_ml-6 rtl:_mr-6"> <li class="_my-2">Download and install <a href="https://ballerina.io/downloads" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">Ballerina Language</a></li> <li class="_my-2">Then run <code class="nextra-code" dir="ltr">bal run graphql_service.bal</code> to run the service, with this code in the <code class="nextra-code" dir="ltr">graphql_service.bal</code> file:</li> </ul> <div class="nextra-code _relative [&:not(:first-child)]:_mt-6"><pre class="_overflow-x-auto _subpixel-antialiased _text-[.9em] _bg-white dark:_bg-black _py-4 _ring-1 _ring-inset _ring-gray-300 dark:_ring-neutral-700 contrast-more:_ring-gray-900 contrast-more:dark:_ring-gray-50 contrast-more:_contrast-150 _rounded-md" tabindex="0"><code class="nextra-code" dir="ltr"><span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">import</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> ballerina/graphql;</span></span> <span> </span> <span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">service</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> /graphql</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> on</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> new</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> graphql:Listener(</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">9090</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">) {</span></span> <span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> resource</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> function</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> get</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> hello</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">() </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">returns</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> string</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> {</span></span> <span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> return</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> "Hello, world!"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">;</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> }</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">}</span></span></code></pre><div class="_opacity-0 _transition [div:hover>&]:_opacity-100 focus-within:_opacity-100 _flex _gap-1 _absolute _right-4 _top-2"><button class="_transition _rounded-md _p-1.5 _border _border-gray-300 dark:_border-neutral-700 contrast-more:_border-gray-900 contrast-more:dark:_border-gray-50 md:_hidden" title="Toggle word wrap"><svg viewBox="0 0 24 24" width="24" height="24" class="_h-4 _w-auto"><path fill="currentColor" d="M4 19h6v-2H4v2zM20 5H4v2h16V5zm-3 6H4v2h13.25c1.1 0 2 .9 2 2s-.9 2-2 2H15v-2l-3 3l3 3v-2h2c2.21 0 4-1.79 4-4s-1.79-4-4-4z"></path></svg></button></div></div> <h2 class="_font-semibold _tracking-tight _text-slate-900 dark:_text-slate-100 _mt-10 _border-b _pb-1 _text-3xl _border-neutral-200/70 contrast-more:_border-neutral-400 dark:_border-primary-100/10 contrast-more:dark:_border-neutral-400">Features<a href="#features" id="features" class="subheading-anchor" aria-label="Permalink for this section"></a></h2> <ul class="[:is(ol,ul)_&]:_my-3 [&:not(:first-child)]:_mt-6 _list-disc ltr:_ml-6 rtl:_mr-6"> <li class="_my-2">Built with Ballerina <code class="nextra-code" dir="ltr">service</code> and <code class="nextra-code" dir="ltr">listener</code> model, which are first-class citizens in Ballerina</li> <li class="_my-2">Supports subscriptions over websocket (No additional libraries needed)</li> <li class="_my-2">Supports file upload</li> <li class="_my-2">Built-in GraphiQL client</li> </ul></div></details></div><div class="border border-zinc-200 dark:border-[#414141] p-8 lg:p-12 bg-white dark:bg-neutral-800 rounded-none !p-0 h-max min-w-0"><div class="p-8 lg:p-12 flex flex-col gap-7 grow"><div class="flex items-center gap-6 [&_a:hover]:text-primary [&_a]:transition-colors"><span class="text-3xl font-extrabold grow break-all">Diana.jl</span><a href="https://github.com/neomatrixcode/Diana.jl" target="_blank" rel="noreferrer"><svg xmlns="http://www.w3.org/2000/svg" width="30" fill="currentColor" viewBox="0 0 30 30"><path fill-rule="evenodd" d="M15.1.413a14.81 14.81 0 0 0-4.684 28.862c.742.138 1.012-.32 1.012-.712 0-.35-.013-1.283-.02-2.518-4.12.893-4.99-1.987-4.99-1.987-.675-1.71-1.643-2.165-1.643-2.165-1.345-.918.1-.9.1-.9 1.488.105 2.27 1.525 2.27 1.525 1.32 2.265 3.466 1.61 4.31 1.23.133-.955.515-1.608.94-1.978-3.29-.375-6.747-1.645-6.747-7.32 0-1.615.577-2.937 1.525-3.975-.15-.372-.66-1.88.145-3.917 0 0 1.242-.4 4.075 1.517a14.3 14.3 0 0 1 3.705-.5 14.2 14.2 0 0 1 3.707.5c2.826-1.915 4.068-1.517 4.068-1.517.807 2.037.3 3.545.15 3.92.95 1.035 1.52 2.357 1.52 3.975 0 5.687-3.462 6.94-6.76 7.305.53.457 1.005 1.36 1.005 2.742 0 1.98-.02 3.575-.02 4.063 0 .395.267.857 1.02.712A14.816 14.816 0 0 0 15.101.413" clip-rule="evenodd"></path></svg></a></div><div class="gap-2 flex roboto-mono"><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=julia">Julia</a><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=client">Client</a></div><span class="[&_a]:text-primary grow line-clamp-4 lg:text-lg">A Julia GraphQL server implementation.</span><div class="flex items-center gap-5 max-md:text-xs [&>:not(:last-child)]:border-r [&>:not(:last-child)]:border-gray-500 [&>:not(:last-child)]:pr-5"><span>Last release <!-- -->2 years ago</span><span class="flex items-center gap-1"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="19" fill="currentColor" class="text-primary"><path d="m10 .5 2.997 5.874L19.51 7.41l-4.66 4.666 1.027 6.514L10 15.6l-5.878 2.99 1.028-6.514L.489 7.41l6.513-1.036z"></path></svg>115</span><span>MIT License</span></div></div></div><div class="border border-zinc-200 dark:border-[#414141] p-8 lg:p-12 bg-white dark:bg-neutral-800 rounded-none !p-0 h-max min-w-0"><div class="p-8 lg:p-12 flex flex-col gap-7 grow"><div class="flex items-center gap-6 [&_a:hover]:text-primary [&_a]:transition-colors"><span class="text-3xl font-extrabold grow break-all">graphql-calculator</span><a href="https://github.com/graphql-calculator/graphql-calculator" target="_blank" rel="noreferrer"><svg xmlns="http://www.w3.org/2000/svg" width="30" fill="currentColor" viewBox="0 0 30 30"><path fill-rule="evenodd" d="M15.1.413a14.81 14.81 0 0 0-4.684 28.862c.742.138 1.012-.32 1.012-.712 0-.35-.013-1.283-.02-2.518-4.12.893-4.99-1.987-4.99-1.987-.675-1.71-1.643-2.165-1.643-2.165-1.345-.918.1-.9.1-.9 1.488.105 2.27 1.525 2.27 1.525 1.32 2.265 3.466 1.61 4.31 1.23.133-.955.515-1.608.94-1.978-3.29-.375-6.747-1.645-6.747-7.32 0-1.615.577-2.937 1.525-3.975-.15-.372-.66-1.88.145-3.917 0 0 1.242-.4 4.075 1.517a14.3 14.3 0 0 1 3.705-.5 14.2 14.2 0 0 1 3.707.5c2.826-1.915 4.068-1.517 4.068-1.517.807 2.037.3 3.545.15 3.92.95 1.035 1.52 2.357 1.52 3.975 0 5.687-3.462 6.94-6.76 7.305.53.457 1.005 1.36 1.005 2.742 0 1.98-.02 3.575-.02 4.063 0 .395.267.857 1.02.712A14.816 14.816 0 0 0 15.101.413" clip-rule="evenodd"></path></svg></a></div><div class="gap-2 flex roboto-mono"><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=java-kotlin-android">Java / Kotlin</a><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=server">Server</a></div><span class="[&_a]:text-primary grow line-clamp-4 lg:text-lg">A lightweight graphql calculation engine.</span><div class="flex items-center gap-5 max-md:text-xs [&>:not(:last-child)]:border-r [&>:not(:last-child)]:border-gray-500 [&>:not(:last-child)]:pr-5"><span>Last release <!-- -->3 years ago</span><span class="flex items-center gap-1"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="19" fill="currentColor" class="text-primary"><path d="m10 .5 2.997 5.874L19.51 7.41l-4.66 4.666 1.027 6.514L10 15.6l-5.878 2.99 1.028-6.514L.489 7.41l6.513-1.036z"></path></svg>110</span><span>Apache License 2.0</span></div></div><details class="bg-[#f0f0f0] dark:bg-[#2f2f2f]"><summary class="flex justify-between font-bold text-primary px-8 lg:px-12 py-5 dark:[[open]>&]:shadow-[-5px_10px_30px_20px_#1b1b1b4d] [[open]>&]:shadow-[0_6px_21px_0_#1b1b1b33] cursor-pointer">README<svg xmlns="http://www.w3.org/2000/svg" fill="currentColor" viewBox="0 0 15 15" class="size-5 -rotate-90 [[open]>*>&]:rotate-90 transition-transform"><path fill-rule="evenodd" d="M8.842 3.135a.5.5 0 0 1 .023.707L5.435 7.5l3.43 3.658a.5.5 0 0 1-.73.684l-3.75-4a.5.5 0 0 1 0-.684l3.75-4a.5.5 0 0 1 .707-.023" clip-rule="evenodd"></path></svg></summary><div class="px-8 lg:px-12 py-5"><p class="[&:not(:first-child)]:_mt-6 _leading-7">GraphQL Calculator is a lightweight graphql calculation engine, which is used to alter execution behavior of graphql query.</p> <p class="[&:not(:first-child)]:_mt-6 _leading-7">Here are some examples on how to use GraphQL Calculator on graphql query.</p> <div class="nextra-code _relative [&:not(:first-child)]:_mt-6"><pre class="_overflow-x-auto _subpixel-antialiased _text-[.9em] _bg-white dark:_bg-black _py-4 _ring-1 _ring-inset _ring-gray-300 dark:_ring-neutral-700 contrast-more:_ring-gray-900 contrast-more:dark:_ring-gray-50 contrast-more:_contrast-150 _rounded-md" tabindex="0"><code class="nextra-code" dir="ltr"><span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">query</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> basicMapValue</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(</span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70">$userIds</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">: [</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">Int</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">]) {</span></span> <span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70"> userInfoList</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(</span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70">userIds</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">: </span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70">$userIds</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">) {</span></span> <span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70"> id</span></span> <span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70"> age</span></span> <span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70"> firstName</span></span> <span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70"> lastName</span></span> <span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> fullName</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">: </span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70">stringHolder</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> @map</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(</span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70">mapper</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">"firstName + lastName"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">)</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> }</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">}</span></span> <span> </span> <span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">query</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> filterUserByAge</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(</span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70">$userId</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">: [</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">Int</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">]) {</span></span> <span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70"> userInfoList</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(</span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70">userIds</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">: </span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70">$userId</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">) </span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">@filter</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(</span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70">predicate</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">"age>=18"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">) {</span></span> <span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70"> userId</span></span> <span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70"> age</span></span> <span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70"> firstName</span></span> <span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70"> lastName</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> }</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">}</span></span> <span> </span> <span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">query</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> parseFetchedValueToAnotherFieldArgumentMap</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(</span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70">$itemIds</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">: [</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">Int</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">]) {</span></span> <span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70"> itemList</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(</span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70">itemIds</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">: </span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70">$itemIds</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">) {</span></span> <span><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D"> # save sellerId as List<Long> with unique name "sellerIdList"</span></span> <span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70"> sellerId</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> @fetchSource</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(</span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70">name</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">"sellerIdList"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">)</span></span> <span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70"> name</span></span> <span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70"> saleAmount</span></span> <span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70"> salePrice</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> }</span></span> <span> </span> <span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70"> userInfoList</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(</span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70">userIds</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">: </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">1</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">)</span></span> <span><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D"> # transform the argument of "userInfoList" named "userIds" according to expression "sellerIdList" and expression argument,</span></span> <span><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D"> # which mean replace userIds value by source named "sellerIdList"</span></span> <span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> @argumentTransform</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(</span></span> <span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70"> argumentName</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">"userIds"</span></span> <span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70"> operateType</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">:</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> MAP</span></span> <span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70"> expression</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">"sellerIdList"</span></span> <span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70"> dependencySources</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">: [</span><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D">"sellerIdList"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">]</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> ) {</span></span> <span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70"> userId</span></span> <span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70"> name</span></span> <span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70"> age</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> }</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">}</span></span></code></pre><div class="_opacity-0 _transition [div:hover>&]:_opacity-100 focus-within:_opacity-100 _flex _gap-1 _absolute _right-4 _top-2"><button class="_transition _rounded-md _p-1.5 _border _border-gray-300 dark:_border-neutral-700 contrast-more:_border-gray-900 contrast-more:dark:_border-gray-50 md:_hidden" title="Toggle word wrap"><svg viewBox="0 0 24 24" width="24" height="24" class="_h-4 _w-auto"><path fill="currentColor" d="M4 19h6v-2H4v2zM20 5H4v2h16V5zm-3 6H4v2h13.25c1.1 0 2 .9 2 2s-.9 2-2 2H15v-2l-3 3l3 3v-2h2c2.21 0 4-1.79 4-4s-1.79-4-4-4z"></path></svg></button></div></div> <p class="[&:not(:first-child)]:_mt-6 _leading-7">See <a href="https://github.com/graphql-calculator/graphql-calculator" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">graphql-calculator README</a> for more information.</p></div></details></div><div class="border border-zinc-200 dark:border-[#414141] p-8 lg:p-12 bg-white dark:bg-neutral-800 rounded-none !p-0 h-max min-w-0"><div class="p-8 lg:p-12 flex flex-col gap-7 grow"><div class="flex items-center gap-6 [&_a:hover]:text-primary [&_a]:transition-colors"><span class="text-3xl font-extrabold grow break-all">Typetta</span><a href="https://twinlogix.github.io/typetta/" target="_blank" rel="noreferrer"><svg xmlns="http://www.w3.org/2000/svg" fill="currentColor" viewBox="0 0 24 24"><path d="M23.332 15.948C23.764 14.711 24 13.383 24 12a12 12 0 0 0-.706-4.056C21.627 3.317 17.194 0 12 0S2.373 3.317.706 7.944A11.949 11.949 0 0 0 0 12a12 12 0 0 0 .706 4.056C2.373 20.683 6.806 24 12 24s9.627-3.317 11.294-7.944a1 1 0 0 0 .038-.108M12 22.28c-.457 0-1.194-.827-1.81-2.675a19 19 0 0 1-.708-3.031h5.036a19 19 0 0 1-.708 3.031c-.616 1.848-1.353 2.675-1.81 2.675m-2.727-7.427A32 32 0 0 1 9.147 12c0-.98.043-1.936.126-2.853h5.454c.083.917.126 1.874.126 2.853s-.043 1.936-.126 2.854zM1.72 12c0-.99.141-1.947.403-2.853h5.425a33.5 33.5 0 0 0 0 5.707H2.123A10.3 10.3 0 0 1 1.72 12M12 1.72c.457 0 1.194.827 1.81 2.675.297.892.535 1.917.708 3.032H9.482c.173-1.115.411-2.14.708-3.032.616-1.848 1.353-2.675 1.81-2.675m4.452 7.427h5.425c.262.906.403 1.864.403 2.853s-.141 1.947-.403 2.854h-5.425a33.5 33.5 0 0 0 0-5.707m4.752-1.72h-4.95c-.305-2.11-.83-4.003-1.566-5.35 2.855.775 5.22 2.75 6.516 5.35M9.313 2.077c-.736 1.347-1.261 3.24-1.567 5.35h-4.95a10.33 10.33 0 0 1 6.517-5.35M2.795 16.574h4.95c.306 2.11.83 4.002 1.567 5.349a10.33 10.33 0 0 1-6.517-5.35m11.893 5.349c.736-1.347 1.261-3.24 1.567-5.35h4.95a10.33 10.33 0 0 1-6.517 5.35"></path></svg></a><a href="https://github.com/twinlogix/typetta" target="_blank" rel="noreferrer"><svg xmlns="http://www.w3.org/2000/svg" width="30" fill="currentColor" viewBox="0 0 30 30"><path fill-rule="evenodd" d="M15.1.413a14.81 14.81 0 0 0-4.684 28.862c.742.138 1.012-.32 1.012-.712 0-.35-.013-1.283-.02-2.518-4.12.893-4.99-1.987-4.99-1.987-.675-1.71-1.643-2.165-1.643-2.165-1.345-.918.1-.9.1-.9 1.488.105 2.27 1.525 2.27 1.525 1.32 2.265 3.466 1.61 4.31 1.23.133-.955.515-1.608.94-1.978-3.29-.375-6.747-1.645-6.747-7.32 0-1.615.577-2.937 1.525-3.975-.15-.372-.66-1.88.145-3.917 0 0 1.242-.4 4.075 1.517a14.3 14.3 0 0 1 3.705-.5 14.2 14.2 0 0 1 3.707.5c2.826-1.915 4.068-1.517 4.068-1.517.807 2.037.3 3.545.15 3.92.95 1.035 1.52 2.357 1.52 3.975 0 5.687-3.462 6.94-6.76 7.305.53.457 1.005 1.36 1.005 2.742 0 1.98-.02 3.575-.02 4.063 0 .395.267.857 1.02.712A14.816 14.816 0 0 0 15.101.413" clip-rule="evenodd"></path></svg></a><a href="https://npmjs.com/package/@twinlogix/typetta" target="_blank" rel="noreferrer"><svg xmlns="http://www.w3.org/2000/svg" width="30" height="30" fill="currentColor"><path fill-rule="evenodd" d="M0 0v30h30V0zm24.375 5.625H5.625v18.75H15v-15h5.625v15h3.75z" clip-rule="evenodd"></path></svg></a></div><div class="gap-2 flex roboto-mono"><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=services">Services</a></div><span class="[&_a]:text-primary grow line-clamp-4 lg:text-lg">Typetta is an open-source ORM written in TypeScript that aims to allow seamless access to data in a typed fashion to all main SQL databases (MySQL, PostgreSQL, Microsoft SQL Server, SQLLite3, CockroachDB, MariaDB, Oracle & Amazon Redshift) and also to the NoSQL database MongoDB.</span><div class="flex items-center gap-5 max-md:text-xs [&>:not(:last-child)]:border-r [&>:not(:last-child)]:border-gray-500 [&>:not(:last-child)]:pr-5"><span>Last release <!-- -->1 year ago</span><span class="flex items-center gap-1"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="19" fill="currentColor" class="text-primary"><path d="m10 .5 2.997 5.874L19.51 7.41l-4.66 4.666 1.027 6.514L10 15.6l-5.878 2.99 1.028-6.514L.489 7.41l6.513-1.036z"></path></svg>109</span><span>Apache License 2.0</span></div></div></div><div class="border border-zinc-200 dark:border-[#414141] p-8 lg:p-12 bg-white dark:bg-neutral-800 rounded-none !p-0 h-max min-w-0"><div class="p-8 lg:p-12 flex flex-col gap-7 grow"><div class="flex items-center gap-6 [&_a:hover]:text-primary [&_a]:transition-colors"><span class="text-3xl font-extrabold grow break-all">MicroProfile GraphQL</span><a href="https://github.com/eclipse/microprofile-graphql" target="_blank" rel="noreferrer"><svg xmlns="http://www.w3.org/2000/svg" width="30" fill="currentColor" viewBox="0 0 30 30"><path fill-rule="evenodd" d="M15.1.413a14.81 14.81 0 0 0-4.684 28.862c.742.138 1.012-.32 1.012-.712 0-.35-.013-1.283-.02-2.518-4.12.893-4.99-1.987-4.99-1.987-.675-1.71-1.643-2.165-1.643-2.165-1.345-.918.1-.9.1-.9 1.488.105 2.27 1.525 2.27 1.525 1.32 2.265 3.466 1.61 4.31 1.23.133-.955.515-1.608.94-1.978-3.29-.375-6.747-1.645-6.747-7.32 0-1.615.577-2.937 1.525-3.975-.15-.372-.66-1.88.145-3.917 0 0 1.242-.4 4.075 1.517a14.3 14.3 0 0 1 3.705-.5 14.2 14.2 0 0 1 3.707.5c2.826-1.915 4.068-1.517 4.068-1.517.807 2.037.3 3.545.15 3.92.95 1.035 1.52 2.357 1.52 3.975 0 5.687-3.462 6.94-6.76 7.305.53.457 1.005 1.36 1.005 2.742 0 1.98-.02 3.575-.02 4.063 0 .395.267.857 1.02.712A14.816 14.816 0 0 0 15.101.413" clip-rule="evenodd"></path></svg></a></div><div class="gap-2 flex roboto-mono"><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=java-kotlin-android">Java / Kotlin</a><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=server">Server</a></div><span class="[&_a]:text-primary grow line-clamp-4 lg:text-lg">MP GraphQL is a code-first specification for building GraphQL applications. It uses annotations and design patterns similar to JAX-RS to enable rapid development.</span><div class="flex items-center gap-5 max-md:text-xs [&>:not(:last-child)]:border-r [&>:not(:last-child)]:border-gray-500 [&>:not(:last-child)]:pr-5"><span>Last release <!-- -->2 years ago</span><span class="flex items-center gap-1"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="19" fill="currentColor" class="text-primary"><path d="m10 .5 2.997 5.874L19.51 7.41l-4.66 4.666 1.027 6.514L10 15.6l-5.878 2.99 1.028-6.514L.489 7.41l6.513-1.036z"></path></svg>100</span><span>Apache License 2.0</span></div></div><details class="bg-[#f0f0f0] dark:bg-[#2f2f2f]"><summary class="flex justify-between font-bold text-primary px-8 lg:px-12 py-5 dark:[[open]>&]:shadow-[-5px_10px_30px_20px_#1b1b1b4d] [[open]>&]:shadow-[0_6px_21px_0_#1b1b1b33] cursor-pointer">README<svg xmlns="http://www.w3.org/2000/svg" fill="currentColor" viewBox="0 0 15 15" class="size-5 -rotate-90 [[open]>*>&]:rotate-90 transition-transform"><path fill-rule="evenodd" d="M8.842 3.135a.5.5 0 0 1 .023.707L5.435 7.5l3.43 3.658a.5.5 0 0 1-.73.684l-3.75-4a.5.5 0 0 1 0-.684l3.75-4a.5.5 0 0 1 .707-.023" clip-rule="evenodd"></path></svg></summary><div class="px-8 lg:px-12 py-5"><p class="[&:not(:first-child)]:_mt-6 _leading-7">MicroProfile GraphQL is a GraphQL server and client specification for building GraphQL applications. It’s unique annotation-based API approach enables rapid application development. Applications coded to the MP GraphQL APIs are portable, and can be deployed into Java server runtimes such as <a href="https://openliberty.io/" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">Open Liberty</a>, <a href="https://quarkus.io/" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">Quarkus</a>, <a href="https://helidon.io/" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">Helidon</a> and <a href="https://www.wildfly.org/" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">Wildfly</a>. This means that your applications can make use of other <a href="https://jakarta.ee/" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">Jakarta</a> and <a href="https://microprofile.io/" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">MicroProfile</a> technologies.</p> <p class="[&:not(:first-child)]:_mt-6 _leading-7">MP GraphQL features include:</p> <ul class="[:is(ol,ul)_&]:_my-3 [&:not(:first-child)]:_mt-6 _list-disc ltr:_ml-6 rtl:_mr-6"> <li class="_my-2">Annotation-based APIs</li> <li class="_my-2">Integration with Jakarta CDI</li> <li class="_my-2">Type-safe and dynamic client APIs</li> <li class="_my-2">Exception handling</li> <li class="_my-2">Easy integration with Jakarta and MicroProfile technologies</li> </ul> <p class="[&:not(:first-child)]:_mt-6 _leading-7">Want to get started? Check out these resources:</p> <ul class="[:is(ol,ul)_&]:_my-3 [&:not(:first-child)]:_mt-6 _list-disc ltr:_ml-6 rtl:_mr-6"> <li class="_my-2">Learn how to <a href="https://openliberty.io/guides/microprofile-graphql.html" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">create and deploy a server side app in Open Liberty</a>.</li> <li class="_my-2">Learn how to <a href="https://openliberty.io/guides/graphql-client.html" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">create a client application in Open Liberty</a>.</li> <li class="_my-2">Learn how to <a href="https://quarkus.io/guides/smallrye-graphql" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">create and deploy a server side app in Quarkus</a>.</li> <li class="_my-2">Quick tutorial to <a href="https://dzone.com/articles/have-it-your-way-with-microprofile-graphql" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">build a simple sample weather application</a>.</li> </ul> <p class="[&:not(:first-child)]:_mt-6 _leading-7">Or these videos:</p> <ul class="[:is(ol,ul)_&]:_my-3 [&:not(:first-child)]:_mt-6 _list-disc ltr:_ml-6 rtl:_mr-6"> <li class="_my-2"><a href="https://www.youtube.com/watch?v=RzrkjuA3LvU" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">Integrating GraphQL and JPA</a></li> <li class="_my-2"><a href="https://www.youtube.com/watch?v=OOnpUeblVPM" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">Writing Queryable APIs with MP GraphQL</a></li> </ul></div></details></div><div class="border border-zinc-200 dark:border-[#414141] p-8 lg:p-12 bg-white dark:bg-neutral-800 rounded-none !p-0 h-max min-w-0"><div class="p-8 lg:p-12 flex flex-col gap-7 grow"><div class="flex items-center gap-6 [&_a:hover]:text-primary [&_a]:transition-colors"><span class="text-3xl font-extrabold grow break-all">graphql-net-client</span><a href="https://github.com/bkniffler/graphql-net-client" target="_blank" rel="noreferrer"><svg xmlns="http://www.w3.org/2000/svg" width="30" fill="currentColor" viewBox="0 0 30 30"><path fill-rule="evenodd" d="M15.1.413a14.81 14.81 0 0 0-4.684 28.862c.742.138 1.012-.32 1.012-.712 0-.35-.013-1.283-.02-2.518-4.12.893-4.99-1.987-4.99-1.987-.675-1.71-1.643-2.165-1.643-2.165-1.345-.918.1-.9.1-.9 1.488.105 2.27 1.525 2.27 1.525 1.32 2.265 3.466 1.61 4.31 1.23.133-.955.515-1.608.94-1.978-3.29-.375-6.747-1.645-6.747-7.32 0-1.615.577-2.937 1.525-3.975-.15-.372-.66-1.88.145-3.917 0 0 1.242-.4 4.075 1.517a14.3 14.3 0 0 1 3.705-.5 14.2 14.2 0 0 1 3.707.5c2.826-1.915 4.068-1.517 4.068-1.517.807 2.037.3 3.545.15 3.92.95 1.035 1.52 2.357 1.52 3.975 0 5.687-3.462 6.94-6.76 7.305.53.457 1.005 1.36 1.005 2.742 0 1.98-.02 3.575-.02 4.063 0 .395.267.857 1.02.712A14.816 14.816 0 0 0 15.101.413" clip-rule="evenodd"></path></svg></a></div><div class="gap-2 flex roboto-mono"><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=c-net">C# / .NET</a><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=client">Client</a></div><span class="[&_a]:text-primary grow line-clamp-4 lg:text-lg">Basic example GraphQL client for .NET.</span><div class="flex items-center gap-5 max-md:text-xs [&>:not(:last-child)]:border-r [&>:not(:last-child)]:border-gray-500 [&>:not(:last-child)]:pr-5"><span class="flex items-center gap-1"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="19" fill="currentColor" class="text-primary"><path d="m10 .5 2.997 5.874L19.51 7.41l-4.66 4.666 1.027 6.514L10 15.6l-5.878 2.99 1.028-6.514L.489 7.41l6.513-1.036z"></path></svg>94</span><span>MIT License</span></div></div></div><div class="border border-zinc-200 dark:border-[#414141] p-8 lg:p-12 bg-white dark:bg-neutral-800 rounded-none !p-0 h-max min-w-0"><div class="p-8 lg:p-12 flex flex-col gap-7 grow"><div class="flex items-center gap-6 [&_a:hover]:text-primary [&_a]:transition-colors"><span class="text-3xl font-extrabold grow break-all">gorm-graphql</span><a href="https://grails.github.io/gorm-graphql/latest/guide/index.html" target="_blank" rel="noreferrer"><svg xmlns="http://www.w3.org/2000/svg" fill="currentColor" viewBox="0 0 24 24"><path d="M23.332 15.948C23.764 14.711 24 13.383 24 12a12 12 0 0 0-.706-4.056C21.627 3.317 17.194 0 12 0S2.373 3.317.706 7.944A11.949 11.949 0 0 0 0 12a12 12 0 0 0 .706 4.056C2.373 20.683 6.806 24 12 24s9.627-3.317 11.294-7.944a1 1 0 0 0 .038-.108M12 22.28c-.457 0-1.194-.827-1.81-2.675a19 19 0 0 1-.708-3.031h5.036a19 19 0 0 1-.708 3.031c-.616 1.848-1.353 2.675-1.81 2.675m-2.727-7.427A32 32 0 0 1 9.147 12c0-.98.043-1.936.126-2.853h5.454c.083.917.126 1.874.126 2.853s-.043 1.936-.126 2.854zM1.72 12c0-.99.141-1.947.403-2.853h5.425a33.5 33.5 0 0 0 0 5.707H2.123A10.3 10.3 0 0 1 1.72 12M12 1.72c.457 0 1.194.827 1.81 2.675.297.892.535 1.917.708 3.032H9.482c.173-1.115.411-2.14.708-3.032.616-1.848 1.353-2.675 1.81-2.675m4.452 7.427h5.425c.262.906.403 1.864.403 2.853s-.141 1.947-.403 2.854h-5.425a33.5 33.5 0 0 0 0-5.707m4.752-1.72h-4.95c-.305-2.11-.83-4.003-1.566-5.35 2.855.775 5.22 2.75 6.516 5.35M9.313 2.077c-.736 1.347-1.261 3.24-1.567 5.35h-4.95a10.33 10.33 0 0 1 6.517-5.35M2.795 16.574h4.95c.306 2.11.83 4.002 1.567 5.349a10.33 10.33 0 0 1-6.517-5.35m11.893 5.349c.736-1.347 1.261-3.24 1.567-5.35h4.95a10.33 10.33 0 0 1-6.517 5.35"></path></svg></a><a href="https://github.com/grails/gorm-graphql" target="_blank" rel="noreferrer"><svg xmlns="http://www.w3.org/2000/svg" width="30" fill="currentColor" viewBox="0 0 30 30"><path fill-rule="evenodd" d="M15.1.413a14.81 14.81 0 0 0-4.684 28.862c.742.138 1.012-.32 1.012-.712 0-.35-.013-1.283-.02-2.518-4.12.893-4.99-1.987-4.99-1.987-.675-1.71-1.643-2.165-1.643-2.165-1.345-.918.1-.9.1-.9 1.488.105 2.27 1.525 2.27 1.525 1.32 2.265 3.466 1.61 4.31 1.23.133-.955.515-1.608.94-1.978-3.29-.375-6.747-1.645-6.747-7.32 0-1.615.577-2.937 1.525-3.975-.15-.372-.66-1.88.145-3.917 0 0 1.242-.4 4.075 1.517a14.3 14.3 0 0 1 3.705-.5 14.2 14.2 0 0 1 3.707.5c2.826-1.915 4.068-1.517 4.068-1.517.807 2.037.3 3.545.15 3.92.95 1.035 1.52 2.357 1.52 3.975 0 5.687-3.462 6.94-6.76 7.305.53.457 1.005 1.36 1.005 2.742 0 1.98-.02 3.575-.02 4.063 0 .395.267.857 1.02.712A14.816 14.816 0 0 0 15.101.413" clip-rule="evenodd"></path></svg></a></div><div class="gap-2 flex roboto-mono"><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=groovy">Groovy</a><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=server">Server</a></div><span class="[&_a]:text-primary grow line-clamp-4 lg:text-lg">An automatic GraphQL schema generator for GORM</span><div class="flex items-center gap-5 max-md:text-xs [&>:not(:last-child)]:border-r [&>:not(:last-child)]:border-gray-500 [&>:not(:last-child)]:pr-5"><span>Last release <!-- -->11 months ago</span><span class="flex items-center gap-1"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="19" fill="currentColor" class="text-primary"><path d="m10 .5 2.997 5.874L19.51 7.41l-4.66 4.666 1.027 6.514L10 15.6l-5.878 2.99 1.028-6.514L.489 7.41l6.513-1.036z"></path></svg>81</span><span>Apache License 2.0</span></div></div><details class="bg-[#f0f0f0] dark:bg-[#2f2f2f]"><summary class="flex justify-between font-bold text-primary px-8 lg:px-12 py-5 dark:[[open]>&]:shadow-[-5px_10px_30px_20px_#1b1b1b4d] [[open]>&]:shadow-[0_6px_21px_0_#1b1b1b33] cursor-pointer">README<svg xmlns="http://www.w3.org/2000/svg" fill="currentColor" viewBox="0 0 15 15" class="size-5 -rotate-90 [[open]>*>&]:rotate-90 transition-transform"><path fill-rule="evenodd" d="M8.842 3.135a.5.5 0 0 1 .023.707L5.435 7.5l3.43 3.658a.5.5 0 0 1-.73.684l-3.75-4a.5.5 0 0 1 0-.684l3.75-4a.5.5 0 0 1 .707-.023" clip-rule="evenodd"></path></svg></summary><div class="px-8 lg:px-12 py-5"><p class="[&:not(:first-child)]:_mt-6 _leading-7"><strong>Core Library</strong> - The GORM GraphQL library provides functionality to generate a GraphQL schema based on your GORM entities. In addition to mapping domain classes to a GraphQL schema, the core library also provides default implementations of “data fetchers” to query, update, and delete data through executions of the schema.</p> <p class="[&:not(:first-child)]:_mt-6 _leading-7"><strong>Grails Plugin</strong> - In a addition to the Core Library, the GORM GraphQL Grails Plugin:</p> <ul class="[:is(ol,ul)_&]:_my-3 [&:not(:first-child)]:_mt-6 _list-disc ltr:_ml-6 rtl:_mr-6"> <li class="_my-2"> <p class="[&:not(:first-child)]:_mt-6 _leading-7">Provides a controller to receive and respond to GraphQL requests through HTTP, based on their guidelines.</p> </li> <li class="_my-2"> <p class="[&:not(:first-child)]:_mt-6 _leading-7">Generates the schema at startup with spring bean configuration to make it easy to extend.</p> </li> <li class="_my-2"> <p class="[&:not(:first-child)]:_mt-6 _leading-7">Includes a <a href="https://github.com/graphql/graphiql" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">GraphiQL</a> browser enabled by default in development. The browser is accessible at /graphql/browser.</p> </li> <li class="_my-2"> <p class="[&:not(:first-child)]:_mt-6 _leading-7">Overrides the default data binder to use the data binding provided by Grails</p> </li> <li class="_my-2"> <p class="[&:not(:first-child)]:_mt-6 _leading-7">Provides a <a href="https://grails.github.io/gorm-graphql/latest/api/org/grails/gorm/graphql/plugin/testing/GraphQLSpec.html" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">trait</a> to make integration testing of your GraphQL endpoints easier</p> </li> </ul> <p class="[&:not(:first-child)]:_mt-6 _leading-7">See <a href="https://grails.github.io/gorm-graphql/latest/guide/index.html" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">the documentation</a> for more information.</p></div></details></div><div class="border border-zinc-200 dark:border-[#414141] p-8 lg:p-12 bg-white dark:bg-neutral-800 rounded-none !p-0 h-max min-w-0"><div class="p-8 lg:p-12 flex flex-col gap-7 grow"><div class="flex items-center gap-6 [&_a:hover]:text-primary [&_a]:transition-colors"><span class="text-3xl font-extrabold grow break-all">appointy/jaal</span><a href="https://github.com/appointy/jaal" target="_blank" rel="noreferrer"><svg xmlns="http://www.w3.org/2000/svg" width="30" fill="currentColor" viewBox="0 0 30 30"><path fill-rule="evenodd" d="M15.1.413a14.81 14.81 0 0 0-4.684 28.862c.742.138 1.012-.32 1.012-.712 0-.35-.013-1.283-.02-2.518-4.12.893-4.99-1.987-4.99-1.987-.675-1.71-1.643-2.165-1.643-2.165-1.345-.918.1-.9.1-.9 1.488.105 2.27 1.525 2.27 1.525 1.32 2.265 3.466 1.61 4.31 1.23.133-.955.515-1.608.94-1.978-3.29-.375-6.747-1.645-6.747-7.32 0-1.615.577-2.937 1.525-3.975-.15-.372-.66-1.88.145-3.917 0 0 1.242-.4 4.075 1.517a14.3 14.3 0 0 1 3.705-.5 14.2 14.2 0 0 1 3.707.5c2.826-1.915 4.068-1.517 4.068-1.517.807 2.037.3 3.545.15 3.92.95 1.035 1.52 2.357 1.52 3.975 0 5.687-3.462 6.94-6.76 7.305.53.457 1.005 1.36 1.005 2.742 0 1.98-.02 3.575-.02 4.063 0 .395.267.857 1.02.712A14.816 14.816 0 0 0 15.101.413" clip-rule="evenodd"></path></svg></a></div><div class="gap-2 flex roboto-mono"><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=go">Go</a><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=server">Server</a></div><span class="[&_a]:text-primary grow line-clamp-4 lg:text-lg">Develop spec compliant GraphQL servers in Go.</span><div class="flex items-center gap-5 max-md:text-xs [&>:not(:last-child)]:border-r [&>:not(:last-child)]:border-gray-500 [&>:not(:last-child)]:pr-5"><span>Last release <!-- -->4 years ago</span><span class="flex items-center gap-1"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="19" fill="currentColor" class="text-primary"><path d="m10 .5 2.997 5.874L19.51 7.41l-4.66 4.666 1.027 6.514L10 15.6l-5.878 2.99 1.028-6.514L.489 7.41l6.513-1.036z"></path></svg>77</span><span>MIT License</span></div></div></div><div class="border border-zinc-200 dark:border-[#414141] p-8 lg:p-12 bg-white dark:bg-neutral-800 rounded-none !p-0 h-max min-w-0"><div class="p-8 lg:p-12 flex flex-col gap-7 grow"><div class="flex items-center gap-6 [&_a:hover]:text-primary [&_a]:transition-colors"><span class="text-3xl font-extrabold grow break-all">graphql-perl</span><a href="https://github.com/graphql-perl/graphql-perl" target="_blank" rel="noreferrer"><svg xmlns="http://www.w3.org/2000/svg" width="30" fill="currentColor" viewBox="0 0 30 30"><path fill-rule="evenodd" d="M15.1.413a14.81 14.81 0 0 0-4.684 28.862c.742.138 1.012-.32 1.012-.712 0-.35-.013-1.283-.02-2.518-4.12.893-4.99-1.987-4.99-1.987-.675-1.71-1.643-2.165-1.643-2.165-1.345-.918.1-.9.1-.9 1.488.105 2.27 1.525 2.27 1.525 1.32 2.265 3.466 1.61 4.31 1.23.133-.955.515-1.608.94-1.978-3.29-.375-6.747-1.645-6.747-7.32 0-1.615.577-2.937 1.525-3.975-.15-.372-.66-1.88.145-3.917 0 0 1.242-.4 4.075 1.517a14.3 14.3 0 0 1 3.705-.5 14.2 14.2 0 0 1 3.707.5c2.826-1.915 4.068-1.517 4.068-1.517.807 2.037.3 3.545.15 3.92.95 1.035 1.52 2.357 1.52 3.975 0 5.687-3.462 6.94-6.76 7.305.53.457 1.005 1.36 1.005 2.742 0 1.98-.02 3.575-.02 4.063 0 .395.267.857 1.02.712A14.816 14.816 0 0 0 15.101.413" clip-rule="evenodd"></path></svg></a></div><div class="gap-2 flex roboto-mono"><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=perl">Perl</a><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=server">Server</a></div><span class="[&_a]:text-primary grow line-clamp-4 lg:text-lg">A Perl port of GraphQL reference implementation</span><div class="flex items-center gap-5 max-md:text-xs [&>:not(:last-child)]:border-r [&>:not(:last-child)]:border-gray-500 [&>:not(:last-child)]:pr-5"><span class="flex items-center gap-1"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="19" fill="currentColor" class="text-primary"><path d="m10 .5 2.997 5.874L19.51 7.41l-4.66 4.666 1.027 6.514L10 15.6l-5.878 2.99 1.028-6.514L.489 7.41l6.513-1.036z"></path></svg>71</span><span>Unknown</span></div></div><details class="bg-[#f0f0f0] dark:bg-[#2f2f2f]"><summary class="flex justify-between font-bold text-primary px-8 lg:px-12 py-5 dark:[[open]>&]:shadow-[-5px_10px_30px_20px_#1b1b1b4d] [[open]>&]:shadow-[0_6px_21px_0_#1b1b1b33] cursor-pointer">README<svg xmlns="http://www.w3.org/2000/svg" fill="currentColor" viewBox="0 0 15 15" class="size-5 -rotate-90 [[open]>*>&]:rotate-90 transition-transform"><path fill-rule="evenodd" d="M8.842 3.135a.5.5 0 0 1 .023.707L5.435 7.5l3.43 3.658a.5.5 0 0 1-.73.684l-3.75-4a.5.5 0 0 1 0-.684l3.75-4a.5.5 0 0 1 .707-.023" clip-rule="evenodd"></path></svg></summary><div class="px-8 lg:px-12 py-5"><ul class="[:is(ol,ul)_&]:_my-3 [&:not(:first-child)]:_mt-6 _list-disc ltr:_ml-6 rtl:_mr-6"> <li class="_my-2"> <p class="[&:not(:first-child)]:_mt-6 _leading-7"><a href="https://metacpan.org/pod/GraphQL" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">MetaCPAN documentation</a></p> <ul class="[:is(ol,ul)_&]:_my-3 [&:not(:first-child)]:_mt-6 _list-disc ltr:_ml-6 rtl:_mr-6"> <li class="_my-2"> <p class="[&:not(:first-child)]:_mt-6 _leading-7"><a href="https://github.com/graphql-perl/Mojolicious-Plugin-GraphQL" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">Mojolicious-Plugin-GraphQL</a> - connect your GraphQL service to a Mojolicious app</p> </li> <li class="_my-2"> <p class="[&:not(:first-child)]:_mt-6 _leading-7"><a href="https://github.com/graphql-perl/GraphQL-Plugin-Convert-DBIC" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">GraphQL-Plugin-Convert-DBIC</a> - automatically connect your DBIx::Class schema to GraphQL</p> </li> <li class="_my-2"> <p class="[&:not(:first-child)]:_mt-6 _leading-7"><a href="https://github.com/graphql-perl/GraphQL-Plugin-Convert-OpenAPI" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">GraphQL-Plugin-Convert-OpenAPI</a> - automatically connect any OpenAPI service (either local Mojolicious one, or remote) to GraphQL</p> </li> </ul> </li> </ul></div></details></div><div class="border border-zinc-200 dark:border-[#414141] p-8 lg:p-12 bg-white dark:bg-neutral-800 rounded-none !p-0 h-max min-w-0"><div class="p-8 lg:p-12 flex flex-col gap-7 grow"><div class="flex items-center gap-6 [&_a:hover]:text-primary [&_a]:transition-colors"><span class="text-3xl font-extrabold grow break-all">GraphQL iOS</span><a href="https://github.com/funcompany/graphql-ios" target="_blank" rel="noreferrer"><svg xmlns="http://www.w3.org/2000/svg" width="30" fill="currentColor" viewBox="0 0 30 30"><path fill-rule="evenodd" d="M15.1.413a14.81 14.81 0 0 0-4.684 28.862c.742.138 1.012-.32 1.012-.712 0-.35-.013-1.283-.02-2.518-4.12.893-4.99-1.987-4.99-1.987-.675-1.71-1.643-2.165-1.643-2.165-1.345-.918.1-.9.1-.9 1.488.105 2.27 1.525 2.27 1.525 1.32 2.265 3.466 1.61 4.31 1.23.133-.955.515-1.608.94-1.978-3.29-.375-6.747-1.645-6.747-7.32 0-1.615.577-2.937 1.525-3.975-.15-.372-.66-1.88.145-3.917 0 0 1.242-.4 4.075 1.517a14.3 14.3 0 0 1 3.705-.5 14.2 14.2 0 0 1 3.707.5c2.826-1.915 4.068-1.517 4.068-1.517.807 2.037.3 3.545.15 3.92.95 1.035 1.52 2.357 1.52 3.975 0 5.687-3.462 6.94-6.76 7.305.53.457 1.005 1.36 1.005 2.742 0 1.98-.02 3.575-.02 4.063 0 .395.267.857 1.02.712A14.816 14.816 0 0 0 15.101.413" clip-rule="evenodd"></path></svg></a></div><div class="gap-2 flex roboto-mono"><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=swift-objective-c-ios">Swift / Objective-C</a><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=client">Client</a></div><span class="[&_a]:text-primary grow line-clamp-4 lg:text-lg">An Objective-C GraphQL client for iOS.</span><div class="flex items-center gap-5 max-md:text-xs [&>:not(:last-child)]:border-r [&>:not(:last-child)]:border-gray-500 [&>:not(:last-child)]:pr-5"><span class="flex items-center gap-1"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="19" fill="currentColor" class="text-primary"><path d="m10 .5 2.997 5.874L19.51 7.41l-4.66 4.666 1.027 6.514L10 15.6l-5.878 2.99 1.028-6.514L.489 7.41l6.513-1.036z"></path></svg>62</span><span>MIT License</span></div></div></div><div class="border border-zinc-200 dark:border-[#414141] p-8 lg:p-12 bg-white dark:bg-neutral-800 rounded-none !p-0 h-max min-w-0"><div class="p-8 lg:p-12 flex flex-col gap-7 grow"><div class="flex items-center gap-6 [&_a:hover]:text-primary [&_a]:transition-colors"><span class="text-3xl font-extrabold grow break-all">gq-loader</span><a href="https://github.com/Houfeng/gq-loader" target="_blank" rel="noreferrer"><svg xmlns="http://www.w3.org/2000/svg" width="30" fill="currentColor" viewBox="0 0 30 30"><path fill-rule="evenodd" d="M15.1.413a14.81 14.81 0 0 0-4.684 28.862c.742.138 1.012-.32 1.012-.712 0-.35-.013-1.283-.02-2.518-4.12.893-4.99-1.987-4.99-1.987-.675-1.71-1.643-2.165-1.643-2.165-1.345-.918.1-.9.1-.9 1.488.105 2.27 1.525 2.27 1.525 1.32 2.265 3.466 1.61 4.31 1.23.133-.955.515-1.608.94-1.978-3.29-.375-6.747-1.645-6.747-7.32 0-1.615.577-2.937 1.525-3.975-.15-.372-.66-1.88.145-3.917 0 0 1.242-.4 4.075 1.517a14.3 14.3 0 0 1 3.705-.5 14.2 14.2 0 0 1 3.707.5c2.826-1.915 4.068-1.517 4.068-1.517.807 2.037.3 3.545.15 3.92.95 1.035 1.52 2.357 1.52 3.975 0 5.687-3.462 6.94-6.76 7.305.53.457 1.005 1.36 1.005 2.742 0 1.98-.02 3.575-.02 4.063 0 .395.267.857 1.02.712A14.816 14.816 0 0 0 15.101.413" clip-rule="evenodd"></path></svg></a><a href="https://npmjs.com/package/gq-loader" target="_blank" rel="noreferrer"><svg xmlns="http://www.w3.org/2000/svg" width="30" height="30" fill="currentColor"><path fill-rule="evenodd" d="M0 0v30h30V0zm24.375 5.625H5.625v18.75H15v-15h5.625v15h3.75z" clip-rule="evenodd"></path></svg></a></div><div class="gap-2 flex roboto-mono"><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=javascript">JavaScript</a><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=client">Client</a></div><span class="[&_a]:text-primary grow line-clamp-4 lg:text-lg">A simple JavaScript GraphQL client,Let the *.gql file be used as a module through webpack loader.</span><div class="flex items-center gap-5 max-md:text-xs [&>:not(:last-child)]:border-r [&>:not(:last-child)]:border-gray-500 [&>:not(:last-child)]:pr-5"><span class="flex items-center gap-1"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="19" fill="currentColor" class="text-primary"><path d="m10 .5 2.997 5.874L19.51 7.41l-4.66 4.666 1.027 6.514L10 15.6l-5.878 2.99 1.028-6.514L.489 7.41l6.513-1.036z"></path></svg>59</span><span>Unknown</span></div></div></div><div class="border border-zinc-200 dark:border-[#414141] p-8 lg:p-12 bg-white dark:bg-neutral-800 rounded-none !p-0 h-max min-w-0"><div class="p-8 lg:p-12 flex flex-col gap-7 grow"><div class="flex items-center gap-6 [&_a:hover]:text-primary [&_a]:transition-colors"><span class="text-3xl font-extrabold grow break-all">graphql-query</span><a href="https://denisart.github.io/graphql-query/" target="_blank" rel="noreferrer"><svg xmlns="http://www.w3.org/2000/svg" fill="currentColor" viewBox="0 0 24 24"><path d="M23.332 15.948C23.764 14.711 24 13.383 24 12a12 12 0 0 0-.706-4.056C21.627 3.317 17.194 0 12 0S2.373 3.317.706 7.944A11.949 11.949 0 0 0 0 12a12 12 0 0 0 .706 4.056C2.373 20.683 6.806 24 12 24s9.627-3.317 11.294-7.944a1 1 0 0 0 .038-.108M12 22.28c-.457 0-1.194-.827-1.81-2.675a19 19 0 0 1-.708-3.031h5.036a19 19 0 0 1-.708 3.031c-.616 1.848-1.353 2.675-1.81 2.675m-2.727-7.427A32 32 0 0 1 9.147 12c0-.98.043-1.936.126-2.853h5.454c.083.917.126 1.874.126 2.853s-.043 1.936-.126 2.854zM1.72 12c0-.99.141-1.947.403-2.853h5.425a33.5 33.5 0 0 0 0 5.707H2.123A10.3 10.3 0 0 1 1.72 12M12 1.72c.457 0 1.194.827 1.81 2.675.297.892.535 1.917.708 3.032H9.482c.173-1.115.411-2.14.708-3.032.616-1.848 1.353-2.675 1.81-2.675m4.452 7.427h5.425c.262.906.403 1.864.403 2.853s-.141 1.947-.403 2.854h-5.425a33.5 33.5 0 0 0 0-5.707m4.752-1.72h-4.95c-.305-2.11-.83-4.003-1.566-5.35 2.855.775 5.22 2.75 6.516 5.35M9.313 2.077c-.736 1.347-1.261 3.24-1.567 5.35h-4.95a10.33 10.33 0 0 1 6.517-5.35M2.795 16.574h4.95c.306 2.11.83 4.002 1.567 5.349a10.33 10.33 0 0 1-6.517-5.35m11.893 5.349c.736-1.347 1.261-3.24 1.567-5.35h4.95a10.33 10.33 0 0 1-6.517 5.35"></path></svg></a><a href="https://github.com/denisart/graphql-query" target="_blank" rel="noreferrer"><svg xmlns="http://www.w3.org/2000/svg" width="30" fill="currentColor" viewBox="0 0 30 30"><path fill-rule="evenodd" d="M15.1.413a14.81 14.81 0 0 0-4.684 28.862c.742.138 1.012-.32 1.012-.712 0-.35-.013-1.283-.02-2.518-4.12.893-4.99-1.987-4.99-1.987-.675-1.71-1.643-2.165-1.643-2.165-1.345-.918.1-.9.1-.9 1.488.105 2.27 1.525 2.27 1.525 1.32 2.265 3.466 1.61 4.31 1.23.133-.955.515-1.608.94-1.978-3.29-.375-6.747-1.645-6.747-7.32 0-1.615.577-2.937 1.525-3.975-.15-.372-.66-1.88.145-3.917 0 0 1.242-.4 4.075 1.517a14.3 14.3 0 0 1 3.705-.5 14.2 14.2 0 0 1 3.707.5c2.826-1.915 4.068-1.517 4.068-1.517.807 2.037.3 3.545.15 3.92.95 1.035 1.52 2.357 1.52 3.975 0 5.687-3.462 6.94-6.76 7.305.53.457 1.005 1.36 1.005 2.742 0 1.98-.02 3.575-.02 4.063 0 .395.267.857 1.02.712A14.816 14.816 0 0 0 15.101.413" clip-rule="evenodd"></path></svg></a></div><div class="gap-2 flex roboto-mono"><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=python">Python</a><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=client">Client</a></div><span class="[&_a]:text-primary grow line-clamp-4 lg:text-lg">Complete GraphQL query string generation for python.</span><div class="flex items-center gap-5 max-md:text-xs [&>:not(:last-child)]:border-r [&>:not(:last-child)]:border-gray-500 [&>:not(:last-child)]:pr-5"><span>Last release <!-- -->3 months ago</span><span class="flex items-center gap-1"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="19" fill="currentColor" class="text-primary"><path d="m10 .5 2.997 5.874L19.51 7.41l-4.66 4.666 1.027 6.514L10 15.6l-5.878 2.99 1.028-6.514L.489 7.41l6.513-1.036z"></path></svg>59</span><span>MIT License</span></div></div><details class="bg-[#f0f0f0] dark:bg-[#2f2f2f]"><summary class="flex justify-between font-bold text-primary px-8 lg:px-12 py-5 dark:[[open]>&]:shadow-[-5px_10px_30px_20px_#1b1b1b4d] [[open]>&]:shadow-[0_6px_21px_0_#1b1b1b33] cursor-pointer">README<svg xmlns="http://www.w3.org/2000/svg" fill="currentColor" viewBox="0 0 15 15" class="size-5 -rotate-90 [[open]>*>&]:rotate-90 transition-transform"><path fill-rule="evenodd" d="M8.842 3.135a.5.5 0 0 1 .023.707L5.435 7.5l3.43 3.658a.5.5 0 0 1-.73.684l-3.75-4a.5.5 0 0 1 0-.684l3.75-4a.5.5 0 0 1 .707-.023" clip-rule="evenodd"></path></svg></summary><div class="px-8 lg:px-12 py-5"><p class="[&:not(:first-child)]:_mt-6 _leading-7"><strong>graphql_query</strong> is complete GraphQL query string builder for python. With <strong>graphql_query</strong> you can The documentation for <strong>graphql_query</strong> can be found at <a href="https://denisart.github.io/graphql-query" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">https://denisart.github.io/graphql-query</a>.</p> <div class="nextra-code _relative [&:not(:first-child)]:_mt-6"><pre class="_overflow-x-auto _subpixel-antialiased _text-[.9em] _bg-white dark:_bg-black _py-4 _ring-1 _ring-inset _ring-gray-300 dark:_ring-neutral-700 contrast-more:_ring-gray-900 contrast-more:dark:_ring-gray-50 contrast-more:_contrast-150 _rounded-md" tabindex="0"><code class="nextra-code" dir="ltr"><span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">$</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> pip</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> install</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> graphql_query</span></span></code></pre><div class="_opacity-0 _transition [div:hover>&]:_opacity-100 focus-within:_opacity-100 _flex _gap-1 _absolute _right-4 _top-2"><button class="_transition _rounded-md _p-1.5 _border _border-gray-300 dark:_border-neutral-700 contrast-more:_border-gray-900 contrast-more:dark:_border-gray-50 md:_hidden" title="Toggle word wrap"><svg viewBox="0 0 24 24" width="24" height="24" class="_h-4 _w-auto"><path fill="currentColor" d="M4 19h6v-2H4v2zM20 5H4v2h16V5zm-3 6H4v2h13.25c1.1 0 2 .9 2 2s-.9 2-2 2H15v-2l-3 3l3 3v-2h2c2.21 0 4-1.79 4-4s-1.79-4-4-4z"></path></svg></button></div></div> <p class="[&:not(:first-child)]:_mt-6 _leading-7">Code for the simple query</p> <div class="nextra-code _relative [&:not(:first-child)]:_mt-6"><pre class="_overflow-x-auto _subpixel-antialiased _text-[.9em] _bg-white dark:_bg-black _py-4 _ring-1 _ring-inset _ring-gray-300 dark:_ring-neutral-700 contrast-more:_ring-gray-900 contrast-more:dark:_ring-gray-50 contrast-more:_contrast-150 _rounded-md" tabindex="0"><code class="nextra-code" dir="ltr"><span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">{</span></span> <span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70"> hero</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> {</span></span> <span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70"> name</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> }</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">}</span></span></code></pre><div class="_opacity-0 _transition [div:hover>&]:_opacity-100 focus-within:_opacity-100 _flex _gap-1 _absolute _right-4 _top-2"><button class="_transition _rounded-md _p-1.5 _border _border-gray-300 dark:_border-neutral-700 contrast-more:_border-gray-900 contrast-more:dark:_border-gray-50 md:_hidden" title="Toggle word wrap"><svg viewBox="0 0 24 24" width="24" height="24" class="_h-4 _w-auto"><path fill="currentColor" d="M4 19h6v-2H4v2zM20 5H4v2h16V5zm-3 6H4v2h13.25c1.1 0 2 .9 2 2s-.9 2-2 2H15v-2l-3 3l3 3v-2h2c2.21 0 4-1.79 4-4s-1.79-4-4-4z"></path></svg></button></div></div> <p class="[&:not(:first-child)]:_mt-6 _leading-7">it is</p> <div class="nextra-code _relative [&:not(:first-child)]:_mt-6"><pre class="_overflow-x-auto _subpixel-antialiased _text-[.9em] _bg-white dark:_bg-black _py-4 _ring-1 _ring-inset _ring-gray-300 dark:_ring-neutral-700 contrast-more:_ring-gray-900 contrast-more:dark:_ring-gray-50 contrast-more:_contrast-150 _rounded-md" tabindex="0"><code class="nextra-code" dir="ltr"><span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">from</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> graphql_query </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">import</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> Operation, Query</span></span> <span> </span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">hero </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> Query(</span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70">name</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">"hero"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">, </span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70">fields</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">[</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">"name"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">])</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">operation </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> Operation(</span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70">type</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">"query"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">, </span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70">queries</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">[hero])</span></span> <span> </span> <span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">print</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(operation.render())</span></span> <span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">"""</span></span> <span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">query {</span></span> <span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> hero {</span></span> <span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> name</span></span> <span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> }</span></span> <span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">}</span></span> <span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">"""</span></span></code></pre><div class="_opacity-0 _transition [div:hover>&]:_opacity-100 focus-within:_opacity-100 _flex _gap-1 _absolute _right-4 _top-2"><button class="_transition _rounded-md _p-1.5 _border _border-gray-300 dark:_border-neutral-700 contrast-more:_border-gray-900 contrast-more:dark:_border-gray-50 md:_hidden" title="Toggle word wrap"><svg viewBox="0 0 24 24" width="24" height="24" class="_h-4 _w-auto"><path fill="currentColor" d="M4 19h6v-2H4v2zM20 5H4v2h16V5zm-3 6H4v2h13.25c1.1 0 2 .9 2 2s-.9 2-2 2H15v-2l-3 3l3 3v-2h2c2.21 0 4-1.79 4-4s-1.79-4-4-4z"></path></svg></button></div></div> <p class="[&:not(:first-child)]:_mt-6 _leading-7">For generation of the following query</p> <div class="nextra-code _relative [&:not(:first-child)]:_mt-6"><pre class="_overflow-x-auto _subpixel-antialiased _text-[.9em] _bg-white dark:_bg-black _py-4 _ring-1 _ring-inset _ring-gray-300 dark:_ring-neutral-700 contrast-more:_ring-gray-900 contrast-more:dark:_ring-gray-50 contrast-more:_contrast-150 _rounded-md" tabindex="0"><code class="nextra-code" dir="ltr"><span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">query</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> Hero</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(</span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70">$episode</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">: </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">Episode</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">, </span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70">$withFriends</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">: </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">Boolean</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">!</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">) {</span></span> <span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70"> hero</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(</span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70">episode</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">: </span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70">$episode</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">) {</span></span> <span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70"> name</span></span> <span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70"> friends</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> @include</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(</span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70">if</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">: </span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70">$withFriends</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">) {</span></span> <span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70"> name</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> }</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> }</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">}</span></span></code></pre><div class="_opacity-0 _transition [div:hover>&]:_opacity-100 focus-within:_opacity-100 _flex _gap-1 _absolute _right-4 _top-2"><button class="_transition _rounded-md _p-1.5 _border _border-gray-300 dark:_border-neutral-700 contrast-more:_border-gray-900 contrast-more:dark:_border-gray-50 md:_hidden" title="Toggle word wrap"><svg viewBox="0 0 24 24" width="24" height="24" class="_h-4 _w-auto"><path fill="currentColor" d="M4 19h6v-2H4v2zM20 5H4v2h16V5zm-3 6H4v2h13.25c1.1 0 2 .9 2 2s-.9 2-2 2H15v-2l-3 3l3 3v-2h2c2.21 0 4-1.79 4-4s-1.79-4-4-4z"></path></svg></button></div></div> <p class="[&:not(:first-child)]:_mt-6 _leading-7">we have</p> <div class="nextra-code _relative [&:not(:first-child)]:_mt-6"><pre class="_overflow-x-auto _subpixel-antialiased _text-[.9em] _bg-white dark:_bg-black _py-4 _ring-1 _ring-inset _ring-gray-300 dark:_ring-neutral-700 contrast-more:_ring-gray-900 contrast-more:dark:_ring-gray-50 contrast-more:_contrast-150 _rounded-md" tabindex="0"><code class="nextra-code" dir="ltr"><span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">from</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> graphql_query </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">import</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> Argument, Directive, Field, Operation, Query, Variable</span></span> <span> </span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">episode </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> Variable(</span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70">name</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">"episode"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">, </span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70">type</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">"Episode"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">)</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">withFriends </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> Variable(</span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70">name</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">"withFriends"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">, </span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70">type</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">"Boolean!"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">)</span></span> <span> </span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">arg_episode </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> Argument(</span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70">name</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">"episode"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">, </span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70">value</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">episode)</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">arg_if </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> Argument(</span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70">name</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">"if"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">, </span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70">value</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">withFriends)</span></span> <span> </span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">hero </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> Query(</span></span> <span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70"> name</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">"hero"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">,</span></span> <span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70"> arguments</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">[arg_episode],</span></span> <span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70"> fields</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">[</span></span> <span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> "name"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">,</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> Field(</span></span> <span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70"> name</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">"friends"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">,</span></span> <span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70"> fields</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">[</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">"name"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">],</span></span> <span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70"> directives</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">[Directive(</span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70">name</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">"include"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">, </span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70">arguments</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">[arg_if])]</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> )</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> ]</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">)</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">operation </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> Operation(</span></span> <span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70"> type</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">"query"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">,</span></span> <span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70"> name</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">"Hero"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">,</span></span> <span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70"> variables</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">[episode, withFriends],</span></span> <span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70"> queries</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">[hero]</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">)</span></span> <span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">print</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(operation.render())</span></span> <span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">"""</span></span> <span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">query Hero(</span></span> <span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> $episode: Episode</span></span> <span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> $withFriends: Boolean!</span></span> <span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">) {</span></span> <span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> hero(</span></span> <span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> episode: $episode</span></span> <span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> ) {</span></span> <span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> name</span></span> <span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> friends @include(</span></span> <span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> if: $withFriends</span></span> <span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> ) {</span></span> <span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> name</span></span> <span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> }</span></span> <span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> }</span></span> <span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">}</span></span> <span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">"""</span></span></code></pre><div class="_opacity-0 _transition [div:hover>&]:_opacity-100 focus-within:_opacity-100 _flex _gap-1 _absolute _right-4 _top-2"><button class="_transition _rounded-md _p-1.5 _border _border-gray-300 dark:_border-neutral-700 contrast-more:_border-gray-900 contrast-more:dark:_border-gray-50 md:_hidden" title="Toggle word wrap"><svg viewBox="0 0 24 24" width="24" height="24" class="_h-4 _w-auto"><path fill="currentColor" d="M4 19h6v-2H4v2zM20 5H4v2h16V5zm-3 6H4v2h13.25c1.1 0 2 .9 2 2s-.9 2-2 2H15v-2l-3 3l3 3v-2h2c2.21 0 4-1.79 4-4s-1.79-4-4-4z"></path></svg></button></div></div></div></details></div><div class="border border-zinc-200 dark:border-[#414141] p-8 lg:p-12 bg-white dark:bg-neutral-800 rounded-none !p-0 h-max min-w-0"><div class="p-8 lg:p-12 flex flex-col gap-7 grow"><div class="flex items-center gap-6 [&_a:hover]:text-primary [&_a]:transition-colors"><span class="text-3xl font-extrabold grow break-all">GraphQL Java Generator</span><a href="https://github.com/graphql-java-generator" target="_blank" rel="noreferrer"><svg xmlns="http://www.w3.org/2000/svg" fill="currentColor" viewBox="0 0 24 24"><path d="M23.332 15.948C23.764 14.711 24 13.383 24 12a12 12 0 0 0-.706-4.056C21.627 3.317 17.194 0 12 0S2.373 3.317.706 7.944A11.949 11.949 0 0 0 0 12a12 12 0 0 0 .706 4.056C2.373 20.683 6.806 24 12 24s9.627-3.317 11.294-7.944a1 1 0 0 0 .038-.108M12 22.28c-.457 0-1.194-.827-1.81-2.675a19 19 0 0 1-.708-3.031h5.036a19 19 0 0 1-.708 3.031c-.616 1.848-1.353 2.675-1.81 2.675m-2.727-7.427A32 32 0 0 1 9.147 12c0-.98.043-1.936.126-2.853h5.454c.083.917.126 1.874.126 2.853s-.043 1.936-.126 2.854zM1.72 12c0-.99.141-1.947.403-2.853h5.425a33.5 33.5 0 0 0 0 5.707H2.123A10.3 10.3 0 0 1 1.72 12M12 1.72c.457 0 1.194.827 1.81 2.675.297.892.535 1.917.708 3.032H9.482c.173-1.115.411-2.14.708-3.032.616-1.848 1.353-2.675 1.81-2.675m4.452 7.427h5.425c.262.906.403 1.864.403 2.853s-.141 1.947-.403 2.854h-5.425a33.5 33.5 0 0 0 0-5.707m4.752-1.72h-4.95c-.305-2.11-.83-4.003-1.566-5.35 2.855.775 5.22 2.75 6.516 5.35M9.313 2.077c-.736 1.347-1.261 3.24-1.567 5.35h-4.95a10.33 10.33 0 0 1 6.517-5.35M2.795 16.574h4.95c.306 2.11.83 4.002 1.567 5.349a10.33 10.33 0 0 1-6.517-5.35m11.893 5.349c.736-1.347 1.261-3.24 1.567-5.35h4.95a10.33 10.33 0 0 1-6.517 5.35"></path></svg></a><a href="https://github.com/graphql-java-generator/graphql-gradle-plugin-project" target="_blank" rel="noreferrer"><svg xmlns="http://www.w3.org/2000/svg" width="30" fill="currentColor" viewBox="0 0 30 30"><path fill-rule="evenodd" d="M15.1.413a14.81 14.81 0 0 0-4.684 28.862c.742.138 1.012-.32 1.012-.712 0-.35-.013-1.283-.02-2.518-4.12.893-4.99-1.987-4.99-1.987-.675-1.71-1.643-2.165-1.643-2.165-1.345-.918.1-.9.1-.9 1.488.105 2.27 1.525 2.27 1.525 1.32 2.265 3.466 1.61 4.31 1.23.133-.955.515-1.608.94-1.978-3.29-.375-6.747-1.645-6.747-7.32 0-1.615.577-2.937 1.525-3.975-.15-.372-.66-1.88.145-3.917 0 0 1.242-.4 4.075 1.517a14.3 14.3 0 0 1 3.705-.5 14.2 14.2 0 0 1 3.707.5c2.826-1.915 4.068-1.517 4.068-1.517.807 2.037.3 3.545.15 3.92.95 1.035 1.52 2.357 1.52 3.975 0 5.687-3.462 6.94-6.76 7.305.53.457 1.005 1.36 1.005 2.742 0 1.98-.02 3.575-.02 4.063 0 .395.267.857 1.02.712A14.816 14.816 0 0 0 15.101.413" clip-rule="evenodd"></path></svg></a></div><div class="gap-2 flex roboto-mono"><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=java-kotlin-android">Java / Kotlin</a><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=tools">Tools</a></div><span class="[&_a]:text-primary grow line-clamp-4 lg:text-lg">GraphQL Java Generator is a tool that generates Java code to speed up development for Client and Server of GraphQL APIs</span><div class="flex items-center gap-5 max-md:text-xs [&>:not(:last-child)]:border-r [&>:not(:last-child)]:border-gray-500 [&>:not(:last-child)]:pr-5"><span class="flex items-center gap-1"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="19" fill="currentColor" class="text-primary"><path d="m10 .5 2.997 5.874L19.51 7.41l-4.66 4.666 1.027 6.514L10 15.6l-5.878 2.99 1.028-6.514L.489 7.41l6.513-1.036z"></path></svg>54</span><span>MIT License</span></div></div><details class="bg-[#f0f0f0] dark:bg-[#2f2f2f]"><summary class="flex justify-between font-bold text-primary px-8 lg:px-12 py-5 dark:[[open]>&]:shadow-[-5px_10px_30px_20px_#1b1b1b4d] [[open]>&]:shadow-[0_6px_21px_0_#1b1b1b33] cursor-pointer">README<svg xmlns="http://www.w3.org/2000/svg" fill="currentColor" viewBox="0 0 15 15" class="size-5 -rotate-90 [[open]>*>&]:rotate-90 transition-transform"><path fill-rule="evenodd" d="M8.842 3.135a.5.5 0 0 1 .023.707L5.435 7.5l3.43 3.658a.5.5 0 0 1-.73.684l-3.75-4a.5.5 0 0 1 0-.684l3.75-4a.5.5 0 0 1 .707-.023" clip-rule="evenodd"></path></svg></summary><div class="px-8 lg:px-12 py-5"><ul class="[:is(ol,ul)_&]:_my-3 [&:not(:first-child)]:_mt-6 _list-disc ltr:_ml-6 rtl:_mr-6"> <li class="_my-2">GraphQL Java client: it generates the Java classes that call the GraphQL endpoint, and the POJO that will contain the data returned by the server. The GraphQL endpoint can then be queried by using a simple call to a Java method (see sample below)</li> <li class="_my-2">GraphQL Java server: it is based on <a href="https://github.com/graphql-java/graphql-java" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">graphql-java</a> (listed here above). It generates all the boilerplate code. You’ll only have to implement what’s specific to your server, which are the joins between the GraphQL types. GraphQL Java Generator is available as a <a href="https://graphql-maven-plugin-project.graphql-java-generator.com/index.html" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">Maven Plugin</a>. A Gradle plugin is coming soon. Please note that GraphQL Java Generator is an accelerator: the generated code doesn’t depend on any library specific to GraphQL Java Generator. So, it helps you to start building application based on graphql-java. Once the code is generated, you can decide to manually edit it as any standard java application, and get rid of GraphQL Java Generator. Of course you can, and should, according to us :), continue using GraphQL Java Generator when your project evolves.</li> </ul></div></details></div><div class="border border-zinc-200 dark:border-[#414141] p-8 lg:p-12 bg-white dark:bg-neutral-800 rounded-none !p-0 h-max min-w-0"><div class="p-8 lg:p-12 flex flex-col gap-7 grow"><div class="flex items-center gap-6 [&_a:hover]:text-primary [&_a]:transition-colors"><span class="text-3xl font-extrabold grow break-all">GQL</span><a href="https://grooviter.github.io/gql/" target="_blank" rel="noreferrer"><svg xmlns="http://www.w3.org/2000/svg" fill="currentColor" viewBox="0 0 24 24"><path d="M23.332 15.948C23.764 14.711 24 13.383 24 12a12 12 0 0 0-.706-4.056C21.627 3.317 17.194 0 12 0S2.373 3.317.706 7.944A11.949 11.949 0 0 0 0 12a12 12 0 0 0 .706 4.056C2.373 20.683 6.806 24 12 24s9.627-3.317 11.294-7.944a1 1 0 0 0 .038-.108M12 22.28c-.457 0-1.194-.827-1.81-2.675a19 19 0 0 1-.708-3.031h5.036a19 19 0 0 1-.708 3.031c-.616 1.848-1.353 2.675-1.81 2.675m-2.727-7.427A32 32 0 0 1 9.147 12c0-.98.043-1.936.126-2.853h5.454c.083.917.126 1.874.126 2.853s-.043 1.936-.126 2.854zM1.72 12c0-.99.141-1.947.403-2.853h5.425a33.5 33.5 0 0 0 0 5.707H2.123A10.3 10.3 0 0 1 1.72 12M12 1.72c.457 0 1.194.827 1.81 2.675.297.892.535 1.917.708 3.032H9.482c.173-1.115.411-2.14.708-3.032.616-1.848 1.353-2.675 1.81-2.675m4.452 7.427h5.425c.262.906.403 1.864.403 2.853s-.141 1.947-.403 2.854h-5.425a33.5 33.5 0 0 0 0-5.707m4.752-1.72h-4.95c-.305-2.11-.83-4.003-1.566-5.35 2.855.775 5.22 2.75 6.516 5.35M9.313 2.077c-.736 1.347-1.261 3.24-1.567 5.35h-4.95a10.33 10.33 0 0 1 6.517-5.35M2.795 16.574h4.95c.306 2.11.83 4.002 1.567 5.349a10.33 10.33 0 0 1-6.517-5.35m11.893 5.349c.736-1.347 1.261-3.24 1.567-5.35h4.95a10.33 10.33 0 0 1-6.517 5.35"></path></svg></a><a href="https://github.com/grooviter/gql" target="_blank" rel="noreferrer"><svg xmlns="http://www.w3.org/2000/svg" width="30" fill="currentColor" viewBox="0 0 30 30"><path fill-rule="evenodd" d="M15.1.413a14.81 14.81 0 0 0-4.684 28.862c.742.138 1.012-.32 1.012-.712 0-.35-.013-1.283-.02-2.518-4.12.893-4.99-1.987-4.99-1.987-.675-1.71-1.643-2.165-1.643-2.165-1.345-.918.1-.9.1-.9 1.488.105 2.27 1.525 2.27 1.525 1.32 2.265 3.466 1.61 4.31 1.23.133-.955.515-1.608.94-1.978-3.29-.375-6.747-1.645-6.747-7.32 0-1.615.577-2.937 1.525-3.975-.15-.372-.66-1.88.145-3.917 0 0 1.242-.4 4.075 1.517a14.3 14.3 0 0 1 3.705-.5 14.2 14.2 0 0 1 3.707.5c2.826-1.915 4.068-1.517 4.068-1.517.807 2.037.3 3.545.15 3.92.95 1.035 1.52 2.357 1.52 3.975 0 5.687-3.462 6.94-6.76 7.305.53.457 1.005 1.36 1.005 2.742 0 1.98-.02 3.575-.02 4.063 0 .395.267.857 1.02.712A14.816 14.816 0 0 0 15.101.413" clip-rule="evenodd"></path></svg></a></div><div class="gap-2 flex roboto-mono"><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=groovy">Groovy</a><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=server">Server</a></div><span class="[&_a]:text-primary grow line-clamp-4 lg:text-lg">GQL is a Groove library for GraphQL</span><div class="flex items-center gap-5 max-md:text-xs [&>:not(:last-child)]:border-r [&>:not(:last-child)]:border-gray-500 [&>:not(:last-child)]:pr-5"><span>Last release <!-- -->3 weeks ago</span><span class="flex items-center gap-1"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="19" fill="currentColor" class="text-primary"><path d="m10 .5 2.997 5.874L19.51 7.41l-4.66 4.666 1.027 6.514L10 15.6l-5.878 2.99 1.028-6.514L.489 7.41l6.513-1.036z"></path></svg>49</span><span>Apache License 2.0</span></div></div></div><div class="border border-zinc-200 dark:border-[#414141] p-8 lg:p-12 bg-white dark:bg-neutral-800 rounded-none !p-0 h-max min-w-0"><div class="p-8 lg:p-12 flex flex-col gap-7 grow"><div class="flex items-center gap-6 [&_a:hover]:text-primary [&_a]:transition-colors"><span class="text-3xl font-extrabold grow break-all">gql_client</span><a href="https://github.com/arthurkhlghatyan/gql-client-rs" target="_blank" rel="noreferrer"><svg xmlns="http://www.w3.org/2000/svg" width="30" fill="currentColor" viewBox="0 0 30 30"><path fill-rule="evenodd" d="M15.1.413a14.81 14.81 0 0 0-4.684 28.862c.742.138 1.012-.32 1.012-.712 0-.35-.013-1.283-.02-2.518-4.12.893-4.99-1.987-4.99-1.987-.675-1.71-1.643-2.165-1.643-2.165-1.345-.918.1-.9.1-.9 1.488.105 2.27 1.525 2.27 1.525 1.32 2.265 3.466 1.61 4.31 1.23.133-.955.515-1.608.94-1.978-3.29-.375-6.747-1.645-6.747-7.32 0-1.615.577-2.937 1.525-3.975-.15-.372-.66-1.88.145-3.917 0 0 1.242-.4 4.075 1.517a14.3 14.3 0 0 1 3.705-.5 14.2 14.2 0 0 1 3.707.5c2.826-1.915 4.068-1.517 4.068-1.517.807 2.037.3 3.545.15 3.92.95 1.035 1.52 2.357 1.52 3.975 0 5.687-3.462 6.94-6.76 7.305.53.457 1.005 1.36 1.005 2.742 0 1.98-.02 3.575-.02 4.063 0 .395.267.857 1.02.712A14.816 14.816 0 0 0 15.101.413" clip-rule="evenodd"></path></svg></a></div><div class="gap-2 flex roboto-mono"><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=rust">Rust</a><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=client">Client</a></div><span class="[&_a]:text-primary grow line-clamp-4 lg:text-lg">Minimal GraphQL client for Rust</span><div class="flex items-center gap-5 max-md:text-xs [&>:not(:last-child)]:border-r [&>:not(:last-child)]:border-gray-500 [&>:not(:last-child)]:pr-5"><span class="flex items-center gap-1"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="19" fill="currentColor" class="text-primary"><path d="m10 .5 2.997 5.874L19.51 7.41l-4.66 4.666 1.027 6.514L10 15.6l-5.878 2.99 1.028-6.514L.489 7.41l6.513-1.036z"></path></svg>48</span><span>MIT License</span></div></div><details class="bg-[#f0f0f0] dark:bg-[#2f2f2f]"><summary class="flex justify-between font-bold text-primary px-8 lg:px-12 py-5 dark:[[open]>&]:shadow-[-5px_10px_30px_20px_#1b1b1b4d] [[open]>&]:shadow-[0_6px_21px_0_#1b1b1b33] cursor-pointer">README<svg xmlns="http://www.w3.org/2000/svg" fill="currentColor" viewBox="0 0 15 15" class="size-5 -rotate-90 [[open]>*>&]:rotate-90 transition-transform"><path fill-rule="evenodd" d="M8.842 3.135a.5.5 0 0 1 .023.707L5.435 7.5l3.43 3.658a.5.5 0 0 1-.73.684l-3.75-4a.5.5 0 0 1 0-.684l3.75-4a.5.5 0 0 1 .707-.023" clip-rule="evenodd"></path></svg></summary><div class="px-8 lg:px-12 py-5"><p class="[&:not(:first-child)]:_mt-6 _leading-7">Usage example</p> <div class="nextra-code _relative [&:not(:first-child)]:_mt-6"><pre class="_overflow-x-auto _subpixel-antialiased _text-[.9em] _bg-white dark:_bg-black _py-4 _ring-1 _ring-inset _ring-gray-300 dark:_ring-neutral-700 contrast-more:_ring-gray-900 contrast-more:dark:_ring-gray-50 contrast-more:_contrast-150 _rounded-md" tabindex="0"><code class="nextra-code" dir="ltr"><span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">use</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> gql_client</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">::</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">Client</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">;</span></span> <span> </span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">#[tokio</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">::</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">main]</span></span> <span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">async</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> fn</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> main</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">() </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">-></span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> Result</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"><(), </span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">Box</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"><</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">dyn</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> std</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">::</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">error</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">::</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">Error</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">>> {</span></span> <span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> let</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> endpoint </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> "https://graphqlzero.almansi.me/api"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">;</span></span> <span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> let</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> query </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> r#"</span></span> <span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> query AllPostsQuery {</span></span> <span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> posts {</span></span> <span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> data {</span></span> <span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> id</span></span> <span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> }</span></span> <span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> }</span></span> <span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> }</span></span> <span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> "#</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">;</span></span> <span> </span> <span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> let</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> client </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> Client</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">::</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">new</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(endpoint);</span></span> <span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> let</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> data</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">:</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> AllPosts</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> =</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> client</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">query</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">::</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"><</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">AllPosts</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">>(query)</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">.await.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">unwrap</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">();</span></span> <span> </span> <span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> println!</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">"{:?}"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> data);</span></span> <span> </span> <span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> Ok</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(())</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">}</span></span></code></pre><div class="_opacity-0 _transition [div:hover>&]:_opacity-100 focus-within:_opacity-100 _flex _gap-1 _absolute _right-4 _top-2"><button class="_transition _rounded-md _p-1.5 _border _border-gray-300 dark:_border-neutral-700 contrast-more:_border-gray-900 contrast-more:dark:_border-gray-50 md:_hidden" title="Toggle word wrap"><svg viewBox="0 0 24 24" width="24" height="24" class="_h-4 _w-auto"><path fill="currentColor" d="M4 19h6v-2H4v2zM20 5H4v2h16V5zm-3 6H4v2h13.25c1.1 0 2 .9 2 2s-.9 2-2 2H15v-2l-3 3l3 3v-2h2c2.21 0 4-1.79 4-4s-1.79-4-4-4z"></path></svg></button></div></div></div></details></div><div class="border border-zinc-200 dark:border-[#414141] p-8 lg:p-12 bg-white dark:bg-neutral-800 rounded-none !p-0 h-max min-w-0"><div class="p-8 lg:p-12 flex flex-col gap-7 grow"><div class="flex items-center gap-6 [&_a:hover]:text-primary [&_a]:transition-colors"><span class="text-3xl font-extrabold grow break-all">GraphQLClient.jl</span><a href="https://github.com/DeloitteDigitalAPAC/GraphQLClient.jl" target="_blank" rel="noreferrer"><svg xmlns="http://www.w3.org/2000/svg" width="30" fill="currentColor" viewBox="0 0 30 30"><path fill-rule="evenodd" d="M15.1.413a14.81 14.81 0 0 0-4.684 28.862c.742.138 1.012-.32 1.012-.712 0-.35-.013-1.283-.02-2.518-4.12.893-4.99-1.987-4.99-1.987-.675-1.71-1.643-2.165-1.643-2.165-1.345-.918.1-.9.1-.9 1.488.105 2.27 1.525 2.27 1.525 1.32 2.265 3.466 1.61 4.31 1.23.133-.955.515-1.608.94-1.978-3.29-.375-6.747-1.645-6.747-7.32 0-1.615.577-2.937 1.525-3.975-.15-.372-.66-1.88.145-3.917 0 0 1.242-.4 4.075 1.517a14.3 14.3 0 0 1 3.705-.5 14.2 14.2 0 0 1 3.707.5c2.826-1.915 4.068-1.517 4.068-1.517.807 2.037.3 3.545.15 3.92.95 1.035 1.52 2.357 1.52 3.975 0 5.687-3.462 6.94-6.76 7.305.53.457 1.005 1.36 1.005 2.742 0 1.98-.02 3.575-.02 4.063 0 .395.267.857 1.02.712A14.816 14.816 0 0 0 15.101.413" clip-rule="evenodd"></path></svg></a></div><div class="gap-2 flex roboto-mono"><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=julia">Julia</a><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=client">Client</a></div><span class="[&_a]:text-primary grow line-clamp-4 lg:text-lg">A Julia GraphQL client for seamless integration with a GraphQL server</span><div class="flex items-center gap-5 max-md:text-xs [&>:not(:last-child)]:border-r [&>:not(:last-child)]:border-gray-500 [&>:not(:last-child)]:pr-5"><span>Last release <!-- -->2 years ago</span><span class="flex items-center gap-1"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="19" fill="currentColor" class="text-primary"><path d="m10 .5 2.997 5.874L19.51 7.41l-4.66 4.666 1.027 6.514L10 15.6l-5.878 2.99 1.028-6.514L.489 7.41l6.513-1.036z"></path></svg>47</span><span>Other</span></div></div><details class="bg-[#f0f0f0] dark:bg-[#2f2f2f]"><summary class="flex justify-between font-bold text-primary px-8 lg:px-12 py-5 dark:[[open]>&]:shadow-[-5px_10px_30px_20px_#1b1b1b4d] [[open]>&]:shadow-[0_6px_21px_0_#1b1b1b33] cursor-pointer">README<svg xmlns="http://www.w3.org/2000/svg" fill="currentColor" viewBox="0 0 15 15" class="size-5 -rotate-90 [[open]>*>&]:rotate-90 transition-transform"><path fill-rule="evenodd" d="M8.842 3.135a.5.5 0 0 1 .023.707L5.435 7.5l3.43 3.658a.5.5 0 0 1-.73.684l-3.75-4a.5.5 0 0 1 0-.684l3.75-4a.5.5 0 0 1 .707-.023" clip-rule="evenodd"></path></svg></summary><div class="px-8 lg:px-12 py-5"><ul class="[:is(ol,ul)_&]:_my-3 [&:not(:first-child)]:_mt-6 _list-disc ltr:_ml-6 rtl:_mr-6"> <li class="_my-2"><strong>Querying</strong>, <strong>mutating</strong> and <strong>subscribing</strong> without manual writing of query strings (unless you want to!)</li> <li class="_my-2">Deserializing responses directly into Julia types</li> <li class="_my-2"><strong>Construction of Julia types</strong> from GraphQL objects</li> <li class="_my-2">Using <strong>introspection</strong> to help with querying</li> </ul> <h3 class="_font-semibold _tracking-tight _text-slate-900 dark:_text-slate-100 _mt-8 _text-2xl">Quickstart<a href="#quickstart" id="quickstart" class="subheading-anchor" aria-label="Permalink for this section"></a></h3> <p class="[&:not(:first-child)]:_mt-6 _leading-7">Install with Julia’s package manager</p> <div class="nextra-code _relative [&:not(:first-child)]:_mt-6"><pre class="_overflow-x-auto _subpixel-antialiased _text-[.9em] _bg-white dark:_bg-black _py-4 _ring-1 _ring-inset _ring-gray-300 dark:_ring-neutral-700 contrast-more:_ring-gray-900 contrast-more:dark:_ring-gray-50 contrast-more:_contrast-150 _rounded-md"><code class="nextra-code" dir="ltr">using Pkg; Pkg.add("GraphQLClient") using GraphQLClient </code></pre><div class="_opacity-0 _transition [div:hover>&]:_opacity-100 focus-within:_opacity-100 _flex _gap-1 _absolute _right-4 _top-2"><button class="_transition _rounded-md _p-1.5 _border _border-gray-300 dark:_border-neutral-700 contrast-more:_border-gray-900 contrast-more:dark:_border-gray-50 md:_hidden" title="Toggle word wrap"><svg viewBox="0 0 24 24" width="24" height="24" class="_h-4 _w-auto"><path fill="currentColor" d="M4 19h6v-2H4v2zM20 5H4v2h16V5zm-3 6H4v2h13.25c1.1 0 2 .9 2 2s-.9 2-2 2H15v-2l-3 3l3 3v-2h2c2.21 0 4-1.79 4-4s-1.79-4-4-4z"></path></svg></button></div></div> <p class="[&:not(:first-child)]:_mt-6 _leading-7">Connect to a server</p> <div class="nextra-code _relative [&:not(:first-child)]:_mt-6"><pre class="_overflow-x-auto _subpixel-antialiased _text-[.9em] _bg-white dark:_bg-black _py-4 _ring-1 _ring-inset _ring-gray-300 dark:_ring-neutral-700 contrast-more:_ring-gray-900 contrast-more:dark:_ring-gray-50 contrast-more:_contrast-150 _rounded-md" tabindex="0"><code class="nextra-code" dir="ltr"><span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">client </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> Client</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">"https://countries.trevorblades.com"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">)</span></span></code></pre><div class="_opacity-0 _transition [div:hover>&]:_opacity-100 focus-within:_opacity-100 _flex _gap-1 _absolute _right-4 _top-2"><button class="_transition _rounded-md _p-1.5 _border _border-gray-300 dark:_border-neutral-700 contrast-more:_border-gray-900 contrast-more:dark:_border-gray-50 md:_hidden" title="Toggle word wrap"><svg viewBox="0 0 24 24" width="24" height="24" class="_h-4 _w-auto"><path fill="currentColor" d="M4 19h6v-2H4v2zM20 5H4v2h16V5zm-3 6H4v2h13.25c1.1 0 2 .9 2 2s-.9 2-2 2H15v-2l-3 3l3 3v-2h2c2.21 0 4-1.79 4-4s-1.79-4-4-4z"></path></svg></button></div></div> <p class="[&:not(:first-child)]:_mt-6 _leading-7">Build a Julia type from a GraphQL object</p> <div class="nextra-code _relative [&:not(:first-child)]:_mt-6"><pre class="_overflow-x-auto _subpixel-antialiased _text-[.9em] _bg-white dark:_bg-black _py-4 _ring-1 _ring-inset _ring-gray-300 dark:_ring-neutral-700 contrast-more:_ring-gray-900 contrast-more:dark:_ring-gray-50 contrast-more:_contrast-150 _rounded-md" tabindex="0"><code class="nextra-code" dir="ltr"><span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">Country </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> GraphQLClient</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">.</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">introspect_object</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(client, </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">"Country"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">)</span></span></code></pre><div class="_opacity-0 _transition [div:hover>&]:_opacity-100 focus-within:_opacity-100 _flex _gap-1 _absolute _right-4 _top-2"><button class="_transition _rounded-md _p-1.5 _border _border-gray-300 dark:_border-neutral-700 contrast-more:_border-gray-900 contrast-more:dark:_border-gray-50 md:_hidden" title="Toggle word wrap"><svg viewBox="0 0 24 24" width="24" height="24" class="_h-4 _w-auto"><path fill="currentColor" d="M4 19h6v-2H4v2zM20 5H4v2h16V5zm-3 6H4v2h13.25c1.1 0 2 .9 2 2s-.9 2-2 2H15v-2l-3 3l3 3v-2h2c2.21 0 4-1.79 4-4s-1.79-4-4-4z"></path></svg></button></div></div> <p class="[&:not(:first-child)]:_mt-6 _leading-7">And query the server, deserializing the response into this new type</p> <div class="nextra-code _relative [&:not(:first-child)]:_mt-6"><pre class="_overflow-x-auto _subpixel-antialiased _text-[.9em] _bg-white dark:_bg-black _py-4 _ring-1 _ring-inset _ring-gray-300 dark:_ring-neutral-700 contrast-more:_ring-gray-900 contrast-more:dark:_ring-gray-50 contrast-more:_contrast-150 _rounded-md" tabindex="0"><code class="nextra-code" dir="ltr"><span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">response </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> query</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(client, </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">"countries"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">, Vector{Country}, output_fields</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">"name"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">)</span></span></code></pre><div class="_opacity-0 _transition [div:hover>&]:_opacity-100 focus-within:_opacity-100 _flex _gap-1 _absolute _right-4 _top-2"><button class="_transition _rounded-md _p-1.5 _border _border-gray-300 dark:_border-neutral-700 contrast-more:_border-gray-900 contrast-more:dark:_border-gray-50 md:_hidden" title="Toggle word wrap"><svg viewBox="0 0 24 24" width="24" height="24" class="_h-4 _w-auto"><path fill="currentColor" d="M4 19h6v-2H4v2zM20 5H4v2h16V5zm-3 6H4v2h13.25c1.1 0 2 .9 2 2s-.9 2-2 2H15v-2l-3 3l3 3v-2h2c2.21 0 4-1.79 4-4s-1.79-4-4-4z"></path></svg></button></div></div> <p class="[&:not(:first-child)]:_mt-6 _leading-7">Alternatively write the query string manually</p> <div class="nextra-code _relative [&:not(:first-child)]:_mt-6"><pre class="_overflow-x-auto _subpixel-antialiased _text-[.9em] _bg-white dark:_bg-black _py-4 _ring-1 _ring-inset _ring-gray-300 dark:_ring-neutral-700 contrast-more:_ring-gray-900 contrast-more:dark:_ring-gray-50 contrast-more:_contrast-150 _rounded-md" tabindex="0"><code class="nextra-code" dir="ltr"><span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">query_string </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> """</span></span> <span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> {</span></span> <span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> countries{</span></span> <span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> name</span></span> <span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> }</span></span> <span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">}"""</span></span> <span> </span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">response </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> GraphQLClient</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">.</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">execute</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(client, query_string)</span></span></code></pre><div class="_opacity-0 _transition [div:hover>&]:_opacity-100 focus-within:_opacity-100 _flex _gap-1 _absolute _right-4 _top-2"><button class="_transition _rounded-md _p-1.5 _border _border-gray-300 dark:_border-neutral-700 contrast-more:_border-gray-900 contrast-more:dark:_border-gray-50 md:_hidden" title="Toggle word wrap"><svg viewBox="0 0 24 24" width="24" height="24" class="_h-4 _w-auto"><path fill="currentColor" d="M4 19h6v-2H4v2zM20 5H4v2h16V5zm-3 6H4v2h13.25c1.1 0 2 .9 2 2s-.9 2-2 2H15v-2l-3 3l3 3v-2h2c2.21 0 4-1.79 4-4s-1.79-4-4-4z"></path></svg></button></div></div></div></details></div><div class="border border-zinc-200 dark:border-[#414141] p-8 lg:p-12 bg-white dark:bg-neutral-800 rounded-none !p-0 h-max min-w-0"><div class="p-8 lg:p-12 flex flex-col gap-7 grow"><div class="flex items-center gap-6 [&_a:hover]:text-primary [&_a]:transition-colors"><span class="text-3xl font-extrabold grow break-all">Qlient</span><a href="https://github.com/qlient-org/python-qlient" target="_blank" rel="noreferrer"><svg xmlns="http://www.w3.org/2000/svg" width="30" fill="currentColor" viewBox="0 0 30 30"><path fill-rule="evenodd" d="M15.1.413a14.81 14.81 0 0 0-4.684 28.862c.742.138 1.012-.32 1.012-.712 0-.35-.013-1.283-.02-2.518-4.12.893-4.99-1.987-4.99-1.987-.675-1.71-1.643-2.165-1.643-2.165-1.345-.918.1-.9.1-.9 1.488.105 2.27 1.525 2.27 1.525 1.32 2.265 3.466 1.61 4.31 1.23.133-.955.515-1.608.94-1.978-3.29-.375-6.747-1.645-6.747-7.32 0-1.615.577-2.937 1.525-3.975-.15-.372-.66-1.88.145-3.917 0 0 1.242-.4 4.075 1.517a14.3 14.3 0 0 1 3.705-.5 14.2 14.2 0 0 1 3.707.5c2.826-1.915 4.068-1.517 4.068-1.517.807 2.037.3 3.545.15 3.92.95 1.035 1.52 2.357 1.52 3.975 0 5.687-3.462 6.94-6.76 7.305.53.457 1.005 1.36 1.005 2.742 0 1.98-.02 3.575-.02 4.063 0 .395.267.857 1.02.712A14.816 14.816 0 0 0 15.101.413" clip-rule="evenodd"></path></svg></a></div><div class="gap-2 flex roboto-mono"><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=python">Python</a><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=client">Client</a></div><span class="[&_a]:text-primary grow line-clamp-4 lg:text-lg">A fast and modern graphql client designed with simplicity in mind.</span><div class="flex items-center gap-5 max-md:text-xs [&>:not(:last-child)]:border-r [&>:not(:last-child)]:border-gray-500 [&>:not(:last-child)]:pr-5"><span>Last release <!-- -->2 years ago</span><span class="flex items-center gap-1"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="19" fill="currentColor" class="text-primary"><path d="m10 .5 2.997 5.874L19.51 7.41l-4.66 4.666 1.027 6.514L10 15.6l-5.878 2.99 1.028-6.514L.489 7.41l6.513-1.036z"></path></svg>45</span><span>MIT License</span></div></div><details class="bg-[#f0f0f0] dark:bg-[#2f2f2f]"><summary class="flex justify-between font-bold text-primary px-8 lg:px-12 py-5 dark:[[open]>&]:shadow-[-5px_10px_30px_20px_#1b1b1b4d] [[open]>&]:shadow-[0_6px_21px_0_#1b1b1b33] cursor-pointer">README<svg xmlns="http://www.w3.org/2000/svg" fill="currentColor" viewBox="0 0 15 15" class="size-5 -rotate-90 [[open]>*>&]:rotate-90 transition-transform"><path fill-rule="evenodd" d="M8.842 3.135a.5.5 0 0 1 .023.707L5.435 7.5l3.43 3.658a.5.5 0 0 1-.73.684l-3.75-4a.5.5 0 0 1 0-.684l3.75-4a.5.5 0 0 1 .707-.023" clip-rule="evenodd"></path></svg></summary><div class="px-8 lg:px-12 py-5"><p class="[&:not(:first-child)]:_mt-6 _leading-7">Here’s an example of a qlient hello world.</p> <p class="[&:not(:first-child)]:_mt-6 _leading-7">first install the library:</p> <div class="nextra-code _relative [&:not(:first-child)]:_mt-6"><pre class="_overflow-x-auto _subpixel-antialiased _text-[.9em] _bg-white dark:_bg-black _py-4 _ring-1 _ring-inset _ring-gray-300 dark:_ring-neutral-700 contrast-more:_ring-gray-900 contrast-more:dark:_ring-gray-50 contrast-more:_contrast-150 _rounded-md" tabindex="0"><code class="nextra-code" dir="ltr"><span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">pip</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> install</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> qlient</span></span></code></pre><div class="_opacity-0 _transition [div:hover>&]:_opacity-100 focus-within:_opacity-100 _flex _gap-1 _absolute _right-4 _top-2"><button class="_transition _rounded-md _p-1.5 _border _border-gray-300 dark:_border-neutral-700 contrast-more:_border-gray-900 contrast-more:dark:_border-gray-50 md:_hidden" title="Toggle word wrap"><svg viewBox="0 0 24 24" width="24" height="24" class="_h-4 _w-auto"><path fill="currentColor" d="M4 19h6v-2H4v2zM20 5H4v2h16V5zm-3 6H4v2h13.25c1.1 0 2 .9 2 2s-.9 2-2 2H15v-2l-3 3l3 3v-2h2c2.21 0 4-1.79 4-4s-1.79-4-4-4z"></path></svg></button></div></div> <p class="[&:not(:first-child)]:_mt-6 _leading-7">Create a <code class="nextra-code" dir="ltr">swapi_client_example.py</code> file with this content:</p> <div class="nextra-code _relative [&:not(:first-child)]:_mt-6"><pre class="_overflow-x-auto _subpixel-antialiased _text-[.9em] _bg-white dark:_bg-black _py-4 _ring-1 _ring-inset _ring-gray-300 dark:_ring-neutral-700 contrast-more:_ring-gray-900 contrast-more:dark:_ring-gray-50 contrast-more:_contrast-150 _rounded-md" tabindex="0"><code class="nextra-code" dir="ltr"><span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">from</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> qlient.http </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">import</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> HTTPClient, GraphQLResponse</span></span> <span> </span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">client </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> HTTPClient(</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">"https://swapi-graphql.netlify.app/.netlify/functions/index"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">)</span></span> <span> </span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">res: GraphQLResponse </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> client.query.film(</span></span> <span><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D"> # swapi graphql input fields</span></span> <span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70"> id</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">"ZmlsbXM6MQ=="</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">,</span></span> <span> </span> <span><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D"> # qlient specific</span></span> <span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70"> _fields</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">[</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">"id"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">, </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">"title"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">, </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">"episodeID"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">]</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">)</span></span> <span> </span> <span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">print</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(res.request.query) </span><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D"># query film($id: ID) { film(id: $id) { id title episodeID } }</span></span> <span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">print</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(res.request.variables) </span><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D"># {'id': 'ZmlsbXM6MQ=='}</span></span> <span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">print</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(res.data) </span><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D"># {'film': {'id': 'ZmlsbXM6MQ==', 'title': 'A New Hope', 'episodeID': 4}}</span></span></code></pre><div class="_opacity-0 _transition [div:hover>&]:_opacity-100 focus-within:_opacity-100 _flex _gap-1 _absolute _right-4 _top-2"><button class="_transition _rounded-md _p-1.5 _border _border-gray-300 dark:_border-neutral-700 contrast-more:_border-gray-900 contrast-more:dark:_border-gray-50 md:_hidden" title="Toggle word wrap"><svg viewBox="0 0 24 24" width="24" height="24" class="_h-4 _w-auto"><path fill="currentColor" d="M4 19h6v-2H4v2zM20 5H4v2h16V5zm-3 6H4v2h13.25c1.1 0 2 .9 2 2s-.9 2-2 2H15v-2l-3 3l3 3v-2h2c2.21 0 4-1.79 4-4s-1.79-4-4-4z"></path></svg></button></div></div> <p class="[&:not(:first-child)]:_mt-6 _leading-7">Close the file and run it using python:</p> <div class="nextra-code _relative [&:not(:first-child)]:_mt-6"><pre class="_overflow-x-auto _subpixel-antialiased _text-[.9em] _bg-white dark:_bg-black _py-4 _ring-1 _ring-inset _ring-gray-300 dark:_ring-neutral-700 contrast-more:_ring-gray-900 contrast-more:dark:_ring-gray-50 contrast-more:_contrast-150 _rounded-md" tabindex="0"><code class="nextra-code" dir="ltr"><span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">python</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> swapi_client_example.py</span></span></code></pre><div class="_opacity-0 _transition [div:hover>&]:_opacity-100 focus-within:_opacity-100 _flex _gap-1 _absolute _right-4 _top-2"><button class="_transition _rounded-md _p-1.5 _border _border-gray-300 dark:_border-neutral-700 contrast-more:_border-gray-900 contrast-more:dark:_border-gray-50 md:_hidden" title="Toggle word wrap"><svg viewBox="0 0 24 24" width="24" height="24" class="_h-4 _w-auto"><path fill="currentColor" d="M4 19h6v-2H4v2zM20 5H4v2h16V5zm-3 6H4v2h13.25c1.1 0 2 .9 2 2s-.9 2-2 2H15v-2l-3 3l3 3v-2h2c2.21 0 4-1.79 4-4s-1.79-4-4-4z"></path></svg></button></div></div></div></details></div><div class="border border-zinc-200 dark:border-[#414141] p-8 lg:p-12 bg-white dark:bg-neutral-800 rounded-none !p-0 h-max min-w-0"><div class="p-8 lg:p-12 flex flex-col gap-7 grow"><div class="flex items-center gap-6 [&_a:hover]:text-primary [&_a]:transition-colors"><span class="text-3xl font-extrabold grow break-all">SAHB.GraphQLClient</span><a href="https://github.com/sahb1239/SAHB.GraphQLClient" target="_blank" rel="noreferrer"><svg xmlns="http://www.w3.org/2000/svg" width="30" fill="currentColor" viewBox="0 0 30 30"><path fill-rule="evenodd" d="M15.1.413a14.81 14.81 0 0 0-4.684 28.862c.742.138 1.012-.32 1.012-.712 0-.35-.013-1.283-.02-2.518-4.12.893-4.99-1.987-4.99-1.987-.675-1.71-1.643-2.165-1.643-2.165-1.345-.918.1-.9.1-.9 1.488.105 2.27 1.525 2.27 1.525 1.32 2.265 3.466 1.61 4.31 1.23.133-.955.515-1.608.94-1.978-3.29-.375-6.747-1.645-6.747-7.32 0-1.615.577-2.937 1.525-3.975-.15-.372-.66-1.88.145-3.917 0 0 1.242-.4 4.075 1.517a14.3 14.3 0 0 1 3.705-.5 14.2 14.2 0 0 1 3.707.5c2.826-1.915 4.068-1.517 4.068-1.517.807 2.037.3 3.545.15 3.92.95 1.035 1.52 2.357 1.52 3.975 0 5.687-3.462 6.94-6.76 7.305.53.457 1.005 1.36 1.005 2.742 0 1.98-.02 3.575-.02 4.063 0 .395.267.857 1.02.712A14.816 14.816 0 0 0 15.101.413" clip-rule="evenodd"></path></svg></a></div><div class="gap-2 flex roboto-mono"><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=c-net">C# / .NET</a><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=client">Client</a></div><span class="[&_a]:text-primary grow line-clamp-4 lg:text-lg">GraphQL client which supports generating queries from C# classes</span><div class="flex items-center gap-5 max-md:text-xs [&>:not(:last-child)]:border-r [&>:not(:last-child)]:border-gray-500 [&>:not(:last-child)]:pr-5"><span>Last release <!-- -->4 years ago</span><span class="flex items-center gap-1"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="19" fill="currentColor" class="text-primary"><path d="m10 .5 2.997 5.874L19.51 7.41l-4.66 4.666 1.027 6.514L10 15.6l-5.878 2.99 1.028-6.514L.489 7.41l6.513-1.036z"></path></svg>44</span><span>MIT License</span></div></div></div><div class="border border-zinc-200 dark:border-[#414141] p-8 lg:p-12 bg-white dark:bg-neutral-800 rounded-none !p-0 h-max min-w-0"><div class="p-8 lg:p-12 flex flex-col gap-7 grow"><div class="flex items-center gap-6 [&_a:hover]:text-primary [&_a]:transition-colors"><span class="text-3xl font-extrabold grow break-all">StepZen</span><a href="https://stepzen.com/docs/" target="_blank" rel="noreferrer"><svg xmlns="http://www.w3.org/2000/svg" fill="currentColor" viewBox="0 0 24 24"><path d="M23.332 15.948C23.764 14.711 24 13.383 24 12a12 12 0 0 0-.706-4.056C21.627 3.317 17.194 0 12 0S2.373 3.317.706 7.944A11.949 11.949 0 0 0 0 12a12 12 0 0 0 .706 4.056C2.373 20.683 6.806 24 12 24s9.627-3.317 11.294-7.944a1 1 0 0 0 .038-.108M12 22.28c-.457 0-1.194-.827-1.81-2.675a19 19 0 0 1-.708-3.031h5.036a19 19 0 0 1-.708 3.031c-.616 1.848-1.353 2.675-1.81 2.675m-2.727-7.427A32 32 0 0 1 9.147 12c0-.98.043-1.936.126-2.853h5.454c.083.917.126 1.874.126 2.853s-.043 1.936-.126 2.854zM1.72 12c0-.99.141-1.947.403-2.853h5.425a33.5 33.5 0 0 0 0 5.707H2.123A10.3 10.3 0 0 1 1.72 12M12 1.72c.457 0 1.194.827 1.81 2.675.297.892.535 1.917.708 3.032H9.482c.173-1.115.411-2.14.708-3.032.616-1.848 1.353-2.675 1.81-2.675m4.452 7.427h5.425c.262.906.403 1.864.403 2.853s-.141 1.947-.403 2.854h-5.425a33.5 33.5 0 0 0 0-5.707m4.752-1.72h-4.95c-.305-2.11-.83-4.003-1.566-5.35 2.855.775 5.22 2.75 6.516 5.35M9.313 2.077c-.736 1.347-1.261 3.24-1.567 5.35h-4.95a10.33 10.33 0 0 1 6.517-5.35M2.795 16.574h4.95c.306 2.11.83 4.002 1.567 5.349a10.33 10.33 0 0 1-6.517-5.35m11.893 5.349c.736-1.347 1.261-3.24 1.567-5.35h4.95a10.33 10.33 0 0 1-6.517 5.35"></path></svg></a><a href="https://github.com/stepzen-dev/examples" target="_blank" rel="noreferrer"><svg xmlns="http://www.w3.org/2000/svg" width="30" fill="currentColor" viewBox="0 0 30 30"><path fill-rule="evenodd" d="M15.1.413a14.81 14.81 0 0 0-4.684 28.862c.742.138 1.012-.32 1.012-.712 0-.35-.013-1.283-.02-2.518-4.12.893-4.99-1.987-4.99-1.987-.675-1.71-1.643-2.165-1.643-2.165-1.345-.918.1-.9.1-.9 1.488.105 2.27 1.525 2.27 1.525 1.32 2.265 3.466 1.61 4.31 1.23.133-.955.515-1.608.94-1.978-3.29-.375-6.747-1.645-6.747-7.32 0-1.615.577-2.937 1.525-3.975-.15-.372-.66-1.88.145-3.917 0 0 1.242-.4 4.075 1.517a14.3 14.3 0 0 1 3.705-.5 14.2 14.2 0 0 1 3.707.5c2.826-1.915 4.068-1.517 4.068-1.517.807 2.037.3 3.545.15 3.92.95 1.035 1.52 2.357 1.52 3.975 0 5.687-3.462 6.94-6.76 7.305.53.457 1.005 1.36 1.005 2.742 0 1.98-.02 3.575-.02 4.063 0 .395.267.857 1.02.712A14.816 14.816 0 0 0 15.101.413" clip-rule="evenodd"></path></svg></a></div><div class="gap-2 flex roboto-mono"><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=services">Services</a></div><span class="[&_a]:text-primary grow line-clamp-4 lg:text-lg">Create a serverless GraphQL API based on your data sources (REST & Databases), Third-Party APIs, or any combination. Instead of writing a GraphQL server yourself, you can define everything declaratively by writing GraphQL schemas. For more information, go to <a href="https://www.stepzen.com/">https://www.stepzen.com/</a>.</span><div class="flex items-center gap-5 max-md:text-xs [&>:not(:last-child)]:border-r [&>:not(:last-child)]:border-gray-500 [&>:not(:last-child)]:pr-5"><span class="flex items-center gap-1"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="19" fill="currentColor" class="text-primary"><path d="m10 .5 2.997 5.874L19.51 7.41l-4.66 4.666 1.027 6.514L10 15.6l-5.878 2.99 1.028-6.514L.489 7.41l6.513-1.036z"></path></svg>43</span><span>MIT License</span></div></div></div><div class="border border-zinc-200 dark:border-[#414141] p-8 lg:p-12 bg-white dark:bg-neutral-800 rounded-none !p-0 h-max min-w-0"><div class="p-8 lg:p-12 flex flex-col gap-7 grow"><div class="flex items-center gap-6 [&_a:hover]:text-primary [&_a]:transition-colors"><span class="text-3xl font-extrabold grow break-all">NGraphQL</span><a href="https://github.com/rivantsov/ngraphql" target="_blank" rel="noreferrer"><svg xmlns="http://www.w3.org/2000/svg" width="30" fill="currentColor" viewBox="0 0 30 30"><path fill-rule="evenodd" d="M15.1.413a14.81 14.81 0 0 0-4.684 28.862c.742.138 1.012-.32 1.012-.712 0-.35-.013-1.283-.02-2.518-4.12.893-4.99-1.987-4.99-1.987-.675-1.71-1.643-2.165-1.643-2.165-1.345-.918.1-.9.1-.9 1.488.105 2.27 1.525 2.27 1.525 1.32 2.265 3.466 1.61 4.31 1.23.133-.955.515-1.608.94-1.978-3.29-.375-6.747-1.645-6.747-7.32 0-1.615.577-2.937 1.525-3.975-.15-.372-.66-1.88.145-3.917 0 0 1.242-.4 4.075 1.517a14.3 14.3 0 0 1 3.705-.5 14.2 14.2 0 0 1 3.707.5c2.826-1.915 4.068-1.517 4.068-1.517.807 2.037.3 3.545.15 3.92.95 1.035 1.52 2.357 1.52 3.975 0 5.687-3.462 6.94-6.76 7.305.53.457 1.005 1.36 1.005 2.742 0 1.98-.02 3.575-.02 4.063 0 .395.267.857 1.02.712A14.816 14.816 0 0 0 15.101.413" clip-rule="evenodd"></path></svg></a></div><div class="gap-2 flex roboto-mono"><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=c-net">C# / .NET</a><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=server">Server</a></div><span class="[&_a]:text-primary grow line-clamp-4 lg:text-lg">A set of packages for implementing high-performant GraphQL servers in .NET. Faithful implementation of official 2018 Specification. Features batched execution support (aka Data Loader); support for custom scalars; HTTP server based on ASP.NET Core; parsed query cache; modular API construction (equivalent of schema stiching); full introspection support; runtime metrics and quotas.</span><div class="flex items-center gap-5 max-md:text-xs [&>:not(:last-child)]:border-r [&>:not(:last-child)]:border-gray-500 [&>:not(:last-child)]:pr-5"><span class="flex items-center gap-1"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="19" fill="currentColor" class="text-primary"><path d="m10 .5 2.997 5.874L19.51 7.41l-4.66 4.666 1.027 6.514L10 15.6l-5.878 2.99 1.028-6.514L.489 7.41l6.513-1.036z"></path></svg>43</span><span>MIT License</span></div></div></div><div class="border border-zinc-200 dark:border-[#414141] p-8 lg:p-12 bg-white dark:bg-neutral-800 rounded-none !p-0 h-max min-w-0"><div class="p-8 lg:p-12 flex flex-col gap-7 grow"><div class="flex items-center gap-6 [&_a:hover]:text-primary [&_a]:transition-colors"><span class="text-3xl font-extrabold grow break-all">common_graphql_client</span><a href="https://github.com/annkissam/common_graphql_client" target="_blank" rel="noreferrer"><svg xmlns="http://www.w3.org/2000/svg" width="30" fill="currentColor" viewBox="0 0 30 30"><path fill-rule="evenodd" d="M15.1.413a14.81 14.81 0 0 0-4.684 28.862c.742.138 1.012-.32 1.012-.712 0-.35-.013-1.283-.02-2.518-4.12.893-4.99-1.987-4.99-1.987-.675-1.71-1.643-2.165-1.643-2.165-1.345-.918.1-.9.1-.9 1.488.105 2.27 1.525 2.27 1.525 1.32 2.265 3.466 1.61 4.31 1.23.133-.955.515-1.608.94-1.978-3.29-.375-6.747-1.645-6.747-7.32 0-1.615.577-2.937 1.525-3.975-.15-.372-.66-1.88.145-3.917 0 0 1.242-.4 4.075 1.517a14.3 14.3 0 0 1 3.705-.5 14.2 14.2 0 0 1 3.707.5c2.826-1.915 4.068-1.517 4.068-1.517.807 2.037.3 3.545.15 3.92.95 1.035 1.52 2.357 1.52 3.975 0 5.687-3.462 6.94-6.76 7.305.53.457 1.005 1.36 1.005 2.742 0 1.98-.02 3.575-.02 4.063 0 .395.267.857 1.02.712A14.816 14.816 0 0 0 15.101.413" clip-rule="evenodd"></path></svg></a></div><div class="gap-2 flex roboto-mono"><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=elixir">Elixir</a><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=client">Client</a></div><span class="[&_a]:text-primary grow line-clamp-4 lg:text-lg">Elixir GraphQL Client with HTTP and WebSocket support</span><div class="flex items-center gap-5 max-md:text-xs [&>:not(:last-child)]:border-r [&>:not(:last-child)]:border-gray-500 [&>:not(:last-child)]:pr-5"><span>Last release <!-- -->4 years ago</span><span class="flex items-center gap-1"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="19" fill="currentColor" class="text-primary"><path d="m10 .5 2.997 5.874L19.51 7.41l-4.66 4.666 1.027 6.514L10 15.6l-5.878 2.99 1.028-6.514L.489 7.41l6.513-1.036z"></path></svg>43</span><span>MIT License</span></div></div></div><div class="border border-zinc-200 dark:border-[#414141] p-8 lg:p-12 bg-white dark:bg-neutral-800 rounded-none !p-0 h-max min-w-0"><div class="p-8 lg:p-12 flex flex-col gap-7 grow"><div class="flex items-center gap-6 [&_a:hover]:text-primary [&_a]:transition-colors"><span class="text-3xl font-extrabold grow break-all">GraPHPinator</span><a href="https://github.com/infinityloop-dev/graphpinator" target="_blank" rel="noreferrer"><svg xmlns="http://www.w3.org/2000/svg" width="30" fill="currentColor" viewBox="0 0 30 30"><path fill-rule="evenodd" d="M15.1.413a14.81 14.81 0 0 0-4.684 28.862c.742.138 1.012-.32 1.012-.712 0-.35-.013-1.283-.02-2.518-4.12.893-4.99-1.987-4.99-1.987-.675-1.71-1.643-2.165-1.643-2.165-1.345-.918.1-.9.1-.9 1.488.105 2.27 1.525 2.27 1.525 1.32 2.265 3.466 1.61 4.31 1.23.133-.955.515-1.608.94-1.978-3.29-.375-6.747-1.645-6.747-7.32 0-1.615.577-2.937 1.525-3.975-.15-.372-.66-1.88.145-3.917 0 0 1.242-.4 4.075 1.517a14.3 14.3 0 0 1 3.705-.5 14.2 14.2 0 0 1 3.707.5c2.826-1.915 4.068-1.517 4.068-1.517.807 2.037.3 3.545.15 3.92.95 1.035 1.52 2.357 1.52 3.975 0 5.687-3.462 6.94-6.76 7.305.53.457 1.005 1.36 1.005 2.742 0 1.98-.02 3.575-.02 4.063 0 .395.267.857 1.02.712A14.816 14.816 0 0 0 15.101.413" clip-rule="evenodd"></path></svg></a></div><div class="gap-2 flex roboto-mono"><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=php">PHP</a><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=server">Server</a></div><span class="[&_a]:text-primary grow line-clamp-4 lg:text-lg">A GraphQL implementation for modern PHP. Includes features from latest draft, middleware directives and modules with extra functionality.</span><div class="flex items-center gap-5 max-md:text-xs [&>:not(:last-child)]:border-r [&>:not(:last-child)]:border-gray-500 [&>:not(:last-child)]:pr-5"><span>Last release <!-- -->1 month ago</span><span class="flex items-center gap-1"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="19" fill="currentColor" class="text-primary"><path d="m10 .5 2.997 5.874L19.51 7.41l-4.66 4.666 1.027 6.514L10 15.6l-5.878 2.99 1.028-6.514L.489 7.41l6.513-1.036z"></path></svg>40</span><span>MIT License</span></div></div><details class="bg-[#f0f0f0] dark:bg-[#2f2f2f]"><summary class="flex justify-between font-bold text-primary px-8 lg:px-12 py-5 dark:[[open]>&]:shadow-[-5px_10px_30px_20px_#1b1b1b4d] [[open]>&]:shadow-[0_6px_21px_0_#1b1b1b33] cursor-pointer">README<svg xmlns="http://www.w3.org/2000/svg" fill="currentColor" viewBox="0 0 15 15" class="size-5 -rotate-90 [[open]>*>&]:rotate-90 transition-transform"><path fill-rule="evenodd" d="M8.842 3.135a.5.5 0 0 1 .023.707L5.435 7.5l3.43 3.658a.5.5 0 0 1-.73.684l-3.75-4a.5.5 0 0 1 0-.684l3.75-4a.5.5 0 0 1 .707-.023" clip-rule="evenodd"></path></svg></summary><div class="px-8 lg:px-12 py-5"><p class="[&:not(:first-child)]:_mt-6 _leading-7">GraPHPinator is feature complete PHP implementation of GraphQL server. Its job is transformation of query string into resolved Json result for a given Schema.</p> <ul class="[:is(ol,ul)_&]:_my-3 [&:not(:first-child)]:_mt-6 _list-disc ltr:_ml-6 rtl:_mr-6"> <li class="_my-2">Aims to be compliant with the latest draft of GraphQL specification.</li> <li class="_my-2">Fully typesafe, and therefore minimum required PHP version is 8.0. Sacrafices a tiny bit of convenience for huge amount of clarity and safety - no random configuration <code class="nextra-code" dir="ltr">array</code>s, no mixed types, no variable function arguments - this library doesnt try to save you from verbosity, but makes sure you always know what you’ve got.</li> <li class="_my-2">Code first.</li> <li class="_my-2">Flexible. Easy to extend with extra functionality using Modules or middleware Directives.</li> <li class="_my-2">Includes some opt-in extensions which are out of scope of official specs: <ul class="[:is(ol,ul)_&]:_my-3 [&:not(:first-child)]:_mt-6 _list-disc ltr:_ml-6 rtl:_mr-6"> <li class="_my-2"><a href="https://github.com/infinityloop-dev/graphpinator-printer" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">Printer</a> - Schema printing for GraPHPinator typesystem.</li> <li class="_my-2"><a href="https://github.com/infinityloop-dev/graphpinator-extra-types" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">Extra types</a> - Some useful and commonly used types, both scalar or composite.</li> <li class="_my-2"><a href="https://github.com/infinityloop-dev/graphpinator-constraint-directives" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">Constraint directives</a> - Typesystem directives to declare additional validation on top of GraphQL typesystem.</li> <li class="_my-2"><a href="https://github.com/infinityloop-dev/graphpinator-where-directives" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">Where directives</a> - Executable directives to filter values in lists.</li> <li class="_my-2">File upload using <a href="https://github.com/jaydenseric/graphql-multipart-request-spec" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">multipart-formdata</a> specs (currently bundled).</li> <li class="_my-2"><a href="https://github.com/infinityloop-dev/graphpinator-query-cost" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">Query cost limit module</a> - Modules to limit query cost by restricting maximum depth or number of nodes.</li> </ul> </li> <li class="_my-2">Project is composed from multiple smaller packages, which may be used standalone: <ul class="[:is(ol,ul)_&]:_my-3 [&:not(:first-child)]:_mt-6 _list-disc ltr:_ml-6 rtl:_mr-6"> <li class="_my-2"><a href="https://github.com/infinityloop-dev/graphpinator-tokenizer" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">Tokenizer</a> - Lexical analyzer of GraphQL document.</li> <li class="_my-2"><a href="https://github.com/infinityloop-dev/graphpinator-parser" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">Parser</a> - Syntactic analyzer of GraphQL document.</li> </ul> </li> </ul></div></details></div><div class="border border-zinc-200 dark:border-[#414141] p-8 lg:p-12 bg-white dark:bg-neutral-800 rounded-none !p-0 h-max min-w-0"><div class="p-8 lg:p-12 flex flex-col gap-7 grow"><div class="flex items-center gap-6 [&_a:hover]:text-primary [&_a]:transition-colors"><span class="text-3xl font-extrabold grow break-all">EGGQL</span><a href="https://github.com/andrewwphillips/eggql" target="_blank" rel="noreferrer"><svg xmlns="http://www.w3.org/2000/svg" width="30" fill="currentColor" viewBox="0 0 30 30"><path fill-rule="evenodd" d="M15.1.413a14.81 14.81 0 0 0-4.684 28.862c.742.138 1.012-.32 1.012-.712 0-.35-.013-1.283-.02-2.518-4.12.893-4.99-1.987-4.99-1.987-.675-1.71-1.643-2.165-1.643-2.165-1.345-.918.1-.9.1-.9 1.488.105 2.27 1.525 2.27 1.525 1.32 2.265 3.466 1.61 4.31 1.23.133-.955.515-1.608.94-1.978-3.29-.375-6.747-1.645-6.747-7.32 0-1.615.577-2.937 1.525-3.975-.15-.372-.66-1.88.145-3.917 0 0 1.242-.4 4.075 1.517a14.3 14.3 0 0 1 3.705-.5 14.2 14.2 0 0 1 3.707.5c2.826-1.915 4.068-1.517 4.068-1.517.807 2.037.3 3.545.15 3.92.95 1.035 1.52 2.357 1.52 3.975 0 5.687-3.462 6.94-6.76 7.305.53.457 1.005 1.36 1.005 2.742 0 1.98-.02 3.575-.02 4.063 0 .395.267.857 1.02.712A14.816 14.816 0 0 0 15.101.413" clip-rule="evenodd"></path></svg></a></div><div class="gap-2 flex roboto-mono"><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=go">Go</a><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=server">Server</a></div><span class="[&_a]:text-primary grow line-clamp-4 lg:text-lg">Easy to use, complete Go implementation of GraphQL. Simple and schema-less.</span><div class="flex items-center gap-5 max-md:text-xs [&>:not(:last-child)]:border-r [&>:not(:last-child)]:border-gray-500 [&>:not(:last-child)]:pr-5"><span class="flex items-center gap-1"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="19" fill="currentColor" class="text-primary"><path d="m10 .5 2.997 5.874L19.51 7.41l-4.66 4.666 1.027 6.514L10 15.6l-5.878 2.99 1.028-6.514L.489 7.41l6.513-1.036z"></path></svg>37</span><span>MIT License</span></div></div><details class="bg-[#f0f0f0] dark:bg-[#2f2f2f]"><summary class="flex justify-between font-bold text-primary px-8 lg:px-12 py-5 dark:[[open]>&]:shadow-[-5px_10px_30px_20px_#1b1b1b4d] [[open]>&]:shadow-[0_6px_21px_0_#1b1b1b33] cursor-pointer">README<svg xmlns="http://www.w3.org/2000/svg" fill="currentColor" viewBox="0 0 15 15" class="size-5 -rotate-90 [[open]>*>&]:rotate-90 transition-transform"><path fill-rule="evenodd" d="M8.842 3.135a.5.5 0 0 1 .023.707L5.435 7.5l3.43 3.658a.5.5 0 0 1-.73.684l-3.75-4a.5.5 0 0 1 0-.684l3.75-4a.5.5 0 0 1 .707-.023" clip-rule="evenodd"></path></svg></summary><div class="px-8 lg:px-12 py-5"><p class="[&:not(:first-child)]:_mt-6 _leading-7">The purpose of Eggql is to make it as simple as possible to create a GraphQL server. You don’t need to create GraphQL schema (though you can view the schema that is created if interested). It is currently in beta release but is a complete implementation of a GraphQL server apart from subscriptions.</p> <p class="[&:not(:first-child)]:_mt-6 _leading-7">Just to be clear it supports all of these GraphQL features: arguments (including defaults), objects/lists/enums/input/interface/union types, aliases, fragments, variables, directives, mutations, inline fragments, descriptions, introspection and custom scalars.</p> <p class="[&:not(:first-child)]:_mt-6 _leading-7">Tests (jMeter) show that it is as fast or faster than other Go implementations for simple queries. We’re working on enhancements for performance including caching, data-loader, complexity-limits, etc.</p> <p class="[&:not(:first-child)]:_mt-6 _leading-7">To run an <code class="nextra-code" dir="ltr">eggql</code> hello world server just build and run this Go program:</p> <div class="nextra-code _relative [&:not(:first-child)]:_mt-6"><pre class="_overflow-x-auto _subpixel-antialiased _text-[.9em] _bg-white dark:_bg-black _py-4 _ring-1 _ring-inset _ring-gray-300 dark:_ring-neutral-700 contrast-more:_ring-gray-900 contrast-more:dark:_ring-gray-50 contrast-more:_contrast-150 _rounded-md" tabindex="0"><code class="nextra-code" dir="ltr"><span><span>package main</span></span> <span><span></span></span> <span><span>import "github.com/andrewwphillips/eggql"</span></span> <span><span></span></span> <span><span>func main() {</span></span> <span><span> http.Handle("/graphql", eggql.New(struct{ Message string }{Message: "hello, world"}))</span></span> <span><span> http.ListenAndServe(":80", nil)</span></span> <span><span>}</span></span></code></pre><div class="_opacity-0 _transition [div:hover>&]:_opacity-100 focus-within:_opacity-100 _flex _gap-1 _absolute _right-4 _top-2"><button class="_transition _rounded-md _p-1.5 _border _border-gray-300 dark:_border-neutral-700 contrast-more:_border-gray-900 contrast-more:dark:_border-gray-50 md:_hidden" title="Toggle word wrap"><svg viewBox="0 0 24 24" width="24" height="24" class="_h-4 _w-auto"><path fill="currentColor" d="M4 19h6v-2H4v2zM20 5H4v2h16V5zm-3 6H4v2h13.25c1.1 0 2 .9 2 2s-.9 2-2 2H15v-2l-3 3l3 3v-2h2c2.21 0 4-1.79 4-4s-1.79-4-4-4z"></path></svg></button></div></div> <p class="[&:not(:first-child)]:_mt-6 _leading-7">This creates a root Query object with a single <code class="nextra-code" dir="ltr">message</code> field. To test it send a query with curl:</p> <div class="nextra-code _relative [&:not(:first-child)]:_mt-6"><pre class="_overflow-x-auto _subpixel-antialiased _text-[.9em] _bg-white dark:_bg-black _py-4 _ring-1 _ring-inset _ring-gray-300 dark:_ring-neutral-700 contrast-more:_ring-gray-900 contrast-more:dark:_ring-gray-50 contrast-more:_contrast-150 _rounded-md" tabindex="0"><code class="nextra-code" dir="ltr"><span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">$</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> curl</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> -XPOST</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> -d</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> '{"query": "{ message }"}'</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> localhost:80/graphql</span></span></code></pre><div class="_opacity-0 _transition [div:hover>&]:_opacity-100 focus-within:_opacity-100 _flex _gap-1 _absolute _right-4 _top-2"><button class="_transition _rounded-md _p-1.5 _border _border-gray-300 dark:_border-neutral-700 contrast-more:_border-gray-900 contrast-more:dark:_border-gray-50 md:_hidden" title="Toggle word wrap"><svg viewBox="0 0 24 24" width="24" height="24" class="_h-4 _w-auto"><path fill="currentColor" d="M4 19h6v-2H4v2zM20 5H4v2h16V5zm-3 6H4v2h13.25c1.1 0 2 .9 2 2s-.9 2-2 2H15v-2l-3 3l3 3v-2h2c2.21 0 4-1.79 4-4s-1.79-4-4-4z"></path></svg></button></div></div> <p class="[&:not(:first-child)]:_mt-6 _leading-7">and you will get this response:</p> <div class="nextra-code _relative [&:not(:first-child)]:_mt-6"><pre class="_overflow-x-auto _subpixel-antialiased _text-[.9em] _bg-white dark:_bg-black _py-4 _ring-1 _ring-inset _ring-gray-300 dark:_ring-neutral-700 contrast-more:_ring-gray-900 contrast-more:dark:_ring-gray-50 contrast-more:_contrast-150 _rounded-md" tabindex="0"><code class="nextra-code" dir="ltr"><span><span>{</span></span> <span><span> "data": {</span></span> <span><span> "message": "hello, world"</span></span> <span><span> }</span></span> <span><span>}</span></span></code></pre><div class="_opacity-0 _transition [div:hover>&]:_opacity-100 focus-within:_opacity-100 _flex _gap-1 _absolute _right-4 _top-2"><button class="_transition _rounded-md _p-1.5 _border _border-gray-300 dark:_border-neutral-700 contrast-more:_border-gray-900 contrast-more:dark:_border-gray-50 md:_hidden" title="Toggle word wrap"><svg viewBox="0 0 24 24" width="24" height="24" class="_h-4 _w-auto"><path fill="currentColor" d="M4 19h6v-2H4v2zM20 5H4v2h16V5zm-3 6H4v2h13.25c1.1 0 2 .9 2 2s-.9 2-2 2H15v-2l-3 3l3 3v-2h2c2.21 0 4-1.79 4-4s-1.79-4-4-4z"></path></svg></button></div></div></div></details></div><div class="border border-zinc-200 dark:border-[#414141] p-8 lg:p-12 bg-white dark:bg-neutral-800 rounded-none !p-0 h-max min-w-0"><div class="p-8 lg:p-12 flex flex-col gap-7 grow"><div class="flex items-center gap-6 [&_a:hover]:text-primary [&_a]:transition-colors"><span class="text-3xl font-extrabold grow break-all">graphqld</span><a href="https://github.com/burner/graphqld" target="_blank" rel="noreferrer"><svg xmlns="http://www.w3.org/2000/svg" width="30" fill="currentColor" viewBox="0 0 30 30"><path fill-rule="evenodd" d="M15.1.413a14.81 14.81 0 0 0-4.684 28.862c.742.138 1.012-.32 1.012-.712 0-.35-.013-1.283-.02-2.518-4.12.893-4.99-1.987-4.99-1.987-.675-1.71-1.643-2.165-1.643-2.165-1.345-.918.1-.9.1-.9 1.488.105 2.27 1.525 2.27 1.525 1.32 2.265 3.466 1.61 4.31 1.23.133-.955.515-1.608.94-1.978-3.29-.375-6.747-1.645-6.747-7.32 0-1.615.577-2.937 1.525-3.975-.15-.372-.66-1.88.145-3.917 0 0 1.242-.4 4.075 1.517a14.3 14.3 0 0 1 3.705-.5 14.2 14.2 0 0 1 3.707.5c2.826-1.915 4.068-1.517 4.068-1.517.807 2.037.3 3.545.15 3.92.95 1.035 1.52 2.357 1.52 3.975 0 5.687-3.462 6.94-6.76 7.305.53.457 1.005 1.36 1.005 2.742 0 1.98-.02 3.575-.02 4.063 0 .395.267.857 1.02.712A14.816 14.816 0 0 0 15.101.413" clip-rule="evenodd"></path></svg></a></div><div class="gap-2 flex roboto-mono"><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=d">D</a><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=server">Server</a></div><span class="[&_a]:text-primary grow line-clamp-4 lg:text-lg">A GraphQL implementation for the D Programming Language.</span><div class="flex items-center gap-5 max-md:text-xs [&>:not(:last-child)]:border-r [&>:not(:last-child)]:border-gray-500 [&>:not(:last-child)]:pr-5"><span>Last release <!-- -->6 months ago</span><span class="flex items-center gap-1"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="19" fill="currentColor" class="text-primary"><path d="m10 .5 2.997 5.874L19.51 7.41l-4.66 4.666 1.027 6.514L10 15.6l-5.878 2.99 1.028-6.514L.489 7.41l6.513-1.036z"></path></svg>35</span><span>GNU Lesser General Public License v3.0</span></div></div></div><div class="border border-zinc-200 dark:border-[#414141] p-8 lg:p-12 bg-white dark:bg-neutral-800 rounded-none !p-0 h-max min-w-0"><div class="p-8 lg:p-12 flex flex-col gap-7 grow"><div class="flex items-center gap-6 [&_a:hover]:text-primary [&_a]:transition-colors"><span class="text-3xl font-extrabold grow break-all">Microfiber</span><a href="https://github.com/anvilco/graphql-introspection-tools" target="_blank" rel="noreferrer"><svg xmlns="http://www.w3.org/2000/svg" width="30" fill="currentColor" viewBox="0 0 30 30"><path fill-rule="evenodd" d="M15.1.413a14.81 14.81 0 0 0-4.684 28.862c.742.138 1.012-.32 1.012-.712 0-.35-.013-1.283-.02-2.518-4.12.893-4.99-1.987-4.99-1.987-.675-1.71-1.643-2.165-1.643-2.165-1.345-.918.1-.9.1-.9 1.488.105 2.27 1.525 2.27 1.525 1.32 2.265 3.466 1.61 4.31 1.23.133-.955.515-1.608.94-1.978-3.29-.375-6.747-1.645-6.747-7.32 0-1.615.577-2.937 1.525-3.975-.15-.372-.66-1.88.145-3.917 0 0 1.242-.4 4.075 1.517a14.3 14.3 0 0 1 3.705-.5 14.2 14.2 0 0 1 3.707.5c2.826-1.915 4.068-1.517 4.068-1.517.807 2.037.3 3.545.15 3.92.95 1.035 1.52 2.357 1.52 3.975 0 5.687-3.462 6.94-6.76 7.305.53.457 1.005 1.36 1.005 2.742 0 1.98-.02 3.575-.02 4.063 0 .395.267.857 1.02.712A14.816 14.816 0 0 0 15.101.413" clip-rule="evenodd"></path></svg></a><a href="https://npmjs.com/package/microfiber" target="_blank" rel="noreferrer"><svg xmlns="http://www.w3.org/2000/svg" width="30" height="30" fill="currentColor"><path fill-rule="evenodd" d="M0 0v30h30V0zm24.375 5.625H5.625v18.75H15v-15h5.625v15h3.75z" clip-rule="evenodd"></path></svg></a></div><div class="gap-2 flex roboto-mono"><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=javascript">JavaScript</a><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=tools">Tools</a></div><span class="[&_a]:text-primary grow line-clamp-4 lg:text-lg">A library to query and manipulate GraphQL Introspection Query results.</span><div class="flex items-center gap-5 max-md:text-xs [&>:not(:last-child)]:border-r [&>:not(:last-child)]:border-gray-500 [&>:not(:last-child)]:pr-5"><span class="flex items-center gap-1"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="19" fill="currentColor" class="text-primary"><path d="m10 .5 2.997 5.874L19.51 7.41l-4.66 4.666 1.027 6.514L10 15.6l-5.878 2.99 1.028-6.514L.489 7.41l6.513-1.036z"></path></svg>32</span><span>MIT License</span></div></div><details class="bg-[#f0f0f0] dark:bg-[#2f2f2f]"><summary class="flex justify-between font-bold text-primary px-8 lg:px-12 py-5 dark:[[open]>&]:shadow-[-5px_10px_30px_20px_#1b1b1b4d] [[open]>&]:shadow-[0_6px_21px_0_#1b1b1b33] cursor-pointer">README<svg xmlns="http://www.w3.org/2000/svg" fill="currentColor" viewBox="0 0 15 15" class="size-5 -rotate-90 [[open]>*>&]:rotate-90 transition-transform"><path fill-rule="evenodd" d="M8.842 3.135a.5.5 0 0 1 .023.707L5.435 7.5l3.43 3.658a.5.5 0 0 1-.73.684l-3.75-4a.5.5 0 0 1 0-.684l3.75-4a.5.5 0 0 1 .707-.023" clip-rule="evenodd"></path></svg></summary><div class="px-8 lg:px-12 py-5"><p class="[&:not(:first-child)]:_mt-6 _leading-7">Microfiber is a JavaScript library that allows:</p> <ul class="[:is(ol,ul)_&]:_my-3 [&:not(:first-child)]:_mt-6 _list-disc ltr:_ml-6 rtl:_mr-6"> <li class="_my-2">Digging through your Introspection Query Results for a specific Query, Mutation, Type, Field, Argument or Subscription.</li> <li class="_my-2">Removing a specific Query, Mutation, Type, Field/InputField, Argument or Subscription from your Introspection Query Results.</li> <li class="_my-2">Removing Queries, Mutations, Fields/InputFields or Arguments that refer to Type that does not exist in - or has been removed from - your Introspection Query Results.</li> </ul> <div class="nextra-code _relative [&:not(:first-child)]:_mt-6"><pre class="_overflow-x-auto _subpixel-antialiased _text-[.9em] _bg-white dark:_bg-black _py-4 _ring-1 _ring-inset _ring-gray-300 dark:_ring-neutral-700 contrast-more:_ring-gray-900 contrast-more:dark:_ring-gray-50 contrast-more:_contrast-150 _rounded-md" tabindex="0"><code class="nextra-code" dir="ltr"><span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">npm</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> install</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> microfiber</span></span> <span><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D"># OR</span></span> <span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">yarn</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> add</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> microfiber</span></span></code></pre><div class="_opacity-0 _transition [div:hover>&]:_opacity-100 focus-within:_opacity-100 _flex _gap-1 _absolute _right-4 _top-2"><button class="_transition _rounded-md _p-1.5 _border _border-gray-300 dark:_border-neutral-700 contrast-more:_border-gray-900 contrast-more:dark:_border-gray-50 md:_hidden" title="Toggle word wrap"><svg viewBox="0 0 24 24" width="24" height="24" class="_h-4 _w-auto"><path fill="currentColor" d="M4 19h6v-2H4v2zM20 5H4v2h16V5zm-3 6H4v2h13.25c1.1 0 2 .9 2 2s-.9 2-2 2H15v-2l-3 3l3 3v-2h2c2.21 0 4-1.79 4-4s-1.79-4-4-4z"></path></svg></button></div></div> <p class="[&:not(:first-child)]:_mt-6 _leading-7">Then in JS:</p> <div class="nextra-code _relative [&:not(:first-child)]:_mt-6"><pre class="_overflow-x-auto _subpixel-antialiased _text-[.9em] _bg-white dark:_bg-black _py-4 _ring-1 _ring-inset _ring-gray-300 dark:_ring-neutral-700 contrast-more:_ring-gray-900 contrast-more:dark:_ring-gray-50 contrast-more:_contrast-150 _rounded-md" tabindex="0"><code class="nextra-code" dir="ltr"><span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">import</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> { Microfiber } </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">from</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> "microfiber"</span></span> <span> </span> <span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">const</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> introspectionQueryResults</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> =</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> {</span></span> <span><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D"> // ...</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">}</span></span> <span> </span> <span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">const</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> microfiber</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> =</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> new</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> Microfiber</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(introspectionQueryResults)</span></span> <span> </span> <span><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D">// ...do some things to your schema with `microfiber`</span></span> <span> </span> <span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">const</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> cleanedIntrospectonQueryResults</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> =</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> microfiber.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">getResponse</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">()</span></span></code></pre><div class="_opacity-0 _transition [div:hover>&]:_opacity-100 focus-within:_opacity-100 _flex _gap-1 _absolute _right-4 _top-2"><button class="_transition _rounded-md _p-1.5 _border _border-gray-300 dark:_border-neutral-700 contrast-more:_border-gray-900 contrast-more:dark:_border-gray-50 md:_hidden" title="Toggle word wrap"><svg viewBox="0 0 24 24" width="24" height="24" class="_h-4 _w-auto"><path fill="currentColor" d="M4 19h6v-2H4v2zM20 5H4v2h16V5zm-3 6H4v2h13.25c1.1 0 2 .9 2 2s-.9 2-2 2H15v-2l-3 3l3 3v-2h2c2.21 0 4-1.79 4-4s-1.79-4-4-4z"></path></svg></button></div></div></div></details></div><div class="border border-zinc-200 dark:border-[#414141] p-8 lg:p-12 bg-white dark:bg-neutral-800 rounded-none !p-0 h-max min-w-0"><div class="p-8 lg:p-12 flex flex-col gap-7 grow"><div class="flex items-center gap-6 [&_a:hover]:text-primary [&_a]:transition-colors"><span class="text-3xl font-extrabold grow break-all">GraphQLBox client</span><a href="https://github.com/badbatch/graphql-box" target="_blank" rel="noreferrer"><svg xmlns="http://www.w3.org/2000/svg" width="30" fill="currentColor" viewBox="0 0 30 30"><path fill-rule="evenodd" d="M15.1.413a14.81 14.81 0 0 0-4.684 28.862c.742.138 1.012-.32 1.012-.712 0-.35-.013-1.283-.02-2.518-4.12.893-4.99-1.987-4.99-1.987-.675-1.71-1.643-2.165-1.643-2.165-1.345-.918.1-.9.1-.9 1.488.105 2.27 1.525 2.27 1.525 1.32 2.265 3.466 1.61 4.31 1.23.133-.955.515-1.608.94-1.978-3.29-.375-6.747-1.645-6.747-7.32 0-1.615.577-2.937 1.525-3.975-.15-.372-.66-1.88.145-3.917 0 0 1.242-.4 4.075 1.517a14.3 14.3 0 0 1 3.705-.5 14.2 14.2 0 0 1 3.707.5c2.826-1.915 4.068-1.517 4.068-1.517.807 2.037.3 3.545.15 3.92.95 1.035 1.52 2.357 1.52 3.975 0 5.687-3.462 6.94-6.76 7.305.53.457 1.005 1.36 1.005 2.742 0 1.98-.02 3.575-.02 4.063 0 .395.267.857 1.02.712A14.816 14.816 0 0 0 15.101.413" clip-rule="evenodd"></path></svg></a><a href="https://npmjs.com/package/@graphql-box/client" target="_blank" rel="noreferrer"><svg xmlns="http://www.w3.org/2000/svg" width="30" height="30" fill="currentColor"><path fill-rule="evenodd" d="M0 0v30h30V0zm24.375 5.625H5.625v18.75H15v-15h5.625v15h3.75z" clip-rule="evenodd"></path></svg></a></div><div class="gap-2 flex roboto-mono"><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=javascript">JavaScript</a><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=client">Client</a></div><span class="[&_a]:text-primary grow line-clamp-4 lg:text-lg">An extensible GraphQL client with modules for react, caching, request parsing, web workers, websockets and more...</span><div class="flex items-center gap-5 max-md:text-xs [&>:not(:last-child)]:border-r [&>:not(:last-child)]:border-gray-500 [&>:not(:last-child)]:pr-5"><span class="flex items-center gap-1"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="19" fill="currentColor" class="text-primary"><path d="m10 .5 2.997 5.874L19.51 7.41l-4.66 4.666 1.027 6.514L10 15.6l-5.878 2.99 1.028-6.514L.489 7.41l6.513-1.036z"></path></svg>25</span><span>MIT License</span></div></div><details class="bg-[#f0f0f0] dark:bg-[#2f2f2f]"><summary class="flex justify-between font-bold text-primary px-8 lg:px-12 py-5 dark:[[open]>&]:shadow-[-5px_10px_30px_20px_#1b1b1b4d] [[open]>&]:shadow-[0_6px_21px_0_#1b1b1b33] cursor-pointer">README<svg xmlns="http://www.w3.org/2000/svg" fill="currentColor" viewBox="0 0 15 15" class="size-5 -rotate-90 [[open]>*>&]:rotate-90 transition-transform"><path fill-rule="evenodd" d="M8.842 3.135a.5.5 0 0 1 .023.707L5.435 7.5l3.43 3.658a.5.5 0 0 1-.73.684l-3.75-4a.5.5 0 0 1 0-.684l3.75-4a.5.5 0 0 1 .707-.023" clip-rule="evenodd"></path></svg></summary><div class="px-8 lg:px-12 py-5"><p class="[&:not(:first-child)]:_mt-6 _leading-7">The example below installs and initializes the GraphQLBox client with a persisted cache and debugging enabled.</p> <div class="nextra-code _relative [&:not(:first-child)]:_mt-6"><pre class="_overflow-x-auto _subpixel-antialiased _text-[.9em] _bg-white dark:_bg-black _py-4 _ring-1 _ring-inset _ring-gray-300 dark:_ring-neutral-700 contrast-more:_ring-gray-900 contrast-more:dark:_ring-gray-50 contrast-more:_contrast-150 _rounded-md" tabindex="0"><code class="nextra-code" dir="ltr"><span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">npm</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> install</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> @graphql-box/core</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> @graphql-box/client</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> @graphql-box/request-parser</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> @graphql-box/cache-manager</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> @graphql-box/debug-manager</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> @graphql-box/fetch-manager</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> @graphql-box/helpers</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> @cachemap/core</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> @cachemap/reaper</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> @cachemap/indexed-db</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> @cachemap/constants</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> @cachemap/types</span></span></code></pre><div class="_opacity-0 _transition [div:hover>&]:_opacity-100 focus-within:_opacity-100 _flex _gap-1 _absolute _right-4 _top-2"><button class="_transition _rounded-md _p-1.5 _border _border-gray-300 dark:_border-neutral-700 contrast-more:_border-gray-900 contrast-more:dark:_border-gray-50 md:_hidden" title="Toggle word wrap"><svg viewBox="0 0 24 24" width="24" height="24" class="_h-4 _w-auto"><path fill="currentColor" d="M4 19h6v-2H4v2zM20 5H4v2h16V5zm-3 6H4v2h13.25c1.1 0 2 .9 2 2s-.9 2-2 2H15v-2l-3 3l3 3v-2h2c2.21 0 4-1.79 4-4s-1.79-4-4-4z"></path></svg></button></div></div> <div class="nextra-code _relative [&:not(:first-child)]:_mt-6"><pre class="_overflow-x-auto _subpixel-antialiased _text-[.9em] _bg-white dark:_bg-black _py-4 _ring-1 _ring-inset _ring-gray-300 dark:_ring-neutral-700 contrast-more:_ring-gray-900 contrast-more:dark:_ring-gray-50 contrast-more:_contrast-150 _rounded-md" tabindex="0"><code class="nextra-code" dir="ltr"><span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">import</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> Cachemap </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">from</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> "@cachemap/core"</span></span> <span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">import</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> indexedDB </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">from</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> "@cachemap/indexed-db"</span></span> <span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">import</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> reaper </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">from</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> "@cachemap/reaper"</span></span> <span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">import</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> CacheManager </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">from</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> "@graphql-box/cache-manager"</span></span> <span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">import</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> Client </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">from</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> "@graphql-box/client"</span></span> <span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">import</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> DebugManager </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">from</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> "@graphql-box/debug-manager"</span></span> <span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">import</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> FetchManager </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">from</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> "@graphql-box/fetch-manager"</span></span> <span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">import</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> RequestParser </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">from</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> "@graphql-box/request-parser"</span></span> <span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">import</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> introspection </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">from</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> "./introspection-query"</span></span> <span> </span> <span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">const</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> requestManager</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> =</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> new</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> FetchManager</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">({</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> apiUrl: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">"/api/graphql"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">,</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> batchRequests: </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">true</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">,</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> logUrl: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">"/log/graphql"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">,</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">})</span></span> <span> </span> <span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">const</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> client</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> =</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> new</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> Client</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">({</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> cacheManager: </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">new</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> CacheManager</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">({</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> cache: </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">new</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> Cachemap</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">({</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> name: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">"client-cache"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">,</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> reaper: </span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">reaper</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">({ interval: </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">300000</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> }),</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> store: </span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">indexedDB</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(</span><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D">/* configure */</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">),</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> }),</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> cascadeCacheControl: </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">true</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">,</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> typeCacheDirectives: {</span></span> <span><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D"> // Add any type specific cache control directives in the format:</span></span> <span><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D"> // TypeName: "public, max-age=3",</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> },</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> }),</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> debugManager: </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">new</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> DebugManager</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">({</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> environment: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">"client"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">,</span></span> <span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> log</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">: (</span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70">message</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">, </span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70">data</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">, </span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70">logLevel</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">) </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=></span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> {</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> requestManager.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">log</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(message, data, logLevel)</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> },</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> name: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">"CLIENT"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">,</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> performance: self.performance,</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> }),</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> requestManager,</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> requestParser: </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">new</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> RequestParser</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">({ introspection }),</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">})</span></span> <span> </span> <span><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D">// Meanwhile... somewhere else in your code</span></span> <span> </span> <span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">const</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> { </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">data</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">, </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">errors</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> } </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> await</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> client.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">request</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(queryOrMutation)</span></span></code></pre><div class="_opacity-0 _transition [div:hover>&]:_opacity-100 focus-within:_opacity-100 _flex _gap-1 _absolute _right-4 _top-2"><button class="_transition _rounded-md _p-1.5 _border _border-gray-300 dark:_border-neutral-700 contrast-more:_border-gray-900 contrast-more:dark:_border-gray-50 md:_hidden" title="Toggle word wrap"><svg viewBox="0 0 24 24" width="24" height="24" class="_h-4 _w-auto"><path fill="currentColor" d="M4 19h6v-2H4v2zM20 5H4v2h16V5zm-3 6H4v2h13.25c1.1 0 2 .9 2 2s-.9 2-2 2H15v-2l-3 3l3 3v-2h2c2.21 0 4-1.79 4-4s-1.79-4-4-4z"></path></svg></button></div></div></div></details></div><div class="border border-zinc-200 dark:border-[#414141] p-8 lg:p-12 bg-white dark:bg-neutral-800 rounded-none !p-0 h-max min-w-0"><div class="p-8 lg:p-12 flex flex-col gap-7 grow"><div class="flex items-center gap-6 [&_a:hover]:text-primary [&_a]:transition-colors"><span class="text-3xl font-extrabold grow break-all">GraphQLBox server</span><a href="https://github.com/badbatch/graphql-box" target="_blank" rel="noreferrer"><svg xmlns="http://www.w3.org/2000/svg" width="30" fill="currentColor" viewBox="0 0 30 30"><path fill-rule="evenodd" d="M15.1.413a14.81 14.81 0 0 0-4.684 28.862c.742.138 1.012-.32 1.012-.712 0-.35-.013-1.283-.02-2.518-4.12.893-4.99-1.987-4.99-1.987-.675-1.71-1.643-2.165-1.643-2.165-1.345-.918.1-.9.1-.9 1.488.105 2.27 1.525 2.27 1.525 1.32 2.265 3.466 1.61 4.31 1.23.133-.955.515-1.608.94-1.978-3.29-.375-6.747-1.645-6.747-7.32 0-1.615.577-2.937 1.525-3.975-.15-.372-.66-1.88.145-3.917 0 0 1.242-.4 4.075 1.517a14.3 14.3 0 0 1 3.705-.5 14.2 14.2 0 0 1 3.707.5c2.826-1.915 4.068-1.517 4.068-1.517.807 2.037.3 3.545.15 3.92.95 1.035 1.52 2.357 1.52 3.975 0 5.687-3.462 6.94-6.76 7.305.53.457 1.005 1.36 1.005 2.742 0 1.98-.02 3.575-.02 4.063 0 .395.267.857 1.02.712A14.816 14.816 0 0 0 15.101.413" clip-rule="evenodd"></path></svg></a><a href="https://npmjs.com/package/@graphql-box/server" target="_blank" rel="noreferrer"><svg xmlns="http://www.w3.org/2000/svg" width="30" height="30" fill="currentColor"><path fill-rule="evenodd" d="M0 0v30h30V0zm24.375 5.625H5.625v18.75H15v-15h5.625v15h3.75z" clip-rule="evenodd"></path></svg></a></div><div class="gap-2 flex roboto-mono"><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=javascript">JavaScript</a><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=server">Server</a></div><span class="[&_a]:text-primary grow line-clamp-4 lg:text-lg">An extensible GraphQL server with modules for caching, request parsing, debugging, subscriptions and more...</span><div class="flex items-center gap-5 max-md:text-xs [&>:not(:last-child)]:border-r [&>:not(:last-child)]:border-gray-500 [&>:not(:last-child)]:pr-5"><span class="flex items-center gap-1"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="19" fill="currentColor" class="text-primary"><path d="m10 .5 2.997 5.874L19.51 7.41l-4.66 4.666 1.027 6.514L10 15.6l-5.878 2.99 1.028-6.514L.489 7.41l6.513-1.036z"></path></svg>25</span><span>MIT License</span></div></div><details class="bg-[#f0f0f0] dark:bg-[#2f2f2f]"><summary class="flex justify-between font-bold text-primary px-8 lg:px-12 py-5 dark:[[open]>&]:shadow-[-5px_10px_30px_20px_#1b1b1b4d] [[open]>&]:shadow-[0_6px_21px_0_#1b1b1b33] cursor-pointer">README<svg xmlns="http://www.w3.org/2000/svg" fill="currentColor" viewBox="0 0 15 15" class="size-5 -rotate-90 [[open]>*>&]:rotate-90 transition-transform"><path fill-rule="evenodd" d="M8.842 3.135a.5.5 0 0 1 .023.707L5.435 7.5l3.43 3.658a.5.5 0 0 1-.73.684l-3.75-4a.5.5 0 0 1 0-.684l3.75-4a.5.5 0 0 1 .707-.023" clip-rule="evenodd"></path></svg></summary><div class="px-8 lg:px-12 py-5"><p class="[&:not(:first-child)]:_mt-6 _leading-7">The example below installs and initializes the GraphQLBox server with a persisted cache and debugging enabled.</p> <div class="nextra-code _relative [&:not(:first-child)]:_mt-6"><pre class="_overflow-x-auto _subpixel-antialiased _text-[.9em] _bg-white dark:_bg-black _py-4 _ring-1 _ring-inset _ring-gray-300 dark:_ring-neutral-700 contrast-more:_ring-gray-900 contrast-more:dark:_ring-gray-50 contrast-more:_contrast-150 _rounded-md" tabindex="0"><code class="nextra-code" dir="ltr"><span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">npm</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> install</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> @graphql-box/core</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> @graphql-box/server</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> @graphql-box/client</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> @graphql-box/request-parser</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> @graphql-box/cache-manager</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> @graphql-box/debug-manager</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> @graphql-box/execute</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> @graphql-box/helpers</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> @cachemap/core</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> @cachemap/reaper</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> @cachemap/redis</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> @cachemap/constants</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> @cachemap/types</span></span></code></pre><div class="_opacity-0 _transition [div:hover>&]:_opacity-100 focus-within:_opacity-100 _flex _gap-1 _absolute _right-4 _top-2"><button class="_transition _rounded-md _p-1.5 _border _border-gray-300 dark:_border-neutral-700 contrast-more:_border-gray-900 contrast-more:dark:_border-gray-50 md:_hidden" title="Toggle word wrap"><svg viewBox="0 0 24 24" width="24" height="24" class="_h-4 _w-auto"><path fill="currentColor" d="M4 19h6v-2H4v2zM20 5H4v2h16V5zm-3 6H4v2h13.25c1.1 0 2 .9 2 2s-.9 2-2 2H15v-2l-3 3l3 3v-2h2c2.21 0 4-1.79 4-4s-1.79-4-4-4z"></path></svg></button></div></div> <div class="nextra-code _relative [&:not(:first-child)]:_mt-6"><pre class="_overflow-x-auto _subpixel-antialiased _text-[.9em] _bg-white dark:_bg-black _py-4 _ring-1 _ring-inset _ring-gray-300 dark:_ring-neutral-700 contrast-more:_ring-gray-900 contrast-more:dark:_ring-gray-50 contrast-more:_contrast-150 _rounded-md" tabindex="0"><code class="nextra-code" dir="ltr"><span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">import</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> Cachemap </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">from</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> "@cachemap/core"</span></span> <span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">import</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> redis </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">from</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> "@cachemap/redis"</span></span> <span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">import</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> reaper </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">from</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> "@cachemap/reaper"</span></span> <span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">import</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> CacheManager </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">from</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> "@graphql-box/cache-manager"</span></span> <span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">import</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> Client </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">from</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> "@graphql-box/client"</span></span> <span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">import</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> DebugManager </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">from</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> "@graphql-box/debug-manager"</span></span> <span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">import</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> Execute </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">from</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> "@graphql-box/execute"</span></span> <span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">import</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> RequestParser </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">from</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> "@graphql-box/request-parser"</span></span> <span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">import</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> Server </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">from</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> "@graphql-box/server"</span></span> <span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">import</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> { makeExecutableSchema } </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">from</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> "@graphql-tools/schema"</span></span> <span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">import</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> { performance } </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">from</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> "perf_hooks"</span></span> <span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">import</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> { schemaResolvers, schemaTypeDefs } </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">from</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> "./schema"</span></span> <span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">import</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> logger </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">from</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> "./logger"</span></span> <span> </span> <span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">const</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> schema</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> =</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> makeExecutableSchema</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">({</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> typeDefs: schemaTypeDefs,</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> resolvers: schemaResolvers,</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">})</span></span> <span> </span> <span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">const</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> server</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> =</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> new</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> Server</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">({</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> client: </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">new</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> Client</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">({</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> cacheManager: </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">new</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> CacheManager</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">({</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> cache: </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">new</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> Cachemap</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">({</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> name: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">"server-cache"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">,</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> reaper: </span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">reaper</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">({ interval: </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">300000</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> }),</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> store: </span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">redis</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(</span><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D">/* configure */</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">),</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> }),</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> cascadeCacheControl: </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">true</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">,</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> typeCacheDirectives: {</span></span> <span><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D"> // Add any type specific cache control directives in the format:</span></span> <span><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D"> // TypeName: "public, max-age=3",</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> },</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> }),</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> debugManager: </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">new</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> DebugManager</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">({</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> environment: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">"server"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">,</span></span> <span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> log</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">: (</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">...</span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70">args</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">) </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=></span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> {</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> logger.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">log</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">...</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">args)</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> },</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> name: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">"SERVER"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">,</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> performance,</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> }),</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> requestManager: </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">new</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> Execute</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">({ schema }),</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> requestParser: </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">new</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> RequestParser</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">({ schema }),</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> }),</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">})</span></span> <span> </span> <span><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D">// Meanwhile... somewhere else in your code</span></span> <span> </span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">app.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">use</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">"api/graphql"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">, graphqlServer.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">request</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">())</span></span></code></pre><div class="_opacity-0 _transition [div:hover>&]:_opacity-100 focus-within:_opacity-100 _flex _gap-1 _absolute _right-4 _top-2"><button class="_transition _rounded-md _p-1.5 _border _border-gray-300 dark:_border-neutral-700 contrast-more:_border-gray-900 contrast-more:dark:_border-gray-50 md:_hidden" title="Toggle word wrap"><svg viewBox="0 0 24 24" width="24" height="24" class="_h-4 _w-auto"><path fill="currentColor" d="M4 19h6v-2H4v2zM20 5H4v2h16V5zm-3 6H4v2h13.25c1.1 0 2 .9 2 2s-.9 2-2 2H15v-2l-3 3l3 3v-2h2c2.21 0 4-1.79 4-4s-1.79-4-4-4z"></path></svg></button></div></div></div></details></div><div class="border border-zinc-200 dark:border-[#414141] p-8 lg:p-12 bg-white dark:bg-neutral-800 rounded-none !p-0 h-max min-w-0"><div class="p-8 lg:p-12 flex flex-col gap-7 grow"><div class="flex items-center gap-6 [&_a:hover]:text-primary [&_a]:transition-colors"><span class="text-3xl font-extrabold grow break-all">Hive Gateway</span><a href="https://the-guild.dev/graphql/hive" target="_blank" rel="noreferrer"><svg xmlns="http://www.w3.org/2000/svg" fill="currentColor" viewBox="0 0 24 24"><path d="M23.332 15.948C23.764 14.711 24 13.383 24 12a12 12 0 0 0-.706-4.056C21.627 3.317 17.194 0 12 0S2.373 3.317.706 7.944A11.949 11.949 0 0 0 0 12a12 12 0 0 0 .706 4.056C2.373 20.683 6.806 24 12 24s9.627-3.317 11.294-7.944a1 1 0 0 0 .038-.108M12 22.28c-.457 0-1.194-.827-1.81-2.675a19 19 0 0 1-.708-3.031h5.036a19 19 0 0 1-.708 3.031c-.616 1.848-1.353 2.675-1.81 2.675m-2.727-7.427A32 32 0 0 1 9.147 12c0-.98.043-1.936.126-2.853h5.454c.083.917.126 1.874.126 2.853s-.043 1.936-.126 2.854zM1.72 12c0-.99.141-1.947.403-2.853h5.425a33.5 33.5 0 0 0 0 5.707H2.123A10.3 10.3 0 0 1 1.72 12M12 1.72c.457 0 1.194.827 1.81 2.675.297.892.535 1.917.708 3.032H9.482c.173-1.115.411-2.14.708-3.032.616-1.848 1.353-2.675 1.81-2.675m4.452 7.427h5.425c.262.906.403 1.864.403 2.853s-.141 1.947-.403 2.854h-5.425a33.5 33.5 0 0 0 0-5.707m4.752-1.72h-4.95c-.305-2.11-.83-4.003-1.566-5.35 2.855.775 5.22 2.75 6.516 5.35M9.313 2.077c-.736 1.347-1.261 3.24-1.567 5.35h-4.95a10.33 10.33 0 0 1 6.517-5.35M2.795 16.574h4.95c.306 2.11.83 4.002 1.567 5.349a10.33 10.33 0 0 1-6.517-5.35m11.893 5.349c.736-1.347 1.261-3.24 1.567-5.35h4.95a10.33 10.33 0 0 1-6.517 5.35"></path></svg></a><a href="https://github.com/graphql-hive/gateway" target="_blank" rel="noreferrer"><svg xmlns="http://www.w3.org/2000/svg" width="30" fill="currentColor" viewBox="0 0 30 30"><path fill-rule="evenodd" d="M15.1.413a14.81 14.81 0 0 0-4.684 28.862c.742.138 1.012-.32 1.012-.712 0-.35-.013-1.283-.02-2.518-4.12.893-4.99-1.987-4.99-1.987-.675-1.71-1.643-2.165-1.643-2.165-1.345-.918.1-.9.1-.9 1.488.105 2.27 1.525 2.27 1.525 1.32 2.265 3.466 1.61 4.31 1.23.133-.955.515-1.608.94-1.978-3.29-.375-6.747-1.645-6.747-7.32 0-1.615.577-2.937 1.525-3.975-.15-.372-.66-1.88.145-3.917 0 0 1.242-.4 4.075 1.517a14.3 14.3 0 0 1 3.705-.5 14.2 14.2 0 0 1 3.707.5c2.826-1.915 4.068-1.517 4.068-1.517.807 2.037.3 3.545.15 3.92.95 1.035 1.52 2.357 1.52 3.975 0 5.687-3.462 6.94-6.76 7.305.53.457 1.005 1.36 1.005 2.742 0 1.98-.02 3.575-.02 4.063 0 .395.267.857 1.02.712A14.816 14.816 0 0 0 15.101.413" clip-rule="evenodd"></path></svg></a></div><div class="gap-2 flex roboto-mono"><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=tools">Tools</a><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=gateways-supergraphs">Gateways And Supergraphs</a></div><span class="[&_a]:text-primary grow line-clamp-4 lg:text-lg">Hive Gateway can act as a GraphQL federation gateway or a proxy for any GraphQL service.</span><div class="flex items-center gap-5 max-md:text-xs [&>:not(:last-child)]:border-r [&>:not(:last-child)]:border-gray-500 [&>:not(:last-child)]:pr-5"><span>Last release <!-- -->4 days ago</span><span class="flex items-center gap-1"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="19" fill="currentColor" class="text-primary"><path d="m10 .5 2.997 5.874L19.51 7.41l-4.66 4.666 1.027 6.514L10 15.6l-5.878 2.99 1.028-6.514L.489 7.41l6.513-1.036z"></path></svg>13</span><span>MIT License</span></div></div></div><div class="border border-zinc-200 dark:border-[#414141] p-8 lg:p-12 bg-white dark:bg-neutral-800 rounded-none !p-0 h-max min-w-0"><div class="p-8 lg:p-12 flex flex-col gap-7 grow"><div class="flex items-center gap-6 [&_a:hover]:text-primary [&_a]:transition-colors"><span class="text-3xl font-extrabold grow break-all">Graphene Django CRUDDALS</span><a href="https://graphene-django-cruddals.readthedocs.io/en/latest/" target="_blank" rel="noreferrer"><svg xmlns="http://www.w3.org/2000/svg" fill="currentColor" viewBox="0 0 24 24"><path d="M23.332 15.948C23.764 14.711 24 13.383 24 12a12 12 0 0 0-.706-4.056C21.627 3.317 17.194 0 12 0S2.373 3.317.706 7.944A11.949 11.949 0 0 0 0 12a12 12 0 0 0 .706 4.056C2.373 20.683 6.806 24 12 24s9.627-3.317 11.294-7.944a1 1 0 0 0 .038-.108M12 22.28c-.457 0-1.194-.827-1.81-2.675a19 19 0 0 1-.708-3.031h5.036a19 19 0 0 1-.708 3.031c-.616 1.848-1.353 2.675-1.81 2.675m-2.727-7.427A32 32 0 0 1 9.147 12c0-.98.043-1.936.126-2.853h5.454c.083.917.126 1.874.126 2.853s-.043 1.936-.126 2.854zM1.72 12c0-.99.141-1.947.403-2.853h5.425a33.5 33.5 0 0 0 0 5.707H2.123A10.3 10.3 0 0 1 1.72 12M12 1.72c.457 0 1.194.827 1.81 2.675.297.892.535 1.917.708 3.032H9.482c.173-1.115.411-2.14.708-3.032.616-1.848 1.353-2.675 1.81-2.675m4.452 7.427h5.425c.262.906.403 1.864.403 2.853s-.141 1.947-.403 2.854h-5.425a33.5 33.5 0 0 0 0-5.707m4.752-1.72h-4.95c-.305-2.11-.83-4.003-1.566-5.35 2.855.775 5.22 2.75 6.516 5.35M9.313 2.077c-.736 1.347-1.261 3.24-1.567 5.35h-4.95a10.33 10.33 0 0 1 6.517-5.35M2.795 16.574h4.95c.306 2.11.83 4.002 1.567 5.349a10.33 10.33 0 0 1-6.517-5.35m11.893 5.349c.736-1.347 1.261-3.24 1.567-5.35h4.95a10.33 10.33 0 0 1-6.517 5.35"></path></svg></a><a href="https://github.com/juanjcardona13/graphene_django_cruddals" target="_blank" rel="noreferrer"><svg xmlns="http://www.w3.org/2000/svg" width="30" fill="currentColor" viewBox="0 0 30 30"><path fill-rule="evenodd" d="M15.1.413a14.81 14.81 0 0 0-4.684 28.862c.742.138 1.012-.32 1.012-.712 0-.35-.013-1.283-.02-2.518-4.12.893-4.99-1.987-4.99-1.987-.675-1.71-1.643-2.165-1.643-2.165-1.345-.918.1-.9.1-.9 1.488.105 2.27 1.525 2.27 1.525 1.32 2.265 3.466 1.61 4.31 1.23.133-.955.515-1.608.94-1.978-3.29-.375-6.747-1.645-6.747-7.32 0-1.615.577-2.937 1.525-3.975-.15-.372-.66-1.88.145-3.917 0 0 1.242-.4 4.075 1.517a14.3 14.3 0 0 1 3.705-.5 14.2 14.2 0 0 1 3.707.5c2.826-1.915 4.068-1.517 4.068-1.517.807 2.037.3 3.545.15 3.92.95 1.035 1.52 2.357 1.52 3.975 0 5.687-3.462 6.94-6.76 7.305.53.457 1.005 1.36 1.005 2.742 0 1.98-.02 3.575-.02 4.063 0 .395.267.857 1.02.712A14.816 14.816 0 0 0 15.101.413" clip-rule="evenodd"></path></svg></a></div><div class="gap-2 flex roboto-mono"><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=python">Python</a><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=server">Server</a></div><span class="[&_a]:text-primary grow line-clamp-4 lg:text-lg">Turn your Django-models into a complete GraphQL API with all CRUD operations</span><div class="flex items-center gap-5 max-md:text-xs [&>:not(:last-child)]:border-r [&>:not(:last-child)]:border-gray-500 [&>:not(:last-child)]:pr-5"><span class="flex items-center gap-1"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="19" fill="currentColor" class="text-primary"><path d="m10 .5 2.997 5.874L19.51 7.41l-4.66 4.666 1.027 6.514L10 15.6l-5.878 2.99 1.028-6.514L.489 7.41l6.513-1.036z"></path></svg>12</span><span>Apache License 2.0</span></div></div><details class="bg-[#f0f0f0] dark:bg-[#2f2f2f]"><summary class="flex justify-between font-bold text-primary px-8 lg:px-12 py-5 dark:[[open]>&]:shadow-[-5px_10px_30px_20px_#1b1b1b4d] [[open]>&]:shadow-[0_6px_21px_0_#1b1b1b33] cursor-pointer">README<svg xmlns="http://www.w3.org/2000/svg" fill="currentColor" viewBox="0 0 15 15" class="size-5 -rotate-90 [[open]>*>&]:rotate-90 transition-transform"><path fill-rule="evenodd" d="M8.842 3.135a.5.5 0 0 1 .023.707L5.435 7.5l3.43 3.658a.5.5 0 0 1-.73.684l-3.75-4a.5.5 0 0 1 0-.684l3.75-4a.5.5 0 0 1 .707-.023" clip-rule="evenodd"></path></svg></summary><div class="px-8 lg:px-12 py-5"><p class="[&:not(:first-child)]:_mt-6 _leading-7">You can install the package with pip</p> <div class="nextra-code _relative [&:not(:first-child)]:_mt-6"><pre class="_overflow-x-auto _subpixel-antialiased _text-[.9em] _bg-white dark:_bg-black _py-4 _ring-1 _ring-inset _ring-gray-300 dark:_ring-neutral-700 contrast-more:_ring-gray-900 contrast-more:dark:_ring-gray-50 contrast-more:_contrast-150 _rounded-md" tabindex="0"><code class="nextra-code" dir="ltr"><span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">pip</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> install</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> graphene-django-cruddals</span></span></code></pre><div class="_opacity-0 _transition [div:hover>&]:_opacity-100 focus-within:_opacity-100 _flex _gap-1 _absolute _right-4 _top-2"><button class="_transition _rounded-md _p-1.5 _border _border-gray-300 dark:_border-neutral-700 contrast-more:_border-gray-900 contrast-more:dark:_border-gray-50 md:_hidden" title="Toggle word wrap"><svg viewBox="0 0 24 24" width="24" height="24" class="_h-4 _w-auto"><path fill="currentColor" d="M4 19h6v-2H4v2zM20 5H4v2h16V5zm-3 6H4v2h13.25c1.1 0 2 .9 2 2s-.9 2-2 2H15v-2l-3 3l3 3v-2h2c2.21 0 4-1.79 4-4s-1.79-4-4-4z"></path></svg></button></div></div> <p class="[&:not(:first-child)]:_mt-6 _leading-7">To use it, simply create a new class that inherits “<code class="nextra-code" dir="ltr">DjangoModelCruddals</code>” Suppose we have the following models.</p> <div class="nextra-code _relative [&:not(:first-child)]:_mt-6"><pre class="_overflow-x-auto _subpixel-antialiased _text-[.9em] _bg-white dark:_bg-black _py-4 _ring-1 _ring-inset _ring-gray-300 dark:_ring-neutral-700 contrast-more:_ring-gray-900 contrast-more:dark:_ring-gray-50 contrast-more:_contrast-150 _rounded-md" tabindex="0"><code class="nextra-code" dir="ltr"><span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">from</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> django.db </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">import</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> models</span></span> <span> </span> <span> </span> <span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">class</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> Question</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">models</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">Model</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">):</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> question_text </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> models.CharField(</span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70">max_length</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">200</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">)</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> pub_date </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> models.DateTimeField(</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">'date published'</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">)</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> is_active </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> models.BooleanField(</span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70">default</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">True</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">)</span></span></code></pre><div class="_opacity-0 _transition [div:hover>&]:_opacity-100 focus-within:_opacity-100 _flex _gap-1 _absolute _right-4 _top-2"><button class="_transition _rounded-md _p-1.5 _border _border-gray-300 dark:_border-neutral-700 contrast-more:_border-gray-900 contrast-more:dark:_border-gray-50 md:_hidden" title="Toggle word wrap"><svg viewBox="0 0 24 24" width="24" height="24" class="_h-4 _w-auto"><path fill="currentColor" d="M4 19h6v-2H4v2zM20 5H4v2h16V5zm-3 6H4v2h13.25c1.1 0 2 .9 2 2s-.9 2-2 2H15v-2l-3 3l3 3v-2h2c2.21 0 4-1.79 4-4s-1.79-4-4-4z"></path></svg></button></div></div> <p class="[&:not(:first-child)]:_mt-6 _leading-7">Then we can create a complete CRUD+DALS for the models <code class="nextra-code" dir="ltr">Question</code> with the following code</p> <div class="nextra-code _relative [&:not(:first-child)]:_mt-6"><pre class="_overflow-x-auto _subpixel-antialiased _text-[.9em] _bg-white dark:_bg-black _py-4 _ring-1 _ring-inset _ring-gray-300 dark:_ring-neutral-700 contrast-more:_ring-gray-900 contrast-more:dark:_ring-gray-50 contrast-more:_contrast-150 _rounded-md" tabindex="0"><code class="nextra-code" dir="ltr"><span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">from</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> graphene_django_cruddals </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">import</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> DjangoModelCruddals</span></span> <span> </span> <span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">class</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> CruddalsQuestion</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">DjangoModelCruddals</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">):</span></span> <span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> class</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> Meta</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">:</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> model </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> Question</span></span></code></pre><div class="_opacity-0 _transition [div:hover>&]:_opacity-100 focus-within:_opacity-100 _flex _gap-1 _absolute _right-4 _top-2"><button class="_transition _rounded-md _p-1.5 _border _border-gray-300 dark:_border-neutral-700 contrast-more:_border-gray-900 contrast-more:dark:_border-gray-50 md:_hidden" title="Toggle word wrap"><svg viewBox="0 0 24 24" width="24" height="24" class="_h-4 _w-auto"><path fill="currentColor" d="M4 19h6v-2H4v2zM20 5H4v2h16V5zm-3 6H4v2h13.25c1.1 0 2 .9 2 2s-.9 2-2 2H15v-2l-3 3l3 3v-2h2c2.21 0 4-1.79 4-4s-1.79-4-4-4z"></path></svg></button></div></div> <p class="[&:not(:first-child)]:_mt-6 _leading-7">Now you can use the <code class="nextra-code" dir="ltr">schema</code> that was generated for you,</p> <div class="nextra-code _relative [&:not(:first-child)]:_mt-6"><pre class="_overflow-x-auto _subpixel-antialiased _text-[.9em] _bg-white dark:_bg-black _py-4 _ring-1 _ring-inset _ring-gray-300 dark:_ring-neutral-700 contrast-more:_ring-gray-900 contrast-more:dark:_ring-gray-50 contrast-more:_contrast-150 _rounded-md" tabindex="0"><code class="nextra-code" dir="ltr"><span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">schema </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> CruddalsQuestion.Schema</span></span></code></pre><div class="_opacity-0 _transition [div:hover>&]:_opacity-100 focus-within:_opacity-100 _flex _gap-1 _absolute _right-4 _top-2"><button class="_transition _rounded-md _p-1.5 _border _border-gray-300 dark:_border-neutral-700 contrast-more:_border-gray-900 contrast-more:dark:_border-gray-50 md:_hidden" title="Toggle word wrap"><svg viewBox="0 0 24 24" width="24" height="24" class="_h-4 _w-auto"><path fill="currentColor" d="M4 19h6v-2H4v2zM20 5H4v2h16V5zm-3 6H4v2h13.25c1.1 0 2 .9 2 2s-.9 2-2 2H15v-2l-3 3l3 3v-2h2c2.21 0 4-1.79 4-4s-1.79-4-4-4z"></path></svg></button></div></div> <p class="[&:not(:first-child)]:_mt-6 _leading-7">or use in your existing schema root <code class="nextra-code" dir="ltr">Query</code> and <code class="nextra-code" dir="ltr">Mutation</code></p> <div class="nextra-code _relative [&:not(:first-child)]:_mt-6"><pre class="_overflow-x-auto _subpixel-antialiased _text-[.9em] _bg-white dark:_bg-black _py-4 _ring-1 _ring-inset _ring-gray-300 dark:_ring-neutral-700 contrast-more:_ring-gray-900 contrast-more:dark:_ring-gray-50 contrast-more:_contrast-150 _rounded-md" tabindex="0"><code class="nextra-code" dir="ltr"><span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">class</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> Query</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(</span></span> <span><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D"> # ... your others queries</span></span> <span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> CruddalsQuestion</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">Query</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">,</span></span> <span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> graphene</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">ObjectType</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">,</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">):</span></span> <span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> pass</span></span> <span> </span> <span> </span> <span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">class</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> Mutation</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(</span></span> <span><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D"> # ... your others mutations</span></span> <span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> CruddalsQuestion</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">Mutation</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">,</span></span> <span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> graphene</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">ObjectType</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">,</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">):</span></span> <span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> pass</span></span> <span> </span> <span> </span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">schema </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> graphene.Schema( </span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70">query</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">Query, </span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70">mutation</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">Mutation, )</span></span></code></pre><div class="_opacity-0 _transition [div:hover>&]:_opacity-100 focus-within:_opacity-100 _flex _gap-1 _absolute _right-4 _top-2"><button class="_transition _rounded-md _p-1.5 _border _border-gray-300 dark:_border-neutral-700 contrast-more:_border-gray-900 contrast-more:dark:_border-gray-50 md:_hidden" title="Toggle word wrap"><svg viewBox="0 0 24 24" width="24" height="24" class="_h-4 _w-auto"><path fill="currentColor" d="M4 19h6v-2H4v2zM20 5H4v2h16V5zm-3 6H4v2h13.25c1.1 0 2 .9 2 2s-.9 2-2 2H15v-2l-3 3l3 3v-2h2c2.21 0 4-1.79 4-4s-1.79-4-4-4z"></path></svg></button></div></div> <p class="[&:not(:first-child)]:_mt-6 _leading-7">That’s it! You can test in graphiql or any other client that you use to test your GraphQL APIs..</p> <p class="[&:not(:first-child)]:_mt-6 _leading-7">Find more information in the <a href="https://graphene-django-cruddals.readthedocs.io/en/latest/" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">official documentation</a>.</p></div></details></div><div class="border border-zinc-200 dark:border-[#414141] p-8 lg:p-12 bg-white dark:bg-neutral-800 rounded-none !p-0 h-max min-w-0"><div class="p-8 lg:p-12 flex flex-col gap-7 grow"><div class="flex items-center gap-6 [&_a:hover]:text-primary [&_a]:transition-colors"><span class="text-3xl font-extrabold grow break-all">graphql-w-persistent</span><a href="https://hackage.haskell.org/package/graphql-w-persistent" target="_blank" rel="noreferrer"><svg xmlns="http://www.w3.org/2000/svg" fill="currentColor" viewBox="0 0 24 24"><path d="M23.332 15.948C23.764 14.711 24 13.383 24 12a12 12 0 0 0-.706-4.056C21.627 3.317 17.194 0 12 0S2.373 3.317.706 7.944A11.949 11.949 0 0 0 0 12a12 12 0 0 0 .706 4.056C2.373 20.683 6.806 24 12 24s9.627-3.317 11.294-7.944a1 1 0 0 0 .038-.108M12 22.28c-.457 0-1.194-.827-1.81-2.675a19 19 0 0 1-.708-3.031h5.036a19 19 0 0 1-.708 3.031c-.616 1.848-1.353 2.675-1.81 2.675m-2.727-7.427A32 32 0 0 1 9.147 12c0-.98.043-1.936.126-2.853h5.454c.083.917.126 1.874.126 2.853s-.043 1.936-.126 2.854zM1.72 12c0-.99.141-1.947.403-2.853h5.425a33.5 33.5 0 0 0 0 5.707H2.123A10.3 10.3 0 0 1 1.72 12M12 1.72c.457 0 1.194.827 1.81 2.675.297.892.535 1.917.708 3.032H9.482c.173-1.115.411-2.14.708-3.032.616-1.848 1.353-2.675 1.81-2.675m4.452 7.427h5.425c.262.906.403 1.864.403 2.853s-.141 1.947-.403 2.854h-5.425a33.5 33.5 0 0 0 0-5.707m4.752-1.72h-4.95c-.305-2.11-.83-4.003-1.566-5.35 2.855.775 5.22 2.75 6.516 5.35M9.313 2.077c-.736 1.347-1.261 3.24-1.567 5.35h-4.95a10.33 10.33 0 0 1 6.517-5.35M2.795 16.574h4.95c.306 2.11.83 4.002 1.567 5.349a10.33 10.33 0 0 1-6.517-5.35m11.893 5.349c.736-1.347 1.261-3.24 1.567-5.35h4.95a10.33 10.33 0 0 1-6.517 5.35"></path></svg></a><a href="https://github.com/jasonsychau/graphql-w-persistent" target="_blank" rel="noreferrer"><svg xmlns="http://www.w3.org/2000/svg" width="30" fill="currentColor" viewBox="0 0 30 30"><path fill-rule="evenodd" d="M15.1.413a14.81 14.81 0 0 0-4.684 28.862c.742.138 1.012-.32 1.012-.712 0-.35-.013-1.283-.02-2.518-4.12.893-4.99-1.987-4.99-1.987-.675-1.71-1.643-2.165-1.643-2.165-1.345-.918.1-.9.1-.9 1.488.105 2.27 1.525 2.27 1.525 1.32 2.265 3.466 1.61 4.31 1.23.133-.955.515-1.608.94-1.978-3.29-.375-6.747-1.645-6.747-7.32 0-1.615.577-2.937 1.525-3.975-.15-.372-.66-1.88.145-3.917 0 0 1.242-.4 4.075 1.517a14.3 14.3 0 0 1 3.705-.5 14.2 14.2 0 0 1 3.707.5c2.826-1.915 4.068-1.517 4.068-1.517.807 2.037.3 3.545.15 3.92.95 1.035 1.52 2.357 1.52 3.975 0 5.687-3.462 6.94-6.76 7.305.53.457 1.005 1.36 1.005 2.742 0 1.98-.02 3.575-.02 4.063 0 .395.267.857 1.02.712A14.816 14.816 0 0 0 15.101.413" clip-rule="evenodd"></path></svg></a></div><div class="gap-2 flex roboto-mono"><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=haskell">Haskell</a><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=server">Server</a></div><span class="[&_a]:text-primary grow line-clamp-4 lg:text-lg">Complete set of library tools to abstract relational database schemas with SQL, query with GraphQL, and return GraphQL results</span><div class="flex items-center gap-5 max-md:text-xs [&>:not(:last-child)]:border-r [&>:not(:last-child)]:border-gray-500 [&>:not(:last-child)]:pr-5"><span class="flex items-center gap-1"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="19" fill="currentColor" class="text-primary"><path d="m10 .5 2.997 5.874L19.51 7.41l-4.66 4.666 1.027 6.514L10 15.6l-5.878 2.99 1.028-6.514L.489 7.41l6.513-1.036z"></path></svg>10</span><span>Unknown</span></div></div><details class="bg-[#f0f0f0] dark:bg-[#2f2f2f]"><summary class="flex justify-between font-bold text-primary px-8 lg:px-12 py-5 dark:[[open]>&]:shadow-[-5px_10px_30px_20px_#1b1b1b4d] [[open]>&]:shadow-[0_6px_21px_0_#1b1b1b33] cursor-pointer">README<svg xmlns="http://www.w3.org/2000/svg" fill="currentColor" viewBox="0 0 15 15" class="size-5 -rotate-90 [[open]>*>&]:rotate-90 transition-transform"><path fill-rule="evenodd" d="M8.842 3.135a.5.5 0 0 1 .023.707L5.435 7.5l3.43 3.658a.5.5 0 0 1-.73.684l-3.75-4a.5.5 0 0 1 0-.684l3.75-4a.5.5 0 0 1 .707-.023" clip-rule="evenodd"></path></svg></summary><div class="px-8 lg:px-12 py-5"><p class="[&:not(:first-child)]:_mt-6 _leading-7">One time setup: build schema, deploy as microservice or within server, query SQL database with GraphQL!</p></div></details></div><div class="border border-zinc-200 dark:border-[#414141] p-8 lg:p-12 bg-white dark:bg-neutral-800 rounded-none !p-0 h-max min-w-0"><div class="p-8 lg:p-12 flex flex-col gap-7 grow"><div class="flex items-center gap-6 [&_a:hover]:text-primary [&_a]:transition-colors"><span class="text-3xl font-extrabold grow break-all">Django Graphbox</span><a href="https://90horasporsemana.com/graphbox/" target="_blank" rel="noreferrer"><svg xmlns="http://www.w3.org/2000/svg" fill="currentColor" viewBox="0 0 24 24"><path d="M23.332 15.948C23.764 14.711 24 13.383 24 12a12 12 0 0 0-.706-4.056C21.627 3.317 17.194 0 12 0S2.373 3.317.706 7.944A11.949 11.949 0 0 0 0 12a12 12 0 0 0 .706 4.056C2.373 20.683 6.806 24 12 24s9.627-3.317 11.294-7.944a1 1 0 0 0 .038-.108M12 22.28c-.457 0-1.194-.827-1.81-2.675a19 19 0 0 1-.708-3.031h5.036a19 19 0 0 1-.708 3.031c-.616 1.848-1.353 2.675-1.81 2.675m-2.727-7.427A32 32 0 0 1 9.147 12c0-.98.043-1.936.126-2.853h5.454c.083.917.126 1.874.126 2.853s-.043 1.936-.126 2.854zM1.72 12c0-.99.141-1.947.403-2.853h5.425a33.5 33.5 0 0 0 0 5.707H2.123A10.3 10.3 0 0 1 1.72 12M12 1.72c.457 0 1.194.827 1.81 2.675.297.892.535 1.917.708 3.032H9.482c.173-1.115.411-2.14.708-3.032.616-1.848 1.353-2.675 1.81-2.675m4.452 7.427h5.425c.262.906.403 1.864.403 2.853s-.141 1.947-.403 2.854h-5.425a33.5 33.5 0 0 0 0-5.707m4.752-1.72h-4.95c-.305-2.11-.83-4.003-1.566-5.35 2.855.775 5.22 2.75 6.516 5.35M9.313 2.077c-.736 1.347-1.261 3.24-1.567 5.35h-4.95a10.33 10.33 0 0 1 6.517-5.35M2.795 16.574h4.95c.306 2.11.83 4.002 1.567 5.349a10.33 10.33 0 0 1-6.517-5.35m11.893 5.349c.736-1.347 1.261-3.24 1.567-5.35h4.95a10.33 10.33 0 0 1-6.517 5.35"></path></svg></a><a href="https://github.com/yefeza/django-graphbox" target="_blank" rel="noreferrer"><svg xmlns="http://www.w3.org/2000/svg" width="30" fill="currentColor" viewBox="0 0 30 30"><path fill-rule="evenodd" d="M15.1.413a14.81 14.81 0 0 0-4.684 28.862c.742.138 1.012-.32 1.012-.712 0-.35-.013-1.283-.02-2.518-4.12.893-4.99-1.987-4.99-1.987-.675-1.71-1.643-2.165-1.643-2.165-1.345-.918.1-.9.1-.9 1.488.105 2.27 1.525 2.27 1.525 1.32 2.265 3.466 1.61 4.31 1.23.133-.955.515-1.608.94-1.978-3.29-.375-6.747-1.645-6.747-7.32 0-1.615.577-2.937 1.525-3.975-.15-.372-.66-1.88.145-3.917 0 0 1.242-.4 4.075 1.517a14.3 14.3 0 0 1 3.705-.5 14.2 14.2 0 0 1 3.707.5c2.826-1.915 4.068-1.517 4.068-1.517.807 2.037.3 3.545.15 3.92.95 1.035 1.52 2.357 1.52 3.975 0 5.687-3.462 6.94-6.76 7.305.53.457 1.005 1.36 1.005 2.742 0 1.98-.02 3.575-.02 4.063 0 .395.267.857 1.02.712A14.816 14.816 0 0 0 15.101.413" clip-rule="evenodd"></path></svg></a></div><div class="gap-2 flex roboto-mono"><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=python">Python</a><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=server">Server</a></div><span class="[&_a]:text-primary grow line-clamp-4 lg:text-lg">Package for easy building a GraphQL API with basic CRUD operations for Django models.</span><div class="flex items-center gap-5 max-md:text-xs [&>:not(:last-child)]:border-r [&>:not(:last-child)]:border-gray-500 [&>:not(:last-child)]:pr-5"><span>Last release <!-- -->8 months ago</span><span class="flex items-center gap-1"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="19" fill="currentColor" class="text-primary"><path d="m10 .5 2.997 5.874L19.51 7.41l-4.66 4.666 1.027 6.514L10 15.6l-5.878 2.99 1.028-6.514L.489 7.41l6.513-1.036z"></path></svg>10</span><span>MIT License</span></div></div><details class="bg-[#f0f0f0] dark:bg-[#2f2f2f]"><summary class="flex justify-between font-bold text-primary px-8 lg:px-12 py-5 dark:[[open]>&]:shadow-[-5px_10px_30px_20px_#1b1b1b4d] [[open]>&]:shadow-[0_6px_21px_0_#1b1b1b33] cursor-pointer">README<svg xmlns="http://www.w3.org/2000/svg" fill="currentColor" viewBox="0 0 15 15" class="size-5 -rotate-90 [[open]>*>&]:rotate-90 transition-transform"><path fill-rule="evenodd" d="M8.842 3.135a.5.5 0 0 1 .023.707L5.435 7.5l3.43 3.658a.5.5 0 0 1-.73.684l-3.75-4a.5.5 0 0 1 0-.684l3.75-4a.5.5 0 0 1 .707-.023" clip-rule="evenodd"></path></svg></summary><div class="px-8 lg:px-12 py-5"><p class="[&:not(:first-child)]:_mt-6 _leading-7">A Quickstart for Django Graphbox:</p> <ol class="[:is(ol,ul)_&]:_my-3 [&:not(:first-child)]:_mt-6 _list-decimal ltr:_ml-6 rtl:_mr-6"> <li class="_my-2">Install the package:</li> </ol> <div class="nextra-code _relative [&:not(:first-child)]:_mt-6"><pre class="_overflow-x-auto _subpixel-antialiased _text-[.9em] _bg-white dark:_bg-black _py-4 _ring-1 _ring-inset _ring-gray-300 dark:_ring-neutral-700 contrast-more:_ring-gray-900 contrast-more:dark:_ring-gray-50 contrast-more:_contrast-150 _rounded-md" tabindex="0"><code class="nextra-code" dir="ltr"><span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">pip</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> install</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> django-graphbox</span></span></code></pre><div class="_opacity-0 _transition [div:hover>&]:_opacity-100 focus-within:_opacity-100 _flex _gap-1 _absolute _right-4 _top-2"><button class="_transition _rounded-md _p-1.5 _border _border-gray-300 dark:_border-neutral-700 contrast-more:_border-gray-900 contrast-more:dark:_border-gray-50 md:_hidden" title="Toggle word wrap"><svg viewBox="0 0 24 24" width="24" height="24" class="_h-4 _w-auto"><path fill="currentColor" d="M4 19h6v-2H4v2zM20 5H4v2h16V5zm-3 6H4v2h13.25c1.1 0 2 .9 2 2s-.9 2-2 2H15v-2l-3 3l3 3v-2h2c2.21 0 4-1.79 4-4s-1.79-4-4-4z"></path></svg></button></div></div> <ol class="[:is(ol,ul)_&]:_my-3 [&:not(:first-child)]:_mt-6 _list-decimal ltr:_ml-6 rtl:_mr-6" start="2"> <li class="_my-2">Create a new Django project:</li> </ol> <div class="nextra-code _relative [&:not(:first-child)]:_mt-6"><pre class="_overflow-x-auto _subpixel-antialiased _text-[.9em] _bg-white dark:_bg-black _py-4 _ring-1 _ring-inset _ring-gray-300 dark:_ring-neutral-700 contrast-more:_ring-gray-900 contrast-more:dark:_ring-gray-50 contrast-more:_contrast-150 _rounded-md" tabindex="0"><code class="nextra-code" dir="ltr"><span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">django-admin</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> startproject</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> myproject</span></span></code></pre><div class="_opacity-0 _transition [div:hover>&]:_opacity-100 focus-within:_opacity-100 _flex _gap-1 _absolute _right-4 _top-2"><button class="_transition _rounded-md _p-1.5 _border _border-gray-300 dark:_border-neutral-700 contrast-more:_border-gray-900 contrast-more:dark:_border-gray-50 md:_hidden" title="Toggle word wrap"><svg viewBox="0 0 24 24" width="24" height="24" class="_h-4 _w-auto"><path fill="currentColor" d="M4 19h6v-2H4v2zM20 5H4v2h16V5zm-3 6H4v2h13.25c1.1 0 2 .9 2 2s-.9 2-2 2H15v-2l-3 3l3 3v-2h2c2.21 0 4-1.79 4-4s-1.79-4-4-4z"></path></svg></button></div></div> <ol class="[:is(ol,ul)_&]:_my-3 [&:not(:first-child)]:_mt-6 _list-decimal ltr:_ml-6 rtl:_mr-6" start="3"> <li class="_my-2">Create a new Django app:</li> </ol> <div class="nextra-code _relative [&:not(:first-child)]:_mt-6"><pre class="_overflow-x-auto _subpixel-antialiased _text-[.9em] _bg-white dark:_bg-black _py-4 _ring-1 _ring-inset _ring-gray-300 dark:_ring-neutral-700 contrast-more:_ring-gray-900 contrast-more:dark:_ring-gray-50 contrast-more:_contrast-150 _rounded-md" tabindex="0"><code class="nextra-code" dir="ltr"><span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">cd</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> myproject</span></span> <span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">python</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> manage.py</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> startapp</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> myapp</span></span></code></pre><div class="_opacity-0 _transition [div:hover>&]:_opacity-100 focus-within:_opacity-100 _flex _gap-1 _absolute _right-4 _top-2"><button class="_transition _rounded-md _p-1.5 _border _border-gray-300 dark:_border-neutral-700 contrast-more:_border-gray-900 contrast-more:dark:_border-gray-50 md:_hidden" title="Toggle word wrap"><svg viewBox="0 0 24 24" width="24" height="24" class="_h-4 _w-auto"><path fill="currentColor" d="M4 19h6v-2H4v2zM20 5H4v2h16V5zm-3 6H4v2h13.25c1.1 0 2 .9 2 2s-.9 2-2 2H15v-2l-3 3l3 3v-2h2c2.21 0 4-1.79 4-4s-1.79-4-4-4z"></path></svg></button></div></div> <ol class="[:is(ol,ul)_&]:_my-3 [&:not(:first-child)]:_mt-6 _list-decimal ltr:_ml-6 rtl:_mr-6" start="4"> <li class="_my-2">Define your Django models in <code class="nextra-code" dir="ltr">myapp/models.py</code>:</li> </ol> <div class="nextra-code _relative [&:not(:first-child)]:_mt-6"><pre class="_overflow-x-auto _subpixel-antialiased _text-[.9em] _bg-white dark:_bg-black _py-4 _ring-1 _ring-inset _ring-gray-300 dark:_ring-neutral-700 contrast-more:_ring-gray-900 contrast-more:dark:_ring-gray-50 contrast-more:_contrast-150 _rounded-md" tabindex="0"><code class="nextra-code" dir="ltr"><span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">from</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> django.db </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">import</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> models</span></span> <span> </span> <span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">class</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> MyModel</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">models</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">Model</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">):</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> name </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> models.CharField(</span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70">max_length</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">100</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">)</span></span></code></pre><div class="_opacity-0 _transition [div:hover>&]:_opacity-100 focus-within:_opacity-100 _flex _gap-1 _absolute _right-4 _top-2"><button class="_transition _rounded-md _p-1.5 _border _border-gray-300 dark:_border-neutral-700 contrast-more:_border-gray-900 contrast-more:dark:_border-gray-50 md:_hidden" title="Toggle word wrap"><svg viewBox="0 0 24 24" width="24" height="24" class="_h-4 _w-auto"><path fill="currentColor" d="M4 19h6v-2H4v2zM20 5H4v2h16V5zm-3 6H4v2h13.25c1.1 0 2 .9 2 2s-.9 2-2 2H15v-2l-3 3l3 3v-2h2c2.21 0 4-1.79 4-4s-1.79-4-4-4z"></path></svg></button></div></div> <ol class="[:is(ol,ul)_&]:_my-3 [&:not(:first-child)]:_mt-6 _list-decimal ltr:_ml-6 rtl:_mr-6" start="5"> <li class="_my-2">Create and run migrations:</li> </ol> <div class="nextra-code _relative [&:not(:first-child)]:_mt-6"><pre class="_overflow-x-auto _subpixel-antialiased _text-[.9em] _bg-white dark:_bg-black _py-4 _ring-1 _ring-inset _ring-gray-300 dark:_ring-neutral-700 contrast-more:_ring-gray-900 contrast-more:dark:_ring-gray-50 contrast-more:_contrast-150 _rounded-md" tabindex="0"><code class="nextra-code" dir="ltr"><span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">python</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> manage.py</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> makemigrations</span></span> <span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">python</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> manage.py</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> migrate</span></span></code></pre><div class="_opacity-0 _transition [div:hover>&]:_opacity-100 focus-within:_opacity-100 _flex _gap-1 _absolute _right-4 _top-2"><button class="_transition _rounded-md _p-1.5 _border _border-gray-300 dark:_border-neutral-700 contrast-more:_border-gray-900 contrast-more:dark:_border-gray-50 md:_hidden" title="Toggle word wrap"><svg viewBox="0 0 24 24" width="24" height="24" class="_h-4 _w-auto"><path fill="currentColor" d="M4 19h6v-2H4v2zM20 5H4v2h16V5zm-3 6H4v2h13.25c1.1 0 2 .9 2 2s-.9 2-2 2H15v-2l-3 3l3 3v-2h2c2.21 0 4-1.79 4-4s-1.79-4-4-4z"></path></svg></button></div></div> <ol class="[:is(ol,ul)_&]:_my-3 [&:not(:first-child)]:_mt-6 _list-decimal ltr:_ml-6 rtl:_mr-6" start="6"> <li class="_my-2">Configure and Build your GraphQL Schema in <code class="nextra-code" dir="ltr">myapp/schema.py</code>:</li> </ol> <div class="nextra-code _relative [&:not(:first-child)]:_mt-6"><pre class="_overflow-x-auto _subpixel-antialiased _text-[.9em] _bg-white dark:_bg-black _py-4 _ring-1 _ring-inset _ring-gray-300 dark:_ring-neutral-700 contrast-more:_ring-gray-900 contrast-more:dark:_ring-gray-50 contrast-more:_contrast-150 _rounded-md" tabindex="0"><code class="nextra-code" dir="ltr"><span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">from</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> django_graphbox.builder </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">import</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> SchemaBuilder</span></span> <span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">from</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> myapp.models </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">import</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> MyModel</span></span> <span> </span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">builder </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> SchemaBuilder()</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">builder.add_model(MyModel)</span></span> <span> </span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">query_class </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> builder.build_schema_query()</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">mutation_class </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> builder.build_schema_mutation()</span></span></code></pre><div class="_opacity-0 _transition [div:hover>&]:_opacity-100 focus-within:_opacity-100 _flex _gap-1 _absolute _right-4 _top-2"><button class="_transition _rounded-md _p-1.5 _border _border-gray-300 dark:_border-neutral-700 contrast-more:_border-gray-900 contrast-more:dark:_border-gray-50 md:_hidden" title="Toggle word wrap"><svg viewBox="0 0 24 24" width="24" height="24" class="_h-4 _w-auto"><path fill="currentColor" d="M4 19h6v-2H4v2zM20 5H4v2h16V5zm-3 6H4v2h13.25c1.1 0 2 .9 2 2s-.9 2-2 2H15v-2l-3 3l3 3v-2h2c2.21 0 4-1.79 4-4s-1.79-4-4-4z"></path></svg></button></div></div> <ol class="[:is(ol,ul)_&]:_my-3 [&:not(:first-child)]:_mt-6 _list-decimal ltr:_ml-6 rtl:_mr-6" start="7"> <li class="_my-2">Create a main Schema in <code class="nextra-code" dir="ltr">myproject/schema.py</code> (In this main schema you can add your own queries and mutations):</li> </ol> <div class="nextra-code _relative [&:not(:first-child)]:_mt-6"><pre class="_overflow-x-auto _subpixel-antialiased _text-[.9em] _bg-white dark:_bg-black _py-4 _ring-1 _ring-inset _ring-gray-300 dark:_ring-neutral-700 contrast-more:_ring-gray-900 contrast-more:dark:_ring-gray-50 contrast-more:_contrast-150 _rounded-md" tabindex="0"><code class="nextra-code" dir="ltr"><span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">import</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> graphene</span></span> <span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">from</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> myapp.schema </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">import</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> query_class, mutation_class</span></span> <span> </span> <span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">class</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> Query</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">query_class</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">, </span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">graphene</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">ObjectType</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">):</span></span> <span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> pass</span></span> <span> </span> <span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">class</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> Mutation</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">mutation_class</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">, </span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">graphene</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">ObjectType</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">):</span></span> <span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> pass</span></span> <span> </span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">schema </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> graphene.Schema(</span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70">query</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">Query, </span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70">mutation</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">Mutation)</span></span></code></pre><div class="_opacity-0 _transition [div:hover>&]:_opacity-100 focus-within:_opacity-100 _flex _gap-1 _absolute _right-4 _top-2"><button class="_transition _rounded-md _p-1.5 _border _border-gray-300 dark:_border-neutral-700 contrast-more:_border-gray-900 contrast-more:dark:_border-gray-50 md:_hidden" title="Toggle word wrap"><svg viewBox="0 0 24 24" width="24" height="24" class="_h-4 _w-auto"><path fill="currentColor" d="M4 19h6v-2H4v2zM20 5H4v2h16V5zm-3 6H4v2h13.25c1.1 0 2 .9 2 2s-.9 2-2 2H15v-2l-3 3l3 3v-2h2c2.21 0 4-1.79 4-4s-1.79-4-4-4z"></path></svg></button></div></div> <ol class="[:is(ol,ul)_&]:_my-3 [&:not(:first-child)]:_mt-6 _list-decimal ltr:_ml-6 rtl:_mr-6" start="8"> <li class="_my-2">Add the GraphQL view to your <code class="nextra-code" dir="ltr">myproject/urls.py</code>:</li> </ol> <div class="nextra-code _relative [&:not(:first-child)]:_mt-6"><pre class="_overflow-x-auto _subpixel-antialiased _text-[.9em] _bg-white dark:_bg-black _py-4 _ring-1 _ring-inset _ring-gray-300 dark:_ring-neutral-700 contrast-more:_ring-gray-900 contrast-more:dark:_ring-gray-50 contrast-more:_contrast-150 _rounded-md" tabindex="0"><code class="nextra-code" dir="ltr"><span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">from</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> django.urls </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">import</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> path</span></span> <span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">from</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> graphene_file_upload.django </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">import</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> FileUploadGraphQLView</span></span> <span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">from</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> django.views.decorators.csrf </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">import</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> csrf_exempt</span></span> <span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">from</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> myproject.schema </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">import</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> schema</span></span> <span> </span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">urlpatterns </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> [</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> path(</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">'graphql/'</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">, csrf_exempt(FileUploadGraphQLView.as_view(</span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70">graphiql</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">True</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">, </span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70">schema</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">schema))),</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">]</span></span></code></pre><div class="_opacity-0 _transition [div:hover>&]:_opacity-100 focus-within:_opacity-100 _flex _gap-1 _absolute _right-4 _top-2"><button class="_transition _rounded-md _p-1.5 _border _border-gray-300 dark:_border-neutral-700 contrast-more:_border-gray-900 contrast-more:dark:_border-gray-50 md:_hidden" title="Toggle word wrap"><svg viewBox="0 0 24 24" width="24" height="24" class="_h-4 _w-auto"><path fill="currentColor" d="M4 19h6v-2H4v2zM20 5H4v2h16V5zm-3 6H4v2h13.25c1.1 0 2 .9 2 2s-.9 2-2 2H15v-2l-3 3l3 3v-2h2c2.21 0 4-1.79 4-4s-1.79-4-4-4z"></path></svg></button></div></div> <ol class="[:is(ol,ul)_&]:_my-3 [&:not(:first-child)]:_mt-6 _list-decimal ltr:_ml-6 rtl:_mr-6" start="9"> <li class="_my-2">Run the server:</li> </ol> <div class="nextra-code _relative [&:not(:first-child)]:_mt-6"><pre class="_overflow-x-auto _subpixel-antialiased _text-[.9em] _bg-white dark:_bg-black _py-4 _ring-1 _ring-inset _ring-gray-300 dark:_ring-neutral-700 contrast-more:_ring-gray-900 contrast-more:dark:_ring-gray-50 contrast-more:_contrast-150 _rounded-md" tabindex="0"><code class="nextra-code" dir="ltr"><span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">python</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> manage.py</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> runserver</span></span></code></pre><div class="_opacity-0 _transition [div:hover>&]:_opacity-100 focus-within:_opacity-100 _flex _gap-1 _absolute _right-4 _top-2"><button class="_transition _rounded-md _p-1.5 _border _border-gray-300 dark:_border-neutral-700 contrast-more:_border-gray-900 contrast-more:dark:_border-gray-50 md:_hidden" title="Toggle word wrap"><svg viewBox="0 0 24 24" width="24" height="24" class="_h-4 _w-auto"><path fill="currentColor" d="M4 19h6v-2H4v2zM20 5H4v2h16V5zm-3 6H4v2h13.25c1.1 0 2 .9 2 2s-.9 2-2 2H15v-2l-3 3l3 3v-2h2c2.21 0 4-1.79 4-4s-1.79-4-4-4z"></path></svg></button></div></div> <ol class="[:is(ol,ul)_&]:_my-3 [&:not(:first-child)]:_mt-6 _list-decimal ltr:_ml-6 rtl:_mr-6" start="10"> <li class="_my-2">Open the GraphiQL interface at <code class="nextra-code" dir="ltr">http://localhost:8000/graphql</code> and start querying your API!</li> </ol> <p class="[&:not(:first-child)]:_mt-6 _leading-7">You can find advanced examples with authentication, filters, validations and more on GitHub or pypi.</p></div></details></div><div class="border border-zinc-200 dark:border-[#414141] p-8 lg:p-12 bg-white dark:bg-neutral-800 rounded-none !p-0 h-max min-w-0"><div class="p-8 lg:p-12 flex flex-col gap-7 grow"><div class="flex items-center gap-6 [&_a:hover]:text-primary [&_a]:transition-colors"><span class="text-3xl font-extrabold grow break-all">serge</span><a href="https://github.com/kepawni/serge" target="_blank" rel="noreferrer"><svg xmlns="http://www.w3.org/2000/svg" width="30" fill="currentColor" viewBox="0 0 30 30"><path fill-rule="evenodd" d="M15.1.413a14.81 14.81 0 0 0-4.684 28.862c.742.138 1.012-.32 1.012-.712 0-.35-.013-1.283-.02-2.518-4.12.893-4.99-1.987-4.99-1.987-.675-1.71-1.643-2.165-1.643-2.165-1.345-.918.1-.9.1-.9 1.488.105 2.27 1.525 2.27 1.525 1.32 2.265 3.466 1.61 4.31 1.23.133-.955.515-1.608.94-1.978-3.29-.375-6.747-1.645-6.747-7.32 0-1.615.577-2.937 1.525-3.975-.15-.372-.66-1.88.145-3.917 0 0 1.242-.4 4.075 1.517a14.3 14.3 0 0 1 3.705-.5 14.2 14.2 0 0 1 3.707.5c2.826-1.915 4.068-1.517 4.068-1.517.807 2.037.3 3.545.15 3.92.95 1.035 1.52 2.357 1.52 3.975 0 5.687-3.462 6.94-6.76 7.305.53.457 1.005 1.36 1.005 2.742 0 1.98-.02 3.575-.02 4.063 0 .395.267.857 1.02.712A14.816 14.816 0 0 0 15.101.413" clip-rule="evenodd"></path></svg></a></div><div class="gap-2 flex roboto-mono"><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=php">PHP</a><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=server">Server</a></div><span class="[&_a]:text-primary grow line-clamp-4 lg:text-lg">Use GraphQL to define your Domain Model for CQRS/ES and let serge generate code to handle GraphQL requests.</span><div class="flex items-center gap-5 max-md:text-xs [&>:not(:last-child)]:border-r [&>:not(:last-child)]:border-gray-500 [&>:not(:last-child)]:pr-5"><span class="flex items-center gap-1"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="19" fill="currentColor" class="text-primary"><path d="m10 .5 2.997 5.874L19.51 7.41l-4.66 4.666 1.027 6.514L10 15.6l-5.878 2.99 1.028-6.514L.489 7.41l6.513-1.036z"></path></svg>6</span><span>GNU General Public License v3.0</span></div></div></div><div class="border border-zinc-200 dark:border-[#414141] p-8 lg:p-12 bg-white dark:bg-neutral-800 rounded-none !p-0 h-max min-w-0"><div class="p-8 lg:p-12 flex flex-col gap-7 grow"><div class="flex items-center gap-6 [&_a:hover]:text-primary [&_a]:transition-colors"><span class="text-3xl font-extrabold grow break-all">Brangr</span><a href="https://github.com/networkimprov/brangr" target="_blank" rel="noreferrer"><svg xmlns="http://www.w3.org/2000/svg" width="30" fill="currentColor" viewBox="0 0 30 30"><path fill-rule="evenodd" d="M15.1.413a14.81 14.81 0 0 0-4.684 28.862c.742.138 1.012-.32 1.012-.712 0-.35-.013-1.283-.02-2.518-4.12.893-4.99-1.987-4.99-1.987-.675-1.71-1.643-2.165-1.643-2.165-1.345-.918.1-.9.1-.9 1.488.105 2.27 1.525 2.27 1.525 1.32 2.265 3.466 1.61 4.31 1.23.133-.955.515-1.608.94-1.978-3.29-.375-6.747-1.645-6.747-7.32 0-1.615.577-2.937 1.525-3.975-.15-.372-.66-1.88.145-3.917 0 0 1.242-.4 4.075 1.517a14.3 14.3 0 0 1 3.705-.5 14.2 14.2 0 0 1 3.707.5c2.826-1.915 4.068-1.517 4.068-1.517.807 2.037.3 3.545.15 3.92.95 1.035 1.52 2.357 1.52 3.975 0 5.687-3.462 6.94-6.76 7.305.53.457 1.005 1.36 1.005 2.742 0 1.98-.02 3.575-.02 4.063 0 .395.267.857 1.02.712A14.816 14.816 0 0 0 15.101.413" clip-rule="evenodd"></path></svg></a></div><div class="gap-2 flex roboto-mono"><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=javascript">JavaScript</a><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=tools">Tools</a></div><span class="[&_a]:text-primary grow line-clamp-4 lg:text-lg">Browse Any Graph - A user-friendly viewer for any GraphQL service</span><div class="flex items-center gap-5 max-md:text-xs [&>:not(:last-child)]:border-r [&>:not(:last-child)]:border-gray-500 [&>:not(:last-child)]:pr-5"><span>Last release <!-- -->1 year ago</span><span class="flex items-center gap-1"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="19" fill="currentColor" class="text-primary"><path d="m10 .5 2.997 5.874L19.51 7.41l-4.66 4.666 1.027 6.514L10 15.6l-5.878 2.99 1.028-6.514L.489 7.41l6.513-1.036z"></path></svg>3</span><span>Mozilla Public License 2.0</span></div></div><details class="bg-[#f0f0f0] dark:bg-[#2f2f2f]"><summary class="flex justify-between font-bold text-primary px-8 lg:px-12 py-5 dark:[[open]>&]:shadow-[-5px_10px_30px_20px_#1b1b1b4d] [[open]>&]:shadow-[0_6px_21px_0_#1b1b1b33] cursor-pointer">README<svg xmlns="http://www.w3.org/2000/svg" fill="currentColor" viewBox="0 0 15 15" class="size-5 -rotate-90 [[open]>*>&]:rotate-90 transition-transform"><path fill-rule="evenodd" d="M8.842 3.135a.5.5 0 0 1 .023.707L5.435 7.5l3.43 3.658a.5.5 0 0 1-.73.684l-3.75-4a.5.5 0 0 1 0-.684l3.75-4a.5.5 0 0 1 .707-.023" clip-rule="evenodd"></path></svg></summary><div class="px-8 lg:px-12 py-5"><p class="[&:not(:first-child)]:_mt-6 _leading-7"><strong>Brangr - <em>Br</em>owse <em>An</em>y <em>Gr</em>aph</strong></p> <ul class="[:is(ol,ul)_&]:_my-3 [&:not(:first-child)]:_mt-6 _list-disc ltr:_ml-6 rtl:_mr-6"> <li class="_my-2"> <p class="[&:not(:first-child)]:_mt-6 _leading-7">Brangr is a simple, unique tool that any web server can host to provide a user-friendly browser/viewer for any GraphQL service (or many).</p> </li> <li class="_my-2"> <p class="[&:not(:first-child)]:_mt-6 _leading-7">Brangr formats GraphQL results attractively, via a selection of user-configurable layouts. It lets users extract the generated HTML, and its source JSON. It provides a clever schema browser. It has built-in docs.</p> </li> <li class="_my-2"> <p class="[&:not(:first-child)]:_mt-6 _leading-7">Brangr enables sites hosting it to present users with a collection of pre-fab GraphQL requests, which they can edit if desired, and let them create their own requests. And it allows sites to define custom CSS styling for all aspects of the formatted results.</p> </li> <li class="_my-2"> <p class="[&:not(:first-child)]:_mt-6 _leading-7">Try it at the <a href="https://mnmnotmail.org/bgr/brangr.html" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]"><strong>public Brangr site</strong></a>.</p> </li> </ul> <p class="[&:not(:first-child)]:_mt-6 _leading-7"><strong>Example</strong></p> <!-- --> <div class="nextra-code _relative [&:not(:first-child)]:_mt-6"><pre class="_overflow-x-auto _subpixel-antialiased _text-[.9em] _bg-white dark:_bg-black _py-4 _ring-1 _ring-inset _ring-gray-300 dark:_ring-neutral-700 contrast-more:_ring-gray-900 contrast-more:dark:_ring-gray-50 contrast-more:_contrast-150 _rounded-md" tabindex="0"><code class="nextra-code" dir="ltr"><span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">query</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> {</span></span> <span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70"> heroes</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(</span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70">_layout</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">: { </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">type</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">:</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> table</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> }) {</span><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D"> # _layout arg not sent to service</span></span> <span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70"> first</span></span> <span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70"> last</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> }</span></span> <span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">}</span></span></code></pre><div class="_opacity-0 _transition [div:hover>&]:_opacity-100 focus-within:_opacity-100 _flex _gap-1 _absolute _right-4 _top-2"><button class="_transition _rounded-md _p-1.5 _border _border-gray-300 dark:_border-neutral-700 contrast-more:_border-gray-900 contrast-more:dark:_border-gray-50 md:_hidden" title="Toggle word wrap"><svg viewBox="0 0 24 24" width="24" height="24" class="_h-4 _w-auto"><path fill="currentColor" d="M4 19h6v-2H4v2zM20 5H4v2h16V5zm-3 6H4v2h13.25c1.1 0 2 .9 2 2s-.9 2-2 2H15v-2l-3 3l3 3v-2h2c2.21 0 4-1.79 4-4s-1.79-4-4-4z"></path></svg></button></div></div> <p class="[&:not(:first-child)]:_mt-6 _leading-7">Brangr renders the above query as follows (though not in a quote block):</p> <blockquote class="[&:not(:first-child)]:_mt-6 _border-gray-300 _italic _text-gray-700 dark:_border-gray-700 dark:_text-gray-400 ltr:_border-l-2 ltr:_pl-6 rtl:_border-r-2 rtl:_pr-6">heroes... <table class="_block _overflow-x-auto nextra-scrollbar [&:not(:first-child)]:_mt-6 _p-0" style="border-spacing:0.5em 0"> <tbody><tr class="_m-0 _border-t _border-gray-300 _p-0 dark:_border-gray-600 even:_bg-gray-100 even:dark:_bg-gray-600/20"><th class="_m-0 _border _border-gray-300 _px-4 _py-2 _font-semibold dark:_border-gray-600">First </th><th class="_m-0 _border _border-gray-300 _px-4 _py-2 _font-semibold dark:_border-gray-600">Last </th></tr> <tr class="_m-0 _border-t _border-gray-300 _p-0 dark:_border-gray-600 even:_bg-gray-100 even:dark:_bg-gray-600/20"><td class="_m-0 _border _border-gray-300 _px-4 _py-2 dark:_border-gray-600">Arthur</td><td class="_m-0 _border _border-gray-300 _px-4 _py-2 dark:_border-gray-600">Dent </td></tr> <tr class="_m-0 _border-t _border-gray-300 _p-0 dark:_border-gray-600 even:_bg-gray-100 even:dark:_bg-gray-600/20"><td class="_m-0 _border _border-gray-300 _px-4 _py-2 dark:_border-gray-600">Ford </td><td class="_m-0 _border _border-gray-300 _px-4 _py-2 dark:_border-gray-600">Prefect </td></tr> <tr class="_m-0 _border-t _border-gray-300 _p-0 dark:_border-gray-600 even:_bg-gray-100 even:dark:_bg-gray-600/20"><td class="_m-0 _border _border-gray-300 _px-4 _py-2 dark:_border-gray-600">Zaphod</td><td class="_m-0 _border _border-gray-300 _px-4 _py-2 dark:_border-gray-600">Beeblebrox</td></tr> </tbody></table> </blockquote></div></details></div><div class="border border-zinc-200 dark:border-[#414141] p-8 lg:p-12 bg-white dark:bg-neutral-800 rounded-none !p-0 h-max min-w-0"><div class="p-8 lg:p-12 flex flex-col gap-7 grow"><div class="flex items-center gap-6 [&_a:hover]:text-primary [&_a]:transition-colors"><span class="text-3xl font-extrabold grow break-all">graphapi®</span><a href="https://graphapi.com/docs" target="_blank" rel="noreferrer"><svg xmlns="http://www.w3.org/2000/svg" fill="currentColor" viewBox="0 0 24 24"><path d="M23.332 15.948C23.764 14.711 24 13.383 24 12a12 12 0 0 0-.706-4.056C21.627 3.317 17.194 0 12 0S2.373 3.317.706 7.944A11.949 11.949 0 0 0 0 12a12 12 0 0 0 .706 4.056C2.373 20.683 6.806 24 12 24s9.627-3.317 11.294-7.944a1 1 0 0 0 .038-.108M12 22.28c-.457 0-1.194-.827-1.81-2.675a19 19 0 0 1-.708-3.031h5.036a19 19 0 0 1-.708 3.031c-.616 1.848-1.353 2.675-1.81 2.675m-2.727-7.427A32 32 0 0 1 9.147 12c0-.98.043-1.936.126-2.853h5.454c.083.917.126 1.874.126 2.853s-.043 1.936-.126 2.854zM1.72 12c0-.99.141-1.947.403-2.853h5.425a33.5 33.5 0 0 0 0 5.707H2.123A10.3 10.3 0 0 1 1.72 12M12 1.72c.457 0 1.194.827 1.81 2.675.297.892.535 1.917.708 3.032H9.482c.173-1.115.411-2.14.708-3.032.616-1.848 1.353-2.675 1.81-2.675m4.452 7.427h5.425c.262.906.403 1.864.403 2.853s-.141 1.947-.403 2.854h-5.425a33.5 33.5 0 0 0 0-5.707m4.752-1.72h-4.95c-.305-2.11-.83-4.003-1.566-5.35 2.855.775 5.22 2.75 6.516 5.35M9.313 2.077c-.736 1.347-1.261 3.24-1.567 5.35h-4.95a10.33 10.33 0 0 1 6.517-5.35M2.795 16.574h4.95c.306 2.11.83 4.002 1.567 5.349a10.33 10.33 0 0 1-6.517-5.35m11.893 5.349c.736-1.347 1.261-3.24 1.567-5.35h4.95a10.33 10.33 0 0 1-6.517 5.35"></path></svg></a><a href="https://github.com/graphapi-io/resources" target="_blank" rel="noreferrer"><svg xmlns="http://www.w3.org/2000/svg" width="30" fill="currentColor" viewBox="0 0 30 30"><path fill-rule="evenodd" d="M15.1.413a14.81 14.81 0 0 0-4.684 28.862c.742.138 1.012-.32 1.012-.712 0-.35-.013-1.283-.02-2.518-4.12.893-4.99-1.987-4.99-1.987-.675-1.71-1.643-2.165-1.643-2.165-1.345-.918.1-.9.1-.9 1.488.105 2.27 1.525 2.27 1.525 1.32 2.265 3.466 1.61 4.31 1.23.133-.955.515-1.608.94-1.978-3.29-.375-6.747-1.645-6.747-7.32 0-1.615.577-2.937 1.525-3.975-.15-.372-.66-1.88.145-3.917 0 0 1.242-.4 4.075 1.517a14.3 14.3 0 0 1 3.705-.5 14.2 14.2 0 0 1 3.707.5c2.826-1.915 4.068-1.517 4.068-1.517.807 2.037.3 3.545.15 3.92.95 1.035 1.52 2.357 1.52 3.975 0 5.687-3.462 6.94-6.76 7.305.53.457 1.005 1.36 1.005 2.742 0 1.98-.02 3.575-.02 4.063 0 .395.267.857 1.02.712A14.816 14.816 0 0 0 15.101.413" clip-rule="evenodd"></path></svg></a></div><div class="gap-2 flex roboto-mono"><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=services">Services</a></div><span class="[&_a]:text-primary grow line-clamp-4 lg:text-lg">graphapi® is a secure low-code GraphQL-as-a-service platform. Based on the input data model, it auto-generates the GraphQL schema, all resolvers, and the database stack. Additionally, it provides a user interface allowing teams to manage their data. For more information, go to <a href="https://graphapi.com">https://graphapi.com</a>.</span><div class="flex items-center gap-5 max-md:text-xs [&>:not(:last-child)]:border-r [&>:not(:last-child)]:border-gray-500 [&>:not(:last-child)]:pr-5"><span class="flex items-center gap-1"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="19" fill="currentColor" class="text-primary"><path d="m10 .5 2.997 5.874L19.51 7.41l-4.66 4.666 1.027 6.514L10 15.6l-5.878 2.99 1.028-6.514L.489 7.41l6.513-1.036z"></path></svg>2</span><span>MIT License</span></div></div></div><div class="border border-zinc-200 dark:border-[#414141] p-8 lg:p-12 bg-white dark:bg-neutral-800 rounded-none !p-0 h-max min-w-0"><div class="p-8 lg:p-12 flex flex-col gap-7 grow"><div class="flex items-center gap-6 [&_a:hover]:text-primary [&_a]:transition-colors"><span class="text-3xl font-extrabold grow break-all">Apideck</span><a href="https://www.apideck.com/products/graphql/" target="_blank" rel="noreferrer"><svg xmlns="http://www.w3.org/2000/svg" fill="currentColor" viewBox="0 0 24 24"><path d="M23.332 15.948C23.764 14.711 24 13.383 24 12a12 12 0 0 0-.706-4.056C21.627 3.317 17.194 0 12 0S2.373 3.317.706 7.944A11.949 11.949 0 0 0 0 12a12 12 0 0 0 .706 4.056C2.373 20.683 6.806 24 12 24s9.627-3.317 11.294-7.944a1 1 0 0 0 .038-.108M12 22.28c-.457 0-1.194-.827-1.81-2.675a19 19 0 0 1-.708-3.031h5.036a19 19 0 0 1-.708 3.031c-.616 1.848-1.353 2.675-1.81 2.675m-2.727-7.427A32 32 0 0 1 9.147 12c0-.98.043-1.936.126-2.853h5.454c.083.917.126 1.874.126 2.853s-.043 1.936-.126 2.854zM1.72 12c0-.99.141-1.947.403-2.853h5.425a33.5 33.5 0 0 0 0 5.707H2.123A10.3 10.3 0 0 1 1.72 12M12 1.72c.457 0 1.194.827 1.81 2.675.297.892.535 1.917.708 3.032H9.482c.173-1.115.411-2.14.708-3.032.616-1.848 1.353-2.675 1.81-2.675m4.452 7.427h5.425c.262.906.403 1.864.403 2.853s-.141 1.947-.403 2.854h-5.425a33.5 33.5 0 0 0 0-5.707m4.752-1.72h-4.95c-.305-2.11-.83-4.003-1.566-5.35 2.855.775 5.22 2.75 6.516 5.35M9.313 2.077c-.736 1.347-1.261 3.24-1.567 5.35h-4.95a10.33 10.33 0 0 1 6.517-5.35M2.795 16.574h4.95c.306 2.11.83 4.002 1.567 5.349a10.33 10.33 0 0 1-6.517-5.35m11.893 5.349c.736-1.347 1.261-3.24 1.567-5.35h4.95a10.33 10.33 0 0 1-6.517 5.35"></path></svg></a></div><div class="gap-2 flex roboto-mono"><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=services">Services</a></div><span class="[&_a]:text-primary grow line-clamp-4 lg:text-lg">A GraphQL API to query and mutate data across APIs like Salesforce, HubSpot, Microsoft Dynamics, Pipedrive, and many more.</span></div></div><div class="border border-zinc-200 dark:border-[#414141] p-8 lg:p-12 bg-white dark:bg-neutral-800 rounded-none !p-0 h-max min-w-0"><div class="p-8 lg:p-12 flex flex-col gap-7 grow"><div class="flex items-center gap-6 [&_a:hover]:text-primary [&_a]:transition-colors"><span class="text-3xl font-extrabold grow break-all">AWS AppSync</span><a href="https://aws.amazon.com/appsync/" target="_blank" rel="noreferrer"><svg xmlns="http://www.w3.org/2000/svg" fill="currentColor" viewBox="0 0 24 24"><path d="M23.332 15.948C23.764 14.711 24 13.383 24 12a12 12 0 0 0-.706-4.056C21.627 3.317 17.194 0 12 0S2.373 3.317.706 7.944A11.949 11.949 0 0 0 0 12a12 12 0 0 0 .706 4.056C2.373 20.683 6.806 24 12 24s9.627-3.317 11.294-7.944a1 1 0 0 0 .038-.108M12 22.28c-.457 0-1.194-.827-1.81-2.675a19 19 0 0 1-.708-3.031h5.036a19 19 0 0 1-.708 3.031c-.616 1.848-1.353 2.675-1.81 2.675m-2.727-7.427A32 32 0 0 1 9.147 12c0-.98.043-1.936.126-2.853h5.454c.083.917.126 1.874.126 2.853s-.043 1.936-.126 2.854zM1.72 12c0-.99.141-1.947.403-2.853h5.425a33.5 33.5 0 0 0 0 5.707H2.123A10.3 10.3 0 0 1 1.72 12M12 1.72c.457 0 1.194.827 1.81 2.675.297.892.535 1.917.708 3.032H9.482c.173-1.115.411-2.14.708-3.032.616-1.848 1.353-2.675 1.81-2.675m4.452 7.427h5.425c.262.906.403 1.864.403 2.853s-.141 1.947-.403 2.854h-5.425a33.5 33.5 0 0 0 0-5.707m4.752-1.72h-4.95c-.305-2.11-.83-4.003-1.566-5.35 2.855.775 5.22 2.75 6.516 5.35M9.313 2.077c-.736 1.347-1.261 3.24-1.567 5.35h-4.95a10.33 10.33 0 0 1 6.517-5.35M2.795 16.574h4.95c.306 2.11.83 4.002 1.567 5.349a10.33 10.33 0 0 1-6.517-5.35m11.893 5.349c.736-1.347 1.261-3.24 1.567-5.35h4.95a10.33 10.33 0 0 1-6.517 5.35"></path></svg></a></div><div class="gap-2 flex roboto-mono"><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=services">Services</a></div><span class="[&_a]:text-primary grow line-clamp-4 lg:text-lg">Fully managed GraphQL service with realtime subscriptions, offline programming & synchronization, and enterprise security features as well as fine grained authorization controls.</span></div></div><div class="border border-zinc-200 dark:border-[#414141] p-8 lg:p-12 bg-white dark:bg-neutral-800 rounded-none !p-0 h-max min-w-0"><div class="p-8 lg:p-12 flex flex-col gap-7 grow"><div class="flex items-center gap-6 [&_a:hover]:text-primary [&_a]:transition-colors"><span class="text-3xl font-extrabold grow break-all">Back4App</span><a href="https://www.back4app.com/docs/parse-graphql/graphql-getting-started" target="_blank" rel="noreferrer"><svg xmlns="http://www.w3.org/2000/svg" fill="currentColor" viewBox="0 0 24 24"><path d="M23.332 15.948C23.764 14.711 24 13.383 24 12a12 12 0 0 0-.706-4.056C21.627 3.317 17.194 0 12 0S2.373 3.317.706 7.944A11.949 11.949 0 0 0 0 12a12 12 0 0 0 .706 4.056C2.373 20.683 6.806 24 12 24s9.627-3.317 11.294-7.944a1 1 0 0 0 .038-.108M12 22.28c-.457 0-1.194-.827-1.81-2.675a19 19 0 0 1-.708-3.031h5.036a19 19 0 0 1-.708 3.031c-.616 1.848-1.353 2.675-1.81 2.675m-2.727-7.427A32 32 0 0 1 9.147 12c0-.98.043-1.936.126-2.853h5.454c.083.917.126 1.874.126 2.853s-.043 1.936-.126 2.854zM1.72 12c0-.99.141-1.947.403-2.853h5.425a33.5 33.5 0 0 0 0 5.707H2.123A10.3 10.3 0 0 1 1.72 12M12 1.72c.457 0 1.194.827 1.81 2.675.297.892.535 1.917.708 3.032H9.482c.173-1.115.411-2.14.708-3.032.616-1.848 1.353-2.675 1.81-2.675m4.452 7.427h5.425c.262.906.403 1.864.403 2.853s-.141 1.947-.403 2.854h-5.425a33.5 33.5 0 0 0 0-5.707m4.752-1.72h-4.95c-.305-2.11-.83-4.003-1.566-5.35 2.855.775 5.22 2.75 6.516 5.35M9.313 2.077c-.736 1.347-1.261 3.24-1.567 5.35h-4.95a10.33 10.33 0 0 1 6.517-5.35M2.795 16.574h4.95c.306 2.11.83 4.002 1.567 5.349a10.33 10.33 0 0 1-6.517-5.35m11.893 5.349c.736-1.347 1.261-3.24 1.567-5.35h4.95a10.33 10.33 0 0 1-6.517 5.35"></path></svg></a></div><div class="gap-2 flex roboto-mono"><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=services">Services</a></div><span class="[&_a]:text-primary grow line-clamp-4 lg:text-lg">Fully managed GraphQL backend based on open source Parse Platform. Store and query relational data, run cloud functions and more over GraphQL API. Free to get started.</span></div></div><div class="border border-zinc-200 dark:border-[#414141] p-8 lg:p-12 bg-white dark:bg-neutral-800 rounded-none !p-0 h-max min-w-0"><div class="p-8 lg:p-12 flex flex-col gap-7 grow"><div class="flex items-center gap-6 [&_a:hover]:text-primary [&_a]:transition-colors"><span class="text-3xl font-extrabold grow break-all">Escape – GraphQL Security</span><a href="https://escape.tech/" target="_blank" rel="noreferrer"><svg xmlns="http://www.w3.org/2000/svg" fill="currentColor" viewBox="0 0 24 24"><path d="M23.332 15.948C23.764 14.711 24 13.383 24 12a12 12 0 0 0-.706-4.056C21.627 3.317 17.194 0 12 0S2.373 3.317.706 7.944A11.949 11.949 0 0 0 0 12a12 12 0 0 0 .706 4.056C2.373 20.683 6.806 24 12 24s9.627-3.317 11.294-7.944a1 1 0 0 0 .038-.108M12 22.28c-.457 0-1.194-.827-1.81-2.675a19 19 0 0 1-.708-3.031h5.036a19 19 0 0 1-.708 3.031c-.616 1.848-1.353 2.675-1.81 2.675m-2.727-7.427A32 32 0 0 1 9.147 12c0-.98.043-1.936.126-2.853h5.454c.083.917.126 1.874.126 2.853s-.043 1.936-.126 2.854zM1.72 12c0-.99.141-1.947.403-2.853h5.425a33.5 33.5 0 0 0 0 5.707H2.123A10.3 10.3 0 0 1 1.72 12M12 1.72c.457 0 1.194.827 1.81 2.675.297.892.535 1.917.708 3.032H9.482c.173-1.115.411-2.14.708-3.032.616-1.848 1.353-2.675 1.81-2.675m4.452 7.427h5.425c.262.906.403 1.864.403 2.853s-.141 1.947-.403 2.854h-5.425a33.5 33.5 0 0 0 0-5.707m4.752-1.72h-4.95c-.305-2.11-.83-4.003-1.566-5.35 2.855.775 5.22 2.75 6.516 5.35M9.313 2.077c-.736 1.347-1.261 3.24-1.567 5.35h-4.95a10.33 10.33 0 0 1 6.517-5.35M2.795 16.574h4.95c.306 2.11.83 4.002 1.567 5.349a10.33 10.33 0 0 1-6.517-5.35m11.893 5.349c.736-1.347 1.261-3.24 1.567-5.35h4.95a10.33 10.33 0 0 1-6.517 5.35"></path></svg></a></div><div class="gap-2 flex roboto-mono"><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=services">Services</a></div><span class="[&_a]:text-primary grow line-clamp-4 lg:text-lg">Live GraphQL Security & Compliance. Ensure your GraphQL endpoints are production-ready. During development. Without needed configuration. Supports every language and framework. Free to get started.</span></div></div><div class="border border-zinc-200 dark:border-[#414141] p-8 lg:p-12 bg-white dark:bg-neutral-800 rounded-none !p-0 h-max min-w-0"><div class="p-8 lg:p-12 flex flex-col gap-7 grow"><div class="flex items-center gap-6 [&_a:hover]:text-primary [&_a]:transition-colors"><span class="text-3xl font-extrabold grow break-all">FaunaDB</span><a href="https://docs.fauna.com/fauna/current/graphql" target="_blank" rel="noreferrer"><svg xmlns="http://www.w3.org/2000/svg" fill="currentColor" viewBox="0 0 24 24"><path d="M23.332 15.948C23.764 14.711 24 13.383 24 12a12 12 0 0 0-.706-4.056C21.627 3.317 17.194 0 12 0S2.373 3.317.706 7.944A11.949 11.949 0 0 0 0 12a12 12 0 0 0 .706 4.056C2.373 20.683 6.806 24 12 24s9.627-3.317 11.294-7.944a1 1 0 0 0 .038-.108M12 22.28c-.457 0-1.194-.827-1.81-2.675a19 19 0 0 1-.708-3.031h5.036a19 19 0 0 1-.708 3.031c-.616 1.848-1.353 2.675-1.81 2.675m-2.727-7.427A32 32 0 0 1 9.147 12c0-.98.043-1.936.126-2.853h5.454c.083.917.126 1.874.126 2.853s-.043 1.936-.126 2.854zM1.72 12c0-.99.141-1.947.403-2.853h5.425a33.5 33.5 0 0 0 0 5.707H2.123A10.3 10.3 0 0 1 1.72 12M12 1.72c.457 0 1.194.827 1.81 2.675.297.892.535 1.917.708 3.032H9.482c.173-1.115.411-2.14.708-3.032.616-1.848 1.353-2.675 1.81-2.675m4.452 7.427h5.425c.262.906.403 1.864.403 2.853s-.141 1.947-.403 2.854h-5.425a33.5 33.5 0 0 0 0-5.707m4.752-1.72h-4.95c-.305-2.11-.83-4.003-1.566-5.35 2.855.775 5.22 2.75 6.516 5.35M9.313 2.077c-.736 1.347-1.261 3.24-1.567 5.35h-4.95a10.33 10.33 0 0 1 6.517-5.35M2.795 16.574h4.95c.306 2.11.83 4.002 1.567 5.349a10.33 10.33 0 0 1-6.517-5.35m11.893 5.349c.736-1.347 1.261-3.24 1.567-5.35h4.95a10.33 10.33 0 0 1-6.517 5.35"></path></svg></a></div><div class="gap-2 flex roboto-mono"><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=services">Services</a></div><span class="[&_a]:text-primary grow line-clamp-4 lg:text-lg">Create an instant GraphQL backend by importing a gql schema. The database will create relations and indexes for you, so you'll be ready to query in seconds, without writing any database code. Serverless pricing, free to get started.</span></div></div><div class="border border-zinc-200 dark:border-[#414141] p-8 lg:p-12 bg-white dark:bg-neutral-800 rounded-none !p-0 h-max min-w-0"><div class="p-8 lg:p-12 flex flex-col gap-7 grow"><div class="flex items-center gap-6 [&_a:hover]:text-primary [&_a]:transition-colors"><span class="text-3xl font-extrabold grow break-all">Grafbase</span><a href="https://grafbase.com" target="_blank" rel="noreferrer"><svg xmlns="http://www.w3.org/2000/svg" fill="currentColor" viewBox="0 0 24 24"><path d="M23.332 15.948C23.764 14.711 24 13.383 24 12a12 12 0 0 0-.706-4.056C21.627 3.317 17.194 0 12 0S2.373 3.317.706 7.944A11.949 11.949 0 0 0 0 12a12 12 0 0 0 .706 4.056C2.373 20.683 6.806 24 12 24s9.627-3.317 11.294-7.944a1 1 0 0 0 .038-.108M12 22.28c-.457 0-1.194-.827-1.81-2.675a19 19 0 0 1-.708-3.031h5.036a19 19 0 0 1-.708 3.031c-.616 1.848-1.353 2.675-1.81 2.675m-2.727-7.427A32 32 0 0 1 9.147 12c0-.98.043-1.936.126-2.853h5.454c.083.917.126 1.874.126 2.853s-.043 1.936-.126 2.854zM1.72 12c0-.99.141-1.947.403-2.853h5.425a33.5 33.5 0 0 0 0 5.707H2.123A10.3 10.3 0 0 1 1.72 12M12 1.72c.457 0 1.194.827 1.81 2.675.297.892.535 1.917.708 3.032H9.482c.173-1.115.411-2.14.708-3.032.616-1.848 1.353-2.675 1.81-2.675m4.452 7.427h5.425c.262.906.403 1.864.403 2.853s-.141 1.947-.403 2.854h-5.425a33.5 33.5 0 0 0 0-5.707m4.752-1.72h-4.95c-.305-2.11-.83-4.003-1.566-5.35 2.855.775 5.22 2.75 6.516 5.35M9.313 2.077c-.736 1.347-1.261 3.24-1.567 5.35h-4.95a10.33 10.33 0 0 1 6.517-5.35M2.795 16.574h4.95c.306 2.11.83 4.002 1.567 5.349a10.33 10.33 0 0 1-6.517-5.35m11.893 5.349c.736-1.347 1.261-3.24 1.567-5.35h4.95a10.33 10.33 0 0 1-6.517 5.35"></path></svg></a></div><div class="gap-2 flex roboto-mono"><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=services">Services</a></div><span class="[&_a]:text-primary grow line-clamp-4 lg:text-lg">GraphQL backends made easy. Build your backend declaratively using a schema-first approach. Accelerate development and reduce boilerplate code by leveraging powerful directives and scalars.</span></div></div><div class="border border-zinc-200 dark:border-[#414141] p-8 lg:p-12 bg-white dark:bg-neutral-800 rounded-none !p-0 h-max min-w-0"><div class="p-8 lg:p-12 flex flex-col gap-7 grow"><div class="flex items-center gap-6 [&_a:hover]:text-primary [&_a]:transition-colors"><span class="text-3xl font-extrabold grow break-all">GraphQL.Security</span><a href="https://graphql.security/" target="_blank" rel="noreferrer"><svg xmlns="http://www.w3.org/2000/svg" fill="currentColor" viewBox="0 0 24 24"><path d="M23.332 15.948C23.764 14.711 24 13.383 24 12a12 12 0 0 0-.706-4.056C21.627 3.317 17.194 0 12 0S2.373 3.317.706 7.944A11.949 11.949 0 0 0 0 12a12 12 0 0 0 .706 4.056C2.373 20.683 6.806 24 12 24s9.627-3.317 11.294-7.944a1 1 0 0 0 .038-.108M12 22.28c-.457 0-1.194-.827-1.81-2.675a19 19 0 0 1-.708-3.031h5.036a19 19 0 0 1-.708 3.031c-.616 1.848-1.353 2.675-1.81 2.675m-2.727-7.427A32 32 0 0 1 9.147 12c0-.98.043-1.936.126-2.853h5.454c.083.917.126 1.874.126 2.853s-.043 1.936-.126 2.854zM1.72 12c0-.99.141-1.947.403-2.853h5.425a33.5 33.5 0 0 0 0 5.707H2.123A10.3 10.3 0 0 1 1.72 12M12 1.72c.457 0 1.194.827 1.81 2.675.297.892.535 1.917.708 3.032H9.482c.173-1.115.411-2.14.708-3.032.616-1.848 1.353-2.675 1.81-2.675m4.452 7.427h5.425c.262.906.403 1.864.403 2.853s-.141 1.947-.403 2.854h-5.425a33.5 33.5 0 0 0 0-5.707m4.752-1.72h-4.95c-.305-2.11-.83-4.003-1.566-5.35 2.855.775 5.22 2.75 6.516 5.35M9.313 2.077c-.736 1.347-1.261 3.24-1.567 5.35h-4.95a10.33 10.33 0 0 1 6.517-5.35M2.795 16.574h4.95c.306 2.11.83 4.002 1.567 5.349a10.33 10.33 0 0 1-6.517-5.35m11.893 5.349c.736-1.347 1.261-3.24 1.567-5.35h4.95a10.33 10.33 0 0 1-6.517 5.35"></path></svg></a></div><div class="gap-2 flex roboto-mono"><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=services">Services</a></div><span class="[&_a]:text-primary grow line-clamp-4 lg:text-lg">Fast and free security scan to run a dozen of tests on a GraphQL endpoint. No login is required.</span></div></div><div class="border border-zinc-200 dark:border-[#414141] p-8 lg:p-12 bg-white dark:bg-neutral-800 rounded-none !p-0 h-max min-w-0"><div class="p-8 lg:p-12 flex flex-col gap-7 grow"><div class="flex items-center gap-6 [&_a:hover]:text-primary [&_a]:transition-colors"><span class="text-3xl font-extrabold grow break-all">Hygraph</span><a href="https://hygraph.com/" target="_blank" rel="noreferrer"><svg xmlns="http://www.w3.org/2000/svg" fill="currentColor" viewBox="0 0 24 24"><path d="M23.332 15.948C23.764 14.711 24 13.383 24 12a12 12 0 0 0-.706-4.056C21.627 3.317 17.194 0 12 0S2.373 3.317.706 7.944A11.949 11.949 0 0 0 0 12a12 12 0 0 0 .706 4.056C2.373 20.683 6.806 24 12 24s9.627-3.317 11.294-7.944a1 1 0 0 0 .038-.108M12 22.28c-.457 0-1.194-.827-1.81-2.675a19 19 0 0 1-.708-3.031h5.036a19 19 0 0 1-.708 3.031c-.616 1.848-1.353 2.675-1.81 2.675m-2.727-7.427A32 32 0 0 1 9.147 12c0-.98.043-1.936.126-2.853h5.454c.083.917.126 1.874.126 2.853s-.043 1.936-.126 2.854zM1.72 12c0-.99.141-1.947.403-2.853h5.425a33.5 33.5 0 0 0 0 5.707H2.123A10.3 10.3 0 0 1 1.72 12M12 1.72c.457 0 1.194.827 1.81 2.675.297.892.535 1.917.708 3.032H9.482c.173-1.115.411-2.14.708-3.032.616-1.848 1.353-2.675 1.81-2.675m4.452 7.427h5.425c.262.906.403 1.864.403 2.853s-.141 1.947-.403 2.854h-5.425a33.5 33.5 0 0 0 0-5.707m4.752-1.72h-4.95c-.305-2.11-.83-4.003-1.566-5.35 2.855.775 5.22 2.75 6.516 5.35M9.313 2.077c-.736 1.347-1.261 3.24-1.567 5.35h-4.95a10.33 10.33 0 0 1 6.517-5.35M2.795 16.574h4.95c.306 2.11.83 4.002 1.567 5.349a10.33 10.33 0 0 1-6.517-5.35m11.893 5.349c.736-1.347 1.261-3.24 1.567-5.35h4.95a10.33 10.33 0 0 1-6.517 5.35"></path></svg></a></div><div class="gap-2 flex roboto-mono"><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=services">Services</a></div><span class="[&_a]:text-primary grow line-clamp-4 lg:text-lg">Hygraph is the federated content platform that allows true composability of your stack. Integrate all your services with a unique content federation approach and distribute content from anywhere - to anywhere using a single, powerful GraphQL API.</span></div></div><div class="border border-zinc-200 dark:border-[#414141] p-8 lg:p-12 bg-white dark:bg-neutral-800 rounded-none !p-0 h-max min-w-0"><div class="p-8 lg:p-12 flex flex-col gap-7 grow"><div class="flex items-center gap-6 [&_a:hover]:text-primary [&_a]:transition-colors"><span class="text-3xl font-extrabold grow break-all">LexasCMS</span><a href="https://www.lexascms.com" target="_blank" rel="noreferrer"><svg xmlns="http://www.w3.org/2000/svg" fill="currentColor" viewBox="0 0 24 24"><path d="M23.332 15.948C23.764 14.711 24 13.383 24 12a12 12 0 0 0-.706-4.056C21.627 3.317 17.194 0 12 0S2.373 3.317.706 7.944A11.949 11.949 0 0 0 0 12a12 12 0 0 0 .706 4.056C2.373 20.683 6.806 24 12 24s9.627-3.317 11.294-7.944a1 1 0 0 0 .038-.108M12 22.28c-.457 0-1.194-.827-1.81-2.675a19 19 0 0 1-.708-3.031h5.036a19 19 0 0 1-.708 3.031c-.616 1.848-1.353 2.675-1.81 2.675m-2.727-7.427A32 32 0 0 1 9.147 12c0-.98.043-1.936.126-2.853h5.454c.083.917.126 1.874.126 2.853s-.043 1.936-.126 2.854zM1.72 12c0-.99.141-1.947.403-2.853h5.425a33.5 33.5 0 0 0 0 5.707H2.123A10.3 10.3 0 0 1 1.72 12M12 1.72c.457 0 1.194.827 1.81 2.675.297.892.535 1.917.708 3.032H9.482c.173-1.115.411-2.14.708-3.032.616-1.848 1.353-2.675 1.81-2.675m4.452 7.427h5.425c.262.906.403 1.864.403 2.853s-.141 1.947-.403 2.854h-5.425a33.5 33.5 0 0 0 0-5.707m4.752-1.72h-4.95c-.305-2.11-.83-4.003-1.566-5.35 2.855.775 5.22 2.75 6.516 5.35M9.313 2.077c-.736 1.347-1.261 3.24-1.567 5.35h-4.95a10.33 10.33 0 0 1 6.517-5.35M2.795 16.574h4.95c.306 2.11.83 4.002 1.567 5.349a10.33 10.33 0 0 1-6.517-5.35m11.893 5.349c.736-1.347 1.261-3.24 1.567-5.35h4.95a10.33 10.33 0 0 1-6.517 5.35"></path></svg></a></div><div class="gap-2 flex roboto-mono"><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=services">Services</a></div><span class="[&_a]:text-primary grow line-clamp-4 lg:text-lg">A headless CMS (Content Management System) that combines powerful content personalisation and scheduling capabilities with a modern content editing experience and a blazing fast GraphQL/REST content delivery API.</span></div></div><div class="border border-zinc-200 dark:border-[#414141] p-8 lg:p-12 bg-white dark:bg-neutral-800 rounded-none !p-0 h-max min-w-0"><div class="p-8 lg:p-12 flex flex-col gap-7 grow"><div class="flex items-center gap-6 [&_a:hover]:text-primary [&_a]:transition-colors"><span class="text-3xl font-extrabold grow break-all">Moesif API Analytics</span><a href="https://www.moesif.com/features/graphql-analytics" target="_blank" rel="noreferrer"><svg xmlns="http://www.w3.org/2000/svg" fill="currentColor" viewBox="0 0 24 24"><path d="M23.332 15.948C23.764 14.711 24 13.383 24 12a12 12 0 0 0-.706-4.056C21.627 3.317 17.194 0 12 0S2.373 3.317.706 7.944A11.949 11.949 0 0 0 0 12a12 12 0 0 0 .706 4.056C2.373 20.683 6.806 24 12 24s9.627-3.317 11.294-7.944a1 1 0 0 0 .038-.108M12 22.28c-.457 0-1.194-.827-1.81-2.675a19 19 0 0 1-.708-3.031h5.036a19 19 0 0 1-.708 3.031c-.616 1.848-1.353 2.675-1.81 2.675m-2.727-7.427A32 32 0 0 1 9.147 12c0-.98.043-1.936.126-2.853h5.454c.083.917.126 1.874.126 2.853s-.043 1.936-.126 2.854zM1.72 12c0-.99.141-1.947.403-2.853h5.425a33.5 33.5 0 0 0 0 5.707H2.123A10.3 10.3 0 0 1 1.72 12M12 1.72c.457 0 1.194.827 1.81 2.675.297.892.535 1.917.708 3.032H9.482c.173-1.115.411-2.14.708-3.032.616-1.848 1.353-2.675 1.81-2.675m4.452 7.427h5.425c.262.906.403 1.864.403 2.853s-.141 1.947-.403 2.854h-5.425a33.5 33.5 0 0 0 0-5.707m4.752-1.72h-4.95c-.305-2.11-.83-4.003-1.566-5.35 2.855.775 5.22 2.75 6.516 5.35M9.313 2.077c-.736 1.347-1.261 3.24-1.567 5.35h-4.95a10.33 10.33 0 0 1 6.517-5.35M2.795 16.574h4.95c.306 2.11.83 4.002 1.567 5.349a10.33 10.33 0 0 1-6.517-5.35m11.893 5.349c.736-1.347 1.261-3.24 1.567-5.35h4.95a10.33 10.33 0 0 1-6.517 5.35"></path></svg></a></div><div class="gap-2 flex roboto-mono"><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=services">Services</a></div><span class="[&_a]:text-primary grow line-clamp-4 lg:text-lg">A GraphQL analaytics and monitoring Service to find functional and performance issues.</span></div></div><div class="border border-zinc-200 dark:border-[#414141] p-8 lg:p-12 bg-white dark:bg-neutral-800 rounded-none !p-0 h-max min-w-0"><div class="p-8 lg:p-12 flex flex-col gap-7 grow"><div class="flex items-center gap-6 [&_a:hover]:text-primary [&_a]:transition-colors"><span class="text-3xl font-extrabold grow break-all">ql</span><a href="https://dsal3389.github.io/ql/" target="_blank" rel="noreferrer"><svg xmlns="http://www.w3.org/2000/svg" fill="currentColor" viewBox="0 0 24 24"><path d="M23.332 15.948C23.764 14.711 24 13.383 24 12a12 12 0 0 0-.706-4.056C21.627 3.317 17.194 0 12 0S2.373 3.317.706 7.944A11.949 11.949 0 0 0 0 12a12 12 0 0 0 .706 4.056C2.373 20.683 6.806 24 12 24s9.627-3.317 11.294-7.944a1 1 0 0 0 .038-.108M12 22.28c-.457 0-1.194-.827-1.81-2.675a19 19 0 0 1-.708-3.031h5.036a19 19 0 0 1-.708 3.031c-.616 1.848-1.353 2.675-1.81 2.675m-2.727-7.427A32 32 0 0 1 9.147 12c0-.98.043-1.936.126-2.853h5.454c.083.917.126 1.874.126 2.853s-.043 1.936-.126 2.854zM1.72 12c0-.99.141-1.947.403-2.853h5.425a33.5 33.5 0 0 0 0 5.707H2.123A10.3 10.3 0 0 1 1.72 12M12 1.72c.457 0 1.194.827 1.81 2.675.297.892.535 1.917.708 3.032H9.482c.173-1.115.411-2.14.708-3.032.616-1.848 1.353-2.675 1.81-2.675m4.452 7.427h5.425c.262.906.403 1.864.403 2.853s-.141 1.947-.403 2.854h-5.425a33.5 33.5 0 0 0 0-5.707m4.752-1.72h-4.95c-.305-2.11-.83-4.003-1.566-5.35 2.855.775 5.22 2.75 6.516 5.35M9.313 2.077c-.736 1.347-1.261 3.24-1.567 5.35h-4.95a10.33 10.33 0 0 1 6.517-5.35M2.795 16.574h4.95c.306 2.11.83 4.002 1.567 5.349a10.33 10.33 0 0 1-6.517-5.35m11.893 5.349c.736-1.347 1.261-3.24 1.567-5.35h4.95a10.33 10.33 0 0 1-6.517 5.35"></path></svg></a><a href="https://github.com/https://github.com/dsal3389/ql" target="_blank" rel="noreferrer"><svg xmlns="http://www.w3.org/2000/svg" width="30" fill="currentColor" viewBox="0 0 30 30"><path fill-rule="evenodd" d="M15.1.413a14.81 14.81 0 0 0-4.684 28.862c.742.138 1.012-.32 1.012-.712 0-.35-.013-1.283-.02-2.518-4.12.893-4.99-1.987-4.99-1.987-.675-1.71-1.643-2.165-1.643-2.165-1.345-.918.1-.9.1-.9 1.488.105 2.27 1.525 2.27 1.525 1.32 2.265 3.466 1.61 4.31 1.23.133-.955.515-1.608.94-1.978-3.29-.375-6.747-1.645-6.747-7.32 0-1.615.577-2.937 1.525-3.975-.15-.372-.66-1.88.145-3.917 0 0 1.242-.4 4.075 1.517a14.3 14.3 0 0 1 3.705-.5 14.2 14.2 0 0 1 3.707.5c2.826-1.915 4.068-1.517 4.068-1.517.807 2.037.3 3.545.15 3.92.95 1.035 1.52 2.357 1.52 3.975 0 5.687-3.462 6.94-6.76 7.305.53.457 1.005 1.36 1.005 2.742 0 1.98-.02 3.575-.02 4.063 0 .395.267.857 1.02.712A14.816 14.816 0 0 0 15.101.413" clip-rule="evenodd"></path></svg></a></div><div class="gap-2 flex roboto-mono"><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=python">Python</a><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=client">Client</a></div><span class="[&_a]:text-primary grow line-clamp-4 lg:text-lg">Non intrusive python GraphQL client wrapped around pydantic.</span></div><details class="bg-[#f0f0f0] dark:bg-[#2f2f2f]"><summary class="flex justify-between font-bold text-primary px-8 lg:px-12 py-5 dark:[[open]>&]:shadow-[-5px_10px_30px_20px_#1b1b1b4d] [[open]>&]:shadow-[0_6px_21px_0_#1b1b1b33] cursor-pointer">README<svg xmlns="http://www.w3.org/2000/svg" fill="currentColor" viewBox="0 0 15 15" class="size-5 -rotate-90 [[open]>*>&]:rotate-90 transition-transform"><path fill-rule="evenodd" d="M8.842 3.135a.5.5 0 0 1 .023.707L5.435 7.5l3.43 3.658a.5.5 0 0 1-.73.684l-3.75-4a.5.5 0 0 1 0-.684l3.75-4a.5.5 0 0 1 .707-.023" clip-rule="evenodd"></path></svg></summary><div class="px-8 lg:px-12 py-5"><p class="[&:not(:first-child)]:_mt-6 _leading-7">GraphQL client library, wrapped around pydantic classes for type validation, provides a safe and simple way to query data from a GraphQL API.</p> <p class="[&:not(:first-child)]:_mt-6 _leading-7">Features:</p> <ul class="[:is(ol,ul)_&]:_my-3 [&:not(:first-child)]:_mt-6 _list-disc ltr:_ml-6 rtl:_mr-6"> <li class="_my-2">python objects to valid GraphQL string</li> <li class="_my-2">scalar query responses</li> <li class="_my-2">type-safety</li> </ul> <h2 class="_font-semibold _tracking-tight _text-slate-900 dark:_text-slate-100 _mt-10 _border-b _pb-1 _text-3xl _border-neutral-200/70 contrast-more:_border-neutral-400 dark:_border-primary-100/10 contrast-more:dark:_border-neutral-400">Install<a href="#install" id="install" class="subheading-anchor" aria-label="Permalink for this section"></a></h2> <div class="nextra-code _relative [&:not(:first-child)]:_mt-6"><pre class="_overflow-x-auto _subpixel-antialiased _text-[.9em] _bg-white dark:_bg-black _py-4 _ring-1 _ring-inset _ring-gray-300 dark:_ring-neutral-700 contrast-more:_ring-gray-900 contrast-more:dark:_ring-gray-50 contrast-more:_contrast-150 _rounded-md" tabindex="0"><code class="nextra-code" dir="ltr"><span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">pip3 install pydantic-graphql</span></span></code></pre><div class="_opacity-0 _transition [div:hover>&]:_opacity-100 focus-within:_opacity-100 _flex _gap-1 _absolute _right-4 _top-2"><button class="_transition _rounded-md _p-1.5 _border _border-gray-300 dark:_border-neutral-700 contrast-more:_border-gray-900 contrast-more:dark:_border-gray-50 md:_hidden" title="Toggle word wrap"><svg viewBox="0 0 24 24" width="24" height="24" class="_h-4 _w-auto"><path fill="currentColor" d="M4 19h6v-2H4v2zM20 5H4v2h16V5zm-3 6H4v2h13.25c1.1 0 2 .9 2 2s-.9 2-2 2H15v-2l-3 3l3 3v-2h2c2.21 0 4-1.79 4-4s-1.79-4-4-4z"></path></svg></button></div></div></div></details></div><div class="border border-zinc-200 dark:border-[#414141] p-8 lg:p-12 bg-white dark:bg-neutral-800 rounded-none !p-0 h-max min-w-0"><div class="p-8 lg:p-12 flex flex-col gap-7 grow"><div class="flex items-center gap-6 [&_a:hover]:text-primary [&_a]:transition-colors"><span class="text-3xl font-extrabold grow break-all">GraphQLite iOS</span><a href="https://graphqlite.com/sdk-ios" target="_blank" rel="noreferrer"><svg xmlns="http://www.w3.org/2000/svg" fill="currentColor" viewBox="0 0 24 24"><path d="M23.332 15.948C23.764 14.711 24 13.383 24 12a12 12 0 0 0-.706-4.056C21.627 3.317 17.194 0 12 0S2.373 3.317.706 7.944A11.949 11.949 0 0 0 0 12a12 12 0 0 0 .706 4.056C2.373 20.683 6.806 24 12 24s9.627-3.317 11.294-7.944a1 1 0 0 0 .038-.108M12 22.28c-.457 0-1.194-.827-1.81-2.675a19 19 0 0 1-.708-3.031h5.036a19 19 0 0 1-.708 3.031c-.616 1.848-1.353 2.675-1.81 2.675m-2.727-7.427A32 32 0 0 1 9.147 12c0-.98.043-1.936.126-2.853h5.454c.083.917.126 1.874.126 2.853s-.043 1.936-.126 2.854zM1.72 12c0-.99.141-1.947.403-2.853h5.425a33.5 33.5 0 0 0 0 5.707H2.123A10.3 10.3 0 0 1 1.72 12M12 1.72c.457 0 1.194.827 1.81 2.675.297.892.535 1.917.708 3.032H9.482c.173-1.115.411-2.14.708-3.032.616-1.848 1.353-2.675 1.81-2.675m4.452 7.427h5.425c.262.906.403 1.864.403 2.853s-.141 1.947-.403 2.854h-5.425a33.5 33.5 0 0 0 0-5.707m4.752-1.72h-4.95c-.305-2.11-.83-4.003-1.566-5.35 2.855.775 5.22 2.75 6.516 5.35M9.313 2.077c-.736 1.347-1.261 3.24-1.567 5.35h-4.95a10.33 10.33 0 0 1 6.517-5.35M2.795 16.574h4.95c.306 2.11.83 4.002 1.567 5.349a10.33 10.33 0 0 1-6.517-5.35m11.893 5.349c.736-1.347 1.261-3.24 1.567-5.35h4.95a10.33 10.33 0 0 1-6.517 5.35"></path></svg></a><a href="https://github.com/relatedcode/GraphQLite" target="_blank" rel="noreferrer"><svg xmlns="http://www.w3.org/2000/svg" width="30" fill="currentColor" viewBox="0 0 30 30"><path fill-rule="evenodd" d="M15.1.413a14.81 14.81 0 0 0-4.684 28.862c.742.138 1.012-.32 1.012-.712 0-.35-.013-1.283-.02-2.518-4.12.893-4.99-1.987-4.99-1.987-.675-1.71-1.643-2.165-1.643-2.165-1.345-.918.1-.9.1-.9 1.488.105 2.27 1.525 2.27 1.525 1.32 2.265 3.466 1.61 4.31 1.23.133-.955.515-1.608.94-1.978-3.29-.375-6.747-1.645-6.747-7.32 0-1.615.577-2.937 1.525-3.975-.15-.372-.66-1.88.145-3.917 0 0 1.242-.4 4.075 1.517a14.3 14.3 0 0 1 3.705-.5 14.2 14.2 0 0 1 3.707.5c2.826-1.915 4.068-1.517 4.068-1.517.807 2.037.3 3.545.15 3.92.95 1.035 1.52 2.357 1.52 3.975 0 5.687-3.462 6.94-6.76 7.305.53.457 1.005 1.36 1.005 2.742 0 1.98-.02 3.575-.02 4.063 0 .395.267.857 1.02.712A14.816 14.816 0 0 0 15.101.413" clip-rule="evenodd"></path></svg></a></div><div class="gap-2 flex roboto-mono"><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=swift-objective-c-ios">Swift / Objective-C</a><a class="py-1 px-2.5 capitalize text-xs rounded bg-zinc-200 dark:bg-zinc-700 font-bold roboto-mono hover:!bg-primary transition-colors hover:text-white cursor-pointer" href="/code/?tags=client">Client</a></div><span class="[&_a]:text-primary grow line-clamp-4 lg:text-lg">GraphQLite iOS SDK is a toolkit to work with GraphQL servers easily. It also provides several other features to make life easier during iOS application development.</span></div></div></div></div></div><footer class="_bg-gray-100 _pb-[env(safe-area-inset-bottom)] dark:_bg-neutral-900 print:_bg-transparent"><div class="_mx-auto _flex _max-w-[90rem] _gap-2 _py-2 _px-4 _flex"><button title="Change theme" class="_h-7 _rounded-md _px-2 _text-left _text-xs _font-medium _text-gray-600 _transition-colors dark:_text-gray-400 hover:_bg-gray-100 hover:_text-gray-900 dark:hover:_bg-primary-100/5 dark:hover:_text-gray-50" id="headlessui-listbox-button-:R2jl6:" type="button" aria-haspopup="listbox" aria-expanded="false" data-headlessui-state=""><div class="_flex _items-center _gap-2 _capitalize"><svg fill="none" viewBox="3 3 18 18" width="12" height="12" stroke="currentColor"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" fill="currentColor" d="M12 3v1m0 16v1m9-9h-1M4 12H3m15.364 6.364l-.707-.707M6.343 6.343l-.707-.707m12.728 0l-.707.707M6.343 17.657l-.707.707M16 12a4 4 0 11-8 0 4 4 0 018 0z"></path></svg><span class="">Light</span></div></button></div><hr class="dark:_border-neutral-800"/><div class="_mx-auto _flex _max-w-[90rem] _justify-center _py-12 _text-gray-600 dark:_text-gray-400 md:_justify-start _pl-[max(env(safe-area-inset-left),1.5rem)] _pr-[max(env(safe-area-inset-right),1.5rem)]"><div class="w-full"><div class="flex justify-between items-start mb-24 flex-wrap gap-10"><a class="max-lg:w-full" href="/"><svg xmlns="http://www.w3.org/2000/svg" style="fill:color(display-p3 .8824 0 .5961)" viewBox="0 0 367 100" class="h-8 nextra-logo" title="GraphQL"><path fill-rule="evenodd" d="m50 6.468 37.7 21.766v43.532L50 93.532 12.3 71.766V28.234zM16.53 30.676v31.976l27.692-47.964zM50 13.14 18.078 68.43h63.844zm27.692 59.52H22.308L50 88.648zm5.778-10.008L55.778 14.688 83.47 30.676z" clip-rule="evenodd"></path><circle cx="14.41" cy="29.45" r="8.91"></circle><circle cx="14.41" cy="70.545" r="8.91"></circle><circle cx="50" cy="91.09" r="8.91"></circle><circle cx="85.585" cy="70.545" r="8.91"></circle><circle cx="85.585" cy="29.455" r="8.91"></circle><circle cx="50" cy="8.91" r="8.91"></circle><path d="M138.875 71.625q-7.812 0-12.125-4.5t-4.562-12.062q-.063-1.876-.063-5.938t.063-5.937q.25-7.563 4.562-12.063t12.125-4.5q5.313 0 8.938 2 3.624 2 5.375 4.75 1.812 2.688 1.937 4.813v.124q0 .501-.375.813-.375.313-.938.313h-1.374q-.562 0-.813-.25t-.5-1q-1.062-3.313-4.125-5.563-3-2.25-8.125-2.25-5.812 0-9.187 3.188-3.313 3.187-3.563 9.937-.062 1.875-.062 5.625t.062 5.625q.25 6.75 3.563 9.938 3.375 3.186 9.187 3.187 5.813 0 9.375-3.312 3.562-3.314 3.562-9.813v-3.187h-10.874q-.625 0-1-.376a1.58 1.58 0 0 1-.375-1.062v-.875q0-.625.375-1 .375-.437 1-.437h13.374q.688 0 1.063.374.375.376.375 1.063v5.5q0 4.999-2 8.813-2 3.811-5.812 5.937-3.813 2.125-9.063 2.125M165.941 71q-.625 0-1-.375t-.375-1V39.938q0-.625.375-1 .375-.438 1-.438h1q.625 0 1 .438.438.375.438 1v2.874q2.25-4.312 8.5-4.312h2.312q.625 0 1 .375t.375 1v.875q0 .625-.375 1t-1 .375h-2.687q-3.75 0-5.938 2.188-2.187 2.187-2.187 5.937v19.375q0 .625-.438 1-.375.375-1 .375zM194.557 71.625q-3 0-5.563-1.25T184.869 67q-1.5-2.126-1.5-4.687 0-4.125 3.313-6.75 3.374-2.625 9.062-3.376l9.875-1.374v-2.188q0-3.438-2.125-5.25-2.063-1.875-6.375-1.875-3.188 0-5.25 1.25-2 1.25-2.562 3-.25.75-.625 1.063-.313.25-.875.25h-.875q-.563 0-1-.376a1.5 1.5 0 0 1-.375-1q0-1.374 1.25-3.187 1.25-1.875 3.875-3.25t6.437-1.375q6.687 0 9.5 3.188 2.813 3.187 2.813 7.75v20.812q0 .625-.375 1-.376.375-1 .375h-1.063q-.625 0-1-.375t-.375-1v-2.937q-1.375 2.061-4.062 3.5-2.626 1.437-7 1.437m.625-3.625q4.561 0 7.5-3 2.937-3 2.937-8.625V54.25l-8.062 1.125q-5.125.687-7.75 2.375T187.182 62q0 2.875 2.375 4.438Q191.994 68 195.182 68M220.752 82.875q-.624 0-1-.375-.375-.375-.375-1V39.875q0-.625.375-1 .376-.375 1-.375h1.063q.625 0 1 .375t.375 1v2.938q3.626-4.938 10.5-4.938 6.75 0 9.937 4.313 3.25 4.25 3.438 10.5.063.624.062 2.062 0 1.437-.062 2.063-.187 6.25-3.438 10.562-3.187 4.25-9.937 4.25-6.813 0-10.5-4.937V81.5q0 .625-.375 1t-1 .375zM233.315 68q5.062 0 7.375-3.187 2.375-3.25 2.562-8.313.063-.625.063-1.75 0-5.813-2.25-9.5-2.25-3.75-7.75-3.75-4.938 0-7.438 3.313-2.5 3.25-2.687 7.687l-.063 2.438.063 2.437a12.8 12.8 0 0 0 1.187 5.125q1.125 2.375 3.375 3.938Q230.002 68 233.315 68M257.068 71q-.625 0-1-.375t-.375-1V28q0-.625.375-1t1-.375h1.063q.625 0 1 .375t.375 1v14.813q1.875-2.439 4.25-3.688 2.437-1.25 6.25-1.25 6.125 0 9.437 3.938 3.313 3.874 3.313 10.062v17.75q0 .625-.375 1t-1 .375h-1.063q-.625 0-1-.375t-.375-1V52.188q0-5.063-2.5-7.876-2.437-2.812-7.062-2.812-4.5 0-7.188 2.875-2.687 2.813-2.687 7.813v17.437q0 .625-.375 1t-1 .375zM321.682 75.063q-.938 0-2-1.438l-2.75-3.812q-3.75 1.812-8.75 1.812-16.062 0-16.5-17.25-.062-1.875-.062-5.25t.062-5.25q.25-8.5 4.625-12.875t11.875-4.375T320.057 31t4.625 12.875q.125 3.75.125 5.25t-.125 5.25q-.312 8.937-4.562 13.125l4 5.625q.187.376.187.688a1.2 1.2 0 0 1-.375.874 1.2 1.2 0 0 1-.875.376zm-13.5-7.188q5.625 0 8.938-3.375 3.375-3.437 3.625-10.437.125-3.75.125-4.938t-.125-4.937q-.25-7-3.625-10.376-3.375-3.437-8.938-3.437-5.562 0-8.937 3.438-3.375 3.375-3.625 10.374-.063 1.875-.063 4.938t.063 4.938q.25 6.999 3.562 10.437 3.375 3.375 9 3.375M336.126 71q-.625 0-1-.375t-.375-1v-41q0-.625.375-1t1-.375h1.188q.625 0 1 .375t.375 1V67.25h21.562q.688 0 1.063.375t.375 1.063v.937q0 .625-.438 1-.375.375-1 .375z"></path></svg></a><ul class="text-sm flex flex-col gap-4 max-lg:w-[46%]"><h3 class="text-lg font-bold">Learn</h3><li><a class="hover:underline decoration-from-font [text-underline-position:from-font]" href="/learn/">Introduction to GraphQL</a></li><li><a class="hover:underline decoration-from-font [text-underline-position:from-font]" href="/learn/best-practices/">Best Practices</a></li><li><a class="hover:underline decoration-from-font [text-underline-position:from-font]" href="/faq/">Frequently Asked Questions</a></li><li><a class="hover:underline decoration-from-font [text-underline-position:from-font]" href="/community/resources/training-courses/">Training Courses</a></li></ul><ul class="text-sm flex flex-col gap-4 max-lg:w-[46%]"><h3 class="text-lg font-bold">Code</h3><li><a class="hover:underline decoration-from-font [text-underline-position:from-font]" href="https://github.com/graphql">GitHub</a></li><li><a class="hover:underline decoration-from-font [text-underline-position:from-font]" href="https://spec.graphql.org">GraphQL Specification</a></li><li><a class="hover:underline decoration-from-font [text-underline-position:from-font]" href="/code/">Libraries & Tools</a></li><li><a class="hover:underline decoration-from-font [text-underline-position:from-font]" href="/code/?tags=services">Services & Vendors</a></li></ul><ul class="text-sm flex flex-col gap-4 max-lg:w-[46%]"><h3 class="text-lg font-bold">Community</h3><li><a class="hover:underline decoration-from-font [text-underline-position:from-font]" href="/community/resources/official-channels/">Resources</a></li><li><a class="hover:underline decoration-from-font [text-underline-position:from-font]" href="/community/events/">Events & Meetups</a></li><li><a class="hover:underline decoration-from-font [text-underline-position:from-font]" href="/community/contribute/essential-links/">Contribute to GraphQL</a></li><li><a class="hover:underline decoration-from-font [text-underline-position:from-font]" href="https://landscape.graphql.org">Landscape</a></li><li><a class="hover:underline decoration-from-font [text-underline-position:from-font]" href="https://store.graphql.org">Shop</a></li></ul><ul class="text-sm flex flex-col gap-4 max-lg:w-[46%]"><h3 class="text-lg font-bold">& More</h3><li><a class="hover:underline decoration-from-font [text-underline-position:from-font]" href="/blog/">Blog</a></li><li><a class="hover:underline decoration-from-font [text-underline-position:from-font]" href="/foundation/">GraphQL Foundation</a></li><li><a class="hover:underline decoration-from-font [text-underline-position:from-font]" href="/foundation/community-grant/">GraphQL Community Grant</a></li><li><a class="hover:underline decoration-from-font [text-underline-position:from-font]" href="/brand/">Logo and Brand Guidelines</a></li><li><a class="hover:underline decoration-from-font [text-underline-position:from-font]" href="/codeofconduct/">Code of Conduct</a></li></ul></div><div class="flex justify-between flex-wrap gap-10"><p class="text-sm">Copyright © <!-- -->2024<!-- --> The GraphQL Foundation. All rights reserved.<br/>For web site terms of use, trademark policy and general project policies please see<!-- --> <a href="https://lfprojects.org" target="_blank" rel="noreferrer" class="text-primary hover:underline decoration-from-font [text-underline-position:from-font]">https://lfprojects.org</a></p><div class="flex flex-col gap-4 lg:items-end"><ul class="flex gap-5"><li><a href="https://github.com/graphql" target="_blank" rel="noreferrer" class="hover:text-primary transition-colors block"><svg xmlns="http://www.w3.org/2000/svg" width="30" fill="currentColor" viewBox="0 0 30 30" class="h-5 w-auto *:fill-current"><path fill-rule="evenodd" d="M15.1.413a14.81 14.81 0 0 0-4.684 28.862c.742.138 1.012-.32 1.012-.712 0-.35-.013-1.283-.02-2.518-4.12.893-4.99-1.987-4.99-1.987-.675-1.71-1.643-2.165-1.643-2.165-1.345-.918.1-.9.1-.9 1.488.105 2.27 1.525 2.27 1.525 1.32 2.265 3.466 1.61 4.31 1.23.133-.955.515-1.608.94-1.978-3.29-.375-6.747-1.645-6.747-7.32 0-1.615.577-2.937 1.525-3.975-.15-.372-.66-1.88.145-3.917 0 0 1.242-.4 4.075 1.517a14.3 14.3 0 0 1 3.705-.5 14.2 14.2 0 0 1 3.707.5c2.826-1.915 4.068-1.517 4.068-1.517.807 2.037.3 3.545.15 3.92.95 1.035 1.52 2.357 1.52 3.975 0 5.687-3.462 6.94-6.76 7.305.53.457 1.005 1.36 1.005 2.742 0 1.98-.02 3.575-.02 4.063 0 .395.267.857 1.02.712A14.816 14.816 0 0 0 15.101.413" clip-rule="evenodd"></path></svg></a></li><li><a href="https://discord.graphql.org" target="_blank" rel="noreferrer" class="hover:text-primary transition-colors block"><svg xmlns="http://www.w3.org/2000/svg" fill="#5865f2" viewBox="0 0 20 20" class="h-5 w-auto *:fill-current"><path d="M16.956 3.693a16.5 16.5 0 0 0-4.134-1.274 10 10 0 0 0-.526 1.072 15.8 15.8 0 0 0-4.58 0 13 13 0 0 0-.525-1.072c-1.429.239-2.82.667-4.135 1.274C.44 7.553-.269 11.323.085 15.043a16.8 16.8 0 0 0 5.065 2.536q.614-.828 1.08-1.747a10.6 10.6 0 0 1-1.708-.82 6 6 0 0 0 .415-.323c3.295 1.507 6.864 1.507 10.119 0 .141.111.272.223.414.324-.546.323-1.112.596-1.709.818a12.3 12.3 0 0 0 1.083 1.75 16.8 16.8 0 0 0 5.064-2.538c.434-4.305-.689-8.045-2.952-11.35m-10.27 9.056c-.99 0-1.8-.9-1.8-2.002s.79-2.001 1.8-2.001c1 0 1.82.9 1.798 2.002 0 1.101-.798 2-1.798 2m6.641 0c-.99 0-1.8-.9-1.8-2.002s.79-2.001 1.8-2.001c1 0 1.82.9 1.8 2.002 0 1.101-.79 2-1.8 2"></path></svg></a></li><li><a href="https://twitter.com/graphql" target="_blank" rel="noreferrer" class="hover:text-primary transition-colors block"><svg xmlns="http://www.w3.org/2000/svg" fill="currentColor" viewBox="0 0 20 20" class="h-5 w-auto *:fill-current"><path d="m11.396 9.473 5.461-6.216h-1.293L10.82 8.654 7.034 3.257H2.666l5.726 8.161-5.726 6.518H3.96l5.006-5.7 4 5.7h4.367M4.427 4.212h1.987l9.149 12.816h-1.988"></path></svg></a></li><li><a href="http://stackoverflow.com/questions/tagged/graphql" target="_blank" rel="noreferrer" class="hover:text-primary transition-colors block"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 105 124" class="h-5 w-auto *:fill-current"><path fill="#bbb" fill-rule="evenodd" d="M88 80h11v44H0V80h11v33h77z" clip-rule="evenodd"></path><path fill="#f58025" d="m22.988 76.73 54.025 11.355 2.27-10.8-54.024-11.36zm7.149-25.869 50.046 23.308 4.662-10.009-50.047-23.308zm13.848-24.553 42.428 35.331 7.066-8.485-42.428-35.33zM71.372.192l-8.86 6.59 32.948 44.3 8.86-6.589zM22 102h55V91H22z"></path></svg></a></li></ul><a href="https://nextra.site" target="_blank" rel="noreferrer" class="text-xs hover:text-primary transition-colors flex items-center gap-2">Powered by<!-- --> <svg viewBox="0 0 361 70" fill="currentColor" class="shrink-0 h-3"><path d="M114.913 33.2763v28.7642h-11.57V12.9496h11.059v8.3416h.575c1.129-2.7485 2.93-4.9325 5.401-6.5518 2.493-1.6193 5.572-2.429 9.237-2.429 3.388 0 6.339.7244 8.853 2.1733 2.535 1.4489 4.496 3.5476 5.88 6.2962 1.407 2.7486 2.099 6.0831 2.078 10.0035v31.2571h-11.57V32.5732c0-3.2813-.852-5.8487-2.557-7.7024-1.683-1.8537-4.016-2.7806-6.999-2.7806-2.024 0-3.824.4475-5.401 1.3424-1.556.8736-2.781 2.1413-3.676 3.8032-.873 1.662-1.31 3.6755-1.31 6.0405Zm61.407 29.723c-4.922 0-9.172-1.0227-12.752-3.0681-3.558-2.0668-6.296-4.9858-8.214-8.7572-1.917-3.7926-2.876-8.2563-2.876-13.3913 0-5.0497.959-9.4815 2.876-13.2954 1.939-3.8353 4.645-6.8182 8.118-8.9489 3.473-2.152 7.553-3.228 12.241-3.228 3.026 0 5.881.4901 8.565 1.4702 2.706.9588 5.093 2.4503 7.159 4.4744 2.088 2.0242 3.729 4.6023 4.922 7.7344 1.193 3.1108 1.79 6.8182 1.79 11.1221v3.5476h-40.238v-7.7983h29.148c-.021-2.2159-.501-4.1868-1.438-5.9126-.938-1.7472-2.248-3.1215-3.931-4.1229-1.662-1.0014-3.601-1.5021-5.817-1.5021-2.365 0-4.443.5753-6.232 1.7258-1.79 1.1293-3.186 2.6208-4.187 4.4745-.98 1.8324-1.481 3.8459-1.502 6.0405v6.8075c0 2.8551.522 5.3054 1.566 7.3508 1.044 2.0242 2.503 3.5796 4.378 4.6662 1.875 1.0654 4.07 1.598 6.584 1.598 1.683 0 3.207-.2343 4.57-.7031 1.364-.49 2.546-1.2038 3.548-2.1413 1.001-.9375 1.758-2.0987 2.269-3.4837l10.803 1.2145c-.682 2.8551-1.982 5.348-3.9 7.4787-1.896 2.1094-4.325 3.75-7.286 4.9219-2.962 1.1506-6.35 1.7258-10.164 1.7258Zm34.777-50.0497 9.908 18.1215 10.067-18.1215h12.241l-14.798 24.5455 15.054 24.5454h-12.177l-10.387-17.674-10.291 17.674h-12.273l14.957-24.5454-14.574-24.5455h12.273Zm63.878 0v8.9489h-28.221v-8.9489h28.221ZM253.722 1.18825h11.569V47.2749c0 1.5554.235 2.7486.704 3.5795.49.8097 1.129 1.3637 1.917 1.662s1.662.4474 2.621.4474c.724 0 1.385-.0532 1.981-.1598.618-.1065 1.087-.2024 1.407-.2876l1.949 9.0447c-.618.2131-1.502.4475-2.652.7031-1.13.2557-2.515.4049-4.155.4475-2.898.0852-5.508-.3516-7.831-1.3104-2.322-.9801-4.165-2.4929-5.529-4.5383-1.342-2.0455-2.003-4.6023-1.981-7.6705V1.18825Zm29.129 60.85225V12.9496h11.218v8.1818h.512c.895-2.8338 2.429-5.0177 4.602-6.5518 2.173-1.5554 4.677-2.3331 7.511-2.3331 1.321 0 2.535.1598 3.643.4794 1.108.3196 2.088.7564 2.94 1.3104l-3.579 9.588c-.618-.2983-1.3-.5433-2.046-.7351-.745-.1917-1.587-.2876-2.524-.2876-2.003 0-3.814.4474-5.434 1.3423-1.619.8949-2.908 2.1414-3.867 3.7394-.937 1.5767-1.406 3.4091-1.406 5.4971v28.8601h-11.57Zm51.222.863c-3.856 0-7.308-.9908-10.355-2.9723-3.047-1.9816-5.454-4.858-7.223-8.6293-1.768-3.7713-2.652-8.3523-2.652-13.7429 0-5.4546.894-10.0568 2.684-13.8068 1.811-3.7713 4.251-6.6158 7.319-8.5334 3.068-1.9389 6.488-2.9084 10.259-2.9084 2.877 0 5.242.4901 7.095 1.4702 1.854.9588 3.324 2.12 4.411 3.4836 1.087 1.3424 1.928 2.6101 2.525 3.8033h.479v-8.1179h11.602v49.0909h-11.378v-7.7343h-.703c-.597 1.1931-1.46 2.4609-2.589 3.8032-1.129 1.321-2.621 2.4503-4.474 3.3878-1.854.9375-4.187 1.4063-7 1.4063Zm3.228-9.4922c2.451 0 4.539-.6605 6.265-1.9816 1.725-1.3423 3.036-3.2066 3.931-5.593s1.342-5.1669 1.342-8.3416c0-3.1747-.447-5.934-1.342-8.2777-.874-2.3438-2.174-4.1655-3.9-5.4652-1.704-1.2997-3.803-1.9496-6.296-1.9496-2.578 0-4.73.6712-6.456 2.0135s-3.025 3.196-3.899 5.5611c-.873 2.365-1.31 5.071-1.31 8.1179 0 3.0682.437 5.8061 1.31 8.2138.895 2.3863 2.205 4.272 3.931 5.6569 1.747 1.3636 3.889 2.0455 6.424 2.0455Z"></path><path d="m64.8833 1.81335-2.8464 2.84638C47.1274 19.5692 22.9543 19.5692 8.04485 4.65972L5.19848 1.81335c-.93479-.93478-2.45037-.93478-3.38515 0-.93479.93478-.93478 2.45037 0 3.38515L4.6597 8.04487c14.9095 14.90953 14.9095 39.08263 0 53.99213l-2.84637 2.8463c-.93479.9348-.93479 2.4504 0 3.3852.93478.9348 2.45037.9348 3.38515 0l2.84637-2.8464c14.90955-14.9095 39.08255-14.9095 53.99205 0l2.8464 2.8464c.9348.9348 2.4504.9348 3.3852 0 .9347-.9348.9347-2.4504 0-3.3852l-2.8464-2.8463c-14.9095-14.9095-14.9095-39.0826 0-53.99213l2.8464-2.84637c.9347-.93478.9347-2.45037 0-3.38515-.9348-.93478-2.4504-.93478-3.3852 0Z" stroke="currentColor" stroke-width="2"></path></svg></a></div></div></div></div></footer></div></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{"data":[{"filePath":"./src/code/services/insomnia.md","tags":["services"],"frontMatter":{"name":"Insomnia","description":"Insomnia is an open-source, cross-platform API Client for GraphQL, REST, and gRPC. Insomnia combines an easy-to-use interface with advanced functionality like authentication helpers, code generation, and environment variables.","url":"https://docs.insomnia.rest/insomnia/graphql-queries","github":"Kong/insomnia"},"stars":35005,"formattedStars":"35k","lastRelease":"7 hours ago","license":"Apache License 2.0"},{"filePath":"./src/code/services/hasura.md","tags":["services"],"frontMatter":{"name":"Hasura","description":"Hasura connects to your databases \u0026 microservices and instantly gives you a production-ready GraphQL API.","url":"https://hasura.io","github":"hasura/graphql-engine"},"stars":31190,"formattedStars":"31k","lastRelease":"16 hours ago","license":"Apache License 2.0"},{"filePath":"./src/code/services/dgraph.md","tags":["services"],"frontMatter":{"name":"Dgraph","description":"Dgraph is a native GraphQL database with a graph backend. This means Dgraph is not an interface on top of an existing database like Postgres but is actually designed from the ground-up for GraphQL. It is optimized for speed and performance, depending on multiple computer science breakthroughs to get the best result. Dgraph Cloud is a fully managed GraphQL backend service that lets you iterate faster, without worrying about your infrastructure.","url":"https://dgraph.io/graphql","github":"dgraph-io/dgraph"},"stars":20462,"formattedStars":"20k","lastRelease":"2 weeks ago","license":"Other","compiledSource":"\"use strict\";\nconst {Fragment: _Fragment, jsx: _jsx, jsxs: _jsxs} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nconst title = \"\";\nconst frontMatter = {\n \"name\": \"Dgraph\",\n \"description\": \"Dgraph is a native GraphQL database with a graph backend. This means Dgraph is not an interface on top of an existing database like Postgres but is actually designed from the ground-up for GraphQL. It is optimized for speed and performance, depending on multiple computer science breakthroughs to get the best result. Dgraph Cloud is a fully managed GraphQL backend service that lets you iterate faster, without worrying about your infrastructure.\",\n \"url\": \"https://dgraph.io/graphql\",\n \"github\": \"dgraph-io/dgraph\"\n};\nfunction useTOC(props) {\n return [];\n}\nfunction _createMdxContent(props) {\n const _components = {\n code: \"code\",\n p: \"p\",\n pre: \"pre\",\n span: \"span\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsxs(_Fragment, {\n children: [_jsx(_components.p, {\n children: \"Install Steps if running locally on linux not on Dgraph Cloud:\"\n }), \"\\n\", _jsx(_components.pre, {\n tabIndex: \"0\",\n \"data-language\": \"bash\",\n \"data-word-wrap\": \"\",\n children: _jsxs(_components.code, {\n children: [_jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \"docker\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \" pull\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \" dgraph/standalone\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \"mkdir\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#005CC5\",\n \"--shiki-dark\": \"#79B8FF\"\n },\n children: \" -p\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \" ~/dgraph\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \"docker\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \" run\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#005CC5\",\n \"--shiki-dark\": \"#79B8FF\"\n },\n children: \" -it\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#005CC5\",\n \"--shiki-dark\": \"#79B8FF\"\n },\n children: \" -p\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \" 5080:5080\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#005CC5\",\n \"--shiki-dark\": \"#79B8FF\"\n },\n children: \" -p\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \" 6080:6080\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#005CC5\",\n \"--shiki-dark\": \"#79B8FF\"\n },\n children: \" -p\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \" 8080:8080\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#005CC5\",\n \"--shiki-dark\": \"#79B8FF\"\n },\n children: \" \\\\\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#005CC5\",\n \"--shiki-dark\": \"#79B8FF\"\n },\n children: \" -p\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \" 9080:9080\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#005CC5\",\n \"--shiki-dark\": \"#79B8FF\"\n },\n children: \" -p\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \" 8000:8000\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#005CC5\",\n \"--shiki-dark\": \"#79B8FF\"\n },\n children: \" -v\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \" ~/dgraph:/dgraph\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#005CC5\",\n \"--shiki-dark\": \"#79B8FF\"\n },\n children: \" --name\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \" dgraph\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#005CC5\",\n \"--shiki-dark\": \"#79B8FF\"\n },\n children: \" \\\\\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \" dgraph/standalone:master\"\n })\n })]\n })\n }), \"\\n\", _jsx(_components.p, {\n children: \"Set your GraphQL Schema:\"\n }), \"\\n\", _jsx(_components.pre, {\n tabIndex: \"0\",\n \"data-language\": \"bash\",\n \"data-word-wrap\": \"\",\n children: _jsxs(_components.code, {\n children: [_jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \"touch\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \" schema.graphql\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \"nano\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \" schema.graphql\"\n })]\n })]\n })\n }), \"\\n\", _jsx(_components.pre, {\n tabIndex: \"0\",\n \"data-language\": \"graphql\",\n \"data-word-wrap\": \"\",\n children: _jsxs(_components.code, {\n children: [_jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"type\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#005CC5\",\n \"--shiki-dark\": \"#79B8FF\"\n },\n children: \" Product\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" {\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#E36209\",\n \"--shiki-dark\": \"#FFAB70\"\n },\n children: \" id\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \": \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#005CC5\",\n \"--shiki-dark\": \"#79B8FF\"\n },\n children: \"ID\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"!\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#E36209\",\n \"--shiki-dark\": \"#FFAB70\"\n },\n children: \" name\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \": \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#005CC5\",\n \"--shiki-dark\": \"#79B8FF\"\n },\n children: \"String\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"!\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \" @id\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#E36209\",\n \"--shiki-dark\": \"#FFAB70\"\n },\n children: \" reviews\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \": [\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#005CC5\",\n \"--shiki-dark\": \"#79B8FF\"\n },\n children: \"Review\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"] \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \"@hasInverse\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"(\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#E36209\",\n \"--shiki-dark\": \"#FFAB70\"\n },\n children: \"field\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \":\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#005CC5\",\n \"--shiki-dark\": \"#79B8FF\"\n },\n children: \" about\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \")\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"}\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: \" \"\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"type\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#005CC5\",\n \"--shiki-dark\": \"#79B8FF\"\n },\n children: \" Customer\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" {\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#E36209\",\n \"--shiki-dark\": \"#FFAB70\"\n },\n children: \" username\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \": \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#005CC5\",\n \"--shiki-dark\": \"#79B8FF\"\n },\n children: \"String\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"!\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \" @id\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#E36209\",\n \"--shiki-dark\": \"#FFAB70\"\n },\n children: \" reviews\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \": [\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#005CC5\",\n \"--shiki-dark\": \"#79B8FF\"\n },\n children: \"Review\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"] \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \"@hasInverse\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"(\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#E36209\",\n \"--shiki-dark\": \"#FFAB70\"\n },\n children: \"field\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \":\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#005CC5\",\n \"--shiki-dark\": \"#79B8FF\"\n },\n children: \" by\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \")\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"}\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: \" \"\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"type\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#005CC5\",\n \"--shiki-dark\": \"#79B8FF\"\n },\n children: \" Review\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" {\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#E36209\",\n \"--shiki-dark\": \"#FFAB70\"\n },\n children: \" id\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \": \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#005CC5\",\n \"--shiki-dark\": \"#79B8FF\"\n },\n children: \"ID\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"!\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#E36209\",\n \"--shiki-dark\": \"#FFAB70\"\n },\n children: \" about\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \": \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#005CC5\",\n \"--shiki-dark\": \"#79B8FF\"\n },\n children: \"Product\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"!\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#E36209\",\n \"--shiki-dark\": \"#FFAB70\"\n },\n children: \" by\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \": \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#005CC5\",\n \"--shiki-dark\": \"#79B8FF\"\n },\n children: \"Customer\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"!\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#E36209\",\n \"--shiki-dark\": \"#FFAB70\"\n },\n children: \" comment\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \": \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#005CC5\",\n \"--shiki-dark\": \"#79B8FF\"\n },\n children: \"String\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \" @search\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"(\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#E36209\",\n \"--shiki-dark\": \"#FFAB70\"\n },\n children: \"by\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \": [\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#005CC5\",\n \"--shiki-dark\": \"#79B8FF\"\n },\n children: \"fulltext\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"])\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#E36209\",\n \"--shiki-dark\": \"#FFAB70\"\n },\n children: \" rating\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \": \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#005CC5\",\n \"--shiki-dark\": \"#79B8FF\"\n },\n children: \"Int\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \" @search\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"}\"\n })\n })]\n })\n }), \"\\n\", _jsx(_components.pre, {\n tabIndex: \"0\",\n \"data-language\": \"bash\",\n \"data-word-wrap\": \"\",\n children: _jsx(_components.code, {\n children: _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \"curl\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#005CC5\",\n \"--shiki-dark\": \"#79B8FF\"\n },\n children: \" -X\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \" POST\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \" localhost:8080/admin/schema\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#005CC5\",\n \"--shiki-dark\": \"#79B8FF\"\n },\n children: \" --data-binary\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \" '@schema.graphql'\"\n })]\n })\n })\n }), \"\\n\", _jsxs(_components.p, {\n children: [\"Fire up your favorite GraphQL Client pointed at \", _jsx(_components.code, {\n children: \"http://localhost:8080/graphql\"\n }), \" and run mutations and queries\"]\n }), \"\\n\", _jsx(_components.pre, {\n tabIndex: \"0\",\n \"data-language\": \"graphql\",\n \"data-word-wrap\": \"\",\n children: _jsxs(_components.code, {\n children: [_jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"mutation\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" {\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#E36209\",\n \"--shiki-dark\": \"#FFAB70\"\n },\n children: \" addProduct\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"(\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#E36209\",\n \"--shiki-dark\": \"#FFAB70\"\n },\n children: \"input\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \": [{ \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \"name\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \": \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \"\\\"Dgraph\\\"\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" }, { \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \"name\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \": \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \"\\\"Dgraph Cloud\\\"\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" }]) {\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#E36209\",\n \"--shiki-dark\": \"#FFAB70\"\n },\n children: \" product\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" {\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#E36209\",\n \"--shiki-dark\": \"#FFAB70\"\n },\n children: \" id\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#E36209\",\n \"--shiki-dark\": \"#FFAB70\"\n },\n children: \" name\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" }\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" }\"\n })\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#E36209\",\n \"--shiki-dark\": \"#FFAB70\"\n },\n children: \" addCustomer\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"(\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#E36209\",\n \"--shiki-dark\": \"#FFAB70\"\n },\n children: \"input\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \": [{ \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \"username\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \": \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \"\\\"TonyStark\\\"\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" }]) {\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#E36209\",\n \"--shiki-dark\": \"#FFAB70\"\n },\n children: \" customer\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" {\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#E36209\",\n \"--shiki-dark\": \"#FFAB70\"\n },\n children: \" username\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" }\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" }\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"}\"\n })\n })]\n })\n }), \"\\n\", _jsx(_components.pre, {\n tabIndex: \"0\",\n \"data-language\": \"graphql\",\n \"data-word-wrap\": \"\",\n children: _jsxs(_components.code, {\n children: [_jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"mutation\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" {\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#E36209\",\n \"--shiki-dark\": \"#FFAB70\"\n },\n children: \" addReview\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"(\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#E36209\",\n \"--shiki-dark\": \"#FFAB70\"\n },\n children: \" input\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \": [\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" {\"\n })\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \" by\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \": { \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \"username\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \": \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \"\\\"TonyStark\\\"\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" }\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \" about\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \": { \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \"name\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \": \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \"\\\"Dgraph\\\"\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" }\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \" comment\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \": \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \"\\\"Fantastic, easy to install, worked great. Best GraphQL server available\\\"\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \" rating\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \": \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#005CC5\",\n \"--shiki-dark\": \"#79B8FF\"\n },\n children: \"10\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" }\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" ]\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" ) {\"\n })\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#E36209\",\n \"--shiki-dark\": \"#FFAB70\"\n },\n children: \" review\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" {\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#E36209\",\n \"--shiki-dark\": \"#FFAB70\"\n },\n children: \" id\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#E36209\",\n \"--shiki-dark\": \"#FFAB70\"\n },\n children: \" comment\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#E36209\",\n \"--shiki-dark\": \"#FFAB70\"\n },\n children: \" rating\"\n })\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#E36209\",\n \"--shiki-dark\": \"#FFAB70\"\n },\n children: \" by\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" {\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#E36209\",\n \"--shiki-dark\": \"#FFAB70\"\n },\n children: \" username\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" }\"\n })\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#E36209\",\n \"--shiki-dark\": \"#FFAB70\"\n },\n children: \" about\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" {\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#E36209\",\n \"--shiki-dark\": \"#FFAB70\"\n },\n children: \" id\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#E36209\",\n \"--shiki-dark\": \"#FFAB70\"\n },\n children: \" name\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" }\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" }\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" }\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"}\"\n })\n })]\n })\n }), \"\\n\", _jsx(_components.pre, {\n tabIndex: \"0\",\n \"data-language\": \"graphql\",\n \"data-word-wrap\": \"\",\n children: _jsxs(_components.code, {\n children: [_jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"query\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" {\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#E36209\",\n \"--shiki-dark\": \"#FFAB70\"\n },\n children: \" queryReview\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"(\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#E36209\",\n \"--shiki-dark\": \"#FFAB70\"\n },\n children: \" filter\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \": { \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \"comment\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \": { \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \"alloftext\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \": \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \"\\\"server easy install\\\"\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" }, \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \"rating\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \": { \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \"gt\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \": \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#005CC5\",\n \"--shiki-dark\": \"#79B8FF\"\n },\n children: \"5\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" } }\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" ) {\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#E36209\",\n \"--shiki-dark\": \"#FFAB70\"\n },\n children: \" comment\"\n })\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#E36209\",\n \"--shiki-dark\": \"#FFAB70\"\n },\n children: \" by\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" {\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#E36209\",\n \"--shiki-dark\": \"#FFAB70\"\n },\n children: \" username\"\n })\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#E36209\",\n \"--shiki-dark\": \"#FFAB70\"\n },\n children: \" reviews\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"(\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#E36209\",\n \"--shiki-dark\": \"#FFAB70\"\n },\n children: \"order\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \": { \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \"desc\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \":\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#005CC5\",\n \"--shiki-dark\": \"#79B8FF\"\n },\n children: \" rating\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" }, \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#E36209\",\n \"--shiki-dark\": \"#FFAB70\"\n },\n children: \"first\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \": \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#005CC5\",\n \"--shiki-dark\": \"#79B8FF\"\n },\n children: \"10\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \") {\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#E36209\",\n \"--shiki-dark\": \"#FFAB70\"\n },\n children: \" about\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" {\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#E36209\",\n \"--shiki-dark\": \"#FFAB70\"\n },\n children: \" name\"\n })\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#E36209\",\n \"--shiki-dark\": \"#FFAB70\"\n },\n children: \" reviews\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"(\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#E36209\",\n \"--shiki-dark\": \"#FFAB70\"\n },\n children: \"order\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \": { \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \"asc\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \":\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#005CC5\",\n \"--shiki-dark\": \"#79B8FF\"\n },\n children: \" rating\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \", \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \"first\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \": \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#005CC5\",\n \"--shiki-dark\": \"#79B8FF\"\n },\n children: \"5\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" }) {\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#E36209\",\n \"--shiki-dark\": \"#FFAB70\"\n },\n children: \" by\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" {\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#E36209\",\n \"--shiki-dark\": \"#FFAB70\"\n },\n children: \" username\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" }\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#E36209\",\n \"--shiki-dark\": \"#FFAB70\"\n },\n children: \" comment\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#E36209\",\n \"--shiki-dark\": \"#FFAB70\"\n },\n children: \" rating\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" }\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" }\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#E36209\",\n \"--shiki-dark\": \"#FFAB70\"\n },\n children: \" rating\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" }\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" }\"\n })\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#E36209\",\n \"--shiki-dark\": \"#FFAB70\"\n },\n children: \" about\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" {\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#E36209\",\n \"--shiki-dark\": \"#FFAB70\"\n },\n children: \" name\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" }\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" }\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"}\"\n })\n })]\n })\n })]\n });\n}\nreturn {\n title,\n frontMatter,\n useTOC,\n default: _createMdxContent\n};\n"},{"filePath":"./src/code/language-support/javascript/server/graphql-js.md","tags":["javascript","server"],"frontMatter":{"name":"GraphQL.js","description":"The reference implementation of the GraphQL specification, designed for running GraphQL in a Node.js environment.","url":"/graphql-js/","github":"graphql/graphql-js","npm":"graphql"},"stars":20101,"formattedStars":"20k","lastRelease":"3 months ago","license":"MIT License","compiledSource":"\"use strict\";\nconst {Fragment: _Fragment, jsx: _jsx, jsxs: _jsxs} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nconst title = \"\";\nconst frontMatter = {\n \"name\": \"GraphQL.js\",\n \"description\": \"The reference implementation of the GraphQL specification, designed for running GraphQL in a Node.js environment.\",\n \"url\": \"/graphql-js/\",\n \"github\": \"graphql/graphql-js\",\n \"npm\": \"graphql\"\n};\nfunction useTOC(props) {\n return [];\n}\nfunction _createMdxContent(props) {\n const _components = {\n code: \"code\",\n p: \"p\",\n pre: \"pre\",\n span: \"span\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsxs(_Fragment, {\n children: [_jsxs(_components.p, {\n children: [\"To run a \", _jsx(_components.code, {\n children: \"GraphQL.js\"\n }), \" hello world script from the command line:\"]\n }), \"\\n\", _jsx(_components.pre, {\n tabIndex: \"0\",\n \"data-language\": \"bash\",\n \"data-word-wrap\": \"\",\n children: _jsx(_components.code, {\n children: _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \"npm\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \" install\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \" graphql\"\n })]\n })\n })\n }), \"\\n\", _jsxs(_components.p, {\n children: [\"Then run \", _jsx(_components.code, {\n children: \"node hello.js\"\n }), \" with this code in \", _jsx(_components.code, {\n children: \"hello.js\"\n }), \":\"]\n }), \"\\n\", _jsx(_components.pre, {\n tabIndex: \"0\",\n \"data-language\": \"js\",\n \"data-word-wrap\": \"\",\n children: _jsxs(_components.code, {\n children: [_jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"var\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" { graphql, buildSchema } \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"=\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \" require\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"(\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \"\\\"graphql\\\"\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \")\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n children: \" \"\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"var\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" schema \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"=\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \" buildSchema\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"(\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \"`\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \" type Query {\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \" hello: String\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \" }\"\n })\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \"`\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \")\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n children: \" \"\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"var\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" rootValue \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"=\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" { \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \"hello\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \": () \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"=\u003e\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \" \\\"Hello world!\\\"\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" }\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n children: \" \"\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"var\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" source \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"=\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \" \\\"{ hello }\\\"\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n children: \" \"\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \"graphql\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"({ schema, source, rootValue }).\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \"then\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"(\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#E36209\",\n \"--shiki-dark\": \"#FFAB70\"\n },\n children: \"response\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \" =\u003e\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" {\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" console.\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \"log\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"(response)\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"})\"\n })\n })]\n })\n })]\n });\n}\nreturn {\n title,\n frontMatter,\n useTOC,\n default: _createMdxContent\n};\n"},{"filePath":"./src/code/language-support/javascript/client/apollo-client.md","tags":["javascript","client"],"frontMatter":{"name":"Apollo Client","description":"A powerful JavaScript GraphQL client, designed to work well with React, React Native, Angular 2, or just plain JavaScript.","url":"http://apollographql.com/client/","github":"apollographql/apollo-client","npm":"@apollo/client"},"stars":19390,"formattedStars":"19k","lastRelease":"5 days ago","license":"MIT License"},{"filePath":"./src/code/language-support/javascript/client/relay.md","tags":["javascript","client"],"frontMatter":{"name":"Relay","description":"Facebook's framework for building React applications that talk to a GraphQL backend.","url":"https://facebook.github.io/relay/","github":"facebook/relay","npm":"react-relay"},"stars":18414,"formattedStars":"18k","lastRelease":"5 days ago","license":"MIT License","compiledSource":"\"use strict\";\nconst {Fragment: _Fragment, jsx: _jsx, jsxs: _jsxs} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nconst title = \"\";\nconst frontMatter = {\n \"name\": \"Relay\",\n \"description\": \"Facebook's framework for building React applications that talk to a GraphQL backend.\",\n \"url\": \"https://facebook.github.io/relay/\",\n \"github\": \"facebook/relay\",\n \"npm\": \"react-relay\"\n};\nfunction useTOC(props) {\n return [];\n}\nfunction _createMdxContent(props) {\n const _components = {\n a: \"a\",\n li: \"li\",\n p: \"p\",\n strong: \"strong\",\n ul: \"ul\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsxs(_Fragment, {\n children: [_jsx(_components.p, {\n children: \"Relay is a JavaScript framework for building data-driven React applications.\"\n }), \"\\n\", _jsxs(_components.ul, {\n children: [\"\\n\", _jsxs(_components.li, {\n children: [_jsx(_components.strong, {\n children: \"Declarative:\"\n }), \" Never again communicate with your data store using an imperative API. Simply declare your data requirements using GraphQL and let Relay figure out how and when to fetch your data.\"]\n }), \"\\n\", _jsxs(_components.li, {\n children: [_jsx(_components.strong, {\n children: \"Colocation:\"\n }), \" Queries live next to the views that rely on them, so you can easily reason about your app. Relay aggregates queries into efficient network requests to fetch only what you need.\"]\n }), \"\\n\", _jsxs(_components.li, {\n children: [_jsx(_components.strong, {\n children: \"Mutations:\"\n }), \" Relay lets you mutate data on the client and server using GraphQL mutations, and offers automatic data consistency, optimistic updates, and error handling.\"]\n }), \"\\n\"]\n }), \"\\n\", _jsxs(_components.p, {\n children: [_jsx(_components.a, {\n href: \"https://relay.dev/docs/en/introduction-to-relay\",\n children: \"See how to use Relay in your own project\"\n }), \".\"]\n })]\n });\n}\nreturn {\n title,\n frontMatter,\n useTOC,\n default: _createMdxContent\n};\n"},{"filePath":"./src/code/language-support/javascript/tools/graphiql.md","tags":["javascript","tools"],"frontMatter":{"name":"GraphiQL","description":"An interactive in-browser GraphQL IDE.","github":"graphql/graphiql","npm":"graphiql"},"stars":16120,"formattedStars":"16k","lastRelease":"4 days ago","license":"MIT License"},{"filePath":"./src/code/services/apisix.md","tags":["services"],"frontMatter":{"name":"Apache APISIX","description":"Apache APISIX is a dynamic, real-time, high-performance API gateway providing rich traffic management features such as load balancing, dynamic upstream, canary release, observability, etc. As a cloud-native API gateway, Apache APISIX already can support GraphQL syntax at the beginning of its design. Efficiently matching GraphQL statements carried in requests can filter out abnormal traffic to further ensure security. For more information, please visit [How to Use GraphQL with API Gateway Apache APISIX](https://apisix.apache.org/blog/2022/03/02/apisix-integration-graphql-plugin/)","url":"https://apisix.apache.org/","github":"apache/apisix"},"stars":14553,"formattedStars":"15k","lastRelease":"1 month ago","license":"Apache License 2.0"},{"filePath":"./src/code/language-support/javascript/server/apollo-server.md","tags":["javascript","server"],"frontMatter":{"name":"Apollo Server","description":"A GraphQL server from Apollo that works with any Node.js HTTP framework","url":"https://www.apollographql.com/docs/apollo-server/","github":"apollographql/apollo-server","npm":"@apollo/server"},"stars":13804,"formattedStars":"14k","lastRelease":"3 weeks ago","license":"MIT License","compiledSource":"\"use strict\";\nconst {Fragment: _Fragment, jsx: _jsx, jsxs: _jsxs} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nconst title = \"\";\nconst frontMatter = {\n \"name\": \"Apollo Server\",\n \"description\": \"A GraphQL server from Apollo that works with any Node.js HTTP framework\",\n \"url\": \"https://www.apollographql.com/docs/apollo-server/\",\n \"github\": \"apollographql/apollo-server\",\n \"npm\": \"@apollo/server\"\n};\nfunction useTOC(props) {\n return [];\n}\nfunction _createMdxContent(props) {\n const _components = {\n a: \"a\",\n code: \"code\",\n p: \"p\",\n pre: \"pre\",\n span: \"span\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsxs(_Fragment, {\n children: [_jsx(_components.p, {\n children: \"To run a hello world server with Apollo Server:\"\n }), \"\\n\", _jsx(_components.pre, {\n tabIndex: \"0\",\n \"data-language\": \"bash\",\n \"data-word-wrap\": \"\",\n children: _jsx(_components.code, {\n children: _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \"npm\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \" install\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \" @apollo/server\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \" graphql\"\n })]\n })\n })\n }), \"\\n\", _jsxs(_components.p, {\n children: [\"Then run \", _jsx(_components.code, {\n children: \"node server.js\"\n }), \" with this code in \", _jsx(_components.code, {\n children: \"server.js\"\n }), \":\"]\n }), \"\\n\", _jsx(_components.pre, {\n tabIndex: \"0\",\n \"data-language\": \"js\",\n \"data-word-wrap\": \"\",\n children: _jsxs(_components.code, {\n children: [_jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"import\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" { ApolloServer } \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"from\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \" \\\"@apollo/server\\\"\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"import\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" { startStandaloneServer } \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"from\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \" \\\"@apollo/server/standalone\\\"\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n children: \" \"\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"const\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#005CC5\",\n \"--shiki-dark\": \"#79B8FF\"\n },\n children: \" server\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \" =\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \" new\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \" ApolloServer\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"({\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" typeDefs,\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" resolvers,\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"})\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: \" \"\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"const\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" { \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#005CC5\",\n \"--shiki-dark\": \"#79B8FF\"\n },\n children: \"url\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" } \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"=\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \" await\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \" startStandaloneServer\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"(server)\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n children: \" \"\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"console.\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \"log\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"(\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \"`🚀 Server ready at ${\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"url\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \"}`\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \")\"\n })]\n })]\n })\n }), \"\\n\", _jsxs(_components.p, {\n children: [\"Apollo Server has a built in standalone HTTP server and middleware for Express, and has an framework integration API that supports all \", _jsx(_components.a, {\n href: \"https://www.apollographql.com/docs/apollo-server/integrations/integration-index\",\n children: \"Node.js HTTP server frameworks and serverless environments\"\n }), \" via community integrations.\"]\n }), \"\\n\", _jsxs(_components.p, {\n children: [\"Apollo Server has a \", _jsx(_components.a, {\n href: \"https://www.apollographql.com/docs/apollo-server/integrations/plugins\",\n children: \"plugin API\"\n }), \", integration with Apollo Studio, and performance and security features such as \", _jsx(_components.a, {\n href: \"https://www.apollographql.com/docs/apollo-server/performance/caching/\",\n children: \"caching\"\n }), \", \", _jsx(_components.a, {\n href: \"https://www.apollographql.com/docs/apollo-server/performance/apq/\",\n children: \"automatic persisted queries\"\n }), \", and \", _jsx(_components.a, {\n href: \"https://www.apollographql.com/docs/apollo-server/security/cors#preventing-cross-site-request-forgery-csrf\",\n children: \"CSRF prevention\"\n }), \".\"]\n })]\n });\n}\nreturn {\n title,\n frontMatter,\n useTOC,\n default: _createMdxContent\n};\n"},{"filePath":"./src/code/language-support/javascript/tools/postgraphile.md","tags":["javascript","tools"],"frontMatter":{"name":"Postgraphile","description":"builds a powerful, extensible and performant GraphQL API from a PostgreSQL schema in seconds; saving you weeks if not months of development time.","url":"https://www.graphile.org/postgraphile","github":"graphile/postgraphile","npm":"postgraphile"},"stars":12621,"formattedStars":"13k","lastRelease":"1 year ago","license":"Other"},{"filePath":"./src/code/tools/quicktype/general/quicktype.md","tags":["tools","general"],"frontMatter":{"name":"quicktype","description":"Generate types for GraphQL queries in TypeScript, Swift, golang, C#, C++, and more.","url":"https://quicktype.io/","github":"glideapps/quicktype","npm":"quicktype"},"stars":12485,"formattedStars":"12k","lastRelease":"","license":"Apache License 2.0"},{"filePath":"./src/code/language-support/javascript/tools/graphql-code-generator.md","tags":["javascript","tools"],"frontMatter":{"name":"GraphQL Code Generator","description":"GraphQL code generator with flexible support for custom plugins and templates like Typescript (frontend and backend), React Hooks, resolvers signatures and more.","url":"https://graphql-code-generator.com","github":"dotansimha/graphql-code-generator","npm":"@graphql-codegen/cli"},"stars":10863,"formattedStars":"11k","lastRelease":"3 days ago","license":"MIT License"},{"filePath":"./src/code/tools/graphql-code-generator/general/graphql-code-generator.md","tags":["tools","general"],"frontMatter":{"name":"GraphQL Code Generator","description":"GraphQL code generator with flexible support for custom plugins and templates like Typescript (frontend and backend), React Hooks, resolvers signatures and more.","url":"https://graphql-code-generator.com","github":"dotansimha/graphql-code-generator","npm":"@graphql-codegen/cli"},"stars":10863,"formattedStars":"11k","lastRelease":"3 days ago","license":"MIT License"},{"filePath":"./src/code/language-support/go/server/99designs-gqlgen.md","tags":["go","server"],"frontMatter":{"name":"99designs/gqlgen","description":"Go generate based graphql server library.","github":"99designs/gqlgen"},"stars":9987,"formattedStars":"10k","lastRelease":"2 days ago","license":"MIT License"},{"filePath":"./src/code/language-support/go/server/graphql-go.md","tags":["go","server"],"frontMatter":{"name":"graphql-go","description":"An implementation of GraphQL for Go / Golang.","github":"graphql-go/graphql"},"stars":9942,"formattedStars":"10k","lastRelease":"1 year ago","license":"MIT License"},{"filePath":"./src/code/services/tyk.md","tags":["services"],"frontMatter":{"name":"Tyk","description":"Tyk is a lightweight Open Source API Management Gateway that has built a Full API Life-Cycle Management around GraphQL with its own GraphQL engine that is written in Golang. Tyk supports schema stitching of multiple GraphQL and/or REST APIs through [Universal Data Graph (UDG)](https://tyk.io/docs/universal-data-graph/) as well as [GraphQL Federation](https://tyk.io/docs/getting-started/key-concepts/graphql-federation/) and [GraphQL Subscription](https://tyk.io/docs/getting-started/key-concepts/graphql-subscriptions/).","url":"https://tyk.io/","github":"TykTechnologies/tyk"},"stars":9747,"formattedStars":"10k","lastRelease":"5 days ago","license":"Other"},{"filePath":"./src/code/language-support/javascript/client/aws-amplify.md","tags":["javascript","client"],"frontMatter":{"name":"AWS Amplify","description":"A JavaScript library for application development using cloud services, which supports GraphQL backend and React components for working with GraphQL data.","url":"https://docs.amplify.aws/","github":"aws-amplify/amplify-js","npm":"aws-amplify"},"stars":9438,"formattedStars":"9k","lastRelease":"20 hours ago","license":"Apache License 2.0"},{"filePath":"./src/code/language-support/php/server/api-platform.md","tags":["php","server"],"frontMatter":{"name":"API Platform","description":"API Platform is a fully-featured, flexible and extensible API framework built on top of Symfony.","url":"https://api-platform.com","github":"api-platform/api-platform"},"stars":8709,"formattedStars":"9k","lastRelease":"1 day ago","license":"MIT License","compiledSource":"\"use strict\";\nconst {Fragment: _Fragment, jsx: _jsx, jsxs: _jsxs} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nconst title = \"\";\nconst frontMatter = {\n \"name\": \"API Platform\",\n \"description\": \"API Platform is a fully-featured, flexible and extensible API framework built on top of Symfony.\",\n \"url\": \"https://api-platform.com\",\n \"github\": \"api-platform/api-platform\"\n};\nfunction useTOC(props) {\n return [];\n}\nfunction _createMdxContent(props) {\n const _components = {\n code: \"code\",\n p: \"p\",\n pre: \"pre\",\n span: \"span\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsxs(_Fragment, {\n children: [_jsx(_components.p, {\n children: \"The following class is enough to create both a Relay-compatible GraphQL server and a hypermedia API supporting modern REST formats (JSON-LD, JSONAPI…):\"\n }), \"\\n\", _jsx(_components.pre, {\n tabIndex: \"0\",\n \"data-language\": \"php\",\n \"data-word-wrap\": \"\",\n children: _jsxs(_components.code, {\n children: [_jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"\u003c?\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#005CC5\",\n \"--shiki-dark\": \"#79B8FF\"\n },\n children: \"php\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n children: \" \"\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"namespace\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \" AppEntity\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \";\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n children: \" \"\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"use\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#005CC5\",\n \"--shiki-dark\": \"#79B8FF\"\n },\n children: \" ApiPlatformCoreAnnotationApiResource\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \";\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"use\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#005CC5\",\n \"--shiki-dark\": \"#79B8FF\"\n },\n children: \" DoctrineORMMapping\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \" as\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \" ORM\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \";\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n children: \" \"\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6A737D\",\n \"--shiki-dark\": \"#6A737D\"\n },\n children: \"/**\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6A737D\",\n \"--shiki-dark\": \"#6A737D\"\n },\n children: \" * Greet someone!\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6A737D\",\n \"--shiki-dark\": \"#6A737D\"\n },\n children: \" *\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6A737D\",\n \"--shiki-dark\": \"#6A737D\"\n },\n children: \" * @ApiResource\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6A737D\",\n \"--shiki-dark\": \"#6A737D\"\n },\n children: \" * @ORMEntity\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6A737D\",\n \"--shiki-dark\": \"#6A737D\"\n },\n children: \" */\"\n })\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"class\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \" Greeting\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"{\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6A737D\",\n \"--shiki-dark\": \"#6A737D\"\n },\n children: \" /**\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6A737D\",\n \"--shiki-dark\": \"#6A737D\"\n },\n children: \" * @ORMId\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6A737D\",\n \"--shiki-dark\": \"#6A737D\"\n },\n children: \" * @ORMColumn(type=\\\"guid\\\")\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6A737D\",\n \"--shiki-dark\": \"#6A737D\"\n },\n children: \" */\"\n })\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \" public\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" $id;\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n children: \" \"\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6A737D\",\n \"--shiki-dark\": \"#6A737D\"\n },\n children: \" /**\"\n })\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6A737D\",\n \"--shiki-dark\": \"#6A737D\"\n },\n children: \" * \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"@var\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \" string\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6A737D\",\n \"--shiki-dark\": \"#6A737D\"\n },\n children: \" Your nice message\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6A737D\",\n \"--shiki-dark\": \"#6A737D\"\n },\n children: \" *\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6A737D\",\n \"--shiki-dark\": \"#6A737D\"\n },\n children: \" * @ORMColumn\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6A737D\",\n \"--shiki-dark\": \"#6A737D\"\n },\n children: \" */\"\n })\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \" public\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" $hello;\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"}\"\n })\n })]\n })\n }), \"\\n\", _jsx(_components.p, {\n children: \"Other API Platform features include data validation, authentication, authorization, deprecations, cache and GraphiQL integration.\"\n })]\n });\n}\nreturn {\n title,\n frontMatter,\n useTOC,\n default: _createMdxContent\n};\n"},{"filePath":"./src/code/language-support/javascript/client/urql.md","tags":["javascript","client"],"frontMatter":{"name":"urql","description":"A highly customizable and versatile GraphQL client with which you add on features like normalized caching as you grow.","url":"https://formidable.com/open-source/urql/docs/","github":"FormidableLabs/urql","npm":"@urql/core"},"stars":8678,"formattedStars":"9k","lastRelease":"2 weeks ago","license":"MIT License","compiledSource":"\"use strict\";\nconst {Fragment: _Fragment, jsx: _jsx, jsxs: _jsxs} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nconst title = \"\";\nconst frontMatter = {\n \"name\": \"urql\",\n \"description\": \"A highly customizable and versatile GraphQL client with which you add on features like normalized caching as you grow.\",\n \"url\": \"https://formidable.com/open-source/urql/docs/\",\n \"github\": \"FormidableLabs/urql\",\n \"npm\": \"@urql/core\"\n};\nfunction useTOC(props) {\n return [];\n}\nfunction _createMdxContent(props) {\n const _components = {\n code: \"code\",\n li: \"li\",\n p: \"p\",\n ul: \"ul\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsxs(_Fragment, {\n children: [_jsxs(_components.p, {\n children: [_jsx(_components.code, {\n children: \"urql\"\n }), \" is a GraphQL client that exposes a set of helpers for several frameworks.\\nIt’s built to be highly customisable and versatile so you can take it from getting started with your first GraphQL project\\nall the way to building complex apps and experimenting with GraphQL clients.\"]\n }), \"\\n\", _jsxs(_components.ul, {\n children: [\"\\n\", _jsx(_components.li, {\n children: \"Currently supports React, React Native, Preact, Svelte, and Vue, and is supported by GraphQL Code Generator.\"\n }), \"\\n\", _jsxs(_components.li, {\n children: [\"Logical yet simple default behaviour and document caching, and normalized caching via \", _jsx(_components.code, {\n children: \"@urql/exchange-graphcache\"\n })]\n }), \"\\n\", _jsx(_components.li, {\n children: \"Fully customizable behaviour via “exchanges” (addon packages)\"\n }), \"\\n\"]\n })]\n });\n}\nreturn {\n title,\n frontMatter,\n useTOC,\n default: _createMdxContent\n};\n"},{"filePath":"./src/code/language-support/javascript/server/graphql-yoga.md","tags":["javascript","server"],"frontMatter":{"name":"graphql-yoga","description":"GraphQL Yoga is a batteries-included cross-platform GraphQL over HTTP spec-compliant GraphQL Server using Envelop and GraphQL Tools.","github":"dotansimha/graphql-yoga","npm":"graphql-yoga"},"stars":8257,"formattedStars":"8k","lastRelease":"6 days ago","license":"MIT License","compiledSource":"\"use strict\";\nconst {Fragment: _Fragment, jsx: _jsx, jsxs: _jsxs} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nconst title = \"\";\nconst frontMatter = {\n \"name\": \"graphql-yoga\",\n \"description\": \"GraphQL Yoga is a batteries-included cross-platform GraphQL over HTTP spec-compliant GraphQL Server using Envelop and GraphQL Tools.\",\n \"github\": \"dotansimha/graphql-yoga\",\n \"npm\": \"graphql-yoga\"\n};\nfunction useTOC(props) {\n return [];\n}\nfunction _createMdxContent(props) {\n const _components = {\n a: \"a\",\n code: \"code\",\n li: \"li\",\n p: \"p\",\n pre: \"pre\",\n span: \"span\",\n ul: \"ul\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsxs(_Fragment, {\n children: [_jsxs(_components.ul, {\n children: [\"\\n\", _jsxs(_components.li, {\n children: [\"Built around the Fetch API \", _jsx(_components.code, {\n children: \"Request\"\n }), \" \u0026 \", _jsx(_components.code, {\n children: \"Response\"\n }), \" objects\"]\n }), \"\\n\", _jsx(_components.li, {\n children: \"GraphQL over HTTP compliant\"\n }), \"\\n\", _jsx(_components.li, {\n children: \"Extensible GraphQL Engine powered by Envelop\"\n }), \"\\n\", _jsx(_components.li, {\n children: \"GraphQL Subscriptions over HTTP\"\n }), \"\\n\", _jsx(_components.li, {\n children: \"Handle file uploads with GraphQL\"\n }), \"\\n\", _jsx(_components.li, {\n children: \"Integrates with AWS Lambda, Cloudflare Workers, Deno, Express, Next.js, SvelteKit, and more.\"\n }), \"\\n\"]\n }), \"\\n\", _jsx(_components.p, {\n children: \"To run a hello world server with graphql-yoga:\"\n }), \"\\n\", _jsx(_components.pre, {\n tabIndex: \"0\",\n \"data-language\": \"bash\",\n \"data-word-wrap\": \"\",\n children: _jsx(_components.code, {\n children: _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \"npm\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \" install\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \" graphql-yoga\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \" graphql\"\n })]\n })\n })\n }), \"\\n\", _jsxs(_components.p, {\n children: [\"Then create a server using the \", _jsx(_components.code, {\n children: \"createServer\"\n }), \" import:\"]\n }), \"\\n\", _jsx(_components.pre, {\n tabIndex: \"0\",\n \"data-language\": \"js\",\n \"data-word-wrap\": \"\",\n children: _jsxs(_components.code, {\n children: [_jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"import\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" { createServer } \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"from\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \" \\\"http\\\"\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"import\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" { createSchema, createYoga } \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"from\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \" \\\"graphql-yoga\\\"\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n children: \" \"\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \"createServer\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"(\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \" createYoga\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"({\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" schema: \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \"createSchema\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"({\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" typeDefs: \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6A737D\",\n \"--shiki-dark\": \"#6A737D\"\n },\n children: \"/* GraphQL */\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \" `\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \" type Query {\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \" hello: String\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \" }\"\n })\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \" `\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \",\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" resolvers: {\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" Query: {\"\n })\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \" hello\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \": () \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"=\u003e\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \" \\\"Hello Hello Hello\\\"\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \",\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" },\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" },\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" }),\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" }),\"\n })\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \").\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \"listen\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"(\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#005CC5\",\n \"--shiki-dark\": \"#79B8FF\"\n },\n children: \"4000\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \", () \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"=\u003e\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" {\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" console.\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \"info\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"(\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \"\\\"GraphQL Yoga is listening on http://localhost:4000/graphql\\\"\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \")\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"})\"\n })\n })]\n })\n }), \"\\n\", _jsxs(_components.p, {\n children: [\"Depending on your deployment target, you may need to use an additional library. See the \", _jsx(_components.a, {\n href: \"https://www.graphql-yoga.com/docs\",\n children: \"documentation\"\n }), \" for further details.\"]\n })]\n });\n}\nreturn {\n title,\n frontMatter,\n useTOC,\n default: _createMdxContent\n};\n"},{"filePath":"./src/code/language-support/python/server/graphene.md","tags":["python","server"],"frontMatter":{"name":"Graphene","description":"A Python library for building GraphQL APIs.","url":"http://graphene-python.org/","github":"graphql-python/graphene"},"stars":8100,"formattedStars":"8k","lastRelease":"2 weeks ago","license":"MIT License","compiledSource":"\"use strict\";\nconst {Fragment: _Fragment, jsx: _jsx, jsxs: _jsxs} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nconst title = \"\";\nconst frontMatter = {\n \"name\": \"Graphene\",\n \"description\": \"A Python library for building GraphQL APIs.\",\n \"url\": \"http://graphene-python.org/\",\n \"github\": \"graphql-python/graphene\"\n};\nfunction useTOC(props) {\n return [];\n}\nfunction _createMdxContent(props) {\n const _components = {\n a: \"a\",\n code: \"code\",\n p: \"p\",\n pre: \"pre\",\n span: \"span\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsxs(_Fragment, {\n children: [_jsx(_components.p, {\n children: \"To run a Graphene hello world script:\"\n }), \"\\n\", _jsx(_components.pre, {\n tabIndex: \"0\",\n \"data-language\": \"bash\",\n \"data-word-wrap\": \"\",\n children: _jsx(_components.code, {\n children: _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \"pip\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \" install\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \" graphene\"\n })]\n })\n })\n }), \"\\n\", _jsxs(_components.p, {\n children: [\"Then run \", _jsx(_components.code, {\n children: \"python hello.py\"\n }), \" with this code in \", _jsx(_components.code, {\n children: \"hello.py\"\n }), \":\"]\n }), \"\\n\", _jsx(_components.pre, {\n tabIndex: \"0\",\n \"data-language\": \"python\",\n \"data-word-wrap\": \"\",\n children: _jsxs(_components.code, {\n children: [_jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"import\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" graphene\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n children: \" \"\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"class\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \" Query\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"(\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \"graphene\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \".\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \"ObjectType\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"):\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" hello \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"=\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" graphene.String(\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#E36209\",\n \"--shiki-dark\": \"#FFAB70\"\n },\n children: \"name\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"=\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"graphene.String(\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#E36209\",\n \"--shiki-dark\": \"#FFAB70\"\n },\n children: \"default_value\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"=\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \"\\\"World\\\"\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"))\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n children: \" \"\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \" def\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \" resolve_hello\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"(self, info, name):\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \" return\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \" 'Hello '\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \" +\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" name\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n children: \" \"\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"schema \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"=\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" graphene.Schema(\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#E36209\",\n \"--shiki-dark\": \"#FFAB70\"\n },\n children: \"query\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"=\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"Query)\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"result \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"=\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" schema.execute(\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \"'{ hello }'\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \")\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#005CC5\",\n \"--shiki-dark\": \"#79B8FF\"\n },\n children: \"print\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"(result.data[\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \"'hello'\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"]) \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6A737D\",\n \"--shiki-dark\": \"#6A737D\"\n },\n children: \"# \\\"Hello World\\\"\"\n })]\n })]\n })\n }), \"\\n\", _jsxs(_components.p, {\n children: [\"There are also nice bindings for \", _jsx(_components.a, {\n href: \"https://facebook.github.io/relay/\",\n children: \"Relay\"\n }), \", Django, SQLAlchemy, and Google App Engine.\"]\n })]\n });\n}\nreturn {\n title,\n frontMatter,\n useTOC,\n default: _createMdxContent\n};\n"},{"filePath":"./src/code/services/webiny.md","tags":["services"],"frontMatter":{"name":"Webiny","description":"Webiny allows you to quickly build GraphQL APIs on top of AWS Lambda and DynamoDB with built-in scaffolds. Webiny also includes a ready-made headless GraphQL CMS for a no-code experience.","url":"https://www.webiny.com","github":"webiny/webiny-js"},"stars":7412,"formattedStars":"7k","lastRelease":"1 day ago","license":"Other"},{"filePath":"./src/code/language-support/java-kotlin-android/server/graphql-java.md","tags":["java-kotlin-android","server"],"frontMatter":{"name":"graphql-java","description":"A Java library for building GraphQL APIs.","github":"graphql-java/graphql-java"},"stars":6122,"formattedStars":"6k","lastRelease":"2 months ago","license":"MIT License","compiledSource":"\"use strict\";\nconst {Fragment: _Fragment, jsx: _jsx, jsxs: _jsxs} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nconst title = \"\";\nconst frontMatter = {\n \"name\": \"graphql-java\",\n \"description\": \"A Java library for building GraphQL APIs.\",\n \"github\": \"graphql-java/graphql-java\"\n};\nfunction useTOC(props) {\n return [];\n}\nfunction _createMdxContent(props) {\n const _components = {\n a: \"a\",\n code: \"code\",\n p: \"p\",\n pre: \"pre\",\n span: \"span\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsxs(_Fragment, {\n children: [_jsxs(_components.p, {\n children: [\"See the \", _jsx(_components.a, {\n href: \"https://www.graphql-java.com/tutorials/getting-started-with-spring-boot\",\n children: \"Getting Started tutorial\"\n }), \" on the GraphQL Java website.\"]\n }), \"\\n\", _jsxs(_components.p, {\n children: [\"Code that executes a hello world GraphQL query with \", _jsx(_components.code, {\n children: \"graphql-java\"\n }), \":\"]\n }), \"\\n\", _jsx(_components.pre, {\n tabIndex: \"0\",\n \"data-language\": \"java\",\n \"data-word-wrap\": \"\",\n children: _jsxs(_components.code, {\n children: [_jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"import\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" graphql.ExecutionResult;\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"import\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" graphql.GraphQL;\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"import\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" graphql.schema.GraphQLSchema;\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"import\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" graphql.schema.StaticDataFetcher;\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"import\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" graphql.schema.idl.RuntimeWiring;\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"import\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" graphql.schema.idl.SchemaGenerator;\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"import\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" graphql.schema.idl.SchemaParser;\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"import\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" graphql.schema.idl.TypeDefinitionRegistry;\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n children: \" \"\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"import\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \" static\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" graphql.schema.idl.RuntimeWiring.newRuntimeWiring;\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n children: \" \"\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"public\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \" class\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \" HelloWorld\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" {\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n children: \" \"\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \" public\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \" static\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \" void\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \" main\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"(\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"String\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"[] \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#E36209\",\n \"--shiki-dark\": \"#FFAB70\"\n },\n children: \"args\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \") {\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" String schema \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"=\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \" \\\"type Query{hello: String}\\\"\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \";\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n children: \" \"\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" SchemaParser schemaParser \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"=\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \" new\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \" SchemaParser\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"();\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" TypeDefinitionRegistry typeDefinitionRegistry \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"=\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" schemaParser.\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \"parse\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"(schema);\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n children: \" \"\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" RuntimeWiring runtimeWiring \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"=\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \" newRuntimeWiring\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"()\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" .\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \"type\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"(\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \"\\\"Query\\\"\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \", builder \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"-\u003e\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" builder.\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \"dataFetcher\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"(\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \"\\\"hello\\\"\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \", \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"new\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \" StaticDataFetcher\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"(\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \"\\\"world\\\"\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \")))\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" .\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \"build\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"();\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n children: \" \"\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" SchemaGenerator schemaGenerator \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"=\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \" new\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \" SchemaGenerator\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"();\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" GraphQLSchema graphQLSchema \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"=\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" schemaGenerator.\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \"makeExecutableSchema\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"(typeDefinitionRegistry, runtimeWiring);\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n children: \" \"\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" GraphQL build \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"=\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" GraphQL.\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \"newGraphQL\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"(graphQLSchema).\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \"build\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"();\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" ExecutionResult executionResult \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"=\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" build.\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \"execute\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"(\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \"\\\"{hello}\\\"\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \");\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n children: \" \"\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" System.out.\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \"println\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"(executionResult.\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \"getData\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"().\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \"toString\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"());\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6A737D\",\n \"--shiki-dark\": \"#6A737D\"\n },\n children: \" // Prints: {hello=world}\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" }\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"}\"\n })\n })]\n })\n }), \"\\n\", _jsxs(_components.p, {\n children: [\"See \", _jsx(_components.a, {\n href: \"https://www.graphql-java.com/documentation/master/getting-started\",\n children: \"the graphql-java docs\"\n }), \" for further information.\"]\n })]\n });\n}\nreturn {\n title,\n frontMatter,\n useTOC,\n default: _createMdxContent\n};\n"},{"filePath":"./src/code/language-support/javascript/client/graphql-request.md","tags":["javascript","client"],"frontMatter":{"name":"GraphQL Request","description":"A simple and flexible JavaScript GraphQL client that works in all JavaScript environments (the browser, Node.js, and React Native) - basically a lightweight wrapper around `fetch`.","github":"jasonkuhrt/graphql-request","npm":"graphql-request"},"stars":5886,"formattedStars":"6k","lastRelease":"4 years ago","license":"MIT License"},{"filePath":"./src/code/language-support/c-net/server/graphql-dotnet.md","tags":["c-net","server"],"frontMatter":{"name":"graphql-dotnet","description":"GraphQL for .NET","github":"graphql-dotnet/graphql-dotnet"},"stars":5872,"formattedStars":"6k","lastRelease":"1 month ago","license":"MIT License","compiledSource":"\"use strict\";\nconst {jsx: _jsx, jsxs: _jsxs} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nconst title = \"\";\nconst frontMatter = {\n \"name\": \"graphql-dotnet\",\n \"description\": \"GraphQL for .NET\",\n \"github\": \"graphql-dotnet/graphql-dotnet\"\n};\nfunction useTOC(props) {\n return [];\n}\nfunction _createMdxContent(props) {\n const _components = {\n code: \"code\",\n pre: \"pre\",\n span: \"span\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.pre, {\n tabIndex: \"0\",\n \"data-language\": \"csharp\",\n \"data-word-wrap\": \"\",\n children: _jsxs(_components.code, {\n children: [_jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"using\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \" System\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \";\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"using\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \" System\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \".\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \"Threading\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \".\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \"Tasks\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \";\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"using\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \" GraphQL\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \";\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"using\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \" GraphQL\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \".\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \"Types\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \";\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"using\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \" GraphQL\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \".\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \"SystemTextJson\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"; \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6A737D\",\n \"--shiki-dark\": \"#6A737D\"\n },\n children: \"// First add PackageReference to GraphQL.SystemTextJson\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n children: \" \"\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"public\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \" class\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \" Program\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"{\"\n })\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \" public\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \" static\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \" async\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \" Task\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \" Main\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"(\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"string\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"[] \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \"args\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \")\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" {\"\n })\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \" var\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \" schema\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \" =\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" Schema.\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \"For\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"(\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \"@\\\"\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \" type Query {\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \" hello: String\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \" }\"\n })\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \" \\\"\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \");\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n children: \" \"\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \" var\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \" json\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \" =\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \" await\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" schema.\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \"ExecuteAsync\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"(\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \"_\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \" =\u003e\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" {\"\n })\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" _.Query \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"=\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \" \\\"{ hello }\\\"\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \";\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" _.Root \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"=\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \" new\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" { Hello \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"=\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \" \\\"Hello World!\\\"\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" };\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" });\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: \" \"\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" Console.\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \"WriteLine\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"(json);\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" }\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"}\"\n })\n })]\n })\n });\n}\nreturn {\n title,\n frontMatter,\n useTOC,\n default: _createMdxContent\n};\n"},{"filePath":"./src/code/services/postman.md","tags":["services"],"frontMatter":{"name":"Postman","description":"A robust multi-protocol API client with features like API scripting, automation, collaborative workspaces, and comprehensive support for testing and developing GraphQL APIs.","url":"https://www.postman.com/product/graphql-client/","github":"postmanlabs/postman-app-support"},"stars":5860,"formattedStars":"6k","lastRelease":"","license":"Unknown"},{"filePath":"./src/code/language-support/rust/server/graphql-rust-juniper.md","tags":["rust","server"],"frontMatter":{"name":"graphql-rust/juniper","description":"GraphQL server library for Rust","github":"graphql-rust/juniper"},"stars":5718,"formattedStars":"6k","lastRelease":"4 weeks ago","license":"Other"},{"filePath":"./src/code/language-support/ruby/server/graphql-ruby.md","tags":["ruby","server"],"frontMatter":{"name":"graphql-ruby","description":"A Ruby library for building GraphQL APIs.","github":"rmosolgo/graphql-ruby","gem":"graphql"},"stars":5381,"formattedStars":"5k","lastRelease":"3 years ago","license":"MIT License","compiledSource":"\"use strict\";\nconst {Fragment: _Fragment, jsx: _jsx, jsxs: _jsxs} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nconst title = \"\";\nconst frontMatter = {\n \"name\": \"graphql-ruby\",\n \"description\": \"A Ruby library for building GraphQL APIs.\",\n \"github\": \"rmosolgo/graphql-ruby\",\n \"gem\": \"graphql\"\n};\nfunction useTOC(props) {\n return [];\n}\nfunction _createMdxContent(props) {\n const _components = {\n code: \"code\",\n p: \"p\",\n pre: \"pre\",\n span: \"span\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsxs(_Fragment, {\n children: [_jsxs(_components.p, {\n children: [\"To run a hello world script with \", _jsx(_components.code, {\n children: \"graphql-ruby\"\n }), \":\"]\n }), \"\\n\", _jsx(_components.pre, {\n tabIndex: \"0\",\n \"data-language\": \"bash\",\n \"data-word-wrap\": \"\",\n children: _jsx(_components.code, {\n children: _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \"gem\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \" install\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \" graphql\"\n })]\n })\n })\n }), \"\\n\", _jsxs(_components.p, {\n children: [\"Then run \", _jsx(_components.code, {\n children: \"ruby hello.rb\"\n }), \" with this code in \", _jsx(_components.code, {\n children: \"hello.rb\"\n }), \":\"]\n }), \"\\n\", _jsx(_components.pre, {\n tabIndex: \"0\",\n \"data-language\": \"ruby\",\n \"data-word-wrap\": \"\",\n children: _jsxs(_components.code, {\n children: [_jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"require\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \" 'graphql'\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n children: \" \"\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"class\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \" QueryType\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \" \u003c\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \" GraphQL::Schema::Object\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" field \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#005CC5\",\n \"--shiki-dark\": \"#79B8FF\"\n },\n children: \":hello\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \", \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#005CC5\",\n \"--shiki-dark\": \"#79B8FF\"\n },\n children: \"String\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n children: \" \"\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \" def\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \" hello\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \" \\\"Hello world!\\\"\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \" end\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"end\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: \" \"\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"class\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \" Schema\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \" \u003c\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \" GraphQL::Schema\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" query \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#005CC5\",\n \"--shiki-dark\": \"#79B8FF\"\n },\n children: \"QueryType\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"end\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: \" \"\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#005CC5\",\n \"--shiki-dark\": \"#79B8FF\"\n },\n children: \"puts\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#005CC5\",\n \"--shiki-dark\": \"#79B8FF\"\n },\n children: \" Schema\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \".execute(\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \"'{ hello }'\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \").to_json\"\n })]\n })]\n })\n }), \"\\n\", _jsx(_components.p, {\n children: \"There are also nice bindings for Relay and Rails.\"\n })]\n });\n}\nreturn {\n title,\n frontMatter,\n useTOC,\n default: _createMdxContent\n};\n"},{"filePath":"./src/code/language-support/javascript/tools/graphql-tools.md","tags":["javascript","tools"],"frontMatter":{"name":"GraphQL Tools","description":"A set of utils for faster development of GraphQL tools (Schema and documents loading, Schema merging and more).","url":"https://graphql-tools.com","github":"ardatan/graphql-tools","npm":"graphql-tools"},"stars":5353,"formattedStars":"5k","lastRelease":"4 days ago","license":"MIT License"},{"filePath":"./src/code/services/bananacakepop.md","tags":["services"],"frontMatter":{"name":"Banana Cake Pop","description":"A feature-rich GraphQL IDE by [ChilliCream](https://chillicream.com) that let's you explore, manage, and test your GraphQL APIs. Check it out [here](https://bananacakepop.com).","url":"https://bananacakepop.com","github":"ChilliCream/hotchocolate"},"stars":5261,"formattedStars":"5k","lastRelease":"6 days ago","license":"MIT License"},{"filePath":"./src/code/language-support/c-net/client/strawberry-shake.md","tags":["c-net","client"],"frontMatter":{"name":"Strawberry Shake","description":"Strawberry Shake is a open-source reactive GraphQL client for .NET","url":"https://chillicream.com/docs/strawberryshake/","github":"ChilliCream/hotchocolate"},"stars":5261,"formattedStars":"5k","lastRelease":"6 days ago","license":"MIT License","compiledSource":"\"use strict\";\nconst {Fragment: _Fragment, jsx: _jsx, jsxs: _jsxs} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nconst title = \"\";\nconst frontMatter = {\n \"name\": \"Strawberry Shake\",\n \"description\": \"Strawberry Shake is a open-source reactive GraphQL client for .NET\",\n \"url\": \"https://chillicream.com/docs/strawberryshake/\",\n \"github\": \"ChilliCream/hotchocolate\"\n};\nfunction useTOC(props) {\n return [];\n}\nfunction _createMdxContent(props) {\n const _components = {\n code: \"code\",\n li: \"li\",\n p: \"p\",\n pre: \"pre\",\n span: \"span\",\n ul: \"ul\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsxs(_Fragment, {\n children: [_jsx(_components.p, {\n children: \"Strawberry Shake removes the complexity of state management and lets you interact with local and remote data through GraphQL.\"\n }), \"\\n\", _jsx(_components.p, {\n children: \"You can use Strawberry Shake to:\"\n }), \"\\n\", _jsxs(_components.ul, {\n children: [\"\\n\", _jsx(_components.li, {\n children: \"Generate a C# client from your GraphQL queries.\"\n }), \"\\n\", _jsx(_components.li, {\n children: \"Interact with local and remote data through GraphQL.\"\n }), \"\\n\", _jsx(_components.li, {\n children: \"Use reactive APIs to interact with your state.\"\n }), \"\\n\"]\n }), \"\\n\", _jsx(_components.pre, {\n tabIndex: \"0\",\n \"data-language\": \"csharp\",\n \"data-word-wrap\": \"\",\n children: _jsxs(_components.code, {\n children: [_jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"client.GetHero\"\n })\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" .\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \"Watch\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"(ExecutionStrategy.CacheFirst)\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" .\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \"Subscribe\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"(\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \"result\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \" =\u003e\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" {\"\n })\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" Console.\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \"WriteLine\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"(result.Data.Name);\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" })\"\n })\n })]\n })\n })]\n });\n}\nreturn {\n title,\n frontMatter,\n useTOC,\n default: _createMdxContent\n};\n"},{"filePath":"./src/code/language-support/c-net/server/hot-chocolate.md","tags":["c-net","server"],"frontMatter":{"name":"Hot Chocolate","description":"Hot Chocolate is an open-source GraphQL Server for .NET","url":"https://chillicream.com/docs/hotchocolate/","github":"ChilliCream/hotchocolate"},"stars":5261,"formattedStars":"5k","lastRelease":"6 days ago","license":"MIT License","compiledSource":"\"use strict\";\nconst {Fragment: _Fragment, jsx: _jsx, jsxs: _jsxs} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nconst title = \"\";\nconst frontMatter = {\n \"name\": \"Hot Chocolate\",\n \"description\": \"Hot Chocolate is an open-source GraphQL Server for .NET\",\n \"url\": \"https://chillicream.com/docs/hotchocolate/\",\n \"github\": \"ChilliCream/hotchocolate\"\n};\nfunction useTOC(props) {\n return [];\n}\nfunction _createMdxContent(props) {\n const _components = {\n code: \"code\",\n p: \"p\",\n pre: \"pre\",\n span: \"span\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsxs(_Fragment, {\n children: [_jsx(_components.p, {\n children: \"Hot Chocolate takes the complexity away from building a fully-fledged GraphQL server and lets you focus on delivering the next big thing.\"\n }), \"\\n\", _jsx(_components.pre, {\n tabIndex: \"0\",\n \"data-language\": \"csharp\",\n \"data-word-wrap\": \"\",\n children: _jsxs(_components.code, {\n children: [_jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"using\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \" Microsoft\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \".\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \"AspNetCore\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \";\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"using\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \" Microsoft\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \".\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \"AspNetCore\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \".\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \"Hosting\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \";\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"using\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \" Microsoft\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \".\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \"AspNetCore\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \".\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \"Builder\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \";\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"using\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \" Microsoft\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \".\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \"Extensions\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \".\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \"DependencyInjection\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \";\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n children: \" \"\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"WebHost\"\n })\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" .\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \"CreateDefaultBuilder\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"(args)\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" .\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \"ConfigureServices\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"(\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \"services\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \" =\u003e\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" services\"\n })\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" .\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \"AddGraphQLServer\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"()\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" .\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \"AddQueryType\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"\u003c\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \"Query\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"\u003e())\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" .\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \"Configure\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"(\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \"builder\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \" =\u003e\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" builder\"\n })\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" .\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \"UseRouting\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"()\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" .\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \"UseEndpoints\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"(\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \"e\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \" =\u003e\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" e.\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \"MapGraphQL\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"()))\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" .\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \"Build\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"()\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" .\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \"Run\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"();\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n children: \" \"\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"public\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \" class\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \" Query\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"{\"\n })\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \" public\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \" Hero\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \" GetHero\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"() \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"=\u003e\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \" new\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \" Hero\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"();\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"}\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: \" \"\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"public\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \" class\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \" Hero\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"{\"\n })\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \" public\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \" string\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \" Name\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \" =\u003e\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \" \\\"Luke Skywalker\\\"\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \";\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"}\"\n })\n })]\n })\n })]\n });\n}\nreturn {\n title,\n frontMatter,\n useTOC,\n default: _createMdxContent\n};\n"},{"filePath":"./src/code/services/altair.md","tags":["services"],"frontMatter":{"name":"Altair","description":"An alternative to Postman that supports editing GraphQL queries directly and autoload your GraphQL schema.","url":"https://altair.sirmuel.design/","github":"altair-graphql/altair"},"stars":5141,"formattedStars":"5k","lastRelease":"2 days ago","license":"MIT License"},{"filePath":"./src/code/language-support/go/server/graph-gophers-graphql-go.md","tags":["go","server"],"frontMatter":{"name":"graph-gophers/graphql-go","description":"GraphQL server with a focus on ease of use.","github":"graph-gophers/graphql-go"},"stars":4660,"formattedStars":"5k","lastRelease":"1 year ago","license":"BSD 2-Clause \"Simplified\" License"},{"filePath":"./src/code/language-support/php/server/graphql-php.md","tags":["php","server"],"frontMatter":{"name":"graphql-php","description":"A PHP port of GraphQL reference implementation","github":"webonyx/graphql-php"},"stars":4642,"formattedStars":"5k","lastRelease":"1 week ago","license":"MIT License"},{"filePath":"./src/code/language-support/elixir/server/absinthe.md","tags":["elixir","server"],"frontMatter":{"name":"absinthe","description":"GraphQL implementation for Elixir.","github":"absinthe-graphql/absinthe"},"stars":4291,"formattedStars":"4k","lastRelease":"4 months ago","license":"Other"},{"filePath":"./src/code/language-support/python/server/strawberry.md","tags":["python","server"],"frontMatter":{"name":"Strawberry","description":"Strawberry is a Python library for implementing code first GraphQL servers using modern Python features like type hints.","url":"https://strawberry.rocks","github":"strawberry-graphql/strawberry"},"stars":4030,"formattedStars":"4k","lastRelease":"3 days ago","license":"MIT License","compiledSource":"\"use strict\";\nconst {Fragment: _Fragment, jsx: _jsx, jsxs: _jsxs} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nconst title = \"\";\nconst frontMatter = {\n \"name\": \"Strawberry\",\n \"description\": \"Strawberry is a Python library for implementing code first GraphQL servers using modern Python features like type hints.\",\n \"url\": \"https://strawberry.rocks\",\n \"github\": \"strawberry-graphql/strawberry\"\n};\nfunction useTOC(props) {\n return [];\n}\nfunction _createMdxContent(props) {\n const _components = {\n code: \"code\",\n p: \"p\",\n pre: \"pre\",\n span: \"span\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsxs(_Fragment, {\n children: [_jsx(_components.p, {\n children: \"Here’s an example of a Strawberry hello world, first install the library:\"\n }), \"\\n\", _jsx(_components.pre, {\n tabIndex: \"0\",\n \"data-language\": \"bash\",\n \"data-word-wrap\": \"\",\n children: _jsx(_components.code, {\n children: _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \"pip\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \" install\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \" strawberry-graphql\"\n })]\n })\n })\n }), \"\\n\", _jsxs(_components.p, {\n children: [\"Create an \", _jsx(_components.code, {\n children: \"app.py\"\n }), \" file with this content:\"]\n }), \"\\n\", _jsx(_components.pre, {\n tabIndex: \"0\",\n \"data-language\": \"python\",\n \"data-word-wrap\": \"\",\n children: _jsxs(_components.code, {\n children: [_jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"import\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" strawberry\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n children: \" \"\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \"@strawberry.type\"\n })\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"class\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \" Query\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \":\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \" @strawberry.field\"\n })\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \" def\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \" hello\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"(self, name: \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#005CC5\",\n \"--shiki-dark\": \"#79B8FF\"\n },\n children: \"str\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \" =\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \" \\\"World\\\"\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \") -\u003e \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#005CC5\",\n \"--shiki-dark\": \"#79B8FF\"\n },\n children: \"str\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \":\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \" return\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \" f\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \"\\\"Hello \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#005CC5\",\n \"--shiki-dark\": \"#79B8FF\"\n },\n children: \"{\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"name\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#005CC5\",\n \"--shiki-dark\": \"#79B8FF\"\n },\n children: \"}\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \"\\\"\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n children: \" \"\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"schema \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"=\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" strawberry.Schema(\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#E36209\",\n \"--shiki-dark\": \"#FFAB70\"\n },\n children: \"query\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"=\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"Query)\"\n })]\n })]\n })\n }), \"\\n\", _jsxs(_components.p, {\n children: [\"Then run \", _jsx(_components.code, {\n children: \"strawberry server app\"\n }), \" and you will have a basic schema server\\nrunning on \", _jsx(_components.code, {\n children: \"http://localhost:8000\"\n }), \".\"]\n }), \"\\n\", _jsx(_components.p, {\n children: \"Strawberry also has views for ASGI, Flask and Django and provides utilities\\nlike dataloaders and tracing.\"\n })]\n });\n}\nreturn {\n title,\n frontMatter,\n useTOC,\n default: _createMdxContent\n};\n"},{"filePath":"./src/code/language-support/swift-objective-c-ios/client/apollo-ios.md","tags":["swift-objective-c-ios","client"],"frontMatter":{"name":"Apollo iOS","description":"A GraphQL client for iOS that returns results as query-specific Swift types, and integrates with Xcode to show your Swift source and GraphQL side by side, with inline validation errors.","url":"https://www.apollographql.com/docs/ios/","github":"apollographql/apollo-ios"},"stars":3891,"formattedStars":"4k","lastRelease":"2 weeks ago","license":"MIT License"},{"filePath":"./src/code/language-support/java-kotlin-android/client/apollo-kotlin.md","tags":["java-kotlin-android","client"],"frontMatter":{"name":"Apollo Kotlin","description":"A strongly-typed, caching GraphQL client for the JVM, Android, and Kotlin multiplatform.","github":"apollographql/apollo-kotlin"},"stars":3767,"formattedStars":"4k","lastRelease":"3 weeks ago","license":"MIT License","compiledSource":"\"use strict\";\nconst {Fragment: _Fragment, jsx: _jsx, jsxs: _jsxs} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nconst title = \"\";\nconst frontMatter = {\n \"name\": \"Apollo Kotlin\",\n \"description\": \"A strongly-typed, caching GraphQL client for the JVM, Android, and Kotlin multiplatform.\",\n \"github\": \"apollographql/apollo-kotlin\"\n};\nfunction useTOC(props) {\n return [];\n}\nfunction _createMdxContent(props) {\n const _components = {\n li: \"li\",\n p: \"p\",\n ul: \"ul\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsxs(_Fragment, {\n children: [_jsx(_components.p, {\n children: \"Apollo Kotlin (formerly known as Apollo Android) is a GraphQL client with support for Android, Java8+, iOS and Kotlin multiplatform in general. It features:\"\n }), \"\\n\", _jsxs(_components.ul, {\n children: [\"\\n\", _jsx(_components.li, {\n children: \"Java and Kotlin Multiplatform code generation\"\n }), \"\\n\", _jsx(_components.li, {\n children: \"Queries, Mutations and Subscriptions\"\n }), \"\\n\", _jsx(_components.li, {\n children: \"Reflection-free parsing\"\n }), \"\\n\", _jsx(_components.li, {\n children: \"Normalized cache\"\n }), \"\\n\", _jsx(_components.li, {\n children: \"Custom scalar types\"\n }), \"\\n\", _jsx(_components.li, {\n children: \"HTTP cache\"\n }), \"\\n\", _jsx(_components.li, {\n children: \"Auto Persisted Queries\"\n }), \"\\n\", _jsx(_components.li, {\n children: \"Query batching\"\n }), \"\\n\", _jsx(_components.li, {\n children: \"File uploads\"\n }), \"\\n\", _jsx(_components.li, {\n children: \"Espresso IdlingResource\"\n }), \"\\n\", _jsx(_components.li, {\n children: \"Fake models for tests\"\n }), \"\\n\", _jsx(_components.li, {\n children: \"AppSync and graphql-ws websockets\"\n }), \"\\n\", _jsx(_components.li, {\n children: \"GraphQL AST parser\"\n }), \"\\n\"]\n })]\n });\n}\nreturn {\n title,\n frontMatter,\n useTOC,\n default: _createMdxContent\n};\n"},{"filePath":"./src/code/language-support/php/server/wpgraphql.md","tags":["php","server"],"frontMatter":{"name":"WPGraphQL","description":"A free, open-source WordPress plugin that provides an extendable GraphQL schema and API for any WordPress site","github":"wp-graphql/wp-graphql"},"stars":3670,"formattedStars":"4k","lastRelease":"1 week ago","license":"GNU General Public License v3.0"},{"filePath":"./src/code/language-support/javascript/tools/graphql-shield.md","tags":["javascript","tools"],"frontMatter":{"name":"GraphQLShield","description":"A GraphQL tool to ease the creation of permission layer.","github":"maticzav/graphql-shield","npm":"graphql-shield"},"stars":3560,"formattedStars":"4k","lastRelease":"2 years ago","license":"MIT License","compiledSource":"\"use strict\";\nconst {Fragment: _Fragment, jsx: _jsx, jsxs: _jsxs} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nconst title = \"\";\nconst frontMatter = {\n \"name\": \"GraphQLShield\",\n \"description\": \"A GraphQL tool to ease the creation of permission layer.\",\n \"github\": \"maticzav/graphql-shield\",\n \"npm\": \"graphql-shield\"\n};\nfunction useTOC(props) {\n return [];\n}\nfunction _createMdxContent(props) {\n const _components = {\n code: \"code\",\n p: \"p\",\n pre: \"pre\",\n span: \"span\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsxs(_Fragment, {\n children: [_jsx(_components.p, {\n children: \"GraphQL Shield helps you create a permission layer for your application. Using an intuitive rule-API, you’ll gain the power of the shield engine on every request and reduce the load time of every request with smart caching. This way you can make sure your application will remain quick, and no internal data will be exposed.\"\n }), \"\\n\", _jsx(_components.pre, {\n tabIndex: \"0\",\n \"data-language\": \"ts\",\n \"data-word-wrap\": \"\",\n children: _jsxs(_components.code, {\n children: [_jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"import\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" { rule, shield, and, or, not } \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"from\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \" \\\"graphql-shield\\\"\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n children: \" \"\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6A737D\",\n \"--shiki-dark\": \"#6A737D\"\n },\n children: \"// Rules\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: \" \"\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"const\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#005CC5\",\n \"--shiki-dark\": \"#79B8FF\"\n },\n children: \" isAuthenticated\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \" =\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \" rule\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"({ cache: \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \"\\\"contextual\\\"\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" })(\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"async\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" (\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#E36209\",\n \"--shiki-dark\": \"#FFAB70\"\n },\n children: \" parent\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \",\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#E36209\",\n \"--shiki-dark\": \"#FFAB70\"\n },\n children: \" args\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \",\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#E36209\",\n \"--shiki-dark\": \"#FFAB70\"\n },\n children: \" ctx\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \",\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#E36209\",\n \"--shiki-dark\": \"#FFAB70\"\n },\n children: \" info\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \",\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \") \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"=\u003e\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" {\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \" return\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" ctx.user \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"!==\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#005CC5\",\n \"--shiki-dark\": \"#79B8FF\"\n },\n children: \" null\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"})\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: \" \"\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"const\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#005CC5\",\n \"--shiki-dark\": \"#79B8FF\"\n },\n children: \" isAdmin\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \" =\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \" rule\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"({ cache: \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \"\\\"contextual\\\"\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" })(\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"async\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" (\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#E36209\",\n \"--shiki-dark\": \"#FFAB70\"\n },\n children: \" parent\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \",\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#E36209\",\n \"--shiki-dark\": \"#FFAB70\"\n },\n children: \" args\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \",\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#E36209\",\n \"--shiki-dark\": \"#FFAB70\"\n },\n children: \" ctx\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \",\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#E36209\",\n \"--shiki-dark\": \"#FFAB70\"\n },\n children: \" info\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \",\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \") \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"=\u003e\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" {\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \" return\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" ctx.user.role \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"===\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \" \\\"admin\\\"\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"})\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: \" \"\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"const\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#005CC5\",\n \"--shiki-dark\": \"#79B8FF\"\n },\n children: \" isEditor\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \" =\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \" rule\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"({ cache: \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \"\\\"contextual\\\"\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" })(\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"async\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" (\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#E36209\",\n \"--shiki-dark\": \"#FFAB70\"\n },\n children: \" parent\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \",\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#E36209\",\n \"--shiki-dark\": \"#FFAB70\"\n },\n children: \" args\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \",\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#E36209\",\n \"--shiki-dark\": \"#FFAB70\"\n },\n children: \" ctx\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \",\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#E36209\",\n \"--shiki-dark\": \"#FFAB70\"\n },\n children: \" info\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \",\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \") \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"=\u003e\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" {\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \" return\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" ctx.user.role \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"===\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \" \\\"editor\\\"\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"})\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: \" \"\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6A737D\",\n \"--shiki-dark\": \"#6A737D\"\n },\n children: \"// Permissions\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: \" \"\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"const\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#005CC5\",\n \"--shiki-dark\": \"#79B8FF\"\n },\n children: \" permissions\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \" =\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \" shield\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"({\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" Query: {\"\n })\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" frontPage: \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \"not\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"(isAuthenticated),\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" fruits: \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \"and\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"(isAuthenticated, \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \"or\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"(isAdmin, isEditor)),\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" customers: \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \"and\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"(isAuthenticated, isAdmin),\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" },\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" Mutation: {\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" addFruitToBasket: isAuthenticated,\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" },\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" Fruit: isAuthenticated,\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" Customer: isAdmin,\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"})\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: \" \"\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6A737D\",\n \"--shiki-dark\": \"#6A737D\"\n },\n children: \"// Server\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: \" \"\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"const\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#005CC5\",\n \"--shiki-dark\": \"#79B8FF\"\n },\n children: \" server\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \" =\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \" new\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \" GraphQLServer\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"({\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" typeDefs,\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" resolvers,\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" middlewares: [permissions],\"\n })\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \" context\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \": \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#E36209\",\n \"--shiki-dark\": \"#FFAB70\"\n },\n children: \"req\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \" =\u003e\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" ({\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \" ...\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"req,\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" user: \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \"getUser\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"(req),\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" }),\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"})\"\n })\n })]\n })\n })]\n });\n}\nreturn {\n title,\n frontMatter,\n useTOC,\n default: _createMdxContent\n};\n"},{"filePath":"./src/code/language-support/rust/server/async-graphql.md","tags":["rust","server"],"frontMatter":{"name":"Async-graphql","description":"Async-graphql is a high-performance server-side library that supports all GraphQL specifications.","github":"async-graphql/async-graphql"},"stars":3381,"formattedStars":"3k","lastRelease":"","license":"Apache License 2.0","compiledSource":"\"use strict\";\nconst {jsx: _jsx, jsxs: _jsxs} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nconst title = \"\";\nconst frontMatter = {\n \"name\": \"Async-graphql\",\n \"description\": \"Async-graphql is a high-performance server-side library that supports all GraphQL specifications.\",\n \"github\": \"async-graphql/async-graphql\"\n};\nfunction useTOC(props) {\n return [];\n}\nfunction _createMdxContent(props) {\n const _components = {\n code: \"code\",\n pre: \"pre\",\n span: \"span\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.pre, {\n tabIndex: \"0\",\n \"data-language\": \"rust\",\n \"data-word-wrap\": \"\",\n children: _jsxs(_components.code, {\n children: [_jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \" use\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \" async_graphql\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"::*\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \";\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \" struct\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \" Query\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \";\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" #[\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \"Object\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"]\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \" impl\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \" Query\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" {\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6A737D\",\n \"--shiki-dark\": \"#6A737D\"\n },\n children: \" /// Returns the sum of a and b\"\n })\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \" async\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \" fn\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \" add\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"(\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"\u0026\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#005CC5\",\n \"--shiki-dark\": \"#79B8FF\"\n },\n children: \"self\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \", a\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \":\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \" i32\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \", b\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \":\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \" i32\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \") \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"-\u003e\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \" i32\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" {\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" a \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"+\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" b\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" }\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" }\"\n })\n })]\n })\n });\n}\nreturn {\n title,\n frontMatter,\n useTOC,\n default: _createMdxContent\n};\n"},{"filePath":"./src/code/language-support/php/server/lighthouse.md","tags":["php","server"],"frontMatter":{"name":"Lighthouse","description":"A GraphQL server for Laravel","github":"nuwave/lighthouse"},"stars":3371,"formattedStars":"3k","lastRelease":"2 months ago","license":"MIT License"},{"filePath":"./src/code/language-support/javascript/client/graphqurl.md","tags":["javascript","client"],"frontMatter":{"name":"graphqurl","description":"curl for GraphQL with autocomplete, subscriptions and GraphiQL. Also a dead-simple universal javascript GraphQL client.","github":"hasura/graphqurl","npm":"graphqurl"},"stars":3341,"formattedStars":"3k","lastRelease":"","license":"Apache License 2.0"},{"filePath":"./src/code/language-support/javascript/tools/graphql-mesh.md","tags":["javascript","tools"],"frontMatter":{"name":"GraphQL Mesh","description":"GraphQL Mesh allows you to use GraphQL query language to access data in remote APIs that don't run GraphQL (and also ones that do run GraphQL). It can be used as a gateway to other services, or run as a local GraphQL schema that aggregates data from remote APIs.","url":"https://graphql-mesh.com","github":"Urigo/graphql-mesh","npm":"@graphql-mesh/cli"},"stars":3299,"formattedStars":"3k","lastRelease":"23 hours ago","license":"MIT License"},{"filePath":"./src/code/language-support/flutter/client/graphql.md","tags":["flutter","client"],"frontMatter":{"name":"graphql","description":"A GraphQL client implementation in Flutter.","github":"zino-app/graphql-flutter"},"stars":3248,"formattedStars":"3k","lastRelease":"2 months ago","license":"MIT License"},{"filePath":"./src/code/language-support/java-kotlin-android/server/netflix-dgs.md","tags":["java-kotlin-android","server"],"frontMatter":{"name":"Domain Graph Service (DGS) Framework","description":"The DGS Framework (Domain Graph Service) is a GraphQL server framework for Spring Boot, developed by Netflix.","url":"https://netflix.github.io/dgs/","github":"netflix/dgs-framework"},"stars":3095,"formattedStars":"3k","lastRelease":"22 hours ago","license":"Apache License 2.0","compiledSource":"\"use strict\";\nconst {Fragment: _Fragment, jsx: _jsx, jsxs: _jsxs} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nconst title = \"\";\nconst frontMatter = {\n \"name\": \"Domain Graph Service (DGS) Framework\",\n \"description\": \"The DGS Framework (Domain Graph Service) is a GraphQL server framework for Spring Boot, developed by Netflix.\",\n \"url\": \"https://netflix.github.io/dgs/\",\n \"github\": \"netflix/dgs-framework\"\n};\nfunction useTOC(props) {\n return [];\n}\nfunction _createMdxContent(props) {\n const _components = {\n a: \"a\",\n li: \"li\",\n p: \"p\",\n ul: \"ul\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsxs(_Fragment, {\n children: [_jsx(_components.p, {\n children: \"The DGS Framework (Domain Graph Service) is a GraphQL server framework for Spring Boot, developed by Netflix.\"\n }), \"\\n\", _jsx(_components.p, {\n children: \"Features include:\"\n }), \"\\n\", _jsxs(_components.ul, {\n children: [\"\\n\", _jsx(_components.li, {\n children: \"Annotation based Spring Boot programming model\"\n }), \"\\n\", _jsx(_components.li, {\n children: \"Test framework for writing query tests as unit tests\"\n }), \"\\n\", _jsx(_components.li, {\n children: \"Gradle Code Generation plugin to create types from schema\"\n }), \"\\n\", _jsx(_components.li, {\n children: \"Easy integration with GraphQL Federation\"\n }), \"\\n\", _jsx(_components.li, {\n children: \"Integration with Spring Security\"\n }), \"\\n\", _jsx(_components.li, {\n children: \"GraphQL subscriptions (WebSockets and SSE)\"\n }), \"\\n\", _jsx(_components.li, {\n children: \"File uploads\"\n }), \"\\n\", _jsx(_components.li, {\n children: \"Error handling\"\n }), \"\\n\", _jsx(_components.li, {\n children: \"Many extension points\"\n }), \"\\n\"]\n }), \"\\n\", _jsxs(_components.p, {\n children: [\"See \", _jsx(_components.a, {\n href: \"https://netflix.github.io/dgs/getting-started/\",\n children: \"DGS Framework Getting Started\"\n }), \" for how to get started.\"]\n })]\n });\n}\nreturn {\n title,\n frontMatter,\n useTOC,\n default: _createMdxContent\n};\n"},{"filePath":"./src/code/language-support/go/tools/graphjin.md","tags":["go","tools"],"frontMatter":{"name":"graphjin","description":"An instant GraphQL to SQL compiler. Use as a standalone service or a Go library. Formerly super-graph.","github":"dosco/graphjin"},"stars":2930,"formattedStars":"3k","lastRelease":"4 months ago","license":"Apache License 2.0"},{"filePath":"./src/code/language-support/javascript/server/mercurius.md","tags":["javascript","server"],"frontMatter":{"name":"Mercurius","description":"Mercurius is a flexible and extendible GraphQL adapter for Fastify, a blazing-fast web framework with the least overhead and a powerful plugin architecture.","url":"https://mercurius.dev/","github":"mercurius-js/mercurius","npm":"mercurius"},"stars":2358,"formattedStars":"2k","lastRelease":"1 month ago","license":"MIT License","compiledSource":"\"use strict\";\nconst {Fragment: _Fragment, jsx: _jsx, jsxs: _jsxs} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nconst title = \"\";\nconst frontMatter = {\n \"name\": \"Mercurius\",\n \"description\": \"Mercurius is a flexible and extendible GraphQL adapter for Fastify, a blazing-fast web framework with the least overhead and a powerful plugin architecture.\",\n \"url\": \"https://mercurius.dev/\",\n \"github\": \"mercurius-js/mercurius\",\n \"npm\": \"mercurius\"\n};\nfunction useTOC(props) {\n return [];\n}\nfunction _createMdxContent(props) {\n const _components = {\n code: \"code\",\n p: \"p\",\n pre: \"pre\",\n span: \"span\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsxs(_Fragment, {\n children: [_jsxs(_components.p, {\n children: [\"To run an hello world script with \", _jsx(_components.code, {\n children: \"mercurius\"\n }), \":\"]\n }), \"\\n\", _jsx(_components.pre, {\n tabIndex: \"0\",\n \"data-language\": \"bash\",\n \"data-word-wrap\": \"\",\n children: _jsx(_components.code, {\n children: _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \"npm\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \" install\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \" fastify\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \" mercurius\"\n })]\n })\n })\n }), \"\\n\", _jsxs(_components.p, {\n children: [\"Then run \", _jsx(_components.code, {\n children: \"node app.js\"\n }), \" with this code in \", _jsx(_components.code, {\n children: \"app.js\"\n }), \":\"]\n }), \"\\n\", _jsx(_components.pre, {\n tabIndex: \"0\",\n \"data-language\": \"js\",\n \"data-word-wrap\": \"\",\n children: _jsxs(_components.code, {\n children: [_jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"const\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#005CC5\",\n \"--shiki-dark\": \"#79B8FF\"\n },\n children: \" Fastify\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \" =\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \" require\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"(\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \"\\\"fastify\\\"\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \")\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"const\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#005CC5\",\n \"--shiki-dark\": \"#79B8FF\"\n },\n children: \" mercurius\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \" =\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \" require\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"(\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \"\\\"mercurius\\\"\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \")\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n children: \" \"\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"const\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#005CC5\",\n \"--shiki-dark\": \"#79B8FF\"\n },\n children: \" schema\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \" =\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \" `\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \" type Query {\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \" hello(name: String): String!\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \" }\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \"`\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: \" \"\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"const\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#005CC5\",\n \"--shiki-dark\": \"#79B8FF\"\n },\n children: \" resolvers\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \" =\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" {\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" Query: {\"\n })\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \" hello\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \": \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"async\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" (\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#E36209\",\n \"--shiki-dark\": \"#FFAB70\"\n },\n children: \"_\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \", { \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#E36209\",\n \"--shiki-dark\": \"#FFAB70\"\n },\n children: \"name\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" }) \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"=\u003e\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \" `hello ${\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"name\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \" ||\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \" \\\"world\\\"}`\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \",\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" },\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"}\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: \" \"\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"const\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#005CC5\",\n \"--shiki-dark\": \"#79B8FF\"\n },\n children: \" app\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \" =\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \" Fastify\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"()\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"app.\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \"register\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"(mercurius, {\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" schema,\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" resolvers,\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"})\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: \" \"\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"app.\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \"listen\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"(\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#005CC5\",\n \"--shiki-dark\": \"#79B8FF\"\n },\n children: \"3000\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \")\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n children: \" \"\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6A737D\",\n \"--shiki-dark\": \"#6A737D\"\n },\n children: \"// Call IT!\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6A737D\",\n \"--shiki-dark\": \"#6A737D\"\n },\n children: \"// curl 'http://localhost:3000/graphql' \\\\\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6A737D\",\n \"--shiki-dark\": \"#6A737D\"\n },\n children: \"// -H 'content-type: application/json' \\\\\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6A737D\",\n \"--shiki-dark\": \"#6A737D\"\n },\n children: \"// --data-raw '{\\\"query\\\":\\\"{ hello(name:\\\\\\\"Marcurius\\\\\\\") }\\\" }'\"\n })\n })]\n })\n })]\n });\n}\nreturn {\n title,\n frontMatter,\n useTOC,\n default: _createMdxContent\n};\n"},{"filePath":"./src/code/language-support/javascript/tools/giraphql.md","tags":["javascript","tools"],"frontMatter":{"name":"GiraphQL","description":"A plugin based schema builder for creating code-first GraphQL schemas in typescript","url":"https://giraphql.com/","github":"hayes/giraphql","npm":"@giraphql/core"},"stars":2355,"formattedStars":"2k","lastRelease":"1 week ago","license":"ISC License","compiledSource":"\"use strict\";\nconst {Fragment: _Fragment, jsx: _jsx, jsxs: _jsxs} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nconst title = \"\";\nconst frontMatter = {\n \"name\": \"GiraphQL\",\n \"description\": \"A plugin based schema builder for creating code-first GraphQL schemas in typescript\",\n \"url\": \"https://giraphql.com/\",\n \"github\": \"hayes/giraphql\",\n \"npm\": \"@giraphql/core\"\n};\nfunction useTOC(props) {\n return [];\n}\nfunction _createMdxContent(props) {\n const _components = {\n code: \"code\",\n p: \"p\",\n pre: \"pre\",\n span: \"span\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsxs(_Fragment, {\n children: [_jsx(_components.p, {\n children: \"GiraphQL makes writing type-safe schemas simple, and works without a code generator,\\nbuild process, or extensive manual type definitions.\"\n }), \"\\n\", _jsx(_components.pre, {\n tabIndex: \"0\",\n \"data-language\": \"ts\",\n \"data-word-wrap\": \"\",\n children: _jsxs(_components.code, {\n children: [_jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"import\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" { ApolloServer } \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"from\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \" \\\"apollo-server\\\"\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"import\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" SchemaBuilder \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"from\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \" \\\"@giraphql/core\\\"\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n children: \" \"\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"const\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#005CC5\",\n \"--shiki-dark\": \"#79B8FF\"\n },\n children: \" builder\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \" =\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \" new\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \" SchemaBuilder\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"({})\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n children: \" \"\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"builder.\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \"queryType\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"({\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \" fields\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \": \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#E36209\",\n \"--shiki-dark\": \"#FFAB70\"\n },\n children: \"t\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \" =\u003e\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" ({\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" hello: t.\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \"string\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"({\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" args: {\"\n })\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" name: t.arg.\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \"string\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"({}),\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" },\"\n })\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \" resolve\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \": (\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#E36209\",\n \"--shiki-dark\": \"#FFAB70\"\n },\n children: \"parent\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \", { \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#E36209\",\n \"--shiki-dark\": \"#FFAB70\"\n },\n children: \"name\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" }) \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"=\u003e\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \" `hello, ${\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"name\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \" ||\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \" \\\"World\\\"}`\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \",\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" }),\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" }),\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"})\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: \" \"\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"new\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \" ApolloServer\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"({\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" schema: builder.\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \"toSchema\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"({}),\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"}).\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \"listen\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"(\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#005CC5\",\n \"--shiki-dark\": \"#79B8FF\"\n },\n children: \"3000\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \")\"\n })]\n })]\n })\n })]\n });\n}\nreturn {\n title,\n frontMatter,\n useTOC,\n default: _createMdxContent\n};\n"},{"filePath":"./src/code/tools/schemathesis/general/schemathesis.md","tags":["tools","general"],"frontMatter":{"name":"Schemathesis","description":"A modern API testing tool for web applications built with Open API and GraphQL specifications.","github":"schemathesis/schemathesis"},"stars":2304,"formattedStars":"2k","lastRelease":"1 week ago","license":"MIT License","compiledSource":"\"use strict\";\nconst {Fragment: _Fragment, jsx: _jsx, jsxs: _jsxs} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nconst title = \"\";\nconst frontMatter = {\n \"name\": \"Schemathesis\",\n \"description\": \"A modern API testing tool for web applications built with Open API and GraphQL specifications.\",\n \"github\": \"schemathesis/schemathesis\"\n};\nfunction useTOC(props) {\n return [];\n}\nfunction _createMdxContent(props) {\n const _components = {\n code: \"code\",\n p: \"p\",\n pre: \"pre\",\n span: \"span\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsxs(_Fragment, {\n children: [_jsx(_components.p, {\n children: \"Run Schemathesis via Docker against your GraphQL endpoint:\"\n }), \"\\n\", _jsx(_components.pre, {\n tabIndex: \"0\",\n \"data-language\": \"bash\",\n \"data-word-wrap\": \"\",\n children: _jsxs(_components.code, {\n children: [_jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \"docker\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \" run\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \" schemathesis/schemathesis\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#005CC5\",\n \"--shiki-dark\": \"#79B8FF\"\n },\n children: \" \\\\\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \" run\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \" https://your.app.com/graphql\"\n })]\n })]\n })\n }), \"\\n\", _jsx(_components.p, {\n children: \"Schemathesis will generate queries matching your GraphQL schema and catch server crashes automatically.\\nGenerated queries have arbitrary depth and may contain any subset of GraphQL types defined in the input schema.\\nThey expose edge cases in your code that are unlikely to be found otherwise.\"\n }), \"\\n\", _jsx(_components.p, {\n children: \"Note that you can write your app in any programming language; the tool will communicate with it over HTTP.\"\n }), \"\\n\", _jsxs(_components.p, {\n children: [\"For example, running the command above against \", _jsx(_components.code, {\n children: \"https://bahnql.herokuapp.com/graphql\"\n }), \" uncovers that running the \", _jsx(_components.code, {\n children: \"{ search(searchTerm: \\\"\\\") { stations { name } } }\"\n }), \" query leads to a server error:\"]\n }), \"\\n\", _jsx(_components.pre, {\n tabIndex: \"0\",\n \"data-language\": \"json\",\n \"data-word-wrap\": \"\",\n children: _jsxs(_components.code, {\n children: [_jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"{\"\n })\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#005CC5\",\n \"--shiki-dark\": \"#79B8FF\"\n },\n children: \" \\\"errors\\\"\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \": [\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" {\"\n })\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#005CC5\",\n \"--shiki-dark\": \"#79B8FF\"\n },\n children: \" \\\"message\\\"\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \": \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \"\\\"Cannot read property 'city' of undefined\\\"\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \",\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#005CC5\",\n \"--shiki-dark\": \"#79B8FF\"\n },\n children: \" \\\"locations\\\"\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \": [\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" {\"\n })\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#005CC5\",\n \"--shiki-dark\": \"#79B8FF\"\n },\n children: \" \\\"line\\\"\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \": \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#005CC5\",\n \"--shiki-dark\": \"#79B8FF\"\n },\n children: \"1\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \",\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#005CC5\",\n \"--shiki-dark\": \"#79B8FF\"\n },\n children: \" \\\"column\\\"\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \": \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#005CC5\",\n \"--shiki-dark\": \"#79B8FF\"\n },\n children: \"28\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" }\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" ],\"\n })\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#005CC5\",\n \"--shiki-dark\": \"#79B8FF\"\n },\n children: \" \\\"path\\\"\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \": [\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \"\\\"search\\\"\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \", \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \"\\\"stations\\\"\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"]\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" }\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" ],\"\n })\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#005CC5\",\n \"--shiki-dark\": \"#79B8FF\"\n },\n children: \" \\\"data\\\"\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \": \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#005CC5\",\n \"--shiki-dark\": \"#79B8FF\"\n },\n children: \"null\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"}\"\n })\n })]\n })\n })]\n });\n}\nreturn {\n title,\n frontMatter,\n useTOC,\n default: _createMdxContent\n};\n"},{"filePath":"./src/code/tools/wundergraph/gateways-supergraphs/wundergraph.md","tags":["tools","gateways-supergraphs"],"frontMatter":{"name":"WunderGraph","description":"WunderGraph is an open-source GraphQL Gateway that is able to compose Apollo Federation, GraphQL, REST APIs, Databases, Kafka and more.","url":"https://wundergraph.com","github":"wundergraph/wundergraph"},"stars":2282,"formattedStars":"2k","lastRelease":"6 months ago","license":"Apache License 2.0","compiledSource":"\"use strict\";\nconst {Fragment: _Fragment, jsx: _jsx, jsxs: _jsxs} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nconst title = \"\";\nconst frontMatter = {\n \"name\": \"WunderGraph\",\n \"description\": \"WunderGraph is an open-source GraphQL Gateway that is able to compose Apollo Federation, GraphQL, REST APIs, Databases, Kafka and more.\",\n \"url\": \"https://wundergraph.com\",\n \"github\": \"wundergraph/wundergraph\"\n};\nfunction useTOC(props) {\n return [];\n}\nfunction _createMdxContent(props) {\n const _components = {\n a: \"a\",\n code: \"code\",\n p: \"p\",\n pre: \"pre\",\n span: \"span\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsxs(_Fragment, {\n children: [_jsxs(_components.p, {\n children: [_jsx(_components.a, {\n href: \"https://wundergraph.com\",\n children: \"WunderGraph\"\n }), \" composes all your APIs into a single unified GraphQL API and\\nallows you to expose your Graph as a \", _jsx(_components.a, {\n href: \"https://docs.wundergraph.com/docs/features/graphql-to-json-rpc-compiler\",\n children: \"secure and type-safe JSON-RPC API\"\n }), \".\"]\n }), \"\\n\", _jsxs(_components.p, {\n children: [\"To get started with WunderGraph, you can use \", _jsx(_components.code, {\n children: \"create-wundergraph-app\"\n }), \" to bootstrap a new project:\"]\n }), \"\\n\", _jsx(_components.pre, {\n tabIndex: \"0\",\n \"data-language\": \"bash\",\n \"data-word-wrap\": \"\",\n children: _jsx(_components.code, {\n children: _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \"npx\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \" create-wundergraph-app\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \" my-project\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#005CC5\",\n \"--shiki-dark\": \"#79B8FF\"\n },\n children: \" -E\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \" nextjs-swr\"\n })]\n })\n })\n }), \"\\n\", _jsxs(_components.p, {\n children: [\"On the client side, WunderGraph’s JSON-RPC API integrates very well with frameworks like \", _jsx(_components.a, {\n href: \"https://github.com/wundergraph/wundergraph/tree/main/examples/nextjs-swr\",\n children: \"Next.js, SWR\"\n }), \" and React Query,\\nwhile one the backend, we’re able to leverage the power of “Server-Side-Only GraphQL”.\\nHandle authentication, authorization, validation, joins and more right in the Query Layer.\"]\n }), \"\\n\", _jsx(_components.pre, {\n tabIndex: \"0\",\n \"data-language\": \"graphql\",\n \"data-word-wrap\": \"\",\n children: _jsxs(_components.code, {\n children: [_jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"mutation\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" (\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#E36209\",\n \"--shiki-dark\": \"#FFAB70\"\n },\n children: \" $name\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \": \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#005CC5\",\n \"--shiki-dark\": \"#79B8FF\"\n },\n children: \"String\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"!\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \" @fromClaim\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"(\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#E36209\",\n \"--shiki-dark\": \"#FFAB70\"\n },\n children: \"name\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \":\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#005CC5\",\n \"--shiki-dark\": \"#79B8FF\"\n },\n children: \" NAME\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \")\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#E36209\",\n \"--shiki-dark\": \"#FFAB70\"\n },\n children: \" $email\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \": \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#005CC5\",\n \"--shiki-dark\": \"#79B8FF\"\n },\n children: \"String\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"!\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \" @fromClaim\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"(\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#E36209\",\n \"--shiki-dark\": \"#FFAB70\"\n },\n children: \"name\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \":\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#005CC5\",\n \"--shiki-dark\": \"#79B8FF\"\n },\n children: \" EMAIL\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \")\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#E36209\",\n \"--shiki-dark\": \"#FFAB70\"\n },\n children: \" $message\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \": \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#005CC5\",\n \"--shiki-dark\": \"#79B8FF\"\n },\n children: \"String\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"!\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \" @jsonSchema\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"(\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#E36209\",\n \"--shiki-dark\": \"#FFAB70\"\n },\n children: \"pattern\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \": \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \"\\\"^[a-zA-Z 0-9]+$\\\"\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \")\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \") {\"\n })\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#E36209\",\n \"--shiki-dark\": \"#FFAB70\"\n },\n children: \" createOnepost\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"(\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#E36209\",\n \"--shiki-dark\": \"#FFAB70\"\n },\n children: \" data\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \": {\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \" message\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \": \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#E36209\",\n \"--shiki-dark\": \"#FFAB70\"\n },\n children: \"$message\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \" user\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \": {\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \" connectOrCreate\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \": {\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \" where\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \": { \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \"email\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \": \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#E36209\",\n \"--shiki-dark\": \"#FFAB70\"\n },\n children: \"$email\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" }\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \" create\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \": { \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \"email\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \": \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#E36209\",\n \"--shiki-dark\": \"#FFAB70\"\n },\n children: \"$email\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \", \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \"name\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \": \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#E36209\",\n \"--shiki-dark\": \"#FFAB70\"\n },\n children: \"$name\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" }\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" }\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" }\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" }\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" ) {\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#E36209\",\n \"--shiki-dark\": \"#FFAB70\"\n },\n children: \" id\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#E36209\",\n \"--shiki-dark\": \"#FFAB70\"\n },\n children: \" message\"\n })\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#E36209\",\n \"--shiki-dark\": \"#FFAB70\"\n },\n children: \" user\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" {\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#E36209\",\n \"--shiki-dark\": \"#FFAB70\"\n },\n children: \" id\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#E36209\",\n \"--shiki-dark\": \"#FFAB70\"\n },\n children: \" name\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" }\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" }\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"}\"\n })\n })]\n })\n }), \"\\n\", _jsx(_components.p, {\n children: \"The Query above requires the user to be authenticated,\\ninjects the user’s name and email from the JWT token and validates the message against a JSON Schema.\"\n }), \"\\n\", _jsxs(_components.p, {\n children: [\"Here’s another example showcasing how we can use Server-Side GraphQL with WunderGraph’s unique \", _jsx(_components.a, {\n href: \"https://docs.wundergraph.com/docs/features/cross-api-joins-to-compose-apis\",\n children: \"join capabilities\"\n }), \",\\ncomposing data from two different APIs into a single GraphQL response.\"]\n }), \"\\n\", _jsx(_components.pre, {\n tabIndex: \"0\",\n \"data-language\": \"graphql\",\n \"data-word-wrap\": \"\",\n children: _jsxs(_components.code, {\n children: [_jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"query\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" (\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#E36209\",\n \"--shiki-dark\": \"#FFAB70\"\n },\n children: \" $continent\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \": \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#005CC5\",\n \"--shiki-dark\": \"#79B8FF\"\n },\n children: \"String\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"!\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6A737D\",\n \"--shiki-dark\": \"#6A737D\"\n },\n children: \" # the @internal directive removes the $capital variable from the public API\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6A737D\",\n \"--shiki-dark\": \"#6A737D\"\n },\n children: \" # this means, the user can't set it manually\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6A737D\",\n \"--shiki-dark\": \"#6A737D\"\n },\n children: \" # this variable is our JOIN key\"\n })\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#E36209\",\n \"--shiki-dark\": \"#FFAB70\"\n },\n children: \" $capital\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \": \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#005CC5\",\n \"--shiki-dark\": \"#79B8FF\"\n },\n children: \"String\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"!\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \" @internal\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \") {\"\n })\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#E36209\",\n \"--shiki-dark\": \"#FFAB70\"\n },\n children: \" countries_countries\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"(\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#E36209\",\n \"--shiki-dark\": \"#FFAB70\"\n },\n children: \"filter\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \": { \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \"continent\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \": { \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \"eq\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \": \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#E36209\",\n \"--shiki-dark\": \"#FFAB70\"\n },\n children: \"$continent\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" } }) {\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#E36209\",\n \"--shiki-dark\": \"#FFAB70\"\n },\n children: \" code\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#E36209\",\n \"--shiki-dark\": \"#FFAB70\"\n },\n children: \" name\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6A737D\",\n \"--shiki-dark\": \"#6A737D\"\n },\n children: \" # using the @export directive, we can export the value of the field `capital` into the JOIN key ($capital)\"\n })\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#E36209\",\n \"--shiki-dark\": \"#FFAB70\"\n },\n children: \" capital\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \" @export\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"(\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#E36209\",\n \"--shiki-dark\": \"#FFAB70\"\n },\n children: \"as\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \": \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \"\\\"capital\\\"\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \")\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6A737D\",\n \"--shiki-dark\": \"#6A737D\"\n },\n children: \" # the _join field returns the type Query!\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6A737D\",\n \"--shiki-dark\": \"#6A737D\"\n },\n children: \" # it exists on every object type so you can everywhere in your Query documents\"\n })\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#E36209\",\n \"--shiki-dark\": \"#FFAB70\"\n },\n children: \" _join\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" {\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6A737D\",\n \"--shiki-dark\": \"#6A737D\"\n },\n children: \" # once we're inside the _join field, we can use the $capital variable to join the weather API\"\n })\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#E36209\",\n \"--shiki-dark\": \"#FFAB70\"\n },\n children: \" weather_getCityByName\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"(\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#E36209\",\n \"--shiki-dark\": \"#FFAB70\"\n },\n children: \"name\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \": \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#E36209\",\n \"--shiki-dark\": \"#FFAB70\"\n },\n children: \"$capital\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \") {\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#E36209\",\n \"--shiki-dark\": \"#FFAB70\"\n },\n children: \" weather\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" {\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#E36209\",\n \"--shiki-dark\": \"#FFAB70\"\n },\n children: \" temperature\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" {\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#E36209\",\n \"--shiki-dark\": \"#FFAB70\"\n },\n children: \" max\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" }\"\n })\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#E36209\",\n \"--shiki-dark\": \"#FFAB70\"\n },\n children: \" summary\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" {\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#E36209\",\n \"--shiki-dark\": \"#FFAB70\"\n },\n children: \" title\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#E36209\",\n \"--shiki-dark\": \"#FFAB70\"\n },\n children: \" description\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" }\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" }\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" }\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" }\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" }\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"}\"\n })\n })]\n })\n }), \"\\n\", _jsxs(_components.p, {\n children: [\"The full \", _jsx(_components.a, {\n href: \"https://github.com/wundergraph/wundergraph/tree/main/examples/cross-api-joins\",\n children: \"example can be found on GitHub\"\n }), \".\"]\n })]\n });\n}\nreturn {\n title,\n frontMatter,\n useTOC,\n default: _createMdxContent\n};\n"},{"filePath":"./src/code/language-support/python/server/ariadne.md","tags":["python","server"],"frontMatter":{"name":"Ariadne","description":"Ariadne is a Python library for implementing GraphQL servers using schema-first approach. It supports both synchronous and asynchronous query execution, ships with batteries included for common GraphQL server problems like query cost validation or performance tracing and has simple API that is easy to extend or replace.","url":"https://ariadnegraphql.org","github":"mirumee/ariadne"},"stars":2225,"formattedStars":"2k","lastRelease":"8 months ago","license":"BSD 3-Clause \"New\" or \"Revised\" License","compiledSource":"\"use strict\";\nconst {Fragment: _Fragment, jsx: _jsx, jsxs: _jsxs} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nconst title = \"\";\nconst frontMatter = {\n \"name\": \"Ariadne\",\n \"description\": \"Ariadne is a Python library for implementing GraphQL servers using schema-first approach. It supports both synchronous and asynchronous query execution, ships with batteries included for common GraphQL server problems like query cost validation or performance tracing and has simple API that is easy to extend or replace.\",\n \"url\": \"https://ariadnegraphql.org\",\n \"github\": \"mirumee/ariadne\"\n};\nfunction useTOC(props) {\n return [];\n}\nfunction _createMdxContent(props) {\n const _components = {\n code: \"code\",\n p: \"p\",\n pre: \"pre\",\n span: \"span\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsxs(_Fragment, {\n children: [_jsx(_components.p, {\n children: \"Ariadne can be installed with pip:\"\n }), \"\\n\", _jsx(_components.pre, {\n tabIndex: \"0\",\n \"data-language\": \"bash\",\n \"data-word-wrap\": \"\",\n children: _jsx(_components.code, {\n children: _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \"$\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \" pip\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \" install\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \" ariadne\"\n })]\n })\n })\n }), \"\\n\", _jsx(_components.p, {\n children: \"Minimal “Hello world” server example:\"\n }), \"\\n\", _jsx(_components.pre, {\n tabIndex: \"0\",\n \"data-language\": \"python\",\n \"data-word-wrap\": \"\",\n children: _jsxs(_components.code, {\n children: [_jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"from\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" ariadne \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"import\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" ObjectType, gql, make_executable_schema\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"from\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" ariadne.asgi \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"import\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" GraphQL\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n children: \" \"\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"type_defs \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"=\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" gql(\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \" \\\"\\\"\\\"\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \" type Query {\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \" hello: String!\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \" }\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \" \\\"\\\"\\\"\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \")\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: \" \"\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"query_type \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"=\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" ObjectType(\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \"\\\"Query\\\"\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \")\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n children: \" \"\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \"@query_type.field\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"(\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \"\\\"hello\\\"\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \")\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"def\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \" resolve_hello\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"(\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"*\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"_):\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \" return\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \" \\\"Hello world!\\\"\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n children: \" \"\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"schema \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"=\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" make_executable_schema(type_defs, query_type)\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n children: \" \"\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"app \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"=\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" GraphQL(schema, \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#E36209\",\n \"--shiki-dark\": \"#FFAB70\"\n },\n children: \"debug\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"=\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#005CC5\",\n \"--shiki-dark\": \"#79B8FF\"\n },\n children: \"True\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \")\"\n })]\n })]\n })\n }), \"\\n\", _jsx(_components.p, {\n children: \"Run the server with uvicorn:\"\n }), \"\\n\", _jsx(_components.pre, {\n \"data-word-wrap\": \"\",\n children: _jsx(_components.code, {\n children: \"$ pip install uvicorn\\n$ uvicorn example:app\\n\"\n })\n })]\n });\n}\nreturn {\n title,\n frontMatter,\n useTOC,\n default: _createMdxContent\n};\n"},{"filePath":"./src/code/language-support/javascript/tools/graphql-cli.md","tags":["javascript","tools"],"frontMatter":{"name":"GraphQL CLI","description":"A command line tool for common GraphQL development workflows.","url":"https://graphql-cli.com","github":"Urigo/graphql-cli","npm":"graphql-cli"},"stars":2000,"formattedStars":"2k","lastRelease":"4 years ago","license":"MIT License"},{"filePath":"./src/code/language-support/scala/server/sangria.md","tags":["scala","server"],"frontMatter":{"name":"Sangria","description":"A Scala GraphQL library that supports [Relay](https://facebook.github.io/relay/).","url":"https://sangria-graphql.github.io/","github":"sangria-graphql/sangria"},"stars":1959,"formattedStars":"2k","lastRelease":"2 weeks ago","license":"Apache License 2.0","compiledSource":"\"use strict\";\nconst {Fragment: _Fragment, jsx: _jsx, jsxs: _jsxs} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nconst title = \"\";\nconst frontMatter = {\n \"name\": \"Sangria\",\n \"description\": \"A Scala GraphQL library that supports [Relay](https://facebook.github.io/relay/).\",\n \"url\": \"https://sangria-graphql.github.io/\",\n \"github\": \"sangria-graphql/sangria\"\n};\nfunction useTOC(props) {\n return [];\n}\nfunction _createMdxContent(props) {\n const _components = {\n code: \"code\",\n p: \"p\",\n pre: \"pre\",\n span: \"span\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsxs(_Fragment, {\n children: [_jsxs(_components.p, {\n children: [\"An example of a hello world GraphQL schema and query with \", _jsx(_components.code, {\n children: \"sangria\"\n }), \":\"]\n }), \"\\n\", _jsx(_components.pre, {\n tabIndex: \"0\",\n \"data-language\": \"scala\",\n \"data-word-wrap\": \"\",\n children: _jsxs(_components.code, {\n children: [_jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"import\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \" sangria\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \".\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \"schema\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \".\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \"_\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"import\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \" sangria\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \".\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \"execution\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \".\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \"_\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"import\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \" sangria\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \".\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \"macros\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \".\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \"_\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n children: \" \"\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"val\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#E36209\",\n \"--shiki-dark\": \"#FFAB70\"\n },\n children: \" QueryType\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \" =\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \" ObjectType\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"(\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \"\\\"Query\\\"\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \", fields[\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \"Unit\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \", \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \"Unit\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"](\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \" Field\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"(\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \"\\\"hello\\\"\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \", \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \"StringType\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \", resolve \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"=\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" _ \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"⇒\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \" \\\"Hello world!\\\"\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \")\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"))\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: \" \"\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"val\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#E36209\",\n \"--shiki-dark\": \"#FFAB70\"\n },\n children: \" schema\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \" =\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \" Schema\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"(\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \"QueryType\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \")\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n children: \" \"\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"val\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#E36209\",\n \"--shiki-dark\": \"#FFAB70\"\n },\n children: \" query\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \" =\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \" graphql\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \"\\\"{ hello }\\\"\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n children: \" \"\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \"Executor\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \".execute(schema, query) map println\"\n })]\n })]\n })\n })]\n });\n}\nreturn {\n title,\n frontMatter,\n useTOC,\n default: _createMdxContent\n};\n"},{"filePath":"./src/code/language-support/javascript/tools/graphql-scalars.md","tags":["javascript","tools"],"frontMatter":{"name":"GraphQL Scalars","description":"A library of custom GraphQL scalar types for creating precise, type-safe GraphQL schemas.","github":"Urigo/graphql-scalars","npm":"graphql-scalars"},"stars":1885,"formattedStars":"2k","lastRelease":"8 months ago","license":"MIT License"},{"filePath":"./src/code/language-support/javascript/client/graphql-hooks.md","tags":["javascript","client"],"frontMatter":{"name":"graphql-hooks","description":"Minimal React hooks-first GraphQL client with a tiny bundle, SSR support and caching","github":"nearform/graphql-hooks","npm":"graphql-hooks"},"stars":1882,"formattedStars":"2k","lastRelease":"5 months ago","license":"Other","compiledSource":"\"use strict\";\nconst {Fragment: _Fragment, jsx: _jsx, jsxs: _jsxs} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nconst title = \"\";\nconst frontMatter = {\n \"name\": \"graphql-hooks\",\n \"description\": \"Minimal React hooks-first GraphQL client with a tiny bundle, SSR support and caching\",\n \"github\": \"nearform/graphql-hooks\",\n \"npm\": \"graphql-hooks\"\n};\nfunction useTOC(props) {\n return [{\n value: \"Quickstart\",\n id: \"quickstart\",\n depth: 3\n }];\n}\nfunction _createMdxContent(props) {\n const _components = {\n a: \"a\",\n code: \"code\",\n em: \"em\",\n h3: \"h3\",\n li: \"li\",\n p: \"p\",\n pre: \"pre\",\n span: \"span\",\n ul: \"ul\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsxs(_Fragment, {\n children: [_jsxs(_components.ul, {\n children: [\"\\n\", _jsx(_components.li, {\n children: \"🥇 First-class hooks API\"\n }), \"\\n\", _jsxs(_components.li, {\n children: [\"⚖️ \", _jsx(_components.em, {\n children: \"Tiny\"\n }), \" bundle: only 7.6kB (2.8 gzipped)\"]\n }), \"\\n\", _jsxs(_components.li, {\n children: [\"📄 Full SSR support: see \", _jsx(_components.a, {\n href: \"packages/graphql-hooks-ssr\",\n children: \"graphql-hooks-ssr\"\n })]\n }), \"\\n\", _jsxs(_components.li, {\n children: [\"🔌 Plugin Caching: see \", _jsx(_components.a, {\n href: \"packages/graphql-hooks-memcache\",\n children: \"graphql-hooks-memcache\"\n })]\n }), \"\\n\", _jsx(_components.li, {\n children: \"🔥 No more render props hell\"\n }), \"\\n\", _jsx(_components.li, {\n children: \"⏳ Handle loading and error states with ease\"\n }), \"\\n\"]\n }), \"\\n\", _jsx(_components.h3, {\n id: \"quickstart\",\n children: \"Quickstart\"\n }), \"\\n\", _jsx(_components.pre, {\n tabIndex: \"0\",\n \"data-language\": \"bash\",\n \"data-word-wrap\": \"\",\n children: _jsx(_components.code, {\n children: _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \"npm\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \" install\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \" graphql-hooks\"\n })]\n })\n })\n }), \"\\n\", _jsx(_components.p, {\n children: \"First you’ll need to create a client and wrap your app with the provider:\"\n }), \"\\n\", _jsx(_components.pre, {\n tabIndex: \"0\",\n \"data-language\": \"js\",\n \"data-word-wrap\": \"\",\n children: _jsxs(_components.code, {\n children: [_jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"import\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" { GraphQLClient, ClientContext } \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"from\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \" \\\"graphql-hooks\\\"\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n children: \" \"\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"const\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#005CC5\",\n \"--shiki-dark\": \"#79B8FF\"\n },\n children: \" client\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \" =\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \" new\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \" GraphQLClient\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"({\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" url: \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \"\\\"/graphql\\\"\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \",\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"})\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: \" \"\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"function\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \" App\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"() {\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \" return\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" (\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" \u003c\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#005CC5\",\n \"--shiki-dark\": \"#79B8FF\"\n },\n children: \"ClientContext.Provider\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \" value\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"=\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"{client}\u003e\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" {\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6A737D\",\n \"--shiki-dark\": \"#6A737D\"\n },\n children: \"/* children */\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"}\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" \u003c/\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#005CC5\",\n \"--shiki-dark\": \"#79B8FF\"\n },\n children: \"ClientContext.Provider\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"\u003e\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" )\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"}\"\n })\n })]\n })\n }), \"\\n\", _jsxs(_components.p, {\n children: [\"Now in your child components you can make use of \", _jsx(_components.code, {\n children: \"useQuery\"\n }), \":\"]\n }), \"\\n\", _jsx(_components.pre, {\n tabIndex: \"0\",\n \"data-language\": \"js\",\n \"data-word-wrap\": \"\",\n children: _jsxs(_components.code, {\n children: [_jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"import\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" { useQuery } \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"from\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \" \\\"graphql-hooks\\\"\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n children: \" \"\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"const\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#005CC5\",\n \"--shiki-dark\": \"#79B8FF\"\n },\n children: \" HOMEPAGE_QUERY\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \" =\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \" `query HomePage($limit: Int) {\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \" users(limit: $limit) {\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \" id\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \" name\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \" }\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \"}`\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: \" \"\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"function\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \" MyComponent\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"() {\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \" const\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" { \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#005CC5\",\n \"--shiki-dark\": \"#79B8FF\"\n },\n children: \"loading\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \", \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#005CC5\",\n \"--shiki-dark\": \"#79B8FF\"\n },\n children: \"error\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \", \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#005CC5\",\n \"--shiki-dark\": \"#79B8FF\"\n },\n children: \"data\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" } \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"=\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \" useQuery\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"(\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#005CC5\",\n \"--shiki-dark\": \"#79B8FF\"\n },\n children: \"HOMEPAGE_QUERY\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \", {\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" variables: {\"\n })\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" limit: \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#005CC5\",\n \"--shiki-dark\": \"#79B8FF\"\n },\n children: \"10\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \",\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" },\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" })\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: \" \"\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \" if\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" (loading) \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"return\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \" \\\"Loading...\\\"\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \" if\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" (error) \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"return\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \" \\\"Something Bad Happened\\\"\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n children: \" \"\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \" return\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" (\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" \u003c\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#22863A\",\n \"--shiki-dark\": \"#85E89D\"\n },\n children: \"ul\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"\u003e\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" {data.users.\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \"map\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"(({ \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#E36209\",\n \"--shiki-dark\": \"#FFAB70\"\n },\n children: \"id\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \", \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#E36209\",\n \"--shiki-dark\": \"#FFAB70\"\n },\n children: \"name\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" }) \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"=\u003e\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" (\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" \u003c\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#22863A\",\n \"--shiki-dark\": \"#85E89D\"\n },\n children: \"li\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \" key\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"=\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"{id}\u003e{name}\u003c/\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#22863A\",\n \"--shiki-dark\": \"#85E89D\"\n },\n children: \"li\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"\u003e\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" ))}\"\n })\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" \u003c/\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#22863A\",\n \"--shiki-dark\": \"#85E89D\"\n },\n children: \"ul\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"\u003e\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" )\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"}\"\n })\n })]\n })\n })]\n });\n}\nreturn {\n title,\n frontMatter,\n useTOC,\n default: _createMdxContent\n};\n"},{"filePath":"./src/code/language-support/clojure/server/lacinia.md","tags":["clojure","server"],"frontMatter":{"name":"lacinia","description":"A full implementation of the GraphQL specification that aims to maintain external compliance with the specification.","github":"walmartlabs/lacinia"},"stars":1824,"formattedStars":"2k","lastRelease":"","license":"Other"},{"filePath":"./src/code/language-support/javascript/client/graphql-ws.md","tags":["javascript","client"],"frontMatter":{"name":"GraphQL-WS","description":"Coherent, zero-dependency, lazy, simple, GraphQL over WebSocket Protocol compliant server and client.","github":"enisdenjo/graphql-ws","npm":"graphql-ws"},"stars":1745,"formattedStars":"2k","lastRelease":"8 months ago","license":"MIT License"},{"filePath":"./src/code/language-support/javascript/server/graphql-ws.md","tags":["javascript","server"],"frontMatter":{"name":"GraphQL-WS","description":"Coherent, zero-dependency, lazy, simple, GraphQL over WebSocket Protocol compliant server and client.","github":"enisdenjo/graphql-ws","npm":"graphql-ws"},"stars":1745,"formattedStars":"2k","lastRelease":"8 months ago","license":"MIT License"},{"filePath":"./src/code/language-support/java-kotlin-android/client/graphql-kotlin.md","tags":["java-kotlin-android","client"],"frontMatter":{"name":"graphql-kotlin","description":"A set of libraries for running GraphQL client and server in Kotlin.","github":"ExpediaGroup/graphql-kotlin"},"stars":1744,"formattedStars":"2k","lastRelease":"4 weeks ago","license":"Apache License 2.0","compiledSource":"\"use strict\";\nconst {Fragment: _Fragment, jsx: _jsx, jsxs: _jsxs} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nconst title = \"\";\nconst frontMatter = {\n \"name\": \"graphql-kotlin\",\n \"description\": \"A set of libraries for running GraphQL client and server in Kotlin.\",\n \"github\": \"ExpediaGroup/graphql-kotlin\"\n};\nfunction useTOC(props) {\n return [];\n}\nfunction _createMdxContent(props) {\n const _components = {\n a: \"a\",\n code: \"code\",\n p: \"p\",\n pre: \"pre\",\n span: \"span\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsxs(_Fragment, {\n children: [_jsx(_components.p, {\n children: \"GraphQL Kotlin provides a set of lightweight type-safe GraphQL HTTP clients. The library provides Ktor HTTP client and Spring WebClient based reference implementations as well as allows for custom implementations using other engines. Jackson and kotlinx-serialization type-safe data models are generated at build time by the provided Gradle and Maven plugins.\"\n }), \"\\n\", _jsx(_components.p, {\n children: \"To generate Jackson models that will be used with GraphQL Kotlin Spring WebClient, add following to your Gradle build file:\"\n }), \"\\n\", _jsx(_components.pre, {\n tabIndex: \"0\",\n \"data-language\": \"kotlin\",\n \"data-word-wrap\": \"\",\n children: _jsxs(_components.code, {\n children: [_jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6A737D\",\n \"--shiki-dark\": \"#6A737D\"\n },\n children: \"// build.gradle.kts\"\n })\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"import\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \" com.expediagroup.graphql.plugin.gradle.graphql\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n children: \" \"\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \"plugins\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" {\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \" id\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"(\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \"\\\"com.expediagroup.graphql\\\"\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \") version $latestGraphQLKotlinVersion\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"}\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: \" \"\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \"dependencies\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" {\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \" implementation\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"(\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \"\\\"com.expediagroup:graphql-kotlin-spring-client:\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#005CC5\",\n \"--shiki-dark\": \"#79B8FF\"\n },\n children: \"$latestGraphQLKotlinVersion\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \"\\\"\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \")\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"}\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: \" \"\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \"graphql\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" {\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \" client\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" {\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6A737D\",\n \"--shiki-dark\": \"#6A737D\"\n },\n children: \" // target GraphQL endpoint\"\n })\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" endpoint \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"=\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \" \\\"http://localhost:8080/graphql\\\"\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6A737D\",\n \"--shiki-dark\": \"#6A737D\"\n },\n children: \" // package for generated client code\"\n })\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" packageName \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"=\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \" \\\"com.example.generated\\\"\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" }\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"}\"\n })\n })]\n })\n }), \"\\n\", _jsxs(_components.p, {\n children: [\"By default, GraphQL Kotlin plugins will look for query files under \", _jsx(_components.code, {\n children: \"src/main/resources\"\n }), \". Given \", _jsx(_components.code, {\n children: \"HelloWorldQuery.graphql\"\n }), \" sample query:\"]\n }), \"\\n\", _jsx(_components.pre, {\n tabIndex: \"0\",\n \"data-language\": \"graphql\",\n \"data-word-wrap\": \"\",\n children: _jsxs(_components.code, {\n children: [_jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"query\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \" HelloWorldQuery\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" {\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#E36209\",\n \"--shiki-dark\": \"#FFAB70\"\n },\n children: \" helloWorld\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"}\"\n })\n })]\n })\n }), \"\\n\", _jsx(_components.p, {\n children: \"Plugin will generate classes that are simple POJOs implementing GraphQLClientRequest interface and represent a GraphQL request.\"\n }), \"\\n\", _jsx(_components.pre, {\n tabIndex: \"0\",\n \"data-language\": \"kotlin\",\n \"data-word-wrap\": \"\",\n children: _jsxs(_components.code, {\n children: [_jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"package\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \" com.example.generated\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n children: \" \"\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"import\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \" com.expediagroup.graphql.client.types.GraphQLClientRequest\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"import\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \" kotlin.String\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"import\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \" kotlin.reflect.KClass\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n children: \" \"\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"const\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \" val\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" HELLO_WORLD_QUERY: \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \"String\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \" =\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \" \\\"query HelloWorldQuery {\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#005CC5\",\n \"--shiki-dark\": \"#79B8FF\"\n },\n children: \"\\\\n\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \" helloWorld\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#005CC5\",\n \"--shiki-dark\": \"#79B8FF\"\n },\n children: \"\\\\n\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \"}\\\"\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n children: \" \"\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"class\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \" HelloWorldQuery\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \": \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \"GraphQLClientRequest\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"\u003c\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \"HelloWorldQuery\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \".\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \"Result\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"\u003e {\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \" override\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \" val\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" query: \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \"String\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \" =\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" HELLO_WORLD_QUERY\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n children: \" \"\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \" override\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \" val\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" operationName: \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \"String\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \" =\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \" \\\"HelloWorldQuery\\\"\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n children: \" \"\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \" override\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \" fun\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \" responseType\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"(): \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \"KClass\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"\u003c\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \"HelloWorldQuery\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \".\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \"Result\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"\u003e \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"=\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" HelloWorldQuery.Result::\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \"class\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n children: \" \"\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \" data\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \" class\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \" Result\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"(\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \" val\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" helloWorld: \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \"String\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" }\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"}\"\n })\n })]\n })\n }), \"\\n\", _jsx(_components.p, {\n children: \"We can then execute our queries using target client.\"\n }), \"\\n\", _jsx(_components.pre, {\n tabIndex: \"0\",\n \"data-language\": \"kotlin\",\n \"data-word-wrap\": \"\",\n children: _jsxs(_components.code, {\n children: [_jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"package\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \" com.example.client\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n children: \" \"\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"import\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \" com.expediagroup.graphql.client.spring.GraphQLWebClient\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"import\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \" com.expediagroup.graphql.generated.HelloWorldQuery\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"import\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \" kotlinx.coroutines.runBlocking\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n children: \" \"\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"fun\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \" main\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"() {\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \" val\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" client \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"=\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \" GraphQLWebClient\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"(url \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"=\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \" \\\"http://localhost:8080/graphql\\\"\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \")\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \" runBlocking\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" {\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \" val\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" helloWorldQuery \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"=\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \" HelloWorldQuery\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"()\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \" val\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" result \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"=\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" client.\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \"execute\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"(helloWorldQuery)\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \" println\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"(\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \"\\\"hello world query result: ${result.\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"data\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \"?.helloWorld}\\\"\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \")\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" }\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"}\"\n })\n })]\n })\n }), \"\\n\", _jsxs(_components.p, {\n children: [\"See \", _jsx(_components.a, {\n href: \"https://opensource.expediagroup.com/graphql-kotlin/docs/client/client-overview\",\n children: \"graphql-kotlin client docs\"\n }), \" for additional details.\"]\n })]\n });\n}\nreturn {\n title,\n frontMatter,\n useTOC,\n default: _createMdxContent\n};\n"},{"filePath":"./src/code/language-support/java-kotlin-android/server/graphql-kotlin.md","tags":["java-kotlin-android","server"],"frontMatter":{"name":"graphql-kotlin","description":"A set of libraries for running GraphQL client and server in Kotlin.","github":"ExpediaGroup/graphql-kotlin"},"stars":1744,"formattedStars":"2k","lastRelease":"4 weeks ago","license":"Apache License 2.0","compiledSource":"\"use strict\";\nconst {Fragment: _Fragment, jsx: _jsx, jsxs: _jsxs} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nconst title = \"\";\nconst frontMatter = {\n \"name\": \"graphql-kotlin\",\n \"description\": \"A set of libraries for running GraphQL client and server in Kotlin.\",\n \"github\": \"ExpediaGroup/graphql-kotlin\"\n};\nfunction useTOC(props) {\n return [];\n}\nfunction _createMdxContent(props) {\n const _components = {\n a: \"a\",\n code: \"code\",\n p: \"p\",\n pre: \"pre\",\n span: \"span\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsxs(_Fragment, {\n children: [_jsx(_components.p, {\n children: \"GraphQL Kotlin follows a code first approach for generating your GraphQL schemas. Given the similarities between Kotlin and GraphQL, such as the ability to define nullable/non-nullable types, a schema can be generated from Kotlin code without any separate schema specification. To create a reactive GraphQL web server add following dependency to your Gradle build file:\"\n }), \"\\n\", _jsx(_components.pre, {\n tabIndex: \"0\",\n \"data-language\": \"kotlin\",\n \"data-word-wrap\": \"\",\n children: _jsxs(_components.code, {\n children: [_jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6A737D\",\n \"--shiki-dark\": \"#6A737D\"\n },\n children: \"// build.gradle.kts\"\n })\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \"implementation\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"(\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \"\\\"com.expediagroup\\\"\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \", \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \"\\\"graphql-kotlin-spring-server\\\"\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \", latestVersion)\"\n })]\n })]\n })\n }), \"\\n\", _jsxs(_components.p, {\n children: [\"We also need to provide a list of supported packages that can be scanned for exposing your schema objects through reflections. Add following configuration to your \", _jsx(_components.code, {\n children: \"application.yml\"\n }), \" file:\"]\n }), \"\\n\", _jsx(_components.pre, {\n tabIndex: \"0\",\n \"data-language\": \"yaml\",\n \"data-word-wrap\": \"\",\n children: _jsxs(_components.code, {\n children: [_jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#22863A\",\n \"--shiki-dark\": \"#85E89D\"\n },\n children: \"graphql\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \":\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#22863A\",\n \"--shiki-dark\": \"#85E89D\"\n },\n children: \" packages\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \":\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" - \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \"\\\"com.your.package\\\"\"\n })]\n })]\n })\n }), \"\\n\", _jsxs(_components.p, {\n children: [\"With the above configuration we can now create our schema. In order to expose your queries, mutations and/or subscriptions in the GraphQL schema you simply need to implement corresponding marker interface and they will be automatically picked up by \", _jsx(_components.code, {\n children: \"graphql-kotlin-spring-server\"\n }), \" auto-configuration library.\"]\n }), \"\\n\", _jsx(_components.pre, {\n tabIndex: \"0\",\n \"data-language\": \"kotlin\",\n \"data-word-wrap\": \"\",\n children: _jsxs(_components.code, {\n children: [_jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \"@Component\"\n })\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"class\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \" HelloWorldQuery\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" : \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \"Query\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" {\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \" fun\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \" helloWorld\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"() \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"=\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \" \\\"Hello World!!!\\\"\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"}\"\n })\n })]\n })\n }), \"\\n\", _jsx(_components.p, {\n children: \"This will result in a reactive GraphQL web application with following schema:\"\n }), \"\\n\", _jsx(_components.pre, {\n tabIndex: \"0\",\n \"data-language\": \"graphql\",\n \"data-word-wrap\": \"\",\n children: _jsxs(_components.code, {\n children: [_jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"type\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#005CC5\",\n \"--shiki-dark\": \"#79B8FF\"\n },\n children: \" Query\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" {\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#E36209\",\n \"--shiki-dark\": \"#FFAB70\"\n },\n children: \" helloWorld\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \": \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#005CC5\",\n \"--shiki-dark\": \"#79B8FF\"\n },\n children: \"String\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"!\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"}\"\n })\n })]\n })\n }), \"\\n\", _jsxs(_components.p, {\n children: [\"See \", _jsx(_components.a, {\n href: \"https://expediagroup.github.io/graphql-kotlin/docs\",\n children: \"graphql-kotlin docs\"\n }), \" for additial details.\"]\n })]\n });\n}\nreturn {\n title,\n frontMatter,\n useTOC,\n default: _createMdxContent\n};\n"},{"filePath":"./src/code/language-support/javascript/tools/graphql-inspector.md","tags":["javascript","tools"],"frontMatter":{"name":"GraphQL Inspector","description":"Compare schemas, validate documents, find breaking changes, find similar types, schema coverage, and more.","url":"https://graphql-inspector.com/","github":"kamilkisiela/graphql-inspector","npm":"@graphql-inspector/cli"},"stars":1653,"formattedStars":"2k","lastRelease":"1 week ago","license":"MIT License"},{"filePath":"./src/code/language-support/go/server/samsarahq-thunder.md","tags":["go","server"],"frontMatter":{"name":"samsarahq/thunder","description":"A GraphQL implementation with easy schema building, live queries, and batching.","github":"samsarahq/thunder"},"stars":1584,"formattedStars":"2k","lastRelease":"","license":"MIT License"},{"filePath":"./src/code/language-support/python/client/gql.md","tags":["python","client"],"frontMatter":{"name":"GQL","description":"A GraphQL client in Python.","github":"graphql-python/gql"},"stars":1558,"formattedStars":"2k","lastRelease":"7 months ago","license":"MIT License"},{"filePath":"./src/code/language-support/java-kotlin-android/server/spring-graphql.md","tags":["java-kotlin-android","server"],"frontMatter":{"name":"Spring for GraphQL","description":"Spring for GraphQL provides support for Spring applications built on GraphQL Java.","url":"https://spring.io/projects/spring-graphql","github":"spring-projects/spring-graphql"},"stars":1536,"formattedStars":"2k","lastRelease":"1 month ago","license":"Apache License 2.0","compiledSource":"\"use strict\";\nconst {Fragment: _Fragment, jsx: _jsx, jsxs: _jsxs} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nconst title = \"\";\nconst frontMatter = {\n \"name\": \"Spring for GraphQL\",\n \"description\": \"Spring for GraphQL provides support for Spring applications built on GraphQL Java.\",\n \"url\": \"https://spring.io/projects/spring-graphql\",\n \"github\": \"spring-projects/spring-graphql\"\n};\nfunction useTOC(props) {\n return [];\n}\nfunction _createMdxContent(props) {\n const _components = {\n a: \"a\",\n code: \"code\",\n li: \"li\",\n p: \"p\",\n pre: \"pre\",\n span: \"span\",\n ul: \"ul\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsxs(_Fragment, {\n children: [_jsxs(_components.p, {\n children: [\"Spring for GraphQL provides support for Spring applications built on\\n\", _jsx(_components.a, {\n href: \"https://www.graphql-java.com/\",\n children: \"GraphQL Java\"\n }), \". See the official \", _jsx(_components.a, {\n href: \"https://spring.io/guides/gs/graphql-server/\",\n children: \"Spring guide\"\n }), \" for how to build a GraphQL service in 15 minutes.\"]\n }), \"\\n\", _jsxs(_components.ul, {\n children: [\"\\n\", _jsx(_components.li, {\n children: \"It is a joint collaboration between the GraphQL Java team and Spring engineering.\"\n }), \"\\n\", _jsx(_components.li, {\n children: \"Our shared philosophy is to provide as little opinion as we can while focusing on comprehensive support for a wide range of use cases.\"\n }), \"\\n\", _jsx(_components.li, {\n children: \"It aims to be the foundation for all Spring, GraphQL applications.\"\n }), \"\\n\"]\n }), \"\\n\", _jsx(_components.p, {\n children: \"Features:\"\n }), \"\\n\", _jsxs(_components.ul, {\n children: [\"\\n\", _jsx(_components.li, {\n children: \"Server handling of GraphQL requests over HTTP, WebSocket, and RSocket.\"\n }), \"\\n\", _jsx(_components.li, {\n children: \"An annotation-based programming model where @Controller components use annotations to declare handler methods with flexible method signatures to fetch the data for specific GraphQL fields. For example:\"\n }), \"\\n\"]\n }), \"\\n\", _jsx(_components.pre, {\n tabIndex: \"0\",\n \"data-language\": \"java\",\n \"data-word-wrap\": \"\",\n children: _jsxs(_components.code, {\n children: [_jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"@\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"Controller\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"public\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \" class\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \" GreetingController\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" {\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n children: \" \"\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" @\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"QueryMapping\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \" public\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" String \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \"hello\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"() {\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \" return\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \" \\\"Hello, world!\\\"\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \";\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" }\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: \" \"\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"}\"\n })\n })]\n })\n }), \"\\n\", _jsxs(_components.ul, {\n children: [\"\\n\", _jsx(_components.li, {\n children: \"Client support for executing GraphQL requests over HTTP, WebSocket, and RSocket.\"\n }), \"\\n\", _jsx(_components.li, {\n children: \"Dedicated support for testing GraphQL requests over HTTP, WebSocket, and RSocket, as well as for testing directly against a server.\"\n }), \"\\n\"]\n }), \"\\n\", _jsxs(_components.p, {\n children: [\"To get started, check the Spring GraphQL starter on \", _jsx(_components.a, {\n href: \"https://start.spring.io\",\n children: \"https://start.spring.io\"\n }), \" and the\\n\", _jsx(_components.a, {\n href: \"https://docs.spring.io/spring-graphql/docs/current/reference/html/#samples\",\n children: \"samples\"\n }), \" in this repository.\"]\n })]\n });\n}\nreturn {\n title,\n frontMatter,\n useTOC,\n default: _createMdxContent\n};\n"},{"filePath":"./src/code/language-support/javascript/client/lokka.md","tags":["javascript","client"],"frontMatter":{"name":"Lokka","description":"A simple JavaScript GraphQL client that works in all JavaScript environments (the browser, Node.js, and React Native).","github":"kadirahq/lokka","npm":"lokka"},"stars":1532,"formattedStars":"2k","lastRelease":"","license":"MIT License"},{"filePath":"./src/code/language-support/java-kotlin-android/server/graphql-java-kickstart.md","tags":["java-kotlin-android","server"],"frontMatter":{"name":"GraphQL Spring Boot","description":"GraphQL Spring Boot from GraphQL Java Kickstart","url":"https://www.graphql-java-kickstart.com/","github":"graphql-java-kickstart/graphql-spring-boot"},"stars":1503,"formattedStars":"2k","lastRelease":"11 months ago","license":"MIT License","compiledSource":"\"use strict\";\nconst {Fragment: _Fragment, jsx: _jsx, jsxs: _jsxs} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nconst title = \"\";\nconst frontMatter = {\n \"name\": \"GraphQL Spring Boot\",\n \"description\": \"GraphQL Spring Boot from GraphQL Java Kickstart\",\n \"url\": \"https://www.graphql-java-kickstart.com/\",\n \"github\": \"graphql-java-kickstart/graphql-spring-boot\"\n};\nfunction useTOC(props) {\n return [];\n}\nfunction _createMdxContent(props) {\n const _components = {\n a: \"a\",\n li: \"li\",\n p: \"p\",\n ul: \"ul\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsxs(_Fragment, {\n children: [_jsx(_components.p, {\n children: \"The GraphQL Spring Boot turns any Spring Boot application into a GraphQL Server\"\n }), \"\\n\", _jsx(_components.p, {\n children: \"Started includes features such as:\"\n }), \"\\n\", _jsxs(_components.ul, {\n children: [\"\\n\", _jsxs(_components.li, {\n children: [\"Use a schema-driven API with the help of \", _jsx(_components.a, {\n href: \"https://github.com/graphql-java-kickstart/graphql-java-tools\",\n children: \"GraphQL Java Tools\"\n })]\n }), \"\\n\", _jsxs(_components.li, {\n children: [\"Optionally choose to use an annotation driven schema with the help of \", _jsx(_components.a, {\n href: \"https://github.com/Enigmatis/graphql-java-annotations\",\n children: \"GraphQL-Java Annotations\"\n })]\n }), \"\\n\", _jsxs(_components.li, {\n children: [\"Embedded \", _jsx(_components.a, {\n href: \"https://github.com/graphql/graphiql\",\n children: \"GraphiQL\"\n }), \" tool for schema introspection and query debugging\"]\n }), \"\\n\", _jsxs(_components.li, {\n children: [\"Embedded \", _jsx(_components.a, {\n href: \"https://github.com/prisma/graphql-playground\",\n children: \"GraphQL Playground\"\n }), \" tool for schema introspection and query debugging\"]\n }), \"\\n\", _jsxs(_components.li, {\n children: [\"Embedded the \", _jsx(_components.a, {\n href: \"https://github.com/APIs-guru/graphql-voyager\",\n children: \"GraphQL Voyager\"\n }), \" tool to represent your GraphQL API as an interactive graph\"]\n }), \"\\n\"]\n }), \"\\n\", _jsxs(_components.p, {\n children: [\"See \", _jsx(_components.a, {\n href: \"https://www.graphql-java-kickstart.com/spring-boot/getting-started/\",\n children: \"GraphQL Java Kickstart Getting Started\"\n }), \" for how to get started.\"]\n })]\n });\n}\nreturn {\n title,\n frontMatter,\n useTOC,\n default: _createMdxContent\n};\n"},{"filePath":"./src/code/tools/microcks/general/microcks.md","tags":["tools","general"],"frontMatter":{"name":"Microcks","description":"Open source Kubernetes-native tool for API Mocking and Testing","url":"https://microcks.io","github":"microcks/microcks"},"stars":1424,"formattedStars":"1k","lastRelease":"1 month ago","license":"Apache License 2.0","compiledSource":"\"use strict\";\nconst {Fragment: _Fragment, jsx: _jsx, jsxs: _jsxs} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nconst title = \"\";\nconst frontMatter = {\n \"name\": \"Microcks\",\n \"description\": \"Open source Kubernetes-native tool for API Mocking and Testing\",\n \"url\": \"https://microcks.io\",\n \"github\": \"microcks/microcks\"\n};\nfunction useTOC(props) {\n return [];\n}\nfunction _createMdxContent(props) {\n const _components = {\n em: \"em\",\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsxs(_Fragment, {\n children: [_jsxs(_components.p, {\n children: [\"Microcks is a platform for turning your API and microservices assets - \", _jsx(_components.em, {\n children: \"GraphQL schemas\"\n }), \", \", _jsx(_components.em, {\n children: \"OpenAPI specs\"\n }), \", \", _jsx(_components.em, {\n children: \"AsyncAPI specs\"\n }), \", \", _jsx(_components.em, {\n children: \"gRPC protobuf\"\n }), \", \", _jsx(_components.em, {\n children: \"Postman collections\"\n }), \", \", _jsx(_components.em, {\n children: \"SoapUI projects\"\n }), \"_ - into live simulations in seconds.\"]\n }), \"\\n\", _jsxs(_components.p, {\n children: [\"It also reuses these assets for running compliance and non-regression tests against your API implementation. We provide integrations with \", _jsx(_components.em, {\n children: \"Jenkins\"\n }), \", \", _jsx(_components.em, {\n children: \"GitHub Actions\"\n }), \", \", _jsx(_components.em, {\n children: \"Tekton\"\n }), \" and many others through a simple CLI.\"]\n })]\n });\n}\nreturn {\n title,\n frontMatter,\n useTOC,\n default: _createMdxContent\n};\n"},{"filePath":"./src/code/language-support/javascript/tools/graphql-modules.md","tags":["javascript","tools"],"frontMatter":{"name":"GraphQL Modules","description":"GraphQL Modules lets you separate your backend implementation to small, reusable, easy-to-implement and easy-to-test pieces.","url":"https://graphql-modules.com","github":"Urigo/graphql-modules","npm":"graphql-modules"},"stars":1312,"formattedStars":"1k","lastRelease":"1 month ago","license":"MIT License"},{"filePath":"./src/code/language-support/javascript/tools/graphql-config.md","tags":["javascript","tools"],"frontMatter":{"name":"GraphQL Config","description":"One configuration for all your GraphQL tools (supported by most tools, editors \u0026 IDEs).","url":"https://graphql-config.com","github":"kamilkisiela/graphql-config","npm":"graphql-config"},"stars":1175,"formattedStars":"1k","lastRelease":"1 month ago","license":"MIT License"},{"filePath":"./src/code/language-support/javascript/tools/graphql-middleware.md","tags":["javascript","tools"],"frontMatter":{"name":"GraphQL Middleware","description":"Split up your GraphQL resolvers in middleware functions.","github":"maticzav/graphql-middleware","npm":"graphql-middleware"},"stars":1144,"formattedStars":"1k","lastRelease":"1 year ago","license":"MIT License","compiledSource":"\"use strict\";\nconst {Fragment: _Fragment, jsx: _jsx, jsxs: _jsxs} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nconst title = \"\";\nconst frontMatter = {\n \"name\": \"GraphQL Middleware\",\n \"description\": \"Split up your GraphQL resolvers in middleware functions.\",\n \"github\": \"maticzav/graphql-middleware\",\n \"npm\": \"graphql-middleware\"\n};\nfunction useTOC(props) {\n return [{\n value: \"Features\",\n id: \"features\",\n depth: 2\n }, {\n value: \"Example\",\n id: \"example\",\n depth: 2\n }];\n}\nfunction _createMdxContent(props) {\n const _components = {\n code: \"code\",\n h2: \"h2\",\n p: \"p\",\n pre: \"pre\",\n span: \"span\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsxs(_Fragment, {\n children: [_jsx(_components.p, {\n children: \"GraphQL Middleware is a schema wrapper which allows you to manage additional functionality across multiple resolvers efficiently.\"\n }), \"\\n\", _jsx(_components.h2, {\n id: \"features\",\n children: \"Features\"\n }), \"\\n\", _jsx(_components.p, {\n children: \"💡 Easy to use: An intuitive, yet familiar API that you will pick up in a second.\\n💪 Powerful: Allows complete control over your resolvers (Before, After).\\n🌈 Compatible: Works with any GraphQL Schema.\"\n }), \"\\n\", _jsx(_components.h2, {\n id: \"example\",\n children: \"Example\"\n }), \"\\n\", _jsx(_components.pre, {\n tabIndex: \"0\",\n \"data-language\": \"ts\",\n \"data-word-wrap\": \"\",\n children: _jsxs(_components.code, {\n children: [_jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"const\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" { \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#005CC5\",\n \"--shiki-dark\": \"#79B8FF\"\n },\n children: \"ApolloServer\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" } \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"=\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \" require\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"(\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \"\\\"apollo-server\\\"\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \")\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"const\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" { \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#005CC5\",\n \"--shiki-dark\": \"#79B8FF\"\n },\n children: \"makeExecutableSchema\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" } \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"=\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \" require\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"(\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \"\\\"@graphql-tools/schema\\\"\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \")\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n children: \" \"\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"const\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#005CC5\",\n \"--shiki-dark\": \"#79B8FF\"\n },\n children: \" typeDefs\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \" =\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \" `\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \"type Query {\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \" hello(name: String): String\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \" bye(name: String): String\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \"}\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \"`\"\n })\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"const\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#005CC5\",\n \"--shiki-dark\": \"#79B8FF\"\n },\n children: \" resolvers\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \" =\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" {\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" Query: {\"\n })\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \" hello\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \": (\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#E36209\",\n \"--shiki-dark\": \"#FFAB70\"\n },\n children: \"root\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \", \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#E36209\",\n \"--shiki-dark\": \"#FFAB70\"\n },\n children: \"args\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \", \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#E36209\",\n \"--shiki-dark\": \"#FFAB70\"\n },\n children: \"context\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \", \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#E36209\",\n \"--shiki-dark\": \"#FFAB70\"\n },\n children: \"info\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \") \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"=\u003e\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" {\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" console.\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \"log\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"(\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \"`3. resolver: hello`\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \")\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \" return\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \" `Hello ${\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"args\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \".\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"name\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \" ?\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" args\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \".\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"name\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \" :\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \" \\\"world\\\"}!`\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" },\"\n })\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \" bye\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \": (\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#E36209\",\n \"--shiki-dark\": \"#FFAB70\"\n },\n children: \"root\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \", \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#E36209\",\n \"--shiki-dark\": \"#FFAB70\"\n },\n children: \"args\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \", \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#E36209\",\n \"--shiki-dark\": \"#FFAB70\"\n },\n children: \"context\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \", \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#E36209\",\n \"--shiki-dark\": \"#FFAB70\"\n },\n children: \"info\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \") \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"=\u003e\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" {\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" console.\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \"log\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"(\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \"`3. resolver: bye`\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \")\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \" return\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \" `Bye ${\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"args\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \".\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"name\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \" ?\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" args\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \".\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"name\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \" :\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \" \\\"world\\\"}!`\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" },\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" },\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"}\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: \" \"\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"const\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \" logInput\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \" =\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \" async\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" (\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#E36209\",\n \"--shiki-dark\": \"#FFAB70\"\n },\n children: \"resolve\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \", \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#E36209\",\n \"--shiki-dark\": \"#FFAB70\"\n },\n children: \"root\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \", \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#E36209\",\n \"--shiki-dark\": \"#FFAB70\"\n },\n children: \"args\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \", \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#E36209\",\n \"--shiki-dark\": \"#FFAB70\"\n },\n children: \"context\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \", \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#E36209\",\n \"--shiki-dark\": \"#FFAB70\"\n },\n children: \"info\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \") \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"=\u003e\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" {\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" console.\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \"log\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"(\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \"`1. logInput: ${\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#005CC5\",\n \"--shiki-dark\": \"#79B8FF\"\n },\n children: \"JSON\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \".\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \"stringify\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \"(\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"args\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \")\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \"}`\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \")\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \" const\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#005CC5\",\n \"--shiki-dark\": \"#79B8FF\"\n },\n children: \" result\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \" =\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \" await\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \" resolve\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"(root, args, context, info)\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" console.\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \"log\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"(\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \"`5. logInput`\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \")\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \" return\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" result\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"}\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: \" \"\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"const\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \" logResult\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \" =\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \" async\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" (\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#E36209\",\n \"--shiki-dark\": \"#FFAB70\"\n },\n children: \"resolve\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \", \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#E36209\",\n \"--shiki-dark\": \"#FFAB70\"\n },\n children: \"root\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \", \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#E36209\",\n \"--shiki-dark\": \"#FFAB70\"\n },\n children: \"args\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \", \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#E36209\",\n \"--shiki-dark\": \"#FFAB70\"\n },\n children: \"context\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \", \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#E36209\",\n \"--shiki-dark\": \"#FFAB70\"\n },\n children: \"info\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \") \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"=\u003e\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" {\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" console.\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \"log\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"(\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \"`2. logResult`\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \")\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \" const\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#005CC5\",\n \"--shiki-dark\": \"#79B8FF\"\n },\n children: \" result\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \" =\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \" await\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \" resolve\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"(root, args, context, info)\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" console.\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \"log\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"(\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \"`4. logResult: ${\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#005CC5\",\n \"--shiki-dark\": \"#79B8FF\"\n },\n children: \"JSON\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \".\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \"stringify\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \"(\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"result\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \")\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \"}`\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \")\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \" return\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" result\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"}\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: \" \"\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"const\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#005CC5\",\n \"--shiki-dark\": \"#79B8FF\"\n },\n children: \" schema\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \" =\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \" makeExecutableSchema\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"({ typeDefs, resolvers })\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n children: \" \"\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"const\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#005CC5\",\n \"--shiki-dark\": \"#79B8FF\"\n },\n children: \" schemaWithMiddleware\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \" =\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \" applyMiddleware\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"(schema, logInput, logResult)\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n children: \" \"\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"const\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#005CC5\",\n \"--shiki-dark\": \"#79B8FF\"\n },\n children: \" server\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \" =\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \" new\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \" ApolloServer\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"({\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" schema: schemaWithMiddleware,\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"})\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: \" \"\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"await\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" server.\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \"listen\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"({ port: \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#005CC5\",\n \"--shiki-dark\": \"#79B8FF\"\n },\n children: \"8008\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" })\"\n })]\n })]\n })\n })]\n });\n}\nreturn {\n title,\n frontMatter,\n useTOC,\n default: _createMdxContent\n};\n"},{"filePath":"./src/code/language-support/php/server/siler.md","tags":["php","server"],"frontMatter":{"name":"Siler","description":"Siler is a PHP library powered with high-level abstractions to work with GraphQL.","url":"https://siler.leocavalcante.com/graphql/","github":"leocavalcante/siler"},"stars":1116,"formattedStars":"1k","lastRelease":"3 years ago","license":"MIT License","compiledSource":"\"use strict\";\nconst {Fragment: _Fragment, jsx: _jsx, jsxs: _jsxs} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nconst title = \"\";\nconst frontMatter = {\n \"name\": \"Siler\",\n \"description\": \"Siler is a PHP library powered with high-level abstractions to work with GraphQL.\",\n \"url\": \"https://siler.leocavalcante.com/graphql/\",\n \"github\": \"leocavalcante/siler\"\n};\nfunction useTOC(props) {\n return [];\n}\nfunction _createMdxContent(props) {\n const _components = {\n code: \"code\",\n p: \"p\",\n pre: \"pre\",\n span: \"span\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsxs(_Fragment, {\n children: [_jsx(_components.p, {\n children: \"To run a Siler hello world script:\"\n }), \"\\n\", _jsx(_components.pre, {\n tabIndex: \"0\",\n \"data-language\": \"graphql\",\n \"data-word-wrap\": \"\",\n children: _jsxs(_components.code, {\n children: [_jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"type\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#005CC5\",\n \"--shiki-dark\": \"#79B8FF\"\n },\n children: \" Query\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" {\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#E36209\",\n \"--shiki-dark\": \"#FFAB70\"\n },\n children: \" hello\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \": \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#005CC5\",\n \"--shiki-dark\": \"#79B8FF\"\n },\n children: \"String\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"}\"\n })\n })]\n })\n }), \"\\n\", _jsx(_components.pre, {\n tabIndex: \"0\",\n \"data-language\": \"php\",\n \"data-word-wrap\": \"\",\n children: _jsxs(_components.code, {\n children: [_jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"\u003c?\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#005CC5\",\n \"--shiki-dark\": \"#79B8FF\"\n },\n children: \"php\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"declare\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"(\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#005CC5\",\n \"--shiki-dark\": \"#79B8FF\"\n },\n children: \"strict_types\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"=\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#005CC5\",\n \"--shiki-dark\": \"#79B8FF\"\n },\n children: \"1\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \");\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"require_once\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \" '/path/to/vendor/autoload.php'\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \";\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n children: \" \"\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"use\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#005CC5\",\n \"--shiki-dark\": \"#79B8FF\"\n },\n children: \" SilerDiactoros\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \";\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"use\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#005CC5\",\n \"--shiki-dark\": \"#79B8FF\"\n },\n children: \" SilerGraphql\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \";\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"use\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#005CC5\",\n \"--shiki-dark\": \"#79B8FF\"\n },\n children: \" SilerHttp\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \";\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n children: \" \"\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"$typeDefs \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"=\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#005CC5\",\n \"--shiki-dark\": \"#79B8FF\"\n },\n children: \" file_get_contents\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"(\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#005CC5\",\n \"--shiki-dark\": \"#79B8FF\"\n },\n children: \"__DIR__\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \".\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \"'/schema.graphql'\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \");\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"$resolvers \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"=\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" [\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \" 'Query'\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \" =\u003e\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" [\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \" 'hello'\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \" =\u003e\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \" 'world'\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \",\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" ],\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"];\"\n })\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"$schema \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"=\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \" Graphqlschema\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"($typeDefs, $resolvers);\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n children: \" \"\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#005CC5\",\n \"--shiki-dark\": \"#79B8FF\"\n },\n children: \"echo\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \" \\\"Server running at http://127.0.0.1:8080\\\"\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \";\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n children: \" \"\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \"Httpserver\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"(\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \"Graphqlpsr7\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"($schema), \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"function\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" (\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#005CC5\",\n \"--shiki-dark\": \"#79B8FF\"\n },\n children: \"Throwable\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" $err) {\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#005CC5\",\n \"--shiki-dark\": \"#79B8FF\"\n },\n children: \" var_dump\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"($err);\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \" return\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \" Diactorosjson\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"([\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \" 'error'\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \" =\u003e\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#005CC5\",\n \"--shiki-dark\": \"#79B8FF\"\n },\n children: \" true\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \",\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \" 'message'\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \" =\u003e\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" $err\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"-\u003e\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \"getMessage\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"(),\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" ]);\"\n })\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"})()\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"-\u003e\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \"run\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"();\"\n })]\n })]\n })\n }), \"\\n\", _jsx(_components.p, {\n children: \"It also provides functionality for the construction of a WebSocket Subscriptions Server based on how Apollo works.\"\n })]\n });\n}\nreturn {\n title,\n frontMatter,\n useTOC,\n default: _createMdxContent\n};\n"},{"filePath":"./src/code/language-support/javascript/tools/spectaql.md","tags":["javascript","tools"],"frontMatter":{"name":"SpectaQL","description":"SpectaQL generates static HTML documentation from a GraphQL schema.","github":"anvilco/spectaql","npm":"spectaql"},"stars":1115,"formattedStars":"1k","lastRelease":"","license":"MIT License","compiledSource":"\"use strict\";\nconst {Fragment: _Fragment, jsx: _jsx, jsxs: _jsxs} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nconst title = \"\";\nconst frontMatter = {\n \"name\": \"SpectaQL\",\n \"description\": \"SpectaQL generates static HTML documentation from a GraphQL schema.\",\n \"github\": \"anvilco/spectaql\",\n \"npm\": \"spectaql\"\n};\nfunction useTOC(props) {\n return [];\n}\nfunction _createMdxContent(props) {\n const _components = {\n code: \"code\",\n li: \"li\",\n p: \"p\",\n pre: \"pre\",\n span: \"span\",\n ul: \"ul\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsxs(_Fragment, {\n children: [_jsx(_components.p, {\n children: \"SpectaQL is a Node.js library that generates static documentation for a GraphQL schema using a variety of options:\"\n }), \"\\n\", _jsxs(_components.ul, {\n children: [\"\\n\", _jsx(_components.li, {\n children: \"From a live endpoint using the introspection query.\"\n }), \"\\n\", _jsx(_components.li, {\n children: \"From a file containing an introspection query result.\"\n }), \"\\n\", _jsx(_components.li, {\n children: \"From a file, files or glob leading to the schema definitions in SDL.\"\n }), \"\\n\"]\n }), \"\\n\", _jsx(_components.p, {\n children: \"Out of the box, SpectaQL generates a single 3-column HTML page and lets you choose between a couple built-in themes. A main goal of the project is to be easily and extremely customizable—it is themeable and just about everything can be overridden or customized.\"\n }), \"\\n\", _jsx(_components.pre, {\n tabIndex: \"0\",\n \"data-language\": \"sh\",\n \"data-word-wrap\": \"\",\n children: _jsxs(_components.code, {\n children: [_jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \"npm\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \" install\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#005CC5\",\n \"--shiki-dark\": \"#79B8FF\"\n },\n children: \" --dev\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \" spectaql\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6A737D\",\n \"--shiki-dark\": \"#6A737D\"\n },\n children: \"# OR\"\n })\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \"yarn\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \" add\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#005CC5\",\n \"--shiki-dark\": \"#79B8FF\"\n },\n children: \" -D\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \" spectaql\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n children: \" \"\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6A737D\",\n \"--shiki-dark\": \"#6A737D\"\n },\n children: \"# Then generate your docs\"\n })\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \"npm\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \" run\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \" spectaql\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \" my-config.yml\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6A737D\",\n \"--shiki-dark\": \"#6A737D\"\n },\n children: \"# OR\"\n })\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \"yarn\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \" spectaql\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \" my-config.yml\"\n })]\n })]\n })\n })]\n });\n}\nreturn {\n title,\n frontMatter,\n useTOC,\n default: _createMdxContent\n};\n"},{"filePath":"./src/code/language-support/go/client/genqlient.md","tags":["go","client"],"frontMatter":{"name":"genqlient","description":"A truly type-safe Go GraphQL client.","github":"Khan/genqlient"},"stars":1089,"formattedStars":"1k","lastRelease":"8 months ago","license":"MIT License","compiledSource":"\"use strict\";\nconst {Fragment: _Fragment, jsx: _jsx, jsxs: _jsxs} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nconst title = \"\";\nconst frontMatter = {\n \"name\": \"genqlient\",\n \"description\": \"A truly type-safe Go GraphQL client.\",\n \"github\": \"Khan/genqlient\"\n};\nfunction useTOC(props) {\n return [];\n}\nfunction _createMdxContent(props) {\n const _components = {\n code: \"code\",\n li: \"li\",\n p: \"p\",\n ul: \"ul\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsxs(_Fragment, {\n children: [_jsx(_components.p, {\n children: \"genqlient is a Go library to easily generate type-safe code to query a GraphQL API. It takes advantage of the fact that both GraphQL and Go are typed languages to ensure at compile-time that your code is making a valid GraphQL query and using the result correctly, all with a minimum of boilerplate.\"\n }), \"\\n\", _jsx(_components.p, {\n children: \"genqlient provides:\"\n }), \"\\n\", _jsxs(_components.ul, {\n children: [\"\\n\", _jsx(_components.li, {\n children: \"Compile-time validation of GraphQL queries: never ship an invalid GraphQL query again!\"\n }), \"\\n\", _jsxs(_components.li, {\n children: [\"Type-safe response objects: genqlient generates the right type for each query, so you know the response will unmarshal correctly and never need to use \", _jsx(_components.code, {\n children: \"interface{}\"\n }), \".\"]\n }), \"\\n\", _jsx(_components.li, {\n children: \"Production-readiness: genqlient is used in production at Khan Academy, where it supports millions of learners and teachers around the world.\"\n }), \"\\n\"]\n })]\n });\n}\nreturn {\n title,\n frontMatter,\n useTOC,\n default: _createMdxContent\n};\n"},{"filePath":"./src/code/language-support/c-c/tools/libgraphqlparser.md","tags":["c-c","tools"],"frontMatter":{"name":"libgraphqlparser","description":"A GraphQL query language parser in C++ with C and C++ APIs.","github":"graphql/libgraphqlparser"},"stars":1081,"formattedStars":"1k","lastRelease":"7 years ago","license":"MIT License"},{"filePath":"./src/code/language-support/javascript/tools/sofa.md","tags":["javascript","tools"],"frontMatter":{"name":"SOFA","description":"Generate REST API from your GraphQL API.","url":"https://sofa-api.com/","github":"Urigo/SOFA","npm":"sofa-api"},"stars":1078,"formattedStars":"1k","lastRelease":"11 months ago","license":"MIT License"},{"filePath":"./src/code/services/elide.md","tags":["services"],"frontMatter":{"name":"Elide","description":"A Java library that can expose a JPA annotated data model as a GraphQL service over any relational database.","url":"https://elide.io","github":"yahoo/elide"},"stars":1004,"formattedStars":"1k","lastRelease":"2 months ago","license":"Other"},{"filePath":"./src/code/language-support/scala/client/caliban.md","tags":["scala","client"],"frontMatter":{"name":"Caliban","description":"Caliban is a functional library for building GraphQL servers and clients in Scala. It offers with client code generation and type-safe queries.","url":"https://ghostdogpr.github.io/caliban/","github":"ghostdogpr/caliban"},"stars":947,"formattedStars":"1k","lastRelease":"2 months ago","license":"Apache License 2.0","compiledSource":"\"use strict\";\nconst {Fragment: _Fragment, jsx: _jsx, jsxs: _jsxs} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nconst title = \"\";\nconst frontMatter = {\n \"name\": \"Caliban\",\n \"description\": \"Caliban is a functional library for building GraphQL servers and clients in Scala. It offers with client code generation and type-safe queries.\",\n \"url\": \"https://ghostdogpr.github.io/caliban/\",\n \"github\": \"ghostdogpr/caliban\"\n};\nfunction useTOC(props) {\n return [];\n}\nfunction _createMdxContent(props) {\n const _components = {\n code: \"code\",\n p: \"p\",\n pre: \"pre\",\n span: \"span\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsxs(_Fragment, {\n children: [_jsxs(_components.p, {\n children: [\"An example of defining a GraphQL query and running it with \", _jsx(_components.code, {\n children: \"caliban\"\n }), \":\"]\n }), \"\\n\", _jsx(_components.pre, {\n tabIndex: \"0\",\n \"data-language\": \"scala\",\n \"data-word-wrap\": \"\",\n children: _jsxs(_components.code, {\n children: [_jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6A737D\",\n \"--shiki-dark\": \"#6A737D\"\n },\n children: \"// define your query using Scala\"\n })\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"val\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#E36209\",\n \"--shiki-dark\": \"#FFAB70\"\n },\n children: \" query\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \":\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \" SelectionBuilder\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"[\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \"RootQuery\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \", \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \"List\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"[\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \"CharacterView\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"]] \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"=\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \" Query\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \".characters {\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" (\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \"Character\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \".name \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"~\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \" Character\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \".nicknames \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"~\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \" Character\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \".origin)\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" .mapN(\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \"CharacterView\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \")\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" }\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: \" \"\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"import\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \" sttp\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \".\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \"client3\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \".\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \"_\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6A737D\",\n \"--shiki-dark\": \"#6A737D\"\n },\n children: \"// run the query and get the result already parsed into a case class\"\n })\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"val\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#E36209\",\n \"--shiki-dark\": \"#FFAB70\"\n },\n children: \" result\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \" =\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" query.toRequest(\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"uri\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \"\\\"http://someUrl\\\"\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \").send(\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \"HttpClientSyncBackend\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"()).body\"\n })]\n })]\n })\n })]\n });\n}\nreturn {\n title,\n frontMatter,\n useTOC,\n default: _createMdxContent\n};\n"},{"filePath":"./src/code/language-support/scala/server/caliban.md","tags":["scala","server"],"frontMatter":{"name":"Caliban","description":"Caliban is a functional library for building GraphQL servers and clients in Scala. It offers minimal boilerplate and excellent interoperability.","url":"https://ghostdogpr.github.io/caliban/","github":"ghostdogpr/caliban"},"stars":947,"formattedStars":"1k","lastRelease":"2 months ago","license":"Apache License 2.0","compiledSource":"\"use strict\";\nconst {Fragment: _Fragment, jsx: _jsx, jsxs: _jsxs} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nconst title = \"\";\nconst frontMatter = {\n \"name\": \"Caliban\",\n \"description\": \"Caliban is a functional library for building GraphQL servers and clients in Scala. It offers minimal boilerplate and excellent interoperability.\",\n \"url\": \"https://ghostdogpr.github.io/caliban/\",\n \"github\": \"ghostdogpr/caliban\"\n};\nfunction useTOC(props) {\n return [];\n}\nfunction _createMdxContent(props) {\n const _components = {\n code: \"code\",\n p: \"p\",\n pre: \"pre\",\n span: \"span\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsxs(_Fragment, {\n children: [_jsxs(_components.p, {\n children: [\"An example of a simple GraphQL schema and query with \", _jsx(_components.code, {\n children: \"caliban\"\n }), \":\"]\n }), \"\\n\", _jsx(_components.pre, {\n tabIndex: \"0\",\n \"data-language\": \"scala\",\n \"data-word-wrap\": \"\",\n children: _jsxs(_components.code, {\n children: [_jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"import\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \" caliban\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \".\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \"_\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"import\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \" caliban\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \".\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \"schema\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \".\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \"Schema\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \".\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \"auto\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \".\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \"_\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n children: \" \"\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6A737D\",\n \"--shiki-dark\": \"#6A737D\"\n },\n children: \"// schema\"\n })\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"case\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \" class\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \" Query\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"(\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#E36209\",\n \"--shiki-dark\": \"#FFAB70\"\n },\n children: \"hello\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \": \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \"String\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \")\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n children: \" \"\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6A737D\",\n \"--shiki-dark\": \"#6A737D\"\n },\n children: \"// resolver\"\n })\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"val\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#E36209\",\n \"--shiki-dark\": \"#FFAB70\"\n },\n children: \" resolver\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \" =\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \" RootResolver\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"(\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \"Query\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"(\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \"\\\"Hello world!\\\"\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"))\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n children: \" \"\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"val\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#E36209\",\n \"--shiki-dark\": \"#FFAB70\"\n },\n children: \" api\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \" =\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" graphQL(resolver)\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n children: \" \"\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"for\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" {\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" interpreter \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"\u003c-\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" api.interpreter\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" result \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"\u003c-\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" interpreter.execute(\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \"\\\"{ hello }\\\"\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \")\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"} \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"yield\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" result\"\n })]\n })]\n })\n })]\n });\n}\nreturn {\n title,\n frontMatter,\n useTOC,\n default: _createMdxContent\n};\n"},{"filePath":"./src/code/language-support/go/client/machinebox-graphql.md","tags":["go","client"],"frontMatter":{"name":"machinebox/graphql","description":"An elegant low-level HTTP client for GraphQL.","github":"machinebox/graphql"},"stars":941,"formattedStars":"1k","lastRelease":"6 years ago","license":"Apache License 2.0"},{"filePath":"./src/code/language-support/javascript/client/gqty.md","tags":["javascript","client"],"frontMatter":{"name":"GQty","description":"The No-GraphQL client for TypeScript.","url":"http://gqty.dev/","github":"gqty-dev/gqty","npm":"gqty"},"stars":934,"formattedStars":"1k","lastRelease":"1 week ago","license":"MIT License","compiledSource":"\"use strict\";\nconst {Fragment: _Fragment, jsx: _jsx, jsxs: _jsxs} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nconst title = \"\";\nconst frontMatter = {\n \"name\": \"GQty\",\n \"description\": \"The No-GraphQL client for TypeScript.\",\n \"url\": \"http://gqty.dev/\",\n \"github\": \"gqty-dev/gqty\",\n \"npm\": \"gqty\"\n};\nfunction useTOC(props) {\n return [];\n}\nfunction _createMdxContent(props) {\n const _components = {\n code: \"code\",\n p: \"p\",\n pre: \"pre\",\n span: \"span\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsxs(_Fragment, {\n children: [_jsx(_components.p, {\n children: \"GQty is a query builder, a query fetcher and a cache manager solution all-in-one.\"\n }), \"\\n\", _jsx(_components.p, {\n children: \"You interact with your GraphQL endpoint via Proxy objects. Under the hood, GQty captures what is being read, checks cache validity, fetch missing contents and then updates the cache for you.\"\n }), \"\\n\", _jsx(_components.p, {\n children: \"Start using GQty by simply running our interactive codegen:\"\n }), \"\\n\", _jsx(_components.pre, {\n tabIndex: \"0\",\n \"data-language\": \"bash\",\n \"data-word-wrap\": \"\",\n children: _jsxs(_components.code, {\n children: [_jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6A737D\",\n \"--shiki-dark\": \"#6A737D\"\n },\n children: \"# npm\"\n })\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \"npx\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \" @gqty/cli\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n children: \" \"\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6A737D\",\n \"--shiki-dark\": \"#6A737D\"\n },\n children: \"# yarn\"\n })\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \"yarn\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \" dlx\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \" @gqty/cli\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n children: \" \"\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6A737D\",\n \"--shiki-dark\": \"#6A737D\"\n },\n children: \"# pnpm\"\n })\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \"pnpm\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \" dlx\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \" @gqty/cli\"\n })]\n })]\n })\n }), \"\\n\", _jsxs(_components.p, {\n children: [\"GQty also provides framework specific integrations such as \", _jsx(_components.code, {\n children: \"@gqty/react\"\n }), \" and \", _jsx(_components.code, {\n children: \"@gqty/solid\"\n }), \", which can be installed via our CLI.\"]\n })]\n });\n}\nreturn {\n title,\n frontMatter,\n useTOC,\n default: _createMdxContent\n};\n"},{"filePath":"./src/code/language-support/ruby/server/agoo.md","tags":["ruby","server"],"frontMatter":{"name":"Agoo","description":"A high performance web server with support for GraphQL. Agoo strives for a simple, easy to use API for GraphQL.","github":"ohler55/agoo","gem":"agoo"},"stars":912,"formattedStars":"1k","lastRelease":"","license":"MIT License","compiledSource":"\"use strict\";\nconst {jsx: _jsx, jsxs: _jsxs} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nconst title = \"\";\nconst frontMatter = {\n \"name\": \"Agoo\",\n \"description\": \"A high performance web server with support for GraphQL. Agoo strives for a simple, easy to use API for GraphQL.\",\n \"github\": \"ohler55/agoo\",\n \"gem\": \"agoo\"\n};\nfunction useTOC(props) {\n return [];\n}\nfunction _createMdxContent(props) {\n const _components = {\n code: \"code\",\n pre: \"pre\",\n span: \"span\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.pre, {\n tabIndex: \"0\",\n \"data-language\": \"ruby\",\n \"data-word-wrap\": \"\",\n children: _jsxs(_components.code, {\n children: [_jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"require\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \" 'agoo'\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n children: \" \"\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"class\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \" Query\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \" def\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \" hello\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \" 'hello'\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \" end\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"end\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: \" \"\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"class\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \" Schema\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \" attr_reader\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#005CC5\",\n \"--shiki-dark\": \"#79B8FF\"\n },\n children: \" :query\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n children: \" \"\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \" def\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \" initialize\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" @query \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"=\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#005CC5\",\n \"--shiki-dark\": \"#79B8FF\"\n },\n children: \" Query\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \".\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"new\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"()\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \" end\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"end\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: \" \"\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#005CC5\",\n \"--shiki-dark\": \"#79B8FF\"\n },\n children: \"Agoo\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"::\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#005CC5\",\n \"--shiki-dark\": \"#79B8FF\"\n },\n children: \"Server\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \".init(\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#005CC5\",\n \"--shiki-dark\": \"#79B8FF\"\n },\n children: \"6464\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \", \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \"'root'\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \", \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#005CC5\",\n \"--shiki-dark\": \"#79B8FF\"\n },\n children: \"thread_count:\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#005CC5\",\n \"--shiki-dark\": \"#79B8FF\"\n },\n children: \" 1\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \", \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#005CC5\",\n \"--shiki-dark\": \"#79B8FF\"\n },\n children: \"graphql:\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \" '/graphql'\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \")\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#005CC5\",\n \"--shiki-dark\": \"#79B8FF\"\n },\n children: \"Agoo\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"::\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#005CC5\",\n \"--shiki-dark\": \"#79B8FF\"\n },\n children: \"Server\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \".start()\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#005CC5\",\n \"--shiki-dark\": \"#79B8FF\"\n },\n children: \"Agoo\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"::\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#005CC5\",\n \"--shiki-dark\": \"#79B8FF\"\n },\n children: \"GraphQL\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \".schema(\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#005CC5\",\n \"--shiki-dark\": \"#79B8FF\"\n },\n children: \"Schema\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \".\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"new\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \") {\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#005CC5\",\n \"--shiki-dark\": \"#79B8FF\"\n },\n children: \" Agoo\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"::\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#005CC5\",\n \"--shiki-dark\": \"#79B8FF\"\n },\n children: \"GraphQL\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \".\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#005CC5\",\n \"--shiki-dark\": \"#79B8FF\"\n },\n children: \"load\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"(\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \"%^type Query { hello: String }^\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \")\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"}\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#005CC5\",\n \"--shiki-dark\": \"#79B8FF\"\n },\n children: \"sleep\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: \" \"\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6A737D\",\n \"--shiki-dark\": \"#6A737D\"\n },\n children: \"# To run this GraphQL example type the following then go to a browser and enter\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6A737D\",\n \"--shiki-dark\": \"#6A737D\"\n },\n children: \"# a URL of localhost:6464/graphql?query={hello}\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6A737D\",\n \"--shiki-dark\": \"#6A737D\"\n },\n children: \"#\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6A737D\",\n \"--shiki-dark\": \"#6A737D\"\n },\n children: \"# ruby hello.rb\"\n })\n })]\n })\n });\n}\nreturn {\n title,\n frontMatter,\n useTOC,\n default: _createMdxContent\n};\n"},{"filePath":"./src/code/language-support/c-net/server/graphql-net.md","tags":["c-net","server"],"frontMatter":{"name":"graphql-net","description":"Convert GraphQL to IQueryable","github":"chkimes/graphql-net"},"stars":892,"formattedStars":"1k","lastRelease":"","license":"MIT License"},{"filePath":"./src/code/language-support/java-kotlin-android/server/jimmer.md","tags":["java-kotlin-android","server"],"frontMatter":{"name":"Jimmer","description":"A revolutionary ORM framework for both java and kotlin, it also provides specialized API for rapid development of Spring GraphQL-based applications.","url":"https://babyfish-ct.github.io/jimmer/","github":"babyfish-ct/jimmer"},"stars":878,"formattedStars":"1k","lastRelease":"16 hours ago","license":"Apache License 2.0","compiledSource":"\"use strict\";\nconst {Fragment: _Fragment, jsx: _jsx, jsxs: _jsxs} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nconst title = \"\";\nconst frontMatter = {\n \"name\": \"Jimmer\",\n \"description\": \"A revolutionary ORM framework for both java and kotlin, it also provides specialized API for rapid development of Spring GraphQL-based applications.\",\n \"url\": \"https://babyfish-ct.github.io/jimmer/\",\n \"github\": \"babyfish-ct/jimmer\"\n};\nfunction useTOC(props) {\n return [{\n value: \"Introduce\",\n id: \"introduce\",\n depth: 2\n }, {\n value: \"Links\",\n id: \"links\",\n depth: 2\n }];\n}\nfunction _createMdxContent(props) {\n const _components = {\n a: \"a\",\n h2: \"h2\",\n li: \"li\",\n ol: \"ol\",\n p: \"p\",\n ul: \"ul\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsxs(_Fragment, {\n children: [_jsx(_components.h2, {\n id: \"introduce\",\n children: \"Introduce\"\n }), \"\\n\", _jsxs(_components.ol, {\n children: [\"\\n\", _jsxs(_components.li, {\n children: [\"\\n\", _jsx(_components.p, {\n children: \"SpringBoot has introduced Spring GraphQL since 2.7. Jimmer provides specialized API for rapid development of Spring GraphQL-based applications.\"\n }), \"\\n\"]\n }), \"\\n\", _jsxs(_components.li, {\n children: [\"\\n\", _jsx(_components.p, {\n children: \"Support two APIs: Java API \u0026 kotlin API.\"\n }), \"\\n\"]\n }), \"\\n\", _jsxs(_components.li, {\n children: [\"\\n\", _jsx(_components.p, {\n children: \"Powerful and GraphQL friendly caching support.\"\n }), \"\\n\"]\n }), \"\\n\", _jsxs(_components.li, {\n children: [\"\\n\", _jsxs(_components.p, {\n children: [\"Faster than other popular ORM solutions, please see the benchmark: \", _jsx(_components.a, {\n href: \"https://babyfish-ct.github.io/jimmer/docs/benchmark/\",\n children: \"https://babyfish-ct.github.io/jimmer/docs/benchmark/\"\n })]\n }), \"\\n\"]\n }), \"\\n\", _jsxs(_components.li, {\n children: [\"\\n\", _jsx(_components.p, {\n children: \"More powerful than other popular ORM solutions.\"\n }), \"\\n\", _jsx(_components.p, {\n children: \"Three aspects should be considered in ORM design:\"\n }), \"\\n\", _jsx(_components.p, {\n children: \"a. Query.\\nb. Update.\\nc. Cache.\"\n }), \"\\n\", _jsx(_components.p, {\n children: \"Each aspect is aimed at object trees with arbitrary depth rather than simple objects. This distinctive design brings convenience unmatched by other popular solutions.\"\n }), \"\\n\"]\n }), \"\\n\"]\n }), \"\\n\", _jsx(_components.h2, {\n id: \"links\",\n children: \"Links\"\n }), \"\\n\", _jsxs(_components.ul, {\n children: [\"\\n\", _jsxs(_components.li, {\n children: [\"\\n\", _jsxs(_components.p, {\n children: [\"Youtube video: \", _jsx(_components.a, {\n href: \"https://www.youtube.com/watch?v=Rt5zNv0YR2E\",\n children: \"https://www.youtube.com/watch?v=Rt5zNv0YR2E\"\n })]\n }), \"\\n\"]\n }), \"\\n\", _jsxs(_components.li, {\n children: [\"\\n\", _jsxs(_components.p, {\n children: [\"Documentation: \", _jsx(_components.a, {\n href: \"https://babyfish-ct.github.io/jimmer/\",\n children: \"https://babyfish-ct.github.io/jimmer/\"\n })]\n }), \"\\n\"]\n }), \"\\n\", _jsxs(_components.li, {\n children: [\"\\n\", _jsxs(_components.p, {\n children: [\"Project Home: \", _jsx(_components.a, {\n href: \"https://github.com/babyfish-ct/jimmer\",\n children: \"https://github.com/babyfish-ct/jimmer\"\n })]\n }), \"\\n\"]\n }), \"\\n\", _jsxs(_components.li, {\n children: [\"\\n\", _jsxs(_components.p, {\n children: [\"GraphQL example for Java: \", _jsx(_components.a, {\n href: \"https://github.com/babyfish-ct/jimmer/tree/main/example/java/jimmer-sql-graphql\",\n children: \"https://github.com/babyfish-ct/jimmer/tree/main/example/java/jimmer-sql-graphql\"\n })]\n }), \"\\n\"]\n }), \"\\n\", _jsxs(_components.li, {\n children: [\"\\n\", _jsxs(_components.p, {\n children: [\"GraphQL example for Kotlin: \", _jsx(_components.a, {\n href: \"https://github.com/babyfish-ct/jimmer/tree/main/example/kotlin/jimmer-sql-graphql-kt\",\n children: \"https://github.com/babyfish-ct/jimmer/tree/main/example/kotlin/jimmer-sql-graphql-kt\"\n })]\n }), \"\\n\"]\n }), \"\\n\"]\n })]\n });\n}\nreturn {\n title,\n frontMatter,\n useTOC,\n default: _createMdxContent\n};\n"},{"filePath":"./src/code/language-support/elixir/server/graphql-elixir.md","tags":["elixir","server"],"frontMatter":{"name":"graphql-elixir","description":"An Elixir implementation of Facebook's GraphQL.","github":"graphql-elixir/graphql"},"stars":858,"formattedStars":"1k","lastRelease":"8 years ago","license":"Other"},{"filePath":"./src/code/language-support/python/server/tartiflette.md","tags":["python","server"],"frontMatter":{"name":"Tartiflette","description":"A Python 3.6+ _(asyncio)_ library for building GraphQL APIs.","url":"https://tartiflette.io","github":"tartiflette/tartiflette"},"stars":857,"formattedStars":"1k","lastRelease":"3 years ago","license":"MIT License","compiledSource":"\"use strict\";\nconst {Fragment: _Fragment, jsx: _jsx, jsxs: _jsxs} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nconst title = \"\";\nconst frontMatter = {\n \"name\": \"Tartiflette\",\n \"description\": \"A Python 3.6+ _(asyncio)_ library for building GraphQL APIs.\",\n \"url\": \"https://tartiflette.io\",\n \"github\": \"tartiflette/tartiflette\"\n};\nfunction useTOC(props) {\n return [];\n}\nfunction _createMdxContent(props) {\n const _components = {\n a: \"a\",\n code: \"code\",\n p: \"p\",\n pre: \"pre\",\n span: \"span\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsxs(_Fragment, {\n children: [_jsx(_components.p, {\n children: \"To run a tartiflette hello world script:\"\n }), \"\\n\", _jsx(_components.pre, {\n tabIndex: \"0\",\n \"data-language\": \"sh\",\n \"data-word-wrap\": \"\",\n children: _jsx(_components.code, {\n children: _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \"pip\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \" install\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \" tartiflette\"\n })]\n })\n })\n }), \"\\n\", _jsxs(_components.p, {\n children: [\"Then run \", _jsx(_components.code, {\n children: \"python hello.py\"\n }), \" with this code in \", _jsx(_components.code, {\n children: \"hello.py\"\n }), \":\"]\n }), \"\\n\", _jsx(_components.pre, {\n tabIndex: \"0\",\n \"data-language\": \"python\",\n \"data-word-wrap\": \"\",\n children: _jsxs(_components.code, {\n children: [_jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"import\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" asyncio\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"from\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" tartiflette \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"import\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" Engine, Resolver\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \"@Resolver\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"(\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \"\\\"Query.hello\\\"\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \")\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"async\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \" def\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \" resolver_hello\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"(parent, args, ctx, info):\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \" return\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \" \\\"hello \\\"\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \" +\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" args[\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \"\\\"name\\\"\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"]\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"async\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \" def\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \" run\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"():\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" tftt_engine \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"=\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" Engine(\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \"\\\"\\\"\\\"\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \" type Query {\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \" hello(name: String): String\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \" }\"\n })\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \" \\\"\\\"\\\"\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \")\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" result \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"=\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \" await\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" tftt_engine.execute(\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#E36209\",\n \"--shiki-dark\": \"#FFAB70\"\n },\n children: \" query\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"=\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \"'query { hello(name: \\\"Chuck\\\") }'\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" )\"\n })\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#005CC5\",\n \"--shiki-dark\": \"#79B8FF\"\n },\n children: \" print\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"(result)\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6A737D\",\n \"--shiki-dark\": \"#6A737D\"\n },\n children: \" # {'data': {'hello': 'hello Chuck'}}\"\n })\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"if\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#005CC5\",\n \"--shiki-dark\": \"#79B8FF\"\n },\n children: \" __name__\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \" ==\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \" \\\"__main__\\\"\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \":\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" loop \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"=\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" asyncio.get_event_loop()\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" loop.run_until_complete(run())\"\n })\n })]\n })\n }), \"\\n\", _jsxs(_components.p, {\n children: [\"There is also a nice \", _jsx(_components.a, {\n href: \"https://github.com/dailymotion/tartiflette-aiohttp\",\n children: \"HTTP wrapper\"\n }), \".\"]\n })]\n });\n}\nreturn {\n title,\n frontMatter,\n useTOC,\n default: _createMdxContent\n};\n"},{"filePath":"./src/code/language-support/javascript/tools/graphql-eslint.md","tags":["javascript","tools"],"frontMatter":{"name":"GraphQL-ESLint","description":"GraphQL-ESLint integrates GraphQL AST in the ESLint core (as a parser).","github":"dimaMachina/graphql-eslint/","npm":"@graphql-eslint/eslint-plugin"},"stars":801,"formattedStars":"1k","lastRelease":"6 hours ago","license":"MIT License"},{"filePath":"./src/code/language-support/php/server/graphqlbundle.md","tags":["php","server"],"frontMatter":{"name":"GraphQLBundle","description":"A GraphQL server for Symfony","github":"overblog/GraphQLBundle"},"stars":788,"formattedStars":"1k","lastRelease":"2 months ago","license":"MIT License"},{"filePath":"./src/code/language-support/elm/client/dillonkearns-elm-graphql.md","tags":["elm","client"],"frontMatter":{"name":"dillonkearns/elm-graphql","description":"Library and command-line code generator to create type-safe Elm code for a GraphQL endpoint.","github":"dillonkearns/elm-graphql"},"stars":778,"formattedStars":"1k","lastRelease":"","license":"BSD 3-Clause \"New\" or \"Revised\" License"},{"filePath":"./src/code/language-support/go/client/graphql.md","tags":["go","client"],"frontMatter":{"name":"graphql","description":"A GraphQL client implementation in Go.","github":"shurcooL/graphql"},"stars":708,"formattedStars":"1k","lastRelease":"","license":"MIT License"},{"filePath":"./src/code/language-support/go/server/wundergraph-graphql-go-tools.md","tags":["go","server"],"frontMatter":{"name":"graphql-go-tools","description":"A collection of tools for building GraphQL Servers, Gateways, Proxy Servers and Middleware in Go.","github":"wundergraph/graphql-go-tools"},"stars":704,"formattedStars":"1k","lastRelease":"1 day ago","license":"MIT License","compiledSource":"\"use strict\";\nconst {Fragment: _Fragment, jsx: _jsx, jsxs: _jsxs} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nconst title = \"\";\nconst frontMatter = {\n \"name\": \"graphql-go-tools\",\n \"description\": \"A collection of tools for building GraphQL Servers, Gateways, Proxy Servers and Middleware in Go.\",\n \"github\": \"wundergraph/graphql-go-tools\"\n};\nfunction useTOC(props) {\n return [];\n}\nfunction _createMdxContent(props) {\n const _components = {\n a: \"a\",\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsxs(_Fragment, {\n children: [_jsx(_components.p, {\n children: \"graphql-go-tools implements all basic blocks for building GraphQL Servers, Gateways and Proxy Servers.\\nFrom lexing, parsing, validation, normalization, all the way up to query planning and execution.\"\n }), \"\\n\", _jsx(_components.p, {\n children: \"It can also be understood as a GraphQL Compiler, with the ability to add your own backends.\\nJust by implementing a few interfaces, you’re able to teach the compiler how to talk GraphQL to any backend.\"\n }), \"\\n\", _jsxs(_components.p, {\n children: [\"The following backends are already implemented:\\n\", _jsx(_components.a, {\n href: \"https://github.com/wundergraph/graphql-go-tools/tree/master/pkg/engine/datasource/graphql_datasource\",\n children: \"GraphQL\"\n }), \", with support for Apollo Federation / Supergraph.\\n\", _jsx(_components.a, {\n href: \"https://github.com/wundergraph/wundergraph/tree/main/pkg/datasources/database\",\n children: \"Databases\"\n }), \": PostgreSQL, MySQL, SQLite, CockroachDB, MongoDB, SQLServer,\\n\", _jsx(_components.a, {\n href: \"https://github.com/wundergraph/wundergraph/tree/main/pkg/datasources/oas\",\n children: \"OpenAPI / REST\"\n }), \" and\\n\", _jsx(_components.a, {\n href: \"https://github.com/wundergraph/graphql-go-tools/tree/master/pkg/engine/datasource/kafka_datasource\",\n children: \"Kafka\"\n }), \".\"]\n }), \"\\n\", _jsxs(_components.p, {\n children: [\"To get a sense on how to implement a new backend, check out the \", _jsx(_components.a, {\n href: \"https://github.com/wundergraph/graphql-go-tools/tree/master/pkg/engine/datasource/staticdatasource\",\n children: \"Static Data Source\"\n }), \",\\nas it’s the simplest one.\"]\n }), \"\\n\", _jsx(_components.p, {\n children: \"It’s used in production by many enterprises for multiple years now, battle tested and actively maintained.\"\n })]\n });\n}\nreturn {\n title,\n frontMatter,\n useTOC,\n default: _createMdxContent\n};\n"},{"filePath":"./src/code/language-support/c-net/client/graphql-client.md","tags":["c-net","client"],"frontMatter":{"name":"GraphQL.Client","description":"A GraphQL Client for .NET.","github":"graphql-dotnet/graphql-client"},"stars":626,"formattedStars":"1k","lastRelease":"6 months ago","license":"MIT License"},{"filePath":"./src/code/language-support/ocaml-reason/server/ocaml-graphql-server.md","tags":["ocaml-reason","server"],"frontMatter":{"name":"ocaml-graphql-server","description":"GraphQL server library for OCaml and Reason","github":"andreas/ocaml-graphql-server"},"stars":622,"formattedStars":"1k","lastRelease":"2 years ago","license":"MIT License"},{"filePath":"./src/code/language-support/flutter/client/ferry.md","tags":["flutter","client"],"frontMatter":{"name":"Ferry","description":"Ferry is a simple, powerful GraphQL Client for Flutter and Dart.","url":"https://ferrygraphql.com/","github":"gql-dart/ferry"},"stars":607,"formattedStars":"1k","lastRelease":"","license":"MIT License"},{"filePath":"./src/code/language-support/swift-objective-c-ios/client/swift-graphql.md","tags":["swift-objective-c-ios","client"],"frontMatter":{"name":"SwiftGraphQL","description":"A GraphQL client that lets you forget about GraphQL.","github":"maticzav/swift-graphql"},"stars":606,"formattedStars":"1k","lastRelease":"6 months ago","license":"MIT License","compiledSource":"\"use strict\";\nconst {Fragment: _Fragment, jsx: _jsx, jsxs: _jsxs} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nconst title = \"\";\nconst frontMatter = {\n \"name\": \"SwiftGraphQL\",\n \"description\": \"A GraphQL client that lets you forget about GraphQL.\",\n \"github\": \"maticzav/swift-graphql\"\n};\nfunction useTOC(props) {\n return [];\n}\nfunction _createMdxContent(props) {\n const _components = {\n code: \"code\",\n p: \"p\",\n pre: \"pre\",\n span: \"span\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsxs(_Fragment, {\n children: [_jsx(_components.p, {\n children: \"SwiftGraphQL is a Swift code generator and a lightweight GraphQL client. It lets you create queries using Swift, and guarantees that every query you create is valid.\"\n }), \"\\n\", _jsx(_components.p, {\n children: \"The library is centered around three core principles:\"\n }), \"\\n\", _jsx(_components.p, {\n children: \"🚀 If your project compiles, your queries work.\\n🦉 Use Swift in favour of GraphQL wherever possible.\\n🌳 Your application model should be independent of your schema.\"\n }), \"\\n\", _jsx(_components.p, {\n children: \"Here’s a short preview of the SwiftGraphQL code\"\n }), \"\\n\", _jsx(_components.pre, {\n tabIndex: \"0\",\n \"data-language\": \"swift\",\n \"data-word-wrap\": \"\",\n children: _jsxs(_components.code, {\n children: [_jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"import\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \" SwiftGraphQL\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n children: \" \"\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6A737D\",\n \"--shiki-dark\": \"#6A737D\"\n },\n children: \"// Define a Swift model.\"\n })\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"struct\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \" Human\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \": \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \"Identifiable \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"{\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \" let\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" id: \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#005CC5\",\n \"--shiki-dark\": \"#79B8FF\"\n },\n children: \"String\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \" let\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" name: \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#005CC5\",\n \"--shiki-dark\": \"#79B8FF\"\n },\n children: \"String\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \" let\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" homePlanet: \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#005CC5\",\n \"--shiki-dark\": \"#79B8FF\"\n },\n children: \"String\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"?\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"}\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: \" \"\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6A737D\",\n \"--shiki-dark\": \"#6A737D\"\n },\n children: \"// Create a selection.\"\n })\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"let\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" human \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"=\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" Selection.\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#005CC5\",\n \"--shiki-dark\": \"#79B8FF\"\n },\n children: \"Human\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" {\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#005CC5\",\n \"--shiki-dark\": \"#79B8FF\"\n },\n children: \" Human\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"(\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#005CC5\",\n \"--shiki-dark\": \"#79B8FF\"\n },\n children: \" id\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \": \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"try\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#005CC5\",\n \"--shiki-dark\": \"#79B8FF\"\n },\n children: \" $0\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \".\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#005CC5\",\n \"--shiki-dark\": \"#79B8FF\"\n },\n children: \"id\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"(),\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#005CC5\",\n \"--shiki-dark\": \"#79B8FF\"\n },\n children: \" name\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \": \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"try\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#005CC5\",\n \"--shiki-dark\": \"#79B8FF\"\n },\n children: \" $0\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \".\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#005CC5\",\n \"--shiki-dark\": \"#79B8FF\"\n },\n children: \"name\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"(),\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#005CC5\",\n \"--shiki-dark\": \"#79B8FF\"\n },\n children: \" homePlanet\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \": \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"try\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#005CC5\",\n \"--shiki-dark\": \"#79B8FF\"\n },\n children: \" $0\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \".\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#005CC5\",\n \"--shiki-dark\": \"#79B8FF\"\n },\n children: \"homePlanet\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"()\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" )\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"}\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: \" \"\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6A737D\",\n \"--shiki-dark\": \"#6A737D\"\n },\n children: \"// Construct a query.\"\n })\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"let\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" query \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"=\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" Selection.\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#005CC5\",\n \"--shiki-dark\": \"#79B8FF\"\n },\n children: \"Query\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" {\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \" try\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#005CC5\",\n \"--shiki-dark\": \"#79B8FF\"\n },\n children: \" $0\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \".\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#005CC5\",\n \"--shiki-dark\": \"#79B8FF\"\n },\n children: \"humans\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"(human.list)\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"}\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: \" \"\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6A737D\",\n \"--shiki-dark\": \"#6A737D\"\n },\n children: \"// Perform the query.\"\n })\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#005CC5\",\n \"--shiki-dark\": \"#79B8FF\"\n },\n children: \"send\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"(query, \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#005CC5\",\n \"--shiki-dark\": \"#79B8FF\"\n },\n children: \"to\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \": \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \"\\\"http://swift-graphql.heroku.com\\\"\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \") { result \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"in\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \" if\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \" let\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" data \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"=\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \" try?\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" result.\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#005CC5\",\n \"--shiki-dark\": \"#79B8FF\"\n },\n children: \"get\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"() {\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#005CC5\",\n \"--shiki-dark\": \"#79B8FF\"\n },\n children: \" print\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"(data) \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6A737D\",\n \"--shiki-dark\": \"#6A737D\"\n },\n children: \"// [Human]\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" }\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"}\"\n })\n })]\n })\n })]\n });\n}\nreturn {\n title,\n frontMatter,\n useTOC,\n default: _createMdxContent\n};\n"},{"filePath":"./src/code/language-support/php/server/graphqlite.md","tags":["php","server"],"frontMatter":{"name":"GraphQLite","description":"GraphQLite is a library that offers an annotations-based syntax for GraphQL schema definition.","url":"https://graphqlite.thecodingmachine.io","github":"thecodingmachine/graphqlite"},"stars":558,"formattedStars":"1k","lastRelease":"8 months ago","license":"MIT License","compiledSource":"\"use strict\";\nconst {Fragment: _Fragment, jsx: _jsx, jsxs: _jsxs} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nconst title = \"\";\nconst frontMatter = {\n \"name\": \"GraphQLite\",\n \"description\": \"GraphQLite is a library that offers an annotations-based syntax for GraphQL schema definition.\",\n \"url\": \"https://graphqlite.thecodingmachine.io\",\n \"github\": \"thecodingmachine/graphqlite\"\n};\nfunction useTOC(props) {\n return [];\n}\nfunction _createMdxContent(props) {\n const _components = {\n code: \"code\",\n p: \"p\",\n pre: \"pre\",\n span: \"span\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsxs(_Fragment, {\n children: [_jsx(_components.p, {\n children: \"It is framework agnostic with bindings available for Symfony and Laravel.\\nThis code declares a “product” query and a “Product” Type:\"\n }), \"\\n\", _jsx(_components.pre, {\n tabIndex: \"0\",\n \"data-language\": \"php\",\n \"data-word-wrap\": \"\",\n children: _jsxs(_components.code, {\n children: [_jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"class\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \" ProductController\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"{\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6A737D\",\n \"--shiki-dark\": \"#6A737D\"\n },\n children: \" /**\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6A737D\",\n \"--shiki-dark\": \"#6A737D\"\n },\n children: \" * @Query()\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6A737D\",\n \"--shiki-dark\": \"#6A737D\"\n },\n children: \" */\"\n })\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \" public\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \" function\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \" product\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"(\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"string\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" $id)\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \":\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#005CC5\",\n \"--shiki-dark\": \"#79B8FF\"\n },\n children: \" Product\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" {\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6A737D\",\n \"--shiki-dark\": \"#6A737D\"\n },\n children: \" // Some code that looks for a product and returns it.\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" }\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"}\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: \" \"\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6A737D\",\n \"--shiki-dark\": \"#6A737D\"\n },\n children: \"/**\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6A737D\",\n \"--shiki-dark\": \"#6A737D\"\n },\n children: \" * @Type()\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6A737D\",\n \"--shiki-dark\": \"#6A737D\"\n },\n children: \" */\"\n })\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"class\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \" Product\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"{\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6A737D\",\n \"--shiki-dark\": \"#6A737D\"\n },\n children: \" /**\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6A737D\",\n \"--shiki-dark\": \"#6A737D\"\n },\n children: \" * @Field()\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6A737D\",\n \"--shiki-dark\": \"#6A737D\"\n },\n children: \" */\"\n })\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \" public\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \" function\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \" getName\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"()\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \":\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \" string\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" {\"\n })\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \" return\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#005CC5\",\n \"--shiki-dark\": \"#79B8FF\"\n },\n children: \" $this\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"-\u003e\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"name;\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" }\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6A737D\",\n \"--shiki-dark\": \"#6A737D\"\n },\n children: \" // ...\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"}\"\n })\n })]\n })\n }), \"\\n\", _jsx(_components.p, {\n children: \"Other GraphQLite features include validation, security, error handling, loading via data-loader pattern…\"\n })]\n });\n}\nreturn {\n title,\n frontMatter,\n useTOC,\n default: _createMdxContent\n};\n"},{"filePath":"./src/code/language-support/swift-objective-c-ios/server/graphiti.md","tags":["swift-objective-c-ios","server"],"frontMatter":{"name":"Graphiti","description":"Swift library for building GraphQL schemas/types fast, safely and easily.","github":"GraphQLSwift/Graphiti"},"stars":533,"formattedStars":"1k","lastRelease":"4 months ago","license":"MIT License"},{"filePath":"./src/code/language-support/python/client/sgqlc.md","tags":["python","client"],"frontMatter":{"name":"sgqlc","description":"A simple Python GraphQL client. Supports generating code generation for types defined in a GraphQL schema.","github":"profusion/sgqlc"},"stars":516,"formattedStars":"1k","lastRelease":"","license":"ISC License"},{"filePath":"./src/code/tools/graphql-armor/general/graphql-armor.md","tags":["tools","general"],"frontMatter":{"name":"GraphQL Armor","description":"The missing GraphQL security layer for Apollo GraphQL and Yoga / Envelop servers.","github":"Escape-Technologies/graphql-armor","npm":"@Escape-Technologies/graphql-armor"},"stars":501,"formattedStars":"1k","lastRelease":"1 month ago","license":"MIT License"},{"filePath":"./src/code/language-support/swift-objective-c-ios/client/graphaello.md","tags":["swift-objective-c-ios","client"],"frontMatter":{"name":"Graphaello","description":"A Tool for Writing Declarative, Type-Safe and Data-Driven Applications in SwiftUI using GraphQL and Apollo","github":"nerdsupremacist/Graphaello"},"stars":492,"formattedStars":"492","lastRelease":"2 years ago","license":"MIT License"},{"filePath":"./src/code/tools/gqt/general/gqt.md","tags":["tools","general"],"frontMatter":{"name":"gqt","description":"Build and execute GraphQL queries in the terminal.","github":"eerimoq/gqt"},"stars":464,"formattedStars":"464","lastRelease":"","license":"MIT License","compiledSource":"\"use strict\";\nconst {Fragment: _Fragment, jsx: _jsx, jsxs: _jsxs} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nconst title = \"\";\nconst frontMatter = {\n \"name\": \"gqt\",\n \"description\": \"Build and execute GraphQL queries in the terminal.\",\n \"github\": \"eerimoq/gqt\"\n};\nfunction useTOC(props) {\n return [];\n}\nfunction _createMdxContent(props) {\n const _components = {\n code: \"code\",\n p: \"p\",\n pre: \"pre\",\n span: \"span\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsxs(_Fragment, {\n children: [_jsxs(_components.p, {\n children: [\"Run \", _jsx(_components.code, {\n children: \"gqt\"\n }), \" against your GraphQL endpoint. Build your query in an\\nintuitive TUI and execute it. The response from the server is written\\nto standard output.\"]\n }), \"\\n\", _jsx(_components.pre, {\n tabIndex: \"0\",\n \"data-language\": \"bash\",\n \"data-word-wrap\": \"\",\n children: _jsx(_components.code, {\n children: _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \"gqt\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#005CC5\",\n \"--shiki-dark\": \"#79B8FF\"\n },\n children: \" -e\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \" https://your.app.com/graphql\"\n })]\n })\n })\n })]\n });\n}\nreturn {\n title,\n frontMatter,\n useTOC,\n default: _createMdxContent\n};\n"},{"filePath":"./src/code/language-support/clojure/client/regraph.md","tags":["clojure","client"],"frontMatter":{"name":"regraph","description":"A GraphQL client implemented in Clojurescript with support for websockets.","github":"oliyh/re-graph"},"stars":462,"formattedStars":"462","lastRelease":"2 years ago","license":"Unknown"},{"filePath":"./src/code/language-support/javascript/tools/graphql-live-query.md","tags":["javascript","tools"],"frontMatter":{"name":"GraphQL Live Query","description":"Real-Time with GraphQL for any GraphQL schema or transport.","github":"n1ru4l/graphql-live-query","npm":"@n1ru4l/graphql-live-query"},"stars":437,"formattedStars":"437","lastRelease":"2 years ago","license":"MIT License"},{"filePath":"./src/code/services/hive.md","tags":["services"],"frontMatter":{"name":"Hive","description":"Hive is a fully open-source schema registry, analytics and gateway for GraphQL federation and other GraphQL APIs.","url":"https://the-guild.dev/graphql/hive","github":"graphql-hive/platform"},"stars":427,"formattedStars":"427","lastRelease":"1 week ago","license":"MIT License"},{"filePath":"./src/code/language-support/go/server/graphql-relay-go.md","tags":["go","server"],"frontMatter":{"name":"graphql-relay-go","description":"A Go/Golang library to help construct a graphql-go server supporting react-relay.","github":"graphql-go/relay"},"stars":424,"formattedStars":"424","lastRelease":"","license":"MIT License"},{"filePath":"./src/code/language-support/javascript/client/nanogql.md","tags":["javascript","client"],"frontMatter":{"name":"nanographql","description":"Tiny GraphQL client library using template strings.","github":"choojs/nanographql","npm":"nanographql"},"stars":422,"formattedStars":"422","lastRelease":"","license":"MIT License"},{"filePath":"./src/code/language-support/javascript/tools/graphql-language-service.md","tags":["javascript","tools"],"frontMatter":{"name":"GraphQL Language Service","description":"An interface for building GraphQL language services for IDEs (diagnostics, autocomplete etc).","github":"graphql/graphql-language-service","npm":"graphql-language-service"},"stars":420,"formattedStars":"420","lastRelease":"","license":"Unknown"},{"filePath":"./src/code/language-support/c-net/server/entity-graphql.md","tags":["c-net","server"],"frontMatter":{"name":"Entity GraphQL","description":"A GraphQL library for .NET Core. Easily expose you data model as a GraphQL API or bring together multiple data sources into a single GraphQL schema.","url":"https://entitygraphql.github.io","github":"EntityGraphQL/EntityGraphQL"},"stars":417,"formattedStars":"417","lastRelease":"1 day ago","license":"MIT License","compiledSource":"\"use strict\";\nconst {jsx: _jsx, jsxs: _jsxs} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nconst title = \"\";\nconst frontMatter = {\n \"name\": \"Entity GraphQL\",\n \"description\": \"A GraphQL library for .NET Core. Easily expose you data model as a GraphQL API or bring together multiple data sources into a single GraphQL schema.\",\n \"url\": \"https://entitygraphql.github.io\",\n \"github\": \"EntityGraphQL/EntityGraphQL\"\n};\nfunction useTOC(props) {\n return [];\n}\nfunction _createMdxContent(props) {\n const _components = {\n code: \"code\",\n pre: \"pre\",\n span: \"span\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.pre, {\n tabIndex: \"0\",\n \"data-language\": \"csharp\",\n \"data-word-wrap\": \"\",\n children: _jsxs(_components.code, {\n children: [_jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6A737D\",\n \"--shiki-dark\": \"#6A737D\"\n },\n children: \"// expose an existing data model with ASP.NET \u0026 EF Core\"\n })\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"public\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \" class\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \" Startup\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" {\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \" public\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \" void\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \" ConfigureServices\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"(\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \"IServiceCollection\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \" services\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \")\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" {\"\n })\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" services.\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \"AddDbContext\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"\u003c\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \"DemoContext\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"\u003e();\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6A737D\",\n \"--shiki-dark\": \"#6A737D\"\n },\n children: \" // Auto build a schema from DemoContext. Alternatively you can build one from scratch\"\n })\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" services.\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \"AddGraphQLSchema\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"\u003c\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \"DemoContext\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"\u003e(\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \"options\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \" =\u003e\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" {\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6A737D\",\n \"--shiki-dark\": \"#6A737D\"\n },\n children: \" // modify the schema (add/remove fields or types), add other services\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" });\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" }\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: \" \"\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \" public\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \" void\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \" Configure\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"(\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \"IApplicationBuilder\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \" app\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \", \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \"DemoContext\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \" db\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \")\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" {\"\n })\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" app.\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \"UseRouting\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"();\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" app.\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \"UseEndpoints\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"(\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \"endpoints\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \" =\u003e\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" {\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6A737D\",\n \"--shiki-dark\": \"#6A737D\"\n },\n children: \" // defaults to /graphql endpoint\"\n })\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" endpoints.\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \"MapGraphQL\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"\u003c\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \"DemoContext\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"\u003e();\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" });\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" }\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"}\"\n })\n })]\n })\n });\n}\nreturn {\n title,\n frontMatter,\n useTOC,\n default: _createMdxContent\n};\n"},{"filePath":"./src/code/language-support/haskell/client/morpheus-graphql-client.md","tags":["haskell","client"],"frontMatter":{"name":"morpheus-graphql-client","description":"A strongly-typed GraphQL client implementation in Haksell.","github":"morpheusgraphql/morpheus-graphql"},"stars":412,"formattedStars":"412","lastRelease":"5 months ago","license":"MIT License"},{"filePath":"./src/code/language-support/haskell/server/morpheus-graphql.md","tags":["haskell","server"],"frontMatter":{"name":"Morpheus GraphQL","description":"A Haskell library for building GraphQL APIs.","github":"morpheusgraphql/morpheus-graphql"},"stars":412,"formattedStars":"412","lastRelease":"5 months ago","license":"MIT License","compiledSource":"\"use strict\";\nconst {Fragment: _Fragment, jsx: _jsx, jsxs: _jsxs} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nconst title = \"\";\nconst frontMatter = {\n \"name\": \"Morpheus GraphQL\",\n \"description\": \"A Haskell library for building GraphQL APIs.\",\n \"github\": \"morpheusgraphql/morpheus-graphql\"\n};\nfunction useTOC(props) {\n return [];\n}\nfunction _createMdxContent(props) {\n const _components = {\n a: \"a\",\n code: \"code\",\n p: \"p\",\n pre: \"pre\",\n span: \"span\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsxs(_Fragment, {\n children: [_jsxs(_components.p, {\n children: [\"Hello world example with \", _jsx(_components.code, {\n children: \"morpheus-graphql\"\n }), \":\"]\n }), \"\\n\", _jsx(_components.pre, {\n tabIndex: \"0\",\n \"data-language\": \"graphql\",\n \"data-word-wrap\": \"\",\n children: _jsxs(_components.code, {\n children: [_jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6A737D\",\n \"--shiki-dark\": \"#6A737D\"\n },\n children: \"# schema.gql\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6A737D\",\n \"--shiki-dark\": \"#6A737D\"\n },\n children: \"\\\"\\\"\\\"\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6A737D\",\n \"--shiki-dark\": \"#6A737D\"\n },\n children: \"A supernatural being considered divine and sacred\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6A737D\",\n \"--shiki-dark\": \"#6A737D\"\n },\n children: \"\\\"\\\"\\\"\"\n })\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"type\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#005CC5\",\n \"--shiki-dark\": \"#79B8FF\"\n },\n children: \" Deity\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" {\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#E36209\",\n \"--shiki-dark\": \"#FFAB70\"\n },\n children: \" name\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \": \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#005CC5\",\n \"--shiki-dark\": \"#79B8FF\"\n },\n children: \"String\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"!\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#E36209\",\n \"--shiki-dark\": \"#FFAB70\"\n },\n children: \" power\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \": \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#005CC5\",\n \"--shiki-dark\": \"#79B8FF\"\n },\n children: \"String\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \" @deprecated\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"(\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#E36209\",\n \"--shiki-dark\": \"#FFAB70\"\n },\n children: \"reason\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \": \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \"\\\"no more supported\\\"\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \")\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"}\"\n })\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"type\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#005CC5\",\n \"--shiki-dark\": \"#79B8FF\"\n },\n children: \" Query\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" {\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#E36209\",\n \"--shiki-dark\": \"#FFAB70\"\n },\n children: \" deity\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"(\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#E36209\",\n \"--shiki-dark\": \"#FFAB70\"\n },\n children: \"name\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \": \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#005CC5\",\n \"--shiki-dark\": \"#79B8FF\"\n },\n children: \"String\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"!\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" = \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \"\\\"Morpheus\\\"\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"): \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#005CC5\",\n \"--shiki-dark\": \"#79B8FF\"\n },\n children: \"Deity\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"!\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"}\"\n })\n })]\n })\n }), \"\\n\", _jsx(_components.pre, {\n tabIndex: \"0\",\n \"data-language\": \"haskell\",\n \"data-word-wrap\": \"\",\n children: _jsxs(_components.code, {\n children: [_jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"{-# \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"LANGUAGE\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \" DeriveGeneric\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" #-}\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"{-# \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"LANGUAGE\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \" DuplicateRecordFields\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" #-}\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"{-# \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"LANGUAGE\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \" FlexibleContexts\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" #-}\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"{-# \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"LANGUAGE\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \" FlexibleInstances\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" #-}\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"{-# \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"LANGUAGE\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \" MultiParamTypeClasses\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" #-}\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"{-# \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"LANGUAGE\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \" NamedFieldPuns\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" #-}\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"{-# \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"LANGUAGE\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \" OverloadedStrings\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" #-}\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"{-# \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"LANGUAGE\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \" ScopedTypeVariables\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" #-}\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"{-# \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"LANGUAGE\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \" TemplateHaskell\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" #-}\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"{-# \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"LANGUAGE\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \" TypeFamilies\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" #-}\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"module\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \" API\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" (\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \"api\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \") \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"where\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"import\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \" Data.ByteString.Lazy.Char8\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" (\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"ByteString\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \")\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"import\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \" Data.Morpheus\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" (\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \"interpreter\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \")\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"import\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \" Data.Morpheus.Document\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" (\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \"importGQLDocument\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \")\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"import\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \" Data.Morpheus.Types\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" (\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"RootResolver\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" (..), \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"Undefined\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" (..))\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"import\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \" Data.Text\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" (\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"Text\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \")\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"importGQLDocument \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \"\\\"schema.gql\\\"\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \"rootResolver\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \" ::\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \" RootResolver\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \" IO\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#005CC5\",\n \"--shiki-dark\": \"#79B8FF\"\n },\n children: \" ()\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \" Query\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \" Undefined\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \" Undefined\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"rootResolver \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"=\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#005CC5\",\n \"--shiki-dark\": \"#79B8FF\"\n },\n children: \" RootResolver\"\n })\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" { queryResolver \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"=\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#005CC5\",\n \"--shiki-dark\": \"#79B8FF\"\n },\n children: \" Query\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" {deity},\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" mutationResolver \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"=\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#005CC5\",\n \"--shiki-dark\": \"#79B8FF\"\n },\n children: \" Undefined\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \",\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" subscriptionResolver \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"=\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#005CC5\",\n \"--shiki-dark\": \"#79B8FF\"\n },\n children: \" Undefined\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" }\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \" where\"\n })\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" deity \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#005CC5\",\n \"--shiki-dark\": \"#79B8FF\"\n },\n children: \"DeityArgs\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" {name} \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"=\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" pure\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#005CC5\",\n \"--shiki-dark\": \"#79B8FF\"\n },\n children: \" Deity\"\n })\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" { name \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"=\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" pure name,\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" power \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"=\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" pure (\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#005CC5\",\n \"--shiki-dark\": \"#79B8FF\"\n },\n children: \"Just\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \" \\\"Shapeshifting\\\"\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \")\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" }\"\n })\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \"api\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \" ::\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \" ByteString\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \" -\u003e\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \" IO\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \" ByteString\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"api \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"=\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" interpreter rootResolver\"\n })]\n })]\n })\n }), \"\\n\", _jsxs(_components.p, {\n children: [\"See \", _jsx(_components.a, {\n href: \"https://github.com/morpheusgraphql/morpheus-graphql\",\n children: \"morpheus-graphql-examples\"\n }), \" for more sophisticated APIs.\"]\n })]\n });\n}\nreturn {\n title,\n frontMatter,\n useTOC,\n default: _createMdxContent\n};\n"},{"filePath":"./src/code/language-support/go/client/go-graphql-client.md","tags":["go","client"],"frontMatter":{"name":"go-graphql-client","description":"A GraphQL Go client with Mutation, Query and Subscription support.","github":"hasura/go-graphql-client"},"stars":410,"formattedStars":"410","lastRelease":"2 months ago","license":"MIT License"},{"filePath":"./src/code/language-support/javascript/client/graphql-sse.md","tags":["javascript","client"],"frontMatter":{"name":"GraphQL-SSE","description":"Zero-dependency, HTTP/1 safe, simple, GraphQL over Server-Sent Events Protocol server and client.","github":"enisdenjo/graphql-sse","npm":"graphql-sse"},"stars":390,"formattedStars":"390","lastRelease":"8 months ago","license":"MIT License"},{"filePath":"./src/code/language-support/javascript/server/graphql-sse.md","tags":["javascript","server"],"frontMatter":{"name":"GraphQL-SSE","description":"Zero-dependency, HTTP/1 safe, simple, GraphQL over Server-Sent Events Protocol server and client.","github":"enisdenjo/graphql-sse","npm":"graphql-sse"},"stars":390,"formattedStars":"390","lastRelease":"8 months ago","license":"MIT License"},{"filePath":"./src/code/language-support/rust/client/cynic.md","tags":["rust","client"],"frontMatter":{"name":"cynic","description":"A bring your own types GraphQL client for Rust","url":"https://cynic-rs.dev","github":"obmarg/cynic"},"stars":381,"formattedStars":"381","lastRelease":"6 days ago","license":"Mozilla Public License 2.0","compiledSource":"\"use strict\";\nconst {Fragment: _Fragment, jsx: _jsx, jsxs: _jsxs} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nconst title = \"\";\nconst frontMatter = {\n \"name\": \"cynic\",\n \"description\": \"A bring your own types GraphQL client for Rust\",\n \"url\": \"https://cynic-rs.dev\",\n \"github\": \"obmarg/cynic\"\n};\nfunction useTOC(props) {\n return [];\n}\nfunction _createMdxContent(props) {\n const _components = {\n a: \"a\",\n code: \"code\",\n p: \"p\",\n pre: \"pre\",\n span: \"span\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsxs(_Fragment, {\n children: [_jsx(_components.p, {\n children: \"A client library for rust that generates queries from types you provide,\\nverifying that the types match the shape of your schema.\"\n }), \"\\n\", _jsxs(_components.p, {\n children: [\"It provides \", _jsx(_components.a, {\n href: \"https://generator.cynic-rs.dev\",\n children: \"a generator\"\n }), \" to bootstrap types\\nfrom existing GraphQL queries.\"]\n }), \"\\n\", _jsx(_components.p, {\n children: \"Usage example:\"\n }), \"\\n\", _jsx(_components.pre, {\n tabIndex: \"0\",\n \"data-language\": \"rust\",\n \"data-word-wrap\": \"\",\n children: _jsxs(_components.code, {\n children: [_jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"#[derive(cynic\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"::\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \"QueryFragment\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \", \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \"Debug\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \")]\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"#[cynic(\"\n })\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" schema_path \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"=\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \" \\\"../schemas/starwars.schema.graphql\\\"\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \",\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" query_module \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"=\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \" \\\"query_dsl\\\"\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \",\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" graphql_type \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"=\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \" \\\"Root\\\"\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \",\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" argument_struct \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"=\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \" \\\"FilmArguments\\\"\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \")]\"\n })\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"struct\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \" FilmDirectorQuery\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" {\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" #[arguments(id \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"=\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \" \u0026\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"args\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \".\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"id)]\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" film\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \":\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \" Option\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"\u003c\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \"Film\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"\u003e,\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"}\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: \" \"\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"#[derive(cynic\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"::\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \"QueryFragment\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \", \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \"Debug\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \")]\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"#[cynic(\"\n })\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" schema_path \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"=\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \" \\\"../schemas/starwars.schema.graphql\\\"\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \",\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" query_module \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"=\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \" \\\"query_dsl\\\"\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \",\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" graphql_type \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"=\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \" \\\"Film\\\"\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \")]\"\n })\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"struct\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \" Film\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" {\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" title\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \":\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \" Option\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"\u003c\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \"String\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"\u003e,\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" director\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \":\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \" Option\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"\u003c\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \"String\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"\u003e,\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"}\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: \" \"\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"#[derive(cynic\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"::\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \"FragmentArguments\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \")]\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"struct\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \" FilmArguments\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" {\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" id\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \":\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \" Option\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"\u003ccynic\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"::\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \"Id\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"\u003e,\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"}\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: \" \"\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"fn\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \" main\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"() {\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \" use\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \" cynic\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"::\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"{\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \"QueryBuilder\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \", \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \"http\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"::\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \"ReqwestBlockingExt\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"};\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n children: \" \"\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \" let\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" query \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"=\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \" FilmDirectorQuery\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"::\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \"build\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"(\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"\u0026\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \"FilmArguments\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" {\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" id\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \":\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \" Some\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"(\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \"\\\"ZmlsbXM6MQ==\\\"\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \".\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \"into\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"()),\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" })\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: \" \"\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \" reqwest\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"::\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \"blocking\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"::\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \"Client\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"::\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \"new\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"()\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \" .\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \"post\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"(\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \"\\\"https://swapi-graphql.netlify.com/.netlify/functions/index\\\"\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \")\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \" .\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \"run_graphql\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"(query)\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \" .\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \"unwrap\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"()\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"}\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: \" \"\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"mod\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \" query_dsl\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" {\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \" cynic\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"::\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \"query_dsl!\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"(\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \"\\\"../schemas/starwars.schema.graphql\\\"\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \");\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"}\"\n })\n })]\n })\n })]\n });\n}\nreturn {\n title,\n frontMatter,\n useTOC,\n default: _createMdxContent\n};\n"},{"filePath":"./src/code/language-support/php/server/gatographql.md","tags":["php","server"],"frontMatter":{"name":"Gato GraphQL","description":"Interact with all your data in WordPress","url":"https://gatographql.com","github":"GatoGraphQL/GatoGraphQL"},"stars":360,"formattedStars":"360","lastRelease":"1 day ago","license":"GNU General Public License v2.0"},{"filePath":"./src/code/language-support/php/server/railt.md","tags":["php","server"],"frontMatter":{"name":"Railt","description":"A PHP GraphQL Framework.","github":"railt/railt"},"stars":360,"formattedStars":"360","lastRelease":"5 years ago","license":"MIT License"},{"filePath":"./src/code/language-support/haskell/server/mu-haskell.md","tags":["haskell","server"],"frontMatter":{"name":"Mu-Haskell with Mu-GraphQL","description":"A Haskell library for building microservices (gRPC, HTTP) and GraphQL APIs.","url":"https://higherkindness.io/mu-haskell/","github":"higherkindness/mu-haskell"},"stars":333,"formattedStars":"333","lastRelease":"3 years ago","license":"Apache License 2.0","compiledSource":"\"use strict\";\nconst {Fragment: _Fragment, jsx: _jsx, jsxs: _jsxs} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nconst title = \"\";\nconst frontMatter = {\n \"name\": \"Mu-Haskell with Mu-GraphQL\",\n \"description\": \"A Haskell library for building microservices (gRPC, HTTP) and GraphQL APIs.\",\n \"url\": \"https://higherkindness.io/mu-haskell/\",\n \"github\": \"higherkindness/mu-haskell\"\n};\nfunction useTOC(props) {\n return [];\n}\nfunction _createMdxContent(props) {\n const _components = {\n a: \"a\",\n code: \"code\",\n p: \"p\",\n pre: \"pre\",\n span: \"span\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsxs(_Fragment, {\n children: [_jsx(_components.p, {\n children: \"Example implementation of a GraphQL server with type-level representation of the schema auto-generated:\"\n }), \"\\n\", _jsx(_components.pre, {\n tabIndex: \"0\",\n \"data-language\": \"haskell\",\n \"data-word-wrap\": \"\",\n children: _jsxs(_components.code, {\n children: [_jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"{-# \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"LANGUAGE\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \" DataKinds\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" #-}\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"{-# \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"LANGUAGE\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \" NamedFieldPuns\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" #-}\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"{-# \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"LANGUAGE\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \" OverloadedStrings\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" #-}\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"{-# \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"LANGUAGE\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \" PartialTypeSignatures\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" #-}\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"{-# \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"LANGUAGE\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \" TypeApplications\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" #-}\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"{-# \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"LANGUAGE\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \" TypeFamilies\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" #-}\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"{-# \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"LANGUAGE\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \" TypeOperators\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" #-}\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n children: \" \"\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6A737D\",\n \"--shiki-dark\": \"#6A737D\"\n },\n children: \"-- imports omitted for brevity...\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: \" \"\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"graphql \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \"\\\"Library\\\"\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \" \\\"library.graphql\\\"\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6A737D\",\n \"--shiki-dark\": \"#6A737D\"\n },\n children: \" -- all the magic happens here! 🪄🎩\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n children: \" \"\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6A737D\",\n \"--shiki-dark\": \"#6A737D\"\n },\n children: \"-- ... a bit more code...\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: \" \"\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \"libraryServer\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \" ::\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \" SqlBackend\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \" -\u003e\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \" ServerT\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \" ObjectMapping\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" i \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"Library\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \" ServerErrorIO\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" _\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"libraryServer conn \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"=\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" resolver\"\n })\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" ( object \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"@\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \"\\\"Book\\\"\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" ( field \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"@\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \"\\\"id\\\"\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" bookId,\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" field \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"@\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \"\\\"title\\\"\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" bookTitle,\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" field \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"@\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \"\\\"author\\\"\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" bookAuthor,\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" field \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"@\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \"\\\"imageUrl\\\"\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" bookImage\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" ),\"\n })\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" object \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"@\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \"\\\"Author\\\"\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" ( field \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"@\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \"\\\"id\\\"\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" authorId,\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" field \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"@\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \"\\\"name\\\"\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" authorName,\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" field \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"@\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \"\\\"books\\\"\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" authorBooks\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" ),\"\n })\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" object \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"@\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \"\\\"Query\\\"\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" ( method \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"@\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \"\\\"authors\\\"\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" allAuthors,\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" method \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"@\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \"\\\"books\\\"\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" allBooks\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" ),\"\n })\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" object \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"@\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \"\\\"Mutation\\\"\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" ( method \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"@\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \"\\\"newAuthor\\\"\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" newAuthor,\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" method \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"@\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \"\\\"newBook\\\"\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" newBook\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" ),\"\n })\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" object \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"@\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \"\\\"Subscription\\\"\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" (method \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"@\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \"\\\"allBooks\\\"\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" allBooksConduit)\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" )\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \" where\"\n })\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \" bookId\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \" ::\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \" Entity\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \" Book\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \" -\u003e\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \" ServerErrorIO\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \" Integer\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" bookId (\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#005CC5\",\n \"--shiki-dark\": \"#79B8FF\"\n },\n children: \"Entity\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" (\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#005CC5\",\n \"--shiki-dark\": \"#79B8FF\"\n },\n children: \"BookKey\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" k) _) \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"=\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" pure \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"$\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" toInteger k\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6A737D\",\n \"--shiki-dark\": \"#6A737D\"\n },\n children: \" -- ... more resolvers...\"\n })\n })]\n })\n }), \"\\n\", _jsxs(_components.p, {\n children: [\"See \", _jsx(_components.a, {\n href: \"https://higherkindness.io/mu-haskell/graphql/\",\n children: \"our docs\"\n }), \" for more information about how to build your own GraphQL server and \", _jsx(_components.a, {\n href: \"https://github.com/higherkindness/mu-graphql-example-elm\",\n children: \"the library example\"\n }), \" for a more end-to-end example that includes a client written in Elm!\"]\n })]\n });\n}\nreturn {\n title,\n frontMatter,\n useTOC,\n default: _createMdxContent\n};\n"},{"filePath":"./src/code/language-support/elixir/client/neuron.md","tags":["elixir","client"],"frontMatter":{"name":"Neuron","description":"A GraphQL client for Elixir","github":"uesteibar/neuron"},"stars":331,"formattedStars":"331","lastRelease":"","license":"Other"},{"filePath":"./src/code/language-support/javascript/client/graphql-http.md","tags":["javascript","client"],"frontMatter":{"name":"GraphQL-HTTP","description":"Simple, pluggable, zero-dependency, GraphQL over HTTP spec compliant server, client and audit suite.","github":"graphql/graphql-http","npm":"graphql-http"},"stars":319,"formattedStars":"319","lastRelease":"6 days ago","license":"MIT License"},{"filePath":"./src/code/language-support/javascript/server/graphql-http.md","tags":["javascript","server"],"frontMatter":{"name":"GraphQL-HTTP","description":"Simple, pluggable, zero-dependency, GraphQL over HTTP spec compliant server, client and audit suite.","github":"graphql/graphql-http","npm":"graphql-http"},"stars":319,"formattedStars":"319","lastRelease":"6 days ago","license":"MIT License"},{"filePath":"./src/code/language-support/javascript/tools/graphql-http.md","tags":["javascript","tools"],"frontMatter":{"name":"GraphQL-HTTP","description":"Simple, pluggable, zero-dependency, GraphQL over HTTP spec compliant server, client and audit suite.","github":"graphql/graphql-http","npm":"graphql-http"},"stars":319,"formattedStars":"319","lastRelease":"6 days ago","license":"MIT License"},{"filePath":"./src/code/language-support/erlang/server/graphql-erlang.md","tags":["erlang","server"],"frontMatter":{"name":"graphql-erlang","description":"GraphQL implementation in Erlang.","github":"jlouis/graphql-erlang"},"stars":313,"formattedStars":"313","lastRelease":"6 years ago","license":"Other"},{"filePath":"./src/code/language-support/java-kotlin-android/client/nodes.md","tags":["java-kotlin-android","client"],"frontMatter":{"name":"Nodes","description":"A GraphQL JVM Client designed for constructing queries from standard model definitions. By American Express.","github":"americanexpress/nodes"},"stars":308,"formattedStars":"308","lastRelease":"5 years ago","license":"Apache License 2.0"},{"filePath":"./src/code/language-support/java-kotlin-android/server/kgraphql.md","tags":["java-kotlin-android","server"],"frontMatter":{"name":"KGraphQL","description":"KGraphQL is a Kotlin implementation of GraphQL. It provides a rich DSL to set up the GraphQL schema.","url":"https://kgraphql.io/","github":"aPureBase/KGraphQL"},"stars":307,"formattedStars":"307","lastRelease":"1 year ago","license":"MIT License","compiledSource":"\"use strict\";\nconst {Fragment: _Fragment, jsx: _jsx, jsxs: _jsxs} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nconst title = \"\";\nconst frontMatter = {\n \"name\": \"KGraphQL\",\n \"description\": \"KGraphQL is a Kotlin implementation of GraphQL. It provides a rich DSL to set up the GraphQL schema.\",\n \"url\": \"https://kgraphql.io/\",\n \"github\": \"aPureBase/KGraphQL\"\n};\nfunction useTOC(props) {\n return [{\n value: \"Ktor Plugin\",\n id: \"ktor-plugin\",\n depth: 2\n }];\n}\nfunction _createMdxContent(props) {\n const _components = {\n a: \"a\",\n code: \"code\",\n h2: \"h2\",\n p: \"p\",\n pre: \"pre\",\n span: \"span\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsxs(_Fragment, {\n children: [_jsx(_components.p, {\n children: \"Here’s an example on how to create a simple schema based on a kotlin data class plus a property resolver that gets applied onto your class.\"\n }), \"\\n\", _jsx(_components.pre, {\n tabIndex: \"0\",\n \"data-language\": \"kotlin\",\n \"data-word-wrap\": \"\",\n children: _jsxs(_components.code, {\n children: [_jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"data\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \" class\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \" Article\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"(\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"val\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" id: \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \"Int\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \", \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"val\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" text: \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \"String\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \")\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n children: \" \"\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"fun\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \" main\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"() {\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \" val\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" schema \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"=\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" KGraphQL.\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \"schema\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" {\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \" query\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"(\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \"\\\"article\\\"\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \") {\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \" resolver\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" { id: \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \"Int\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"?, text: \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \"String\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" -\u003e\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \" Article\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"(id ?: \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"-\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#005CC5\",\n \"--shiki-dark\": \"#79B8FF\"\n },\n children: \"1\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \", text)\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" }\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" }\"\n })\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \" type\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"\u003c\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \"Article\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"\u003e {\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \" property\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"\u003c\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \"String\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"\u003e(\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \"\\\"fullText\\\"\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \") {\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \" resolver\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" { article: \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \"Article\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" -\u003e\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \" \\\"${article.id}: ${article.text}\\\"\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" }\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" }\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" }\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" }\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: \" \"\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" schema.\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \"execute\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"(\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \"\\\"\\\"\\\"\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \" {\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \" article(id: 5, text: \\\"Hello World\\\") {\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \" id\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \" fullText\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \" }\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \" }\"\n })\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \" \\\"\\\"\\\"\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \").\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \"let\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"(::\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \"println\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \")\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"}\"\n })\n })]\n })\n }), \"\\n\", _jsx(_components.p, {\n children: \"KGraphQL is using coroutines behind the scenes to provide great asynchronous performance.\"\n }), \"\\n\", _jsxs(_components.p, {\n children: [\"See \", _jsx(_components.a, {\n href: \"https://kgraphql.io/Installation/\",\n children: \"KGraphQL docs\"\n }), \" for more in depth usage.\"]\n }), \"\\n\", _jsx(_components.h2, {\n id: \"ktor-plugin\",\n children: \"Ktor Plugin\"\n }), \"\\n\", _jsxs(_components.p, {\n children: [\"KGraphQL has a Ktor plugin which gives you a fully functional GraphQL server with a single \", _jsx(_components.a, {\n href: \"https://ktor.io/docs/zfeatures.html\",\n children: \"install\"\n }), \" function call. Example below shows how to set up a GraphQL server within Ktor and it will give you a \", _jsx(_components.a, {\n href: \"https://github.com/graphql/graphql-playground\",\n children: \"GraphQL Playground\"\n }), \" out of the box by entering \", _jsx(_components.code, {\n children: \"localhost:8080/graphql\"\n }), \".\"]\n }), \"\\n\", _jsx(_components.pre, {\n tabIndex: \"0\",\n \"data-language\": \"kotlin\",\n \"data-word-wrap\": \"\",\n children: _jsxs(_components.code, {\n children: [_jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"fun\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \" Application\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \".\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \"module\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"() {\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \" install\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"(GraphQL) {\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" playground \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"=\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#005CC5\",\n \"--shiki-dark\": \"#79B8FF\"\n },\n children: \" true\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \" schema\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" {\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \" query\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"(\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \"\\\"hello\\\"\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \") {\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \" resolver\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" { \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"-\u003e\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \" \\\"World!\\\"\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" }\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" }\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" }\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" }\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"}\"\n })\n })]\n })\n }), \"\\n\", _jsxs(_components.p, {\n children: [\"You can follow the \", _jsx(_components.a, {\n href: \"https://kgraphql.io/Tutorials/ktor/\",\n children: \"Ktor tutorial\"\n }), \" to set up a KGraphQL server with ktor from scratch up.\"]\n })]\n });\n}\nreturn {\n title,\n frontMatter,\n useTOC,\n default: _createMdxContent\n};\n"},{"filePath":"./src/code/language-support/clojure/server/graphql-clj.md","tags":["clojure","server"],"frontMatter":{"name":"graphql-clj","description":"A Clojure library that provides a GraphQL implementation.","github":"tendant/graphql-clj"},"stars":285,"formattedStars":"285","lastRelease":"","license":"Eclipse Public License 1.0","compiledSource":"\"use strict\";\nconst {Fragment: _Fragment, jsx: _jsx, jsxs: _jsxs} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nconst title = \"\";\nconst frontMatter = {\n \"name\": \"graphql-clj\",\n \"description\": \"A Clojure library that provides a GraphQL implementation.\",\n \"github\": \"tendant/graphql-clj\"\n};\nfunction useTOC(props) {\n return [];\n}\nfunction _createMdxContent(props) {\n const _components = {\n code: \"code\",\n p: \"p\",\n pre: \"pre\",\n span: \"span\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsxs(_Fragment, {\n children: [_jsxs(_components.p, {\n children: [\"Code that executes a hello world GraphQL query with \", _jsx(_components.code, {\n children: \"graphql-clj\"\n }), \":\"]\n }), \"\\n\", _jsx(_components.pre, {\n tabIndex: \"0\",\n \"data-language\": \"clojure\",\n \"data-word-wrap\": \"\",\n children: _jsxs(_components.code, {\n children: [_jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"(\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"def\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \" schema\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \" \\\"type QueryRoot {\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \" hello: String\"\n })\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \" }\\\"\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \")\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n children: \" \"\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"(\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"defn\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \" resolver-fn\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" [type-name field-name]\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" (\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \"get-in\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" {\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \"\\\"QueryRoot\\\"\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" {\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \"\\\"hello\\\"\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" (\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"fn\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" [context parent \u0026 rest]\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \" \\\"Hello world!\\\"\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \")}}\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" [type-name field-name]))\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: \" \"\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"(\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"require\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" '[graphql-clj.executor \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#005CC5\",\n \"--shiki-dark\": \"#79B8FF\"\n },\n children: \":as\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" executor])\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n children: \" \"\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"(\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \"executor/execute\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#005CC5\",\n \"--shiki-dark\": \"#79B8FF\"\n },\n children: \" nil\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" schema resolver-fn \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \"\\\"{ hello }\\\"\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \")\"\n })]\n })]\n })\n })]\n });\n}\nreturn {\n title,\n frontMatter,\n useTOC,\n default: _createMdxContent\n};\n"},{"filePath":"./src/code/language-support/c-net/client/zeroql.md","tags":["c-net","client"],"frontMatter":{"name":"ZeroQL","description":"ZeroQL is a open-source GraphQL client for C#","github":"byme8/ZeroQL"},"stars":278,"formattedStars":"278","lastRelease":"3 months ago","license":"MIT License","compiledSource":"\"use strict\";\nconst {Fragment: _Fragment, jsx: _jsx, jsxs: _jsxs} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nconst title = \"\";\nconst frontMatter = {\n \"name\": \"ZeroQL\",\n \"description\": \"ZeroQL is a open-source GraphQL client for C#\",\n \"github\": \"byme8/ZeroQL\"\n};\nfunction useTOC(props) {\n return [];\n}\nfunction _createMdxContent(props) {\n const _components = {\n code: \"code\",\n li: \"li\",\n p: \"p\",\n pre: \"pre\",\n span: \"span\",\n ul: \"ul\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsxs(_Fragment, {\n children: [_jsx(_components.p, {\n children: \"The ZeroQL is a high-performance C#-friendly GraphQL client. It supports Linq-like syntax, and doesn’t require Reflection.Emit or expressions.\\nAs a result, at runtime provides performance very close to a raw HTTP call.\"\n }), \"\\n\", _jsx(_components.p, {\n children: \"You can use ZeroQL to:\"\n }), \"\\n\", _jsxs(_components.ul, {\n children: [\"\\n\", _jsx(_components.li, {\n children: \"Generate a C# client from GraphQL schema.\"\n }), \"\\n\", _jsx(_components.li, {\n children: \"Generate and execute graphql queries from your C# code.\"\n }), \"\\n\", _jsx(_components.li, {\n children: \"Don’t require writing GraphQL manually.\"\n }), \"\\n\", _jsx(_components.li, {\n children: \"Supports .Net Core, .Net Framework, Xamarin, Unity apps.\"\n }), \"\\n\"]\n }), \"\\n\", _jsx(_components.pre, {\n tabIndex: \"0\",\n \"data-language\": \"csharp\",\n \"data-word-wrap\": \"\",\n children: _jsxs(_components.code, {\n children: [_jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"var\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \" userId\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \" =\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#005CC5\",\n \"--shiki-dark\": \"#79B8FF\"\n },\n children: \" 10\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \";\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"var\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \" response\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \" =\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \" await\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" qlClient.\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \"Query\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"(\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \"q\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \" =\u003e\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" q\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" .\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \"User\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"(userId, \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \"o\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \" =\u003e\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \" new\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" {\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" o.Id,\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" o.FirstName,\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" o.LastName\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" }));\"\n })\n })]\n })\n })]\n });\n}\nreturn {\n title,\n frontMatter,\n useTOC,\n default: _createMdxContent\n};\n"},{"filePath":"./src/code/language-support/javascript/client/grafoo.md","tags":["javascript","client"],"frontMatter":{"name":"Grafoo","description":"An all purpose GraphQL client with view layer integrations for multiple frameworks in just 1.6kb.","github":"grafoojs/grafoo","npm":"@grafoo/core"},"stars":274,"formattedStars":"274","lastRelease":"6 years ago","license":"MIT License"},{"filePath":"./src/code/language-support/python/client/ariadne-codegen.md","tags":["python","client"],"frontMatter":{"name":"Ariadne Codegen","description":"Generate fully typed Python GraphQL client from any schema and queries.","github":"mirumee/ariadne-codegen"},"stars":274,"formattedStars":"274","lastRelease":"4 months ago","license":"BSD 3-Clause \"New\" or \"Revised\" License","compiledSource":"\"use strict\";\nconst {Fragment: _Fragment, jsx: _jsx, jsxs: _jsxs} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nconst title = \"\";\nconst frontMatter = {\n \"name\": \"Ariadne Codegen\",\n \"description\": \"Generate fully typed Python GraphQL client from any schema and queries.\",\n \"github\": \"mirumee/ariadne-codegen\"\n};\nfunction useTOC(props) {\n return [];\n}\nfunction _createMdxContent(props) {\n const _components = {\n code: \"code\",\n p: \"p\",\n pre: \"pre\",\n span: \"span\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsxs(_Fragment, {\n children: [_jsx(_components.p, {\n children: \"Install Ariadne Codegen:\"\n }), \"\\n\", _jsx(_components.pre, {\n \"data-word-wrap\": \"\",\n children: _jsx(_components.code, {\n children: \"$ pip install ariadne-codegen\\n\"\n })\n }), \"\\n\", _jsxs(_components.p, {\n children: [\"Create \", _jsx(_components.code, {\n children: \"queries.graphql\"\n }), \" file:\"]\n }), \"\\n\", _jsx(_components.pre, {\n tabIndex: \"0\",\n \"data-language\": \"graphql\",\n \"data-word-wrap\": \"\",\n children: _jsxs(_components.code, {\n children: [_jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"mutation\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \" CreateToken\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"(\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#E36209\",\n \"--shiki-dark\": \"#FFAB70\"\n },\n children: \"$username\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \": \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#005CC5\",\n \"--shiki-dark\": \"#79B8FF\"\n },\n children: \"String\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"!\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \", \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#E36209\",\n \"--shiki-dark\": \"#FFAB70\"\n },\n children: \"$password\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \": \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#005CC5\",\n \"--shiki-dark\": \"#79B8FF\"\n },\n children: \"String\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"!\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \") {\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#E36209\",\n \"--shiki-dark\": \"#FFAB70\"\n },\n children: \" createToken\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"(\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#E36209\",\n \"--shiki-dark\": \"#FFAB70\"\n },\n children: \"username\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \": \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#E36209\",\n \"--shiki-dark\": \"#FFAB70\"\n },\n children: \"$username\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \", \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#E36209\",\n \"--shiki-dark\": \"#FFAB70\"\n },\n children: \"password\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \": \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#E36209\",\n \"--shiki-dark\": \"#FFAB70\"\n },\n children: \"$password\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \") {\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#E36209\",\n \"--shiki-dark\": \"#FFAB70\"\n },\n children: \" token\"\n })\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#E36209\",\n \"--shiki-dark\": \"#FFAB70\"\n },\n children: \" errors\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" {\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#E36209\",\n \"--shiki-dark\": \"#FFAB70\"\n },\n children: \" field\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#E36209\",\n \"--shiki-dark\": \"#FFAB70\"\n },\n children: \" message\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" }\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" }\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"}\"\n })\n })]\n })\n }), \"\\n\", _jsxs(_components.p, {\n children: [\"Add \", _jsx(_components.code, {\n children: \"[ariadne-codegen]\"\n }), \" section to your \", _jsx(_components.code, {\n children: \"pyproject.toml\"\n }), \":\"]\n }), \"\\n\", _jsx(_components.pre, {\n \"data-word-wrap\": \"\",\n children: _jsx(_components.code, {\n children: \"[ariadne-codegen]\\nqueries_path = \\\"queries.graphql\\\"\\nremote_schema_url = \\\"http://example.com/graphql/\\\"\\n\"\n })\n }), \"\\n\", _jsx(_components.p, {\n children: \"Generate client:\"\n }), \"\\n\", _jsx(_components.pre, {\n \"data-word-wrap\": \"\",\n children: _jsx(_components.code, {\n children: \"$ ariadne-codegen\\n\"\n })\n }), \"\\n\", _jsx(_components.p, {\n children: \"And use it in your Python projects:\"\n }), \"\\n\", _jsx(_components.pre, {\n tabIndex: \"0\",\n \"data-language\": \"python\",\n \"data-word-wrap\": \"\",\n children: _jsxs(_components.code, {\n children: [_jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"from\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" graphql_client \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"import\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" Client\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n children: \" \"\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"with\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" Client(\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \"\\\"http://example.com/graphql/\\\"\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \") \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"as\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" client:\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" result \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"=\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" client.create_token(\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#E36209\",\n \"--shiki-dark\": \"#FFAB70\"\n },\n children: \"username\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"=\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \"\\\"Admin\\\"\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \", \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#E36209\",\n \"--shiki-dark\": \"#FFAB70\"\n },\n children: \"password\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"=\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \"\\\"Example123)\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n children: \" \"\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \" if\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" result.errors:\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#E36209\",\n \"--shiki-dark\": \"#FFAB70\"\n },\n children: \" error\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \" =\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" result.errors[\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#005CC5\",\n \"--shiki-dark\": \"#79B8FF\"\n },\n children: \"0\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"]\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \" raise\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" ValidationError({error.field: error.message})\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n children: \" \"\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#E36209\",\n \"--shiki-dark\": \"#FFAB70\"\n },\n children: \" auth_token\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \" =\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" result.token\"\n })]\n })]\n })\n })]\n });\n}\nreturn {\n title,\n frontMatter,\n useTOC,\n default: _createMdxContent\n};\n"},{"filePath":"./src/code/language-support/php/server/graphql-relay-php.md","tags":["php","server"],"frontMatter":{"name":"graphql-relay-php","description":"A library to help construct a graphql-php server supporting react-relay.","github":"ivome/graphql-relay-php"},"stars":271,"formattedStars":"271","lastRelease":"3 years ago","license":"BSD 3-Clause \"New\" or \"Revised\" License"},{"filePath":"./src/code/services/apollo-studio.md","tags":["services"],"frontMatter":{"name":"Apollo Studio","description":"A cloud service that helps you build, validate, monitor and secure your organizations data graph.","url":"https://www.apollographql.com/docs/studio/","github":"apollographql/apollo-studio-community"},"stars":250,"formattedStars":"250","lastRelease":"","license":"Unknown"},{"filePath":"./src/code/language-support/ruby/server/rails-graphql.md","tags":["ruby","server"],"frontMatter":{"name":"Rails GraphQL","description":"A Fresh new GraphQL server for Rails applications, with a focus on natural and Ruby-like DSL","url":"https://www.rails-graphql.dev/","github":"virtualshield/rails-graphql","gem":"rails-graphql"},"stars":175,"formattedStars":"175","lastRelease":"6 months ago","license":"MIT License","compiledSource":"\"use strict\";\nconst {Fragment: _Fragment, jsx: _jsx, jsxs: _jsxs} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nconst title = \"\";\nconst frontMatter = {\n \"name\": \"Rails GraphQL\",\n \"description\": \"A Fresh new GraphQL server for Rails applications, with a focus on natural and Ruby-like DSL\",\n \"url\": \"https://www.rails-graphql.dev/\",\n \"github\": \"virtualshield/rails-graphql\",\n \"gem\": \"rails-graphql\"\n};\nfunction useTOC(props) {\n return [];\n}\nfunction _createMdxContent(props) {\n const _components = {\n a: \"a\",\n code: \"code\",\n p: \"p\",\n pre: \"pre\",\n span: \"span\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsxs(_Fragment, {\n children: [_jsx(_components.pre, {\n tabIndex: \"0\",\n \"data-language\": \"ruby\",\n \"data-word-wrap\": \"\",\n children: _jsxs(_components.code, {\n children: [_jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"require\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \" 'rails-graphql'\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n children: \" \"\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"class\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \" GraphQL::AppSchema\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \" \u003c\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \" GraphQL::Schema\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" query_fields \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"do\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" field(\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#005CC5\",\n \"--shiki-dark\": \"#79B8FF\"\n },\n children: \":hello\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \").resolve { \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \"'Hello World!'\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" }\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \" end\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"end\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: \" \"\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#005CC5\",\n \"--shiki-dark\": \"#79B8FF\"\n },\n children: \"puts\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#005CC5\",\n \"--shiki-dark\": \"#79B8FF\"\n },\n children: \" GraphQL\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"::\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#005CC5\",\n \"--shiki-dark\": \"#79B8FF\"\n },\n children: \"AppSchema\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \".execute(\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \"'{ hello }'\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \")\"\n })]\n })]\n })\n }), \"\\n\", _jsxs(_components.p, {\n children: [\"Less is more! Please check it out the \", _jsx(_components.a, {\n href: \"https://www.rails-graphql.dev/?utm_source=graphql_org\",\n children: \"docs\"\n }), \".\"]\n })]\n });\n}\nreturn {\n title,\n frontMatter,\n useTOC,\n default: _createMdxContent\n};\n"},{"filePath":"./src/code/language-support/javascript/server/pylon.md","tags":["javascript","server"],"frontMatter":{"name":"Pylon","description":"A code-first framework for GraphQL API development, where your schema reflects your functionality. Run `npm create pylon@latest` to get started.","url":"https://pylon.cronit.io","github":"getcronit/pylon"},"stars":174,"formattedStars":"174","lastRelease":"12 hours ago","license":"Apache License 2.0","compiledSource":"\"use strict\";\nconst {Fragment: _Fragment, jsx: _jsx, jsxs: _jsxs} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nconst title = \"\";\nconst frontMatter = {\n \"name\": \"Pylon\",\n \"description\": \"A code-first framework for GraphQL API development, where your schema reflects your functionality. Run `npm create pylon@latest` to get started.\",\n \"url\": \"https://pylon.cronit.io\",\n \"github\": \"getcronit/pylon\"\n};\nfunction useTOC(props) {\n return [];\n}\nfunction _createMdxContent(props) {\n const _components = {\n code: \"code\",\n li: \"li\",\n ol: \"ol\",\n p: \"p\",\n pre: \"pre\",\n span: \"span\",\n strong: \"strong\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsxs(_Fragment, {\n children: [_jsxs(_components.ol, {\n children: [\"\\n\", _jsx(_components.li, {\n children: _jsx(_components.strong, {\n children: \"Create\"\n })\n }), \"\\n\"]\n }), \"\\n\", _jsx(_components.pre, {\n tabIndex: \"0\",\n \"data-language\": \"bash\",\n \"data-word-wrap\": \"\",\n children: _jsx(_components.code, {\n children: _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \"npm\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \" create\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \" pylon@latest\"\n })]\n })\n })\n }), \"\\n\", _jsxs(_components.ol, {\n start: \"2\",\n children: [\"\\n\", _jsx(_components.li, {\n children: _jsx(_components.strong, {\n children: \"Develop\"\n })\n }), \"\\n\"]\n }), \"\\n\", _jsx(_components.p, {\n children: \"Example service:\"\n }), \"\\n\", _jsx(_components.pre, {\n tabIndex: \"0\",\n \"data-language\": \"typescript\",\n \"data-word-wrap\": \"\",\n children: _jsxs(_components.code, {\n children: [_jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"import\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" { app } \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"from\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \" \\\"@getcronit/pylon\\\"\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n children: \" \"\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"class\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \" User\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" {\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#E36209\",\n \"--shiki-dark\": \"#FFAB70\"\n },\n children: \" name\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \":\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#005CC5\",\n \"--shiki-dark\": \"#79B8FF\"\n },\n children: \" string\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#E36209\",\n \"--shiki-dark\": \"#FFAB70\"\n },\n children: \" email\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \":\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#005CC5\",\n \"--shiki-dark\": \"#79B8FF\"\n },\n children: \" string\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \" constructor\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"(\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#E36209\",\n \"--shiki-dark\": \"#FFAB70\"\n },\n children: \"name\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \":\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#005CC5\",\n \"--shiki-dark\": \"#79B8FF\"\n },\n children: \" string\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \", \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#E36209\",\n \"--shiki-dark\": \"#FFAB70\"\n },\n children: \"email\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \":\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#005CC5\",\n \"--shiki-dark\": \"#79B8FF\"\n },\n children: \" string\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \") {\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#005CC5\",\n \"--shiki-dark\": \"#79B8FF\"\n },\n children: \" this\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \".name \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"=\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" name\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#005CC5\",\n \"--shiki-dark\": \"#79B8FF\"\n },\n children: \" this\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \".email \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"=\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" email\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" }\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"}\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: \" \"\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"const\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#005CC5\",\n \"--shiki-dark\": \"#79B8FF\"\n },\n children: \" users\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \" =\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" [\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \" new\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \" User\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"(\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \"\\\"Alice\\\"\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \", \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \"\\\"alice@example.com\\\"\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"),\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \" new\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \" User\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"(\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \"\\\"Bob\\\"\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \", \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \"\\\"bob@example.com\\\"\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"),\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \" new\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \" User\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"(\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \"\\\"Charlie\\\"\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \", \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \"\\\"charlie@example.com\\\"\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"),\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"]\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: \" \"\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"export\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \" const\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#005CC5\",\n \"--shiki-dark\": \"#79B8FF\"\n },\n children: \" graphql\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \" =\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" {\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" Query: {\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" users,\"\n })\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \" user\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \": (\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#E36209\",\n \"--shiki-dark\": \"#FFAB70\"\n },\n children: \"name\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \":\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#005CC5\",\n \"--shiki-dark\": \"#79B8FF\"\n },\n children: \" string\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \") \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"=\u003e\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" {\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \" return\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" users.\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \"find\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"(\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#E36209\",\n \"--shiki-dark\": \"#FFAB70\"\n },\n children: \"user\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \" =\u003e\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" user.name \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"===\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" name)\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" },\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" },\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" Mutation: {\"\n })\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \" addUser\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \": (\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#E36209\",\n \"--shiki-dark\": \"#FFAB70\"\n },\n children: \"name\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \":\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#005CC5\",\n \"--shiki-dark\": \"#79B8FF\"\n },\n children: \" string\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \", \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#E36209\",\n \"--shiki-dark\": \"#FFAB70\"\n },\n children: \"email\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \":\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#005CC5\",\n \"--shiki-dark\": \"#79B8FF\"\n },\n children: \" string\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \") \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"=\u003e\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" {\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \" const\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#005CC5\",\n \"--shiki-dark\": \"#79B8FF\"\n },\n children: \" user\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \" =\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \" new\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \" User\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"(name, email)\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" users.\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \"push\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"(user)\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \" return\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" user\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" },\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" },\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"}\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: \" \"\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"export\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \" default\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" app\"\n })]\n })]\n })\n }), \"\\n\", _jsxs(_components.ol, {\n start: \"3\",\n children: [\"\\n\", _jsx(_components.li, {\n children: _jsx(_components.strong, {\n children: \"Query\"\n })\n }), \"\\n\"]\n }), \"\\n\", _jsx(_components.pre, {\n tabIndex: \"0\",\n \"data-language\": \"graphql\",\n \"data-word-wrap\": \"\",\n children: _jsxs(_components.code, {\n children: [_jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"query\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \" User\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" {\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#E36209\",\n \"--shiki-dark\": \"#FFAB70\"\n },\n children: \" user\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"(\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#E36209\",\n \"--shiki-dark\": \"#FFAB70\"\n },\n children: \"name\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \": \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \"\\\"Alice\\\"\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \") {\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#E36209\",\n \"--shiki-dark\": \"#FFAB70\"\n },\n children: \" name\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#E36209\",\n \"--shiki-dark\": \"#FFAB70\"\n },\n children: \" email\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" }\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"}\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: \" \"\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"query\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \" Users\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" {\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#E36209\",\n \"--shiki-dark\": \"#FFAB70\"\n },\n children: \" users\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" {\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#E36209\",\n \"--shiki-dark\": \"#FFAB70\"\n },\n children: \" name\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#E36209\",\n \"--shiki-dark\": \"#FFAB70\"\n },\n children: \" email\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" }\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"}\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: \" \"\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"mutation\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \" AddUser\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" {\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#E36209\",\n \"--shiki-dark\": \"#FFAB70\"\n },\n children: \" addUser\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"(\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#E36209\",\n \"--shiki-dark\": \"#FFAB70\"\n },\n children: \"name\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \": \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \"\\\"Corina\\\"\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \", \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#E36209\",\n \"--shiki-dark\": \"#FFAB70\"\n },\n children: \"email\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \": \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \"\\\"corina@example.com\\\"\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \") {\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#E36209\",\n \"--shiki-dark\": \"#FFAB70\"\n },\n children: \" name\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#E36209\",\n \"--shiki-dark\": \"#FFAB70\"\n },\n children: \" email\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" }\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"}\"\n })\n })]\n })\n })]\n });\n}\nreturn {\n title,\n frontMatter,\n useTOC,\n default: _createMdxContent\n};\n"},{"filePath":"./src/code/language-support/python/client/python-graphql-client.md","tags":["python","client"],"frontMatter":{"name":"python-graphql-client","description":"Simple GraphQL client for Python 2.7+.","url":"https://github.com/prisma/python-graphql-client","github":"prisma-labs/python-graphql-client"},"stars":155,"formattedStars":"155","lastRelease":"","license":"MIT License"},{"filePath":"./src/code/language-support/clojure/server/alumbra.md","tags":["clojure","server"],"frontMatter":{"name":"alumbra","description":"A set of reusable GraphQL components for Clojure conforming to the data structures given in [alumbra.spec](https://github.com/alumbra/alumbra.spec).","github":"alumbra/alumbra"},"stars":148,"formattedStars":"148","lastRelease":"7 years ago","license":"MIT License","compiledSource":"\"use strict\";\nconst {Fragment: _Fragment, jsx: _jsx, jsxs: _jsxs} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nconst title = \"\";\nconst frontMatter = {\n \"name\": \"alumbra\",\n \"description\": \"A set of reusable GraphQL components for Clojure conforming to the data structures given in [alumbra.spec](https://github.com/alumbra/alumbra.spec).\",\n \"github\": \"alumbra/alumbra\"\n};\nfunction useTOC(props) {\n return [];\n}\nfunction _createMdxContent(props) {\n const _components = {\n code: \"code\",\n pre: \"pre\",\n span: \"span\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsxs(_Fragment, {\n children: [_jsx(_components.pre, {\n tabIndex: \"0\",\n \"data-language\": \"clojure\",\n \"data-word-wrap\": \"\",\n children: _jsxs(_components.code, {\n children: [_jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"(\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"require\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" '[alumbra.core \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#005CC5\",\n \"--shiki-dark\": \"#79B8FF\"\n },\n children: \":as\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" alumbra]\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" '[claro.data \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#005CC5\",\n \"--shiki-dark\": \"#79B8FF\"\n },\n children: \":as\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" data])\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n children: \" \"\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"(\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"def\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \" schema\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \" \\\"type Person { name: String!, friends: [Person!]! }\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \" type QueryRoot { person(id: ID!): Person, me: Person! }\"\n })\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \" schema { query: QueryRoot }\\\"\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \")\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n children: \" \"\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"(\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"defrecord\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \" Person\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" [id]\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \" data\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"/\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \"Resolvable\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" (\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \"resolve!\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" [_ _]\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" {\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#005CC5\",\n \"--shiki-dark\": \"#79B8FF\"\n },\n children: \":name\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" (\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \"str\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \" \\\"Person #\\\"\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" id)\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#005CC5\",\n \"--shiki-dark\": \"#79B8FF\"\n },\n children: \" :friends\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" (\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \"map\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" -\u003ePerson (\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \"range\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" (\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \"inc\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" id) (\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \"+\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" id \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#005CC5\",\n \"--shiki-dark\": \"#79B8FF\"\n },\n children: \"3\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \")))}))\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n children: \" \"\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"(\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"def\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \" QueryRoot\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" {\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#005CC5\",\n \"--shiki-dark\": \"#79B8FF\"\n },\n children: \":person\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" (\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \"map-\u003ePerson\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" {})\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#005CC5\",\n \"--shiki-dark\": \"#79B8FF\"\n },\n children: \" :me\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" (\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \"map-\u003ePerson\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" {\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#005CC5\",\n \"--shiki-dark\": \"#79B8FF\"\n },\n children: \":id\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#005CC5\",\n \"--shiki-dark\": \"#79B8FF\"\n },\n children: \" 0\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"})})\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n children: \" \"\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"(\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"def\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \" app\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" (\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \"alumbra/handler\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" {\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#005CC5\",\n \"--shiki-dark\": \"#79B8FF\"\n },\n children: \":schema\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" schema\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#005CC5\",\n \"--shiki-dark\": \"#79B8FF\"\n },\n children: \" :query\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" QueryRoot}))\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n children: \" \"\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"(\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"defonce\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \" my-graphql-server\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" (\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \"aleph.http/start-server\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" #'app {\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#005CC5\",\n \"--shiki-dark\": \"#79B8FF\"\n },\n children: \":port\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#005CC5\",\n \"--shiki-dark\": \"#79B8FF\"\n },\n children: \" 3000\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"}))\"\n })]\n })]\n })\n }), \"\\n\", _jsx(_components.pre, {\n tabIndex: \"0\",\n \"data-language\": \"bash\",\n \"data-word-wrap\": \"\",\n children: _jsxs(_components.code, {\n children: [_jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \"$\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \" curl\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#005CC5\",\n \"--shiki-dark\": \"#79B8FF\"\n },\n children: \" -XPOST\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \" \\\"http://0:3000\\\"\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#005CC5\",\n \"--shiki-dark\": \"#79B8FF\"\n },\n children: \" -H\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \"'Content-Type: application/json'\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#005CC5\",\n \"--shiki-dark\": \"#79B8FF\"\n },\n children: \" -d\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \"'{\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \" \\\"query\\\": \\\"{ me { name, friends { name } } }\\\"\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \"}'\"\n })\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"{\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \"\\\"data\\\"\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#005CC5\",\n \"--shiki-dark\": \"#79B8FF\"\n },\n children: \":\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"{\\\"\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \"me\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \"\\\":{\\\"\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \"name\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \"\\\":\\\"\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \"Person\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6A737D\",\n \"--shiki-dark\": \"#6A737D\"\n },\n children: \" #0\\\",\\\"friends\\\":[{\\\"name\\\":\\\"Person #1\\\"},{\\\"name\\\":\\\"Person #2\\\"}]}}}\"\n })]\n })]\n })\n })]\n });\n}\nreturn {\n title,\n frontMatter,\n useTOC,\n default: _createMdxContent\n};\n"},{"filePath":"./src/code/language-support/javascript/client/graphql-ts-client.md","tags":["javascript","client"],"frontMatter":{"name":"graphql-ts-client","description":"GraphQL client for TypeScript, automatically infers the type of the returned data according to the strongly typed query request","github":"babyfish-ct/graphql-ts-client","npm":"graphql-ts-client-api"},"stars":148,"formattedStars":"148","lastRelease":"11 months ago","license":"MIT License"},{"filePath":"./src/code/language-support/r/server/ghql.md","tags":["r","server"],"frontMatter":{"name":"ghql","description":"General purpose GraphQL R client","github":"ropensci/ghql"},"stars":146,"formattedStars":"146","lastRelease":"4 years ago","license":"Other"},{"filePath":"./src/code/language-support/swift-objective-c-ios/server/graphzahl.md","tags":["swift-objective-c-ios","server"],"frontMatter":{"name":"GraphZahl","description":"Swift library for writing Declarative, Type-Safe GraphQL APIs with Zero Boilerplate.","github":"nerdsupremacist/GraphZahl"},"stars":143,"formattedStars":"143","lastRelease":"3 years ago","license":"MIT License"},{"filePath":"./src/code/language-support/ballerina/client/ballerina-graphql.md","tags":["ballerina","client"],"frontMatter":{"name":"ballerina-graphql","description":"The Ballerina Standard Library Package for consume GraphQL services.","url":"https://lib.ballerina.io/ballerina/graphql/latest","github":"ballerina-platform/module-ballerina-graphql"},"stars":139,"formattedStars":"139","lastRelease":"3 weeks ago","license":"Apache License 2.0","compiledSource":"\"use strict\";\nconst {Fragment: _Fragment, jsx: _jsx, jsxs: _jsxs} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nconst title = \"\";\nconst frontMatter = {\n \"name\": \"ballerina-graphql\",\n \"description\": \"The Ballerina Standard Library Package for consume GraphQL services.\",\n \"url\": \"https://lib.ballerina.io/ballerina/graphql/latest\",\n \"github\": \"ballerina-platform/module-ballerina-graphql\"\n};\nfunction useTOC(props) {\n return [{\n value: \"Features\",\n id: \"features\",\n depth: 2\n }];\n}\nfunction _createMdxContent(props) {\n const _components = {\n a: \"a\",\n code: \"code\",\n h2: \"h2\",\n li: \"li\",\n p: \"p\",\n pre: \"pre\",\n span: \"span\",\n ul: \"ul\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsxs(_Fragment, {\n children: [_jsxs(_components.p, {\n children: [\"To run a \", _jsx(_components.code, {\n children: \"ballerina-graphql\"\n }), \" client:\"]\n }), \"\\n\", _jsxs(_components.ul, {\n children: [\"\\n\", _jsxs(_components.li, {\n children: [\"Download and install \", _jsx(_components.a, {\n href: \"https://ballerina.io/downloads\",\n children: \"Ballerina Language\"\n })]\n }), \"\\n\", _jsxs(_components.li, {\n children: [\"Then run \", _jsx(_components.code, {\n children: \"bal run graphql_client.bal\"\n }), \" to run the service, with this code in the \", _jsx(_components.code, {\n children: \"graphql_client.bal\"\n }), \" file:\"]\n }), \"\\n\"]\n }), \"\\n\", _jsx(_components.pre, {\n tabIndex: \"0\",\n \"data-language\": \"ballerina\",\n \"data-word-wrap\": \"\",\n children: _jsxs(_components.code, {\n children: [_jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"import\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" ballerina/graphql;\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"import\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" ballerina/io;\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n children: \" \"\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"type\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \" Response\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \" record\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" {\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \" record\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" { \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#005CC5\",\n \"--shiki-dark\": \"#79B8FF\"\n },\n children: \"string\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" hello; } data;\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"};\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: \" \"\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"public\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \" function\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \" main\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"() \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"returns\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \" error?\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" {\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" graphql\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \":\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"Client helloClient \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"=\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \" check\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \" new\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" (\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \"\\\"localhost:9090/graphql\\\"\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \");\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#005CC5\",\n \"--shiki-dark\": \"#79B8FF\"\n },\n children: \" string\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" document \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"=\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \" \\\"{ hello }\\\"\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \";\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" Response response \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"=\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \" check\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" helloClient\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"-\u003e\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \"execute\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"(\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#E36209\",\n \"--shiki-dark\": \"#FFAB70\"\n },\n children: \"document\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \");\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" io\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \":\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \"println\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"(response.data.hello);\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"}\"\n })\n })]\n })\n }), \"\\n\", _jsx(_components.h2, {\n id: \"features\",\n children: \"Features\"\n }), \"\\n\", _jsxs(_components.ul, {\n children: [\"\\n\", _jsx(_components.li, {\n children: \"Dependently-typed response retrieval with Ballerina type inferring\"\n }), \"\\n\", _jsx(_components.li, {\n children: \"Custom client generation support\"\n }), \"\\n\"]\n })]\n });\n}\nreturn {\n title,\n frontMatter,\n useTOC,\n default: _createMdxContent\n};\n"},{"filePath":"./src/code/language-support/ballerina/server/ballerina-graphql.md","tags":["ballerina","server"],"frontMatter":{"name":"ballerina-graphql","description":"The Ballerina Standard Library Package for write GraphQL services.","url":"https://lib.ballerina.io/ballerina/graphql/latest","github":"ballerina-platform/module-ballerina-graphql"},"stars":139,"formattedStars":"139","lastRelease":"3 weeks ago","license":"Apache License 2.0","compiledSource":"\"use strict\";\nconst {Fragment: _Fragment, jsx: _jsx, jsxs: _jsxs} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nconst title = \"\";\nconst frontMatter = {\n \"name\": \"ballerina-graphql\",\n \"description\": \"The Ballerina Standard Library Package for write GraphQL services.\",\n \"url\": \"https://lib.ballerina.io/ballerina/graphql/latest\",\n \"github\": \"ballerina-platform/module-ballerina-graphql\"\n};\nfunction useTOC(props) {\n return [{\n value: \"Features\",\n id: \"features\",\n depth: 2\n }];\n}\nfunction _createMdxContent(props) {\n const _components = {\n a: \"a\",\n code: \"code\",\n h2: \"h2\",\n li: \"li\",\n p: \"p\",\n pre: \"pre\",\n span: \"span\",\n ul: \"ul\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsxs(_Fragment, {\n children: [_jsxs(_components.p, {\n children: [\"To run a \", _jsx(_components.code, {\n children: \"ballerina-graphql\"\n }), \" hello world server:\"]\n }), \"\\n\", _jsxs(_components.ul, {\n children: [\"\\n\", _jsxs(_components.li, {\n children: [\"Download and install \", _jsx(_components.a, {\n href: \"https://ballerina.io/downloads\",\n children: \"Ballerina Language\"\n })]\n }), \"\\n\", _jsxs(_components.li, {\n children: [\"Then run \", _jsx(_components.code, {\n children: \"bal run graphql_service.bal\"\n }), \" to run the service, with this code in the \", _jsx(_components.code, {\n children: \"graphql_service.bal\"\n }), \" file:\"]\n }), \"\\n\"]\n }), \"\\n\", _jsx(_components.pre, {\n tabIndex: \"0\",\n \"data-language\": \"ballerina\",\n \"data-word-wrap\": \"\",\n children: _jsxs(_components.code, {\n children: [_jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"import\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" ballerina/graphql;\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n children: \" \"\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"service\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \" /graphql\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \" on\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \" new\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" graphql:Listener(\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#005CC5\",\n \"--shiki-dark\": \"#79B8FF\"\n },\n children: \"9090\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \") {\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \" resource\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \" function\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \" get\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \" hello\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"() \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"returns\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#005CC5\",\n \"--shiki-dark\": \"#79B8FF\"\n },\n children: \" string\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" {\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \" return\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \" \\\"Hello, world!\\\"\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \";\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" }\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"}\"\n })\n })]\n })\n }), \"\\n\", _jsx(_components.h2, {\n id: \"features\",\n children: \"Features\"\n }), \"\\n\", _jsxs(_components.ul, {\n children: [\"\\n\", _jsxs(_components.li, {\n children: [\"Built with Ballerina \", _jsx(_components.code, {\n children: \"service\"\n }), \" and \", _jsx(_components.code, {\n children: \"listener\"\n }), \" model, which are first-class citizens in Ballerina\"]\n }), \"\\n\", _jsx(_components.li, {\n children: \"Supports subscriptions over websocket (No additional libraries needed)\"\n }), \"\\n\", _jsx(_components.li, {\n children: \"Supports file upload\"\n }), \"\\n\", _jsx(_components.li, {\n children: \"Built-in GraphiQL client\"\n }), \"\\n\"]\n })]\n });\n}\nreturn {\n title,\n frontMatter,\n useTOC,\n default: _createMdxContent\n};\n"},{"filePath":"./src/code/language-support/julia/client/diana-jl.md","tags":["julia","client"],"frontMatter":{"name":"Diana.jl","description":"A Julia GraphQL server implementation.","github":"neomatrixcode/Diana.jl"},"stars":115,"formattedStars":"115","lastRelease":"2 years ago","license":"MIT License"},{"filePath":"./src/code/language-support/java-kotlin-android/server/graphql-calculator.md","tags":["java-kotlin-android","server"],"frontMatter":{"name":"graphql-calculator","description":"A lightweight graphql calculation engine.","github":"graphql-calculator/graphql-calculator"},"stars":110,"formattedStars":"110","lastRelease":"3 years ago","license":"Apache License 2.0","compiledSource":"\"use strict\";\nconst {Fragment: _Fragment, jsx: _jsx, jsxs: _jsxs} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nconst title = \"\";\nconst frontMatter = {\n \"name\": \"graphql-calculator\",\n \"description\": \"A lightweight graphql calculation engine.\",\n \"github\": \"graphql-calculator/graphql-calculator\"\n};\nfunction useTOC(props) {\n return [];\n}\nfunction _createMdxContent(props) {\n const _components = {\n a: \"a\",\n code: \"code\",\n p: \"p\",\n pre: \"pre\",\n span: \"span\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsxs(_Fragment, {\n children: [_jsx(_components.p, {\n children: \"GraphQL Calculator is a lightweight graphql calculation engine,\\nwhich is used to alter execution behavior of graphql query.\"\n }), \"\\n\", _jsx(_components.p, {\n children: \"Here are some examples on how to use GraphQL Calculator on graphql query.\"\n }), \"\\n\", _jsx(_components.pre, {\n tabIndex: \"0\",\n \"data-language\": \"graphql\",\n \"data-word-wrap\": \"\",\n children: _jsxs(_components.code, {\n children: [_jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"query\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \" basicMapValue\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"(\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#E36209\",\n \"--shiki-dark\": \"#FFAB70\"\n },\n children: \"$userIds\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \": [\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#005CC5\",\n \"--shiki-dark\": \"#79B8FF\"\n },\n children: \"Int\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"]) {\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#E36209\",\n \"--shiki-dark\": \"#FFAB70\"\n },\n children: \" userInfoList\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"(\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#E36209\",\n \"--shiki-dark\": \"#FFAB70\"\n },\n children: \"userIds\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \": \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#E36209\",\n \"--shiki-dark\": \"#FFAB70\"\n },\n children: \"$userIds\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \") {\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#E36209\",\n \"--shiki-dark\": \"#FFAB70\"\n },\n children: \" id\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#E36209\",\n \"--shiki-dark\": \"#FFAB70\"\n },\n children: \" age\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#E36209\",\n \"--shiki-dark\": \"#FFAB70\"\n },\n children: \" firstName\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#E36209\",\n \"--shiki-dark\": \"#FFAB70\"\n },\n children: \" lastName\"\n })\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \" fullName\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \": \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#E36209\",\n \"--shiki-dark\": \"#FFAB70\"\n },\n children: \"stringHolder\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \" @map\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"(\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#E36209\",\n \"--shiki-dark\": \"#FFAB70\"\n },\n children: \"mapper\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \": \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \"\\\"firstName + lastName\\\"\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \")\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" }\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"}\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: \" \"\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"query\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \" filterUserByAge\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"(\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#E36209\",\n \"--shiki-dark\": \"#FFAB70\"\n },\n children: \"$userId\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \": [\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#005CC5\",\n \"--shiki-dark\": \"#79B8FF\"\n },\n children: \"Int\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"]) {\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#E36209\",\n \"--shiki-dark\": \"#FFAB70\"\n },\n children: \" userInfoList\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"(\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#E36209\",\n \"--shiki-dark\": \"#FFAB70\"\n },\n children: \"userIds\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \": \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#E36209\",\n \"--shiki-dark\": \"#FFAB70\"\n },\n children: \"$userId\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \") \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \"@filter\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"(\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#E36209\",\n \"--shiki-dark\": \"#FFAB70\"\n },\n children: \"predicate\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \": \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \"\\\"age\u003e=18\\\"\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \") {\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#E36209\",\n \"--shiki-dark\": \"#FFAB70\"\n },\n children: \" userId\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#E36209\",\n \"--shiki-dark\": \"#FFAB70\"\n },\n children: \" age\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#E36209\",\n \"--shiki-dark\": \"#FFAB70\"\n },\n children: \" firstName\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#E36209\",\n \"--shiki-dark\": \"#FFAB70\"\n },\n children: \" lastName\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" }\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"}\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: \" \"\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"query\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \" parseFetchedValueToAnotherFieldArgumentMap\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"(\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#E36209\",\n \"--shiki-dark\": \"#FFAB70\"\n },\n children: \"$itemIds\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \": [\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#005CC5\",\n \"--shiki-dark\": \"#79B8FF\"\n },\n children: \"Int\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"]) {\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#E36209\",\n \"--shiki-dark\": \"#FFAB70\"\n },\n children: \" itemList\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"(\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#E36209\",\n \"--shiki-dark\": \"#FFAB70\"\n },\n children: \"itemIds\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \": \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#E36209\",\n \"--shiki-dark\": \"#FFAB70\"\n },\n children: \"$itemIds\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \") {\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6A737D\",\n \"--shiki-dark\": \"#6A737D\"\n },\n children: \" # save sellerId as List\u003cLong\u003e with unique name \\\"sellerIdList\\\"\"\n })\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#E36209\",\n \"--shiki-dark\": \"#FFAB70\"\n },\n children: \" sellerId\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \" @fetchSource\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"(\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#E36209\",\n \"--shiki-dark\": \"#FFAB70\"\n },\n children: \"name\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \": \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \"\\\"sellerIdList\\\"\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \")\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#E36209\",\n \"--shiki-dark\": \"#FFAB70\"\n },\n children: \" name\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#E36209\",\n \"--shiki-dark\": \"#FFAB70\"\n },\n children: \" saleAmount\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#E36209\",\n \"--shiki-dark\": \"#FFAB70\"\n },\n children: \" salePrice\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" }\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: \" \"\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#E36209\",\n \"--shiki-dark\": \"#FFAB70\"\n },\n children: \" userInfoList\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"(\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#E36209\",\n \"--shiki-dark\": \"#FFAB70\"\n },\n children: \"userIds\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \": \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#005CC5\",\n \"--shiki-dark\": \"#79B8FF\"\n },\n children: \"1\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \")\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6A737D\",\n \"--shiki-dark\": \"#6A737D\"\n },\n children: \" # transform the argument of \\\"userInfoList\\\" named \\\"userIds\\\" according to expression \\\"sellerIdList\\\" and expression argument,\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6A737D\",\n \"--shiki-dark\": \"#6A737D\"\n },\n children: \" # which mean replace userIds value by source named \\\"sellerIdList\\\"\"\n })\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \" @argumentTransform\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"(\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#E36209\",\n \"--shiki-dark\": \"#FFAB70\"\n },\n children: \" argumentName\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \": \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \"\\\"userIds\\\"\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#E36209\",\n \"--shiki-dark\": \"#FFAB70\"\n },\n children: \" operateType\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \":\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#005CC5\",\n \"--shiki-dark\": \"#79B8FF\"\n },\n children: \" MAP\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#E36209\",\n \"--shiki-dark\": \"#FFAB70\"\n },\n children: \" expression\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \": \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \"\\\"sellerIdList\\\"\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#E36209\",\n \"--shiki-dark\": \"#FFAB70\"\n },\n children: \" dependencySources\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \": [\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6A737D\",\n \"--shiki-dark\": \"#6A737D\"\n },\n children: \"\\\"sellerIdList\\\"\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"]\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" ) {\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#E36209\",\n \"--shiki-dark\": \"#FFAB70\"\n },\n children: \" userId\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#E36209\",\n \"--shiki-dark\": \"#FFAB70\"\n },\n children: \" name\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#E36209\",\n \"--shiki-dark\": \"#FFAB70\"\n },\n children: \" age\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" }\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"}\"\n })\n })]\n })\n }), \"\\n\", _jsxs(_components.p, {\n children: [\"See \", _jsx(_components.a, {\n href: \"https://github.com/graphql-calculator/graphql-calculator\",\n children: \"graphql-calculator README\"\n }), \" for more information.\"]\n })]\n });\n}\nreturn {\n title,\n frontMatter,\n useTOC,\n default: _createMdxContent\n};\n"},{"filePath":"./src/code/services/typetta.md","tags":["services"],"frontMatter":{"name":"Typetta","description":"Typetta is an open-source ORM written in TypeScript that aims to allow seamless access to data in a typed fashion to all main SQL databases (MySQL, PostgreSQL, Microsoft SQL Server, SQLLite3, CockroachDB, MariaDB, Oracle \u0026 Amazon Redshift) and also to the NoSQL database MongoDB.","url":"https://twinlogix.github.io/typetta/","github":"twinlogix/typetta","npm":"@twinlogix/typetta"},"stars":109,"formattedStars":"109","lastRelease":"1 year ago","license":"Apache License 2.0"},{"filePath":"./src/code/language-support/java-kotlin-android/server/mp-graphql.md","tags":["java-kotlin-android","server"],"frontMatter":{"name":"MicroProfile GraphQL","description":"MP GraphQL is a code-first specification for building GraphQL applications. It uses annotations and design patterns similar to JAX-RS to enable rapid development.","github":"eclipse/microprofile-graphql"},"stars":100,"formattedStars":"100","lastRelease":"2 years ago","license":"Apache License 2.0","compiledSource":"\"use strict\";\nconst {Fragment: _Fragment, jsx: _jsx, jsxs: _jsxs} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nconst title = \"\";\nconst frontMatter = {\n \"name\": \"MicroProfile GraphQL\",\n \"description\": \"MP GraphQL is a code-first specification for building GraphQL applications. It uses annotations and design patterns similar to JAX-RS to enable rapid development.\",\n \"github\": \"eclipse/microprofile-graphql\"\n};\nfunction useTOC(props) {\n return [];\n}\nfunction _createMdxContent(props) {\n const _components = {\n a: \"a\",\n li: \"li\",\n p: \"p\",\n ul: \"ul\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsxs(_Fragment, {\n children: [_jsxs(_components.p, {\n children: [\"MicroProfile GraphQL is a GraphQL server and client specification for building GraphQL applications. It’s unique\\nannotation-based API approach enables rapid application development. Applications coded to the MP GraphQL APIs are\\nportable, and can be deployed into Java server runtimes such as \", _jsx(_components.a, {\n href: \"https://openliberty.io/\",\n children: \"Open Liberty\"\n }), \",\\n\", _jsx(_components.a, {\n href: \"https://quarkus.io/\",\n children: \"Quarkus\"\n }), \", \", _jsx(_components.a, {\n href: \"https://helidon.io/\",\n children: \"Helidon\"\n }), \" and \", _jsx(_components.a, {\n href: \"https://www.wildfly.org/\",\n children: \"Wildfly\"\n }), \". This means that\\nyour applications can make use of other \", _jsx(_components.a, {\n href: \"https://jakarta.ee/\",\n children: \"Jakarta\"\n }), \" and \", _jsx(_components.a, {\n href: \"https://microprofile.io/\",\n children: \"MicroProfile\"\n }), \"\\ntechnologies.\"]\n }), \"\\n\", _jsx(_components.p, {\n children: \"MP GraphQL features include:\"\n }), \"\\n\", _jsxs(_components.ul, {\n children: [\"\\n\", _jsx(_components.li, {\n children: \"Annotation-based APIs\"\n }), \"\\n\", _jsx(_components.li, {\n children: \"Integration with Jakarta CDI\"\n }), \"\\n\", _jsx(_components.li, {\n children: \"Type-safe and dynamic client APIs\"\n }), \"\\n\", _jsx(_components.li, {\n children: \"Exception handling\"\n }), \"\\n\", _jsx(_components.li, {\n children: \"Easy integration with Jakarta and MicroProfile technologies\"\n }), \"\\n\"]\n }), \"\\n\", _jsx(_components.p, {\n children: \"Want to get started? Check out these resources:\"\n }), \"\\n\", _jsxs(_components.ul, {\n children: [\"\\n\", _jsxs(_components.li, {\n children: [\"Learn how to \", _jsx(_components.a, {\n href: \"https://openliberty.io/guides/microprofile-graphql.html\",\n children: \"create and deploy a server side app in Open Liberty\"\n }), \".\"]\n }), \"\\n\", _jsxs(_components.li, {\n children: [\"Learn how to \", _jsx(_components.a, {\n href: \"https://openliberty.io/guides/graphql-client.html\",\n children: \"create a client application in Open Liberty\"\n }), \".\"]\n }), \"\\n\", _jsxs(_components.li, {\n children: [\"Learn how to \", _jsx(_components.a, {\n href: \"https://quarkus.io/guides/smallrye-graphql\",\n children: \"create and deploy a server side app in Quarkus\"\n }), \".\"]\n }), \"\\n\", _jsxs(_components.li, {\n children: [\"Quick tutorial to \", _jsx(_components.a, {\n href: \"https://dzone.com/articles/have-it-your-way-with-microprofile-graphql\",\n children: \"build a simple sample weather application\"\n }), \".\"]\n }), \"\\n\"]\n }), \"\\n\", _jsx(_components.p, {\n children: \"Or these videos:\"\n }), \"\\n\", _jsxs(_components.ul, {\n children: [\"\\n\", _jsx(_components.li, {\n children: _jsx(_components.a, {\n href: \"https://www.youtube.com/watch?v=RzrkjuA3LvU\",\n children: \"Integrating GraphQL and JPA\"\n })\n }), \"\\n\", _jsx(_components.li, {\n children: _jsx(_components.a, {\n href: \"https://www.youtube.com/watch?v=OOnpUeblVPM\",\n children: \"Writing Queryable APIs with MP GraphQL\"\n })\n }), \"\\n\"]\n })]\n });\n}\nreturn {\n title,\n frontMatter,\n useTOC,\n default: _createMdxContent\n};\n"},{"filePath":"./src/code/language-support/c-net/client/graphql-net-client.md","tags":["c-net","client"],"frontMatter":{"name":"graphql-net-client","description":"Basic example GraphQL client for .NET.","github":"bkniffler/graphql-net-client"},"stars":94,"formattedStars":"94","lastRelease":"","license":"MIT License"},{"filePath":"./src/code/language-support/groovy/server/gorm-graphql.md","tags":["groovy","server"],"frontMatter":{"name":"gorm-graphql","description":"An automatic GraphQL schema generator for GORM","url":"https://grails.github.io/gorm-graphql/latest/guide/index.html","github":"grails/gorm-graphql"},"stars":81,"formattedStars":"81","lastRelease":"11 months ago","license":"Apache License 2.0","compiledSource":"\"use strict\";\nconst {Fragment: _Fragment, jsx: _jsx, jsxs: _jsxs} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nconst title = \"\";\nconst frontMatter = {\n \"name\": \"gorm-graphql\",\n \"description\": \"An automatic GraphQL schema generator for GORM\",\n \"url\": \"https://grails.github.io/gorm-graphql/latest/guide/index.html\",\n \"github\": \"grails/gorm-graphql\"\n};\nfunction useTOC(props) {\n return [];\n}\nfunction _createMdxContent(props) {\n const _components = {\n a: \"a\",\n li: \"li\",\n p: \"p\",\n strong: \"strong\",\n ul: \"ul\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsxs(_Fragment, {\n children: [_jsxs(_components.p, {\n children: [_jsx(_components.strong, {\n children: \"Core Library\"\n }), \" - The GORM GraphQL library provides functionality to generate a GraphQL schema based on your GORM entities. In addition to mapping domain classes to a GraphQL schema, the core library also provides default implementations of “data fetchers” to query, update, and delete data through executions of the schema.\"]\n }), \"\\n\", _jsxs(_components.p, {\n children: [_jsx(_components.strong, {\n children: \"Grails Plugin\"\n }), \" - In a addition to the Core Library, the GORM GraphQL Grails Plugin:\"]\n }), \"\\n\", _jsxs(_components.ul, {\n children: [\"\\n\", _jsxs(_components.li, {\n children: [\"\\n\", _jsx(_components.p, {\n children: \"Provides a controller to receive and respond to GraphQL requests through HTTP, based on their guidelines.\"\n }), \"\\n\"]\n }), \"\\n\", _jsxs(_components.li, {\n children: [\"\\n\", _jsx(_components.p, {\n children: \"Generates the schema at startup with spring bean configuration to make it easy to extend.\"\n }), \"\\n\"]\n }), \"\\n\", _jsxs(_components.li, {\n children: [\"\\n\", _jsxs(_components.p, {\n children: [\"Includes a \", _jsx(_components.a, {\n href: \"https://github.com/graphql/graphiql\",\n children: \"GraphiQL\"\n }), \" browser enabled by default in development. The browser is accessible at /graphql/browser.\"]\n }), \"\\n\"]\n }), \"\\n\", _jsxs(_components.li, {\n children: [\"\\n\", _jsx(_components.p, {\n children: \"Overrides the default data binder to use the data binding provided by Grails\"\n }), \"\\n\"]\n }), \"\\n\", _jsxs(_components.li, {\n children: [\"\\n\", _jsxs(_components.p, {\n children: [\"Provides a \", _jsx(_components.a, {\n href: \"https://grails.github.io/gorm-graphql/latest/api/org/grails/gorm/graphql/plugin/testing/GraphQLSpec.html\",\n children: \"trait\"\n }), \" to make integration testing of your GraphQL endpoints easier\"]\n }), \"\\n\"]\n }), \"\\n\"]\n }), \"\\n\", _jsxs(_components.p, {\n children: [\"See \", _jsx(_components.a, {\n href: \"https://grails.github.io/gorm-graphql/latest/guide/index.html\",\n children: \"the documentation\"\n }), \" for more information.\"]\n })]\n });\n}\nreturn {\n title,\n frontMatter,\n useTOC,\n default: _createMdxContent\n};\n"},{"filePath":"./src/code/language-support/go/server/appointy-jaal.md","tags":["go","server"],"frontMatter":{"name":"appointy/jaal","description":"Develop spec compliant GraphQL servers in Go.","github":"appointy/jaal"},"stars":77,"formattedStars":"77","lastRelease":"4 years ago","license":"MIT License"},{"filePath":"./src/code/language-support/perl/server/graphql-perl.md","tags":["perl","server"],"frontMatter":{"name":"graphql-perl","description":"A Perl port of GraphQL reference implementation","github":"graphql-perl/graphql-perl"},"stars":71,"formattedStars":"71","lastRelease":"","license":"Unknown","compiledSource":"\"use strict\";\nconst {jsx: _jsx, jsxs: _jsxs} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nconst title = \"\";\nconst frontMatter = {\n \"name\": \"graphql-perl\",\n \"description\": \"A Perl port of GraphQL reference implementation\",\n \"github\": \"graphql-perl/graphql-perl\"\n};\nfunction useTOC(props) {\n return [];\n}\nfunction _createMdxContent(props) {\n const _components = {\n a: \"a\",\n li: \"li\",\n p: \"p\",\n ul: \"ul\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsxs(_components.ul, {\n children: [\"\\n\", _jsxs(_components.li, {\n children: [\"\\n\", _jsx(_components.p, {\n children: _jsx(_components.a, {\n href: \"https://metacpan.org/pod/GraphQL\",\n children: \"MetaCPAN documentation\"\n })\n }), \"\\n\", _jsxs(_components.ul, {\n children: [\"\\n\", _jsxs(_components.li, {\n children: [\"\\n\", _jsxs(_components.p, {\n children: [_jsx(_components.a, {\n href: \"https://github.com/graphql-perl/Mojolicious-Plugin-GraphQL\",\n children: \"Mojolicious-Plugin-GraphQL\"\n }), \" - connect your GraphQL service to a Mojolicious app\"]\n }), \"\\n\"]\n }), \"\\n\", _jsxs(_components.li, {\n children: [\"\\n\", _jsxs(_components.p, {\n children: [_jsx(_components.a, {\n href: \"https://github.com/graphql-perl/GraphQL-Plugin-Convert-DBIC\",\n children: \"GraphQL-Plugin-Convert-DBIC\"\n }), \" - automatically connect your DBIx::Class schema to GraphQL\"]\n }), \"\\n\"]\n }), \"\\n\", _jsxs(_components.li, {\n children: [\"\\n\", _jsxs(_components.p, {\n children: [_jsx(_components.a, {\n href: \"https://github.com/graphql-perl/GraphQL-Plugin-Convert-OpenAPI\",\n children: \"GraphQL-Plugin-Convert-OpenAPI\"\n }), \" - automatically connect any OpenAPI service (either local Mojolicious one, or remote) to GraphQL\"]\n }), \"\\n\"]\n }), \"\\n\"]\n }), \"\\n\"]\n }), \"\\n\"]\n });\n}\nreturn {\n title,\n frontMatter,\n useTOC,\n default: _createMdxContent\n};\n"},{"filePath":"./src/code/language-support/swift-objective-c-ios/client/graphql-ios.md","tags":["swift-objective-c-ios","client"],"frontMatter":{"name":"GraphQL iOS","description":"An Objective-C GraphQL client for iOS.","github":"funcompany/graphql-ios"},"stars":62,"formattedStars":"62","lastRelease":"","license":"MIT License"},{"filePath":"./src/code/language-support/javascript/client/gq-loader.md","tags":["javascript","client"],"frontMatter":{"name":"gq-loader","description":"A simple JavaScript GraphQL client,Let the *.gql file be used as a module through webpack loader.","github":"Houfeng/gq-loader","npm":"gq-loader"},"stars":59,"formattedStars":"59","lastRelease":"","license":"Unknown"},{"filePath":"./src/code/language-support/python/client/graphql-query.md","tags":["python","client"],"frontMatter":{"name":"graphql-query","description":"Complete GraphQL query string generation for python.","url":"https://denisart.github.io/graphql-query/","github":"denisart/graphql-query"},"stars":59,"formattedStars":"59","lastRelease":"3 months ago","license":"MIT License","compiledSource":"\"use strict\";\nconst {Fragment: _Fragment, jsx: _jsx, jsxs: _jsxs} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nconst title = \"\";\nconst frontMatter = {\n \"name\": \"graphql-query\",\n \"description\": \"Complete GraphQL query string generation for python.\",\n \"url\": \"https://denisart.github.io/graphql-query/\",\n \"github\": \"denisart/graphql-query\"\n};\nfunction useTOC(props) {\n return [];\n}\nfunction _createMdxContent(props) {\n const _components = {\n a: \"a\",\n code: \"code\",\n p: \"p\",\n pre: \"pre\",\n span: \"span\",\n strong: \"strong\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsxs(_Fragment, {\n children: [_jsxs(_components.p, {\n children: [_jsx(_components.strong, {\n children: \"graphql_query\"\n }), \" is complete GraphQL query string builder for python. With \", _jsx(_components.strong, {\n children: \"graphql_query\"\n }), \"\\nyou can The documentation for \", _jsx(_components.strong, {\n children: \"graphql_query\"\n }), \" can be found at \", _jsx(_components.a, {\n href: \"https://denisart.github.io/graphql-query\",\n children: \"https://denisart.github.io/graphql-query\"\n }), \".\"]\n }), \"\\n\", _jsx(_components.pre, {\n tabIndex: \"0\",\n \"data-language\": \"sh\",\n \"data-word-wrap\": \"\",\n children: _jsx(_components.code, {\n children: _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \"$\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \" pip\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \" install\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \" graphql_query\"\n })]\n })\n })\n }), \"\\n\", _jsx(_components.p, {\n children: \"Code for the simple query\"\n }), \"\\n\", _jsx(_components.pre, {\n tabIndex: \"0\",\n \"data-language\": \"graphql\",\n \"data-word-wrap\": \"\",\n children: _jsxs(_components.code, {\n children: [_jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"{\"\n })\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#E36209\",\n \"--shiki-dark\": \"#FFAB70\"\n },\n children: \" hero\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" {\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#E36209\",\n \"--shiki-dark\": \"#FFAB70\"\n },\n children: \" name\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" }\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"}\"\n })\n })]\n })\n }), \"\\n\", _jsx(_components.p, {\n children: \"it is\"\n }), \"\\n\", _jsx(_components.pre, {\n tabIndex: \"0\",\n \"data-language\": \"python\",\n \"data-word-wrap\": \"\",\n children: _jsxs(_components.code, {\n children: [_jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"from\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" graphql_query \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"import\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" Operation, Query\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n children: \" \"\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"hero \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"=\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" Query(\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#E36209\",\n \"--shiki-dark\": \"#FFAB70\"\n },\n children: \"name\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"=\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \"\\\"hero\\\"\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \", \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#E36209\",\n \"--shiki-dark\": \"#FFAB70\"\n },\n children: \"fields\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"=\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"[\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \"\\\"name\\\"\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"])\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"operation \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"=\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" Operation(\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#E36209\",\n \"--shiki-dark\": \"#FFAB70\"\n },\n children: \"type\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"=\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \"\\\"query\\\"\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \", \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#E36209\",\n \"--shiki-dark\": \"#FFAB70\"\n },\n children: \"queries\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"=\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"[hero])\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n children: \" \"\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#005CC5\",\n \"--shiki-dark\": \"#79B8FF\"\n },\n children: \"print\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"(operation.render())\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \"\\\"\\\"\\\"\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \"query {\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \" hero {\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \" name\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \" }\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \"}\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \"\\\"\\\"\\\"\"\n })\n })]\n })\n }), \"\\n\", _jsx(_components.p, {\n children: \"For generation of the following query\"\n }), \"\\n\", _jsx(_components.pre, {\n tabIndex: \"0\",\n \"data-language\": \"graphql\",\n \"data-word-wrap\": \"\",\n children: _jsxs(_components.code, {\n children: [_jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"query\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \" Hero\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"(\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#E36209\",\n \"--shiki-dark\": \"#FFAB70\"\n },\n children: \"$episode\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \": \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#005CC5\",\n \"--shiki-dark\": \"#79B8FF\"\n },\n children: \"Episode\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \", \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#E36209\",\n \"--shiki-dark\": \"#FFAB70\"\n },\n children: \"$withFriends\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \": \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#005CC5\",\n \"--shiki-dark\": \"#79B8FF\"\n },\n children: \"Boolean\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"!\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \") {\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#E36209\",\n \"--shiki-dark\": \"#FFAB70\"\n },\n children: \" hero\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"(\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#E36209\",\n \"--shiki-dark\": \"#FFAB70\"\n },\n children: \"episode\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \": \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#E36209\",\n \"--shiki-dark\": \"#FFAB70\"\n },\n children: \"$episode\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \") {\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#E36209\",\n \"--shiki-dark\": \"#FFAB70\"\n },\n children: \" name\"\n })\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#E36209\",\n \"--shiki-dark\": \"#FFAB70\"\n },\n children: \" friends\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \" @include\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"(\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#E36209\",\n \"--shiki-dark\": \"#FFAB70\"\n },\n children: \"if\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \": \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#E36209\",\n \"--shiki-dark\": \"#FFAB70\"\n },\n children: \"$withFriends\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \") {\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#E36209\",\n \"--shiki-dark\": \"#FFAB70\"\n },\n children: \" name\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" }\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" }\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"}\"\n })\n })]\n })\n }), \"\\n\", _jsx(_components.p, {\n children: \"we have\"\n }), \"\\n\", _jsx(_components.pre, {\n tabIndex: \"0\",\n \"data-language\": \"python\",\n \"data-word-wrap\": \"\",\n children: _jsxs(_components.code, {\n children: [_jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"from\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" graphql_query \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"import\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" Argument, Directive, Field, Operation, Query, Variable\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n children: \" \"\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"episode \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"=\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" Variable(\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#E36209\",\n \"--shiki-dark\": \"#FFAB70\"\n },\n children: \"name\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"=\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \"\\\"episode\\\"\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \", \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#E36209\",\n \"--shiki-dark\": \"#FFAB70\"\n },\n children: \"type\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"=\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \"\\\"Episode\\\"\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \")\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"withFriends \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"=\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" Variable(\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#E36209\",\n \"--shiki-dark\": \"#FFAB70\"\n },\n children: \"name\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"=\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \"\\\"withFriends\\\"\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \", \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#E36209\",\n \"--shiki-dark\": \"#FFAB70\"\n },\n children: \"type\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"=\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \"\\\"Boolean!\\\"\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \")\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n children: \" \"\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"arg_episode \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"=\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" Argument(\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#E36209\",\n \"--shiki-dark\": \"#FFAB70\"\n },\n children: \"name\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"=\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \"\\\"episode\\\"\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \", \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#E36209\",\n \"--shiki-dark\": \"#FFAB70\"\n },\n children: \"value\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"=\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"episode)\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"arg_if \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"=\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" Argument(\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#E36209\",\n \"--shiki-dark\": \"#FFAB70\"\n },\n children: \"name\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"=\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \"\\\"if\\\"\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \", \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#E36209\",\n \"--shiki-dark\": \"#FFAB70\"\n },\n children: \"value\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"=\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"withFriends)\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n children: \" \"\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"hero \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"=\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" Query(\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#E36209\",\n \"--shiki-dark\": \"#FFAB70\"\n },\n children: \" name\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"=\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \"\\\"hero\\\"\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \",\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#E36209\",\n \"--shiki-dark\": \"#FFAB70\"\n },\n children: \" arguments\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"=\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"[arg_episode],\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#E36209\",\n \"--shiki-dark\": \"#FFAB70\"\n },\n children: \" fields\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"=\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"[\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \" \\\"name\\\"\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \",\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" Field(\"\n })\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#E36209\",\n \"--shiki-dark\": \"#FFAB70\"\n },\n children: \" name\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"=\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \"\\\"friends\\\"\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \",\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#E36209\",\n \"--shiki-dark\": \"#FFAB70\"\n },\n children: \" fields\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"=\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"[\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \"\\\"name\\\"\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"],\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#E36209\",\n \"--shiki-dark\": \"#FFAB70\"\n },\n children: \" directives\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"=\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"[Directive(\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#E36209\",\n \"--shiki-dark\": \"#FFAB70\"\n },\n children: \"name\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"=\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \"\\\"include\\\"\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \", \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#E36209\",\n \"--shiki-dark\": \"#FFAB70\"\n },\n children: \"arguments\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"=\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"[arg_if])]\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" )\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" ]\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \")\"\n })\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"operation \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"=\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" Operation(\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#E36209\",\n \"--shiki-dark\": \"#FFAB70\"\n },\n children: \" type\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"=\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \"\\\"query\\\"\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \",\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#E36209\",\n \"--shiki-dark\": \"#FFAB70\"\n },\n children: \" name\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"=\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \"\\\"Hero\\\"\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \",\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#E36209\",\n \"--shiki-dark\": \"#FFAB70\"\n },\n children: \" variables\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"=\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"[episode, withFriends],\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#E36209\",\n \"--shiki-dark\": \"#FFAB70\"\n },\n children: \" queries\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"=\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"[hero]\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \")\"\n })\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#005CC5\",\n \"--shiki-dark\": \"#79B8FF\"\n },\n children: \"print\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"(operation.render())\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \"\\\"\\\"\\\"\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \"query Hero(\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \" $episode: Episode\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \" $withFriends: Boolean!\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \") {\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \" hero(\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \" episode: $episode\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \" ) {\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \" name\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \" friends @include(\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \" if: $withFriends\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \" ) {\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \" name\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \" }\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \" }\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \"}\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \"\\\"\\\"\\\"\"\n })\n })]\n })\n })]\n });\n}\nreturn {\n title,\n frontMatter,\n useTOC,\n default: _createMdxContent\n};\n"},{"filePath":"./src/code/language-support/java-kotlin-android/tools/graphql-java-generator.md","tags":["java-kotlin-android","tools"],"frontMatter":{"name":"GraphQL Java Generator","description":"GraphQL Java Generator is a tool that generates Java code to speed up development for Client and Server of GraphQL APIs","url":"https://github.com/graphql-java-generator","github":"graphql-java-generator/graphql-gradle-plugin-project"},"stars":54,"formattedStars":"54","lastRelease":"","license":"MIT License","compiledSource":"\"use strict\";\nconst {jsx: _jsx, jsxs: _jsxs} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nconst title = \"\";\nconst frontMatter = {\n \"name\": \"GraphQL Java Generator\",\n \"description\": \"GraphQL Java Generator is a tool that generates Java code to speed up development for Client and Server of GraphQL APIs\",\n \"url\": \"https://github.com/graphql-java-generator\",\n \"github\": \"graphql-java-generator/graphql-gradle-plugin-project\"\n};\nfunction useTOC(props) {\n return [];\n}\nfunction _createMdxContent(props) {\n const _components = {\n a: \"a\",\n li: \"li\",\n ul: \"ul\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsxs(_components.ul, {\n children: [\"\\n\", _jsx(_components.li, {\n children: \"GraphQL Java client: it generates the Java classes that call the GraphQL endpoint, and the POJO that will contain the data returned by the server.\\nThe GraphQL endpoint can then be queried by using a simple call to a Java method (see sample below)\"\n }), \"\\n\", _jsxs(_components.li, {\n children: [\"GraphQL Java server: it is based on \", _jsx(_components.a, {\n href: \"https://github.com/graphql-java/graphql-java\",\n children: \"graphql-java\"\n }), \" (listed here above). It generates all the boilerplate code.\\nYou’ll only have to implement what’s specific to your server, which are the joins between the GraphQL types.\\nGraphQL Java Generator is available as a \", _jsx(_components.a, {\n href: \"https://graphql-maven-plugin-project.graphql-java-generator.com/index.html\",\n children: \"Maven Plugin\"\n }), \".\\nA Gradle plugin is coming soon.\\nPlease note that GraphQL Java Generator is an accelerator: the generated code doesn’t depend on any library specific to GraphQL Java Generator.\\nSo, it helps you to start building application based on graphql-java. Once the code is generated, you can decide to manually edit it as any standard java application, and get rid of GraphQL Java Generator.\\nOf course you can, and should, according to us :), continue using GraphQL Java Generator when your project evolves.\"]\n }), \"\\n\"]\n });\n}\nreturn {\n title,\n frontMatter,\n useTOC,\n default: _createMdxContent\n};\n"},{"filePath":"./src/code/language-support/groovy/server/gql.md","tags":["groovy","server"],"frontMatter":{"name":"GQL","description":"GQL is a Groove library for GraphQL","url":"https://grooviter.github.io/gql/","github":"grooviter/gql"},"stars":49,"formattedStars":"49","lastRelease":"3 weeks ago","license":"Apache License 2.0"},{"filePath":"./src/code/language-support/rust/client/gql_client.md","tags":["rust","client"],"frontMatter":{"name":"gql_client","description":"Minimal GraphQL client for Rust","github":"arthurkhlghatyan/gql-client-rs"},"stars":48,"formattedStars":"48","lastRelease":"","license":"MIT License","compiledSource":"\"use strict\";\nconst {Fragment: _Fragment, jsx: _jsx, jsxs: _jsxs} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nconst title = \"\";\nconst frontMatter = {\n \"name\": \"gql_client\",\n \"description\": \"Minimal GraphQL client for Rust\",\n \"github\": \"arthurkhlghatyan/gql-client-rs\"\n};\nfunction useTOC(props) {\n return [];\n}\nfunction _createMdxContent(props) {\n const _components = {\n code: \"code\",\n p: \"p\",\n pre: \"pre\",\n span: \"span\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsxs(_Fragment, {\n children: [_jsx(_components.p, {\n children: \"Usage example\"\n }), \"\\n\", _jsx(_components.pre, {\n tabIndex: \"0\",\n \"data-language\": \"rust\",\n \"data-word-wrap\": \"\",\n children: _jsxs(_components.code, {\n children: [_jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"use\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \" gql_client\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"::\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \"Client\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \";\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n children: \" \"\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"#[tokio\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"::\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"main]\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"async\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \" fn\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \" main\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"() \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"-\u003e\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \" Result\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"\u003c(), \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \"Box\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"\u003c\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"dyn\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" std\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"::\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"error\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"::\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \"Error\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"\u003e\u003e {\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \" let\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" endpoint \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"=\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \" \\\"https://graphqlzero.almansi.me/api\\\"\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \";\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \" let\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" query \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"=\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \" r#\\\"\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \" query AllPostsQuery {\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \" posts {\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \" data {\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \" id\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \" }\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \" }\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \" }\"\n })\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \" \\\"#\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \";\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n children: \" \"\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \" let\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" client \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"=\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \" Client\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"::\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \"new\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"(endpoint);\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \" let\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" data\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \":\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \" AllPosts\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \" =\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" client\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \".\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \"query\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"::\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"\u003c\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \"AllPosts\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"\u003e(query)\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \".await.\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \"unwrap\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"();\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n children: \" \"\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \" println!\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"(\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \"\\\"{:?}\\\"\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" data);\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n children: \" \"\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \" Ok\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"(())\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"}\"\n })\n })]\n })\n })]\n });\n}\nreturn {\n title,\n frontMatter,\n useTOC,\n default: _createMdxContent\n};\n"},{"filePath":"./src/code/language-support/julia/client/graphqlclient-jl.md","tags":["julia","client"],"frontMatter":{"name":"GraphQLClient.jl","description":"A Julia GraphQL client for seamless integration with a GraphQL server","github":"DeloitteDigitalAPAC/GraphQLClient.jl"},"stars":47,"formattedStars":"47","lastRelease":"2 years ago","license":"Other","compiledSource":"\"use strict\";\nconst {Fragment: _Fragment, jsx: _jsx, jsxs: _jsxs} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nconst title = \"\";\nconst frontMatter = {\n \"name\": \"GraphQLClient.jl\",\n \"description\": \"A Julia GraphQL client for seamless integration with a GraphQL server\",\n \"github\": \"DeloitteDigitalAPAC/GraphQLClient.jl\"\n};\nfunction useTOC(props) {\n return [{\n value: \"Quickstart\",\n id: \"quickstart\",\n depth: 3\n }];\n}\nfunction _createMdxContent(props) {\n const _components = {\n code: \"code\",\n h3: \"h3\",\n li: \"li\",\n p: \"p\",\n pre: \"pre\",\n span: \"span\",\n strong: \"strong\",\n ul: \"ul\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsxs(_Fragment, {\n children: [_jsxs(_components.ul, {\n children: [\"\\n\", _jsxs(_components.li, {\n children: [_jsx(_components.strong, {\n children: \"Querying\"\n }), \", \", _jsx(_components.strong, {\n children: \"mutating\"\n }), \" and \", _jsx(_components.strong, {\n children: \"subscribing\"\n }), \" without manual writing of query strings (unless you want to!)\"]\n }), \"\\n\", _jsx(_components.li, {\n children: \"Deserializing responses directly into Julia types\"\n }), \"\\n\", _jsxs(_components.li, {\n children: [_jsx(_components.strong, {\n children: \"Construction of Julia types\"\n }), \" from GraphQL objects\"]\n }), \"\\n\", _jsxs(_components.li, {\n children: [\"Using \", _jsx(_components.strong, {\n children: \"introspection\"\n }), \" to help with querying\"]\n }), \"\\n\"]\n }), \"\\n\", _jsx(_components.h3, {\n id: \"quickstart\",\n children: \"Quickstart\"\n }), \"\\n\", _jsx(_components.p, {\n children: \"Install with Julia’s package manager\"\n }), \"\\n\", _jsx(_components.pre, {\n \"data-word-wrap\": \"\",\n children: _jsx(_components.code, {\n children: \"using Pkg; Pkg.add(\\\"GraphQLClient\\\")\\nusing GraphQLClient\\n\"\n })\n }), \"\\n\", _jsx(_components.p, {\n children: \"Connect to a server\"\n }), \"\\n\", _jsx(_components.pre, {\n tabIndex: \"0\",\n \"data-language\": \"julia\",\n \"data-word-wrap\": \"\",\n children: _jsx(_components.code, {\n children: _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"client \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"=\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#005CC5\",\n \"--shiki-dark\": \"#79B8FF\"\n },\n children: \" Client\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"(\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \"\\\"https://countries.trevorblades.com\\\"\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \")\"\n })]\n })\n })\n }), \"\\n\", _jsx(_components.p, {\n children: \"Build a Julia type from a GraphQL object\"\n }), \"\\n\", _jsx(_components.pre, {\n tabIndex: \"0\",\n \"data-language\": \"julia\",\n \"data-word-wrap\": \"\",\n children: _jsx(_components.code, {\n children: _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"Country \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"=\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" GraphQLClient\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \".\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#005CC5\",\n \"--shiki-dark\": \"#79B8FF\"\n },\n children: \"introspect_object\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"(client, \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \"\\\"Country\\\"\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \")\"\n })]\n })\n })\n }), \"\\n\", _jsx(_components.p, {\n children: \"And query the server, deserializing the response into this new type\"\n }), \"\\n\", _jsx(_components.pre, {\n tabIndex: \"0\",\n \"data-language\": \"julia\",\n \"data-word-wrap\": \"\",\n children: _jsx(_components.code, {\n children: _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"response \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"=\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#005CC5\",\n \"--shiki-dark\": \"#79B8FF\"\n },\n children: \" query\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"(client, \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \"\\\"countries\\\"\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \", Vector{Country}, output_fields\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"=\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \"\\\"name\\\"\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \")\"\n })]\n })\n })\n }), \"\\n\", _jsx(_components.p, {\n children: \"Alternatively write the query string manually\"\n }), \"\\n\", _jsx(_components.pre, {\n tabIndex: \"0\",\n \"data-language\": \"julia\",\n \"data-word-wrap\": \"\",\n children: _jsxs(_components.code, {\n children: [_jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"query_string \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"=\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \" \\\"\\\"\\\"\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \" {\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \" countries{\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \" name\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \" }\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \"}\\\"\\\"\\\"\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: \" \"\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"response \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"=\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" GraphQLClient\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \".\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#005CC5\",\n \"--shiki-dark\": \"#79B8FF\"\n },\n children: \"execute\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"(client, query_string)\"\n })]\n })]\n })\n })]\n });\n}\nreturn {\n title,\n frontMatter,\n useTOC,\n default: _createMdxContent\n};\n"},{"filePath":"./src/code/language-support/python/client/qlient.md","tags":["python","client"],"frontMatter":{"name":"Qlient","description":"A fast and modern graphql client designed with simplicity in mind.","github":"qlient-org/python-qlient"},"stars":45,"formattedStars":"45","lastRelease":"2 years ago","license":"MIT License","compiledSource":"\"use strict\";\nconst {Fragment: _Fragment, jsx: _jsx, jsxs: _jsxs} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nconst title = \"\";\nconst frontMatter = {\n \"name\": \"Qlient\",\n \"description\": \"A fast and modern graphql client designed with simplicity in mind.\",\n \"github\": \"qlient-org/python-qlient\"\n};\nfunction useTOC(props) {\n return [];\n}\nfunction _createMdxContent(props) {\n const _components = {\n code: \"code\",\n p: \"p\",\n pre: \"pre\",\n span: \"span\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsxs(_Fragment, {\n children: [_jsx(_components.p, {\n children: \"Here’s an example of a qlient hello world.\"\n }), \"\\n\", _jsx(_components.p, {\n children: \"first install the library:\"\n }), \"\\n\", _jsx(_components.pre, {\n tabIndex: \"0\",\n \"data-language\": \"bash\",\n \"data-word-wrap\": \"\",\n children: _jsx(_components.code, {\n children: _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \"pip\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \" install\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \" qlient\"\n })]\n })\n })\n }), \"\\n\", _jsxs(_components.p, {\n children: [\"Create a \", _jsx(_components.code, {\n children: \"swapi_client_example.py\"\n }), \" file with this content:\"]\n }), \"\\n\", _jsx(_components.pre, {\n tabIndex: \"0\",\n \"data-language\": \"python\",\n \"data-word-wrap\": \"\",\n children: _jsxs(_components.code, {\n children: [_jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"from\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" qlient.http \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"import\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" HTTPClient, GraphQLResponse\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n children: \" \"\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"client \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"=\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" HTTPClient(\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \"\\\"https://swapi-graphql.netlify.app/.netlify/functions/index\\\"\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \")\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n children: \" \"\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"res: GraphQLResponse \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"=\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" client.query.film(\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6A737D\",\n \"--shiki-dark\": \"#6A737D\"\n },\n children: \" # swapi graphql input fields\"\n })\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#E36209\",\n \"--shiki-dark\": \"#FFAB70\"\n },\n children: \" id\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"=\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \"\\\"ZmlsbXM6MQ==\\\"\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \",\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n children: \" \"\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6A737D\",\n \"--shiki-dark\": \"#6A737D\"\n },\n children: \" # qlient specific\"\n })\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#E36209\",\n \"--shiki-dark\": \"#FFAB70\"\n },\n children: \" _fields\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"=\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"[\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \"\\\"id\\\"\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \", \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \"\\\"title\\\"\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \", \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \"\\\"episodeID\\\"\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"]\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \")\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: \" \"\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#005CC5\",\n \"--shiki-dark\": \"#79B8FF\"\n },\n children: \"print\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"(res.request.query) \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6A737D\",\n \"--shiki-dark\": \"#6A737D\"\n },\n children: \"# query film($id: ID) { film(id: $id) { id title episodeID } }\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#005CC5\",\n \"--shiki-dark\": \"#79B8FF\"\n },\n children: \"print\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"(res.request.variables) \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6A737D\",\n \"--shiki-dark\": \"#6A737D\"\n },\n children: \"# {'id': 'ZmlsbXM6MQ=='}\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#005CC5\",\n \"--shiki-dark\": \"#79B8FF\"\n },\n children: \"print\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"(res.data) \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6A737D\",\n \"--shiki-dark\": \"#6A737D\"\n },\n children: \"# {'film': {'id': 'ZmlsbXM6MQ==', 'title': 'A New Hope', 'episodeID': 4}}\"\n })]\n })]\n })\n }), \"\\n\", _jsx(_components.p, {\n children: \"Close the file and run it using python:\"\n }), \"\\n\", _jsx(_components.pre, {\n tabIndex: \"0\",\n \"data-language\": \"bash\",\n \"data-word-wrap\": \"\",\n children: _jsx(_components.code, {\n children: _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \"python\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \" swapi_client_example.py\"\n })]\n })\n })\n })]\n });\n}\nreturn {\n title,\n frontMatter,\n useTOC,\n default: _createMdxContent\n};\n"},{"filePath":"./src/code/language-support/c-net/client/sahb-graphqlclient.md","tags":["c-net","client"],"frontMatter":{"name":"SAHB.GraphQLClient","description":"GraphQL client which supports generating queries from C# classes","github":"sahb1239/SAHB.GraphQLClient"},"stars":44,"formattedStars":"44","lastRelease":"4 years ago","license":"MIT License"},{"filePath":"./src/code/services/stepzen.md","tags":["services"],"frontMatter":{"name":"StepZen","description":"Create a serverless GraphQL API based on your data sources (REST \u0026 Databases), Third-Party APIs, or any combination. Instead of writing a GraphQL server yourself, you can define everything declaratively by writing GraphQL schemas. For more information, go to https://www.stepzen.com/.","url":"https://stepzen.com/docs/","github":"stepzen-dev/examples"},"stars":43,"formattedStars":"43","lastRelease":"","license":"MIT License"},{"filePath":"./src/code/language-support/c-net/server/ngraphql.md","tags":["c-net","server"],"frontMatter":{"name":"NGraphQL","description":"A set of packages for implementing high-performant GraphQL servers in .NET. Faithful implementation of official 2018 Specification. Features batched execution support (aka Data Loader); support for custom scalars; HTTP server based on ASP.NET Core; parsed query cache; modular API construction (equivalent of schema stiching); full introspection support; runtime metrics and quotas.","github":"rivantsov/ngraphql"},"stars":43,"formattedStars":"43","lastRelease":"","license":"MIT License"},{"filePath":"./src/code/language-support/elixir/client/common-graphql-client.md","tags":["elixir","client"],"frontMatter":{"name":"common_graphql_client","description":"Elixir GraphQL Client with HTTP and WebSocket support","github":"annkissam/common_graphql_client"},"stars":43,"formattedStars":"43","lastRelease":"4 years ago","license":"MIT License"},{"filePath":"./src/code/language-support/php/server/graphpinator.md","tags":["php","server"],"frontMatter":{"name":"GraPHPinator","description":"A GraphQL implementation for modern PHP. Includes features from latest draft, middleware directives and modules with extra functionality.","github":"infinityloop-dev/graphpinator"},"stars":40,"formattedStars":"40","lastRelease":"1 month ago","license":"MIT License","compiledSource":"\"use strict\";\nconst {Fragment: _Fragment, jsx: _jsx, jsxs: _jsxs} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nconst title = \"\";\nconst frontMatter = {\n \"name\": \"GraPHPinator\",\n \"description\": \"A GraphQL implementation for modern PHP. Includes features from latest draft, middleware directives and modules with extra functionality.\",\n \"github\": \"infinityloop-dev/graphpinator\"\n};\nfunction useTOC(props) {\n return [];\n}\nfunction _createMdxContent(props) {\n const _components = {\n a: \"a\",\n code: \"code\",\n li: \"li\",\n p: \"p\",\n ul: \"ul\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsxs(_Fragment, {\n children: [_jsx(_components.p, {\n children: \"GraPHPinator is feature complete PHP implementation of GraphQL server. Its job is transformation of query string into resolved Json result for a given Schema.\"\n }), \"\\n\", _jsxs(_components.ul, {\n children: [\"\\n\", _jsx(_components.li, {\n children: \"Aims to be compliant with the latest draft of GraphQL specification.\"\n }), \"\\n\", _jsxs(_components.li, {\n children: [\"Fully typesafe, and therefore minimum required PHP version is 8.0. Sacrafices a tiny bit of convenience for huge amount of clarity and safety - no random configuration \", _jsx(_components.code, {\n children: \"array\"\n }), \"s, no mixed types, no variable function arguments - this library doesnt try to save you from verbosity, but makes sure you always know what you’ve got.\"]\n }), \"\\n\", _jsx(_components.li, {\n children: \"Code first.\"\n }), \"\\n\", _jsx(_components.li, {\n children: \"Flexible. Easy to extend with extra functionality using Modules or middleware Directives.\"\n }), \"\\n\", _jsxs(_components.li, {\n children: [\"Includes some opt-in extensions which are out of scope of official specs:\\n\", _jsxs(_components.ul, {\n children: [\"\\n\", _jsxs(_components.li, {\n children: [_jsx(_components.a, {\n href: \"https://github.com/infinityloop-dev/graphpinator-printer\",\n children: \"Printer\"\n }), \" - Schema printing for GraPHPinator typesystem.\"]\n }), \"\\n\", _jsxs(_components.li, {\n children: [_jsx(_components.a, {\n href: \"https://github.com/infinityloop-dev/graphpinator-extra-types\",\n children: \"Extra types\"\n }), \" - Some useful and commonly used types, both scalar or composite.\"]\n }), \"\\n\", _jsxs(_components.li, {\n children: [_jsx(_components.a, {\n href: \"https://github.com/infinityloop-dev/graphpinator-constraint-directives\",\n children: \"Constraint directives\"\n }), \" - Typesystem directives to declare additional validation on top of GraphQL typesystem.\"]\n }), \"\\n\", _jsxs(_components.li, {\n children: [_jsx(_components.a, {\n href: \"https://github.com/infinityloop-dev/graphpinator-where-directives\",\n children: \"Where directives\"\n }), \" - Executable directives to filter values in lists.\"]\n }), \"\\n\", _jsxs(_components.li, {\n children: [\"File upload using \", _jsx(_components.a, {\n href: \"https://github.com/jaydenseric/graphql-multipart-request-spec\",\n children: \"multipart-formdata\"\n }), \" specs (currently bundled).\"]\n }), \"\\n\", _jsxs(_components.li, {\n children: [_jsx(_components.a, {\n href: \"https://github.com/infinityloop-dev/graphpinator-query-cost\",\n children: \"Query cost limit module\"\n }), \" - Modules to limit query cost by restricting maximum depth or number of nodes.\"]\n }), \"\\n\"]\n }), \"\\n\"]\n }), \"\\n\", _jsxs(_components.li, {\n children: [\"Project is composed from multiple smaller packages, which may be used standalone:\\n\", _jsxs(_components.ul, {\n children: [\"\\n\", _jsxs(_components.li, {\n children: [_jsx(_components.a, {\n href: \"https://github.com/infinityloop-dev/graphpinator-tokenizer\",\n children: \"Tokenizer\"\n }), \" - Lexical analyzer of GraphQL document.\"]\n }), \"\\n\", _jsxs(_components.li, {\n children: [_jsx(_components.a, {\n href: \"https://github.com/infinityloop-dev/graphpinator-parser\",\n children: \"Parser\"\n }), \" - Syntactic analyzer of GraphQL document.\"]\n }), \"\\n\"]\n }), \"\\n\"]\n }), \"\\n\"]\n })]\n });\n}\nreturn {\n title,\n frontMatter,\n useTOC,\n default: _createMdxContent\n};\n"},{"filePath":"./src/code/language-support/go/server/andrewwphillips-eggql.md","tags":["go","server"],"frontMatter":{"name":"EGGQL","description":"Easy to use, complete Go implementation of GraphQL. Simple and schema-less.","github":"andrewwphillips/eggql"},"stars":37,"formattedStars":"37","lastRelease":"","license":"MIT License","compiledSource":"\"use strict\";\nconst {Fragment: _Fragment, jsx: _jsx, jsxs: _jsxs} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nconst title = \"\";\nconst frontMatter = {\n \"name\": \"EGGQL\",\n \"description\": \"Easy to use, complete Go implementation of GraphQL. Simple and schema-less.\",\n \"github\": \"andrewwphillips/eggql\"\n};\nfunction useTOC(props) {\n return [];\n}\nfunction _createMdxContent(props) {\n const _components = {\n code: \"code\",\n p: \"p\",\n pre: \"pre\",\n span: \"span\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsxs(_Fragment, {\n children: [_jsx(_components.p, {\n children: \"The purpose of Eggql is to make it as simple as possible to create a GraphQL server. You don’t need to create GraphQL schema (though you can view the schema that is created if interested). It is currently in beta release but is a complete implementation of a GraphQL server apart from subscriptions.\"\n }), \"\\n\", _jsx(_components.p, {\n children: \"Just to be clear it supports all of these GraphQL features: arguments (including defaults), objects/lists/enums/input/interface/union types, aliases, fragments, variables, directives, mutations, inline fragments, descriptions, introspection and custom scalars.\"\n }), \"\\n\", _jsx(_components.p, {\n children: \"Tests (jMeter) show that it is as fast or faster than other Go implementations for simple queries. We’re working on enhancements for performance including caching, data-loader, complexity-limits, etc.\"\n }), \"\\n\", _jsxs(_components.p, {\n children: [\"To run an \", _jsx(_components.code, {\n children: \"eggql\"\n }), \" hello world server just build and run this Go program:\"]\n }), \"\\n\", _jsx(_components.pre, {\n tabIndex: \"0\",\n \"data-language\": \"Go\",\n \"data-word-wrap\": \"\",\n children: _jsxs(_components.code, {\n children: [_jsx(_components.span, {\n children: _jsx(_components.span, {\n children: \"package main\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {})\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n children: \"import \\\"github.com/andrewwphillips/eggql\\\"\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {})\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n children: \"func main() {\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n children: \"\\thttp.Handle(\\\"/graphql\\\", eggql.New(struct{ Message string }{Message: \\\"hello, world\\\"}))\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n children: \"\\thttp.ListenAndServe(\\\":80\\\", nil)\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n children: \"}\"\n })\n })]\n })\n }), \"\\n\", _jsxs(_components.p, {\n children: [\"This creates a root Query object with a single \", _jsx(_components.code, {\n children: \"message\"\n }), \" field. To test it send a query with curl:\"]\n }), \"\\n\", _jsx(_components.pre, {\n tabIndex: \"0\",\n \"data-language\": \"sh\",\n \"data-word-wrap\": \"\",\n children: _jsx(_components.code, {\n children: _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \"$\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \" curl\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#005CC5\",\n \"--shiki-dark\": \"#79B8FF\"\n },\n children: \" -XPOST\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#005CC5\",\n \"--shiki-dark\": \"#79B8FF\"\n },\n children: \" -d\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \" '{\\\"query\\\": \\\"{ message }\\\"}'\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \" localhost:80/graphql\"\n })]\n })\n })\n }), \"\\n\", _jsx(_components.p, {\n children: \"and you will get this response:\"\n }), \"\\n\", _jsx(_components.pre, {\n tabIndex: \"0\",\n \"data-language\": \"JSON\",\n \"data-word-wrap\": \"\",\n children: _jsxs(_components.code, {\n children: [_jsx(_components.span, {\n children: _jsx(_components.span, {\n children: \"{\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n children: \" \\\"data\\\": {\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n children: \" \\\"message\\\": \\\"hello, world\\\"\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n children: \" }\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n children: \"}\"\n })\n })]\n })\n })]\n });\n}\nreturn {\n title,\n frontMatter,\n useTOC,\n default: _createMdxContent\n};\n"},{"filePath":"./src/code/language-support/d/server/graphqld.md","tags":["d","server"],"frontMatter":{"name":"graphqld","description":"A GraphQL implementation for the D Programming Language.","github":"burner/graphqld"},"stars":35,"formattedStars":"35","lastRelease":"6 months ago","license":"GNU Lesser General Public License v3.0"},{"filePath":"./src/code/language-support/javascript/tools/microfiber.md","tags":["javascript","tools"],"frontMatter":{"name":"Microfiber","description":"A library to query and manipulate GraphQL Introspection Query results.","github":"anvilco/graphql-introspection-tools","npm":"microfiber"},"stars":32,"formattedStars":"32","lastRelease":"","license":"MIT License","compiledSource":"\"use strict\";\nconst {Fragment: _Fragment, jsx: _jsx, jsxs: _jsxs} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nconst title = \"\";\nconst frontMatter = {\n \"name\": \"Microfiber\",\n \"description\": \"A library to query and manipulate GraphQL Introspection Query results.\",\n \"github\": \"anvilco/graphql-introspection-tools\",\n \"npm\": \"microfiber\"\n};\nfunction useTOC(props) {\n return [];\n}\nfunction _createMdxContent(props) {\n const _components = {\n code: \"code\",\n li: \"li\",\n p: \"p\",\n pre: \"pre\",\n span: \"span\",\n ul: \"ul\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsxs(_Fragment, {\n children: [_jsx(_components.p, {\n children: \"Microfiber is a JavaScript library that allows:\"\n }), \"\\n\", _jsxs(_components.ul, {\n children: [\"\\n\", _jsx(_components.li, {\n children: \"Digging through your Introspection Query Results for a specific Query, Mutation, Type, Field, Argument or Subscription.\"\n }), \"\\n\", _jsx(_components.li, {\n children: \"Removing a specific Query, Mutation, Type, Field/InputField, Argument or Subscription from your Introspection Query Results.\"\n }), \"\\n\", _jsx(_components.li, {\n children: \"Removing Queries, Mutations, Fields/InputFields or Arguments that refer to Type that does not exist in - or has been removed from - your Introspection Query Results.\"\n }), \"\\n\"]\n }), \"\\n\", _jsx(_components.pre, {\n tabIndex: \"0\",\n \"data-language\": \"sh\",\n \"data-word-wrap\": \"\",\n children: _jsxs(_components.code, {\n children: [_jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \"npm\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \" install\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \" microfiber\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6A737D\",\n \"--shiki-dark\": \"#6A737D\"\n },\n children: \"# OR\"\n })\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \"yarn\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \" add\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \" microfiber\"\n })]\n })]\n })\n }), \"\\n\", _jsx(_components.p, {\n children: \"Then in JS:\"\n }), \"\\n\", _jsx(_components.pre, {\n tabIndex: \"0\",\n \"data-language\": \"js\",\n \"data-word-wrap\": \"\",\n children: _jsxs(_components.code, {\n children: [_jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"import\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" { Microfiber } \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"from\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \" \\\"microfiber\\\"\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n children: \" \"\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"const\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#005CC5\",\n \"--shiki-dark\": \"#79B8FF\"\n },\n children: \" introspectionQueryResults\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \" =\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" {\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6A737D\",\n \"--shiki-dark\": \"#6A737D\"\n },\n children: \" // ...\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"}\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: \" \"\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"const\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#005CC5\",\n \"--shiki-dark\": \"#79B8FF\"\n },\n children: \" microfiber\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \" =\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \" new\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \" Microfiber\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"(introspectionQueryResults)\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n children: \" \"\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6A737D\",\n \"--shiki-dark\": \"#6A737D\"\n },\n children: \"// ...do some things to your schema with `microfiber`\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: \" \"\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"const\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#005CC5\",\n \"--shiki-dark\": \"#79B8FF\"\n },\n children: \" cleanedIntrospectonQueryResults\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \" =\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" microfiber.\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \"getResponse\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"()\"\n })]\n })]\n })\n })]\n });\n}\nreturn {\n title,\n frontMatter,\n useTOC,\n default: _createMdxContent\n};\n"},{"filePath":"./src/code/language-support/javascript/client/graphql-box.md","tags":["javascript","client"],"frontMatter":{"name":"GraphQLBox client","description":"An extensible GraphQL client with modules for react, caching, request parsing, web workers, websockets and more...","github":"badbatch/graphql-box","npm":"@graphql-box/client"},"stars":25,"formattedStars":"25","lastRelease":"","license":"MIT License","compiledSource":"\"use strict\";\nconst {Fragment: _Fragment, jsx: _jsx, jsxs: _jsxs} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nconst title = \"\";\nconst frontMatter = {\n \"name\": \"GraphQLBox client\",\n \"description\": \"An extensible GraphQL client with modules for react, caching, request parsing, web workers, websockets and more...\",\n \"github\": \"badbatch/graphql-box\",\n \"npm\": \"@graphql-box/client\"\n};\nfunction useTOC(props) {\n return [];\n}\nfunction _createMdxContent(props) {\n const _components = {\n code: \"code\",\n p: \"p\",\n pre: \"pre\",\n span: \"span\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsxs(_Fragment, {\n children: [_jsx(_components.p, {\n children: \"The example below installs and initializes the GraphQLBox client with a persisted cache and debugging enabled.\"\n }), \"\\n\", _jsx(_components.pre, {\n tabIndex: \"0\",\n \"data-language\": \"bash\",\n \"data-word-wrap\": \"\",\n children: _jsx(_components.code, {\n children: _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \"npm\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \" install\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \" @graphql-box/core\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \" @graphql-box/client\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \" @graphql-box/request-parser\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \" @graphql-box/cache-manager\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \" @graphql-box/debug-manager\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \" @graphql-box/fetch-manager\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \" @graphql-box/helpers\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \" @cachemap/core\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \" @cachemap/reaper\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \" @cachemap/indexed-db\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \" @cachemap/constants\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \" @cachemap/types\"\n })]\n })\n })\n }), \"\\n\", _jsx(_components.pre, {\n tabIndex: \"0\",\n \"data-language\": \"javascript\",\n \"data-word-wrap\": \"\",\n children: _jsxs(_components.code, {\n children: [_jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"import\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" Cachemap \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"from\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \" \\\"@cachemap/core\\\"\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"import\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" indexedDB \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"from\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \" \\\"@cachemap/indexed-db\\\"\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"import\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" reaper \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"from\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \" \\\"@cachemap/reaper\\\"\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"import\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" CacheManager \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"from\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \" \\\"@graphql-box/cache-manager\\\"\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"import\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" Client \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"from\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \" \\\"@graphql-box/client\\\"\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"import\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" DebugManager \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"from\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \" \\\"@graphql-box/debug-manager\\\"\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"import\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" FetchManager \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"from\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \" \\\"@graphql-box/fetch-manager\\\"\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"import\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" RequestParser \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"from\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \" \\\"@graphql-box/request-parser\\\"\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"import\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" introspection \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"from\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \" \\\"./introspection-query\\\"\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n children: \" \"\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"const\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#005CC5\",\n \"--shiki-dark\": \"#79B8FF\"\n },\n children: \" requestManager\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \" =\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \" new\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \" FetchManager\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"({\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" apiUrl: \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \"\\\"/api/graphql\\\"\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \",\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" batchRequests: \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#005CC5\",\n \"--shiki-dark\": \"#79B8FF\"\n },\n children: \"true\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \",\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" logUrl: \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \"\\\"/log/graphql\\\"\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \",\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"})\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: \" \"\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"const\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#005CC5\",\n \"--shiki-dark\": \"#79B8FF\"\n },\n children: \" client\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \" =\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \" new\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \" Client\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"({\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" cacheManager: \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"new\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \" CacheManager\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"({\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" cache: \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"new\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \" Cachemap\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"({\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" name: \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \"\\\"client-cache\\\"\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \",\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" reaper: \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \"reaper\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"({ interval: \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#005CC5\",\n \"--shiki-dark\": \"#79B8FF\"\n },\n children: \"300000\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" }),\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" store: \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \"indexedDB\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"(\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6A737D\",\n \"--shiki-dark\": \"#6A737D\"\n },\n children: \"/* configure */\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"),\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" }),\"\n })\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" cascadeCacheControl: \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#005CC5\",\n \"--shiki-dark\": \"#79B8FF\"\n },\n children: \"true\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \",\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" typeCacheDirectives: {\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6A737D\",\n \"--shiki-dark\": \"#6A737D\"\n },\n children: \" // Add any type specific cache control directives in the format:\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6A737D\",\n \"--shiki-dark\": \"#6A737D\"\n },\n children: \" // TypeName: \\\"public, max-age=3\\\",\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" },\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" }),\"\n })\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" debugManager: \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"new\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \" DebugManager\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"({\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" environment: \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \"\\\"client\\\"\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \",\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \" log\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \": (\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#E36209\",\n \"--shiki-dark\": \"#FFAB70\"\n },\n children: \"message\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \", \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#E36209\",\n \"--shiki-dark\": \"#FFAB70\"\n },\n children: \"data\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \", \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#E36209\",\n \"--shiki-dark\": \"#FFAB70\"\n },\n children: \"logLevel\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \") \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"=\u003e\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" {\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" requestManager.\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \"log\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"(message, data, logLevel)\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" },\"\n })\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" name: \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \"\\\"CLIENT\\\"\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \",\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" performance: self.performance,\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" }),\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" requestManager,\"\n })\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" requestParser: \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"new\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \" RequestParser\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"({ introspection }),\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"})\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: \" \"\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6A737D\",\n \"--shiki-dark\": \"#6A737D\"\n },\n children: \"// Meanwhile... somewhere else in your code\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: \" \"\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"const\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" { \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#005CC5\",\n \"--shiki-dark\": \"#79B8FF\"\n },\n children: \"data\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \", \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#005CC5\",\n \"--shiki-dark\": \"#79B8FF\"\n },\n children: \"errors\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" } \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"=\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \" await\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" client.\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \"request\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"(queryOrMutation)\"\n })]\n })]\n })\n })]\n });\n}\nreturn {\n title,\n frontMatter,\n useTOC,\n default: _createMdxContent\n};\n"},{"filePath":"./src/code/language-support/javascript/server/graphql-box.md","tags":["javascript","server"],"frontMatter":{"name":"GraphQLBox server","description":"An extensible GraphQL server with modules for caching, request parsing, debugging, subscriptions and more...","github":"badbatch/graphql-box","npm":"@graphql-box/server"},"stars":25,"formattedStars":"25","lastRelease":"","license":"MIT License","compiledSource":"\"use strict\";\nconst {Fragment: _Fragment, jsx: _jsx, jsxs: _jsxs} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nconst title = \"\";\nconst frontMatter = {\n \"name\": \"GraphQLBox server\",\n \"description\": \"An extensible GraphQL server with modules for caching, request parsing, debugging, subscriptions and more...\",\n \"github\": \"badbatch/graphql-box\",\n \"npm\": \"@graphql-box/server\"\n};\nfunction useTOC(props) {\n return [];\n}\nfunction _createMdxContent(props) {\n const _components = {\n code: \"code\",\n p: \"p\",\n pre: \"pre\",\n span: \"span\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsxs(_Fragment, {\n children: [_jsx(_components.p, {\n children: \"The example below installs and initializes the GraphQLBox server with a persisted cache and debugging enabled.\"\n }), \"\\n\", _jsx(_components.pre, {\n tabIndex: \"0\",\n \"data-language\": \"bash\",\n \"data-word-wrap\": \"\",\n children: _jsx(_components.code, {\n children: _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \"npm\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \" install\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \" @graphql-box/core\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \" @graphql-box/server\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \" @graphql-box/client\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \" @graphql-box/request-parser\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \" @graphql-box/cache-manager\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \" @graphql-box/debug-manager\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \" @graphql-box/execute\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \" @graphql-box/helpers\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \" @cachemap/core\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \" @cachemap/reaper\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \" @cachemap/redis\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \" @cachemap/constants\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \" @cachemap/types\"\n })]\n })\n })\n }), \"\\n\", _jsx(_components.pre, {\n tabIndex: \"0\",\n \"data-language\": \"javascript\",\n \"data-word-wrap\": \"\",\n children: _jsxs(_components.code, {\n children: [_jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"import\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" Cachemap \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"from\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \" \\\"@cachemap/core\\\"\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"import\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" redis \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"from\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \" \\\"@cachemap/redis\\\"\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"import\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" reaper \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"from\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \" \\\"@cachemap/reaper\\\"\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"import\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" CacheManager \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"from\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \" \\\"@graphql-box/cache-manager\\\"\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"import\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" Client \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"from\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \" \\\"@graphql-box/client\\\"\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"import\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" DebugManager \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"from\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \" \\\"@graphql-box/debug-manager\\\"\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"import\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" Execute \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"from\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \" \\\"@graphql-box/execute\\\"\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"import\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" RequestParser \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"from\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \" \\\"@graphql-box/request-parser\\\"\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"import\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" Server \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"from\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \" \\\"@graphql-box/server\\\"\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"import\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" { makeExecutableSchema } \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"from\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \" \\\"@graphql-tools/schema\\\"\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"import\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" { performance } \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"from\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \" \\\"perf_hooks\\\"\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"import\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" { schemaResolvers, schemaTypeDefs } \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"from\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \" \\\"./schema\\\"\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"import\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" logger \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"from\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \" \\\"./logger\\\"\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n children: \" \"\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"const\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#005CC5\",\n \"--shiki-dark\": \"#79B8FF\"\n },\n children: \" schema\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \" =\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \" makeExecutableSchema\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"({\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" typeDefs: schemaTypeDefs,\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" resolvers: schemaResolvers,\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"})\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: \" \"\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"const\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#005CC5\",\n \"--shiki-dark\": \"#79B8FF\"\n },\n children: \" server\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \" =\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \" new\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \" Server\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"({\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" client: \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"new\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \" Client\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"({\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" cacheManager: \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"new\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \" CacheManager\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"({\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" cache: \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"new\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \" Cachemap\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"({\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" name: \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \"\\\"server-cache\\\"\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \",\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" reaper: \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \"reaper\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"({ interval: \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#005CC5\",\n \"--shiki-dark\": \"#79B8FF\"\n },\n children: \"300000\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" }),\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" store: \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \"redis\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"(\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6A737D\",\n \"--shiki-dark\": \"#6A737D\"\n },\n children: \"/* configure */\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"),\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" }),\"\n })\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" cascadeCacheControl: \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#005CC5\",\n \"--shiki-dark\": \"#79B8FF\"\n },\n children: \"true\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \",\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" typeCacheDirectives: {\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6A737D\",\n \"--shiki-dark\": \"#6A737D\"\n },\n children: \" // Add any type specific cache control directives in the format:\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6A737D\",\n \"--shiki-dark\": \"#6A737D\"\n },\n children: \" // TypeName: \\\"public, max-age=3\\\",\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" },\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" }),\"\n })\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" debugManager: \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"new\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \" DebugManager\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"({\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" environment: \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \"\\\"server\\\"\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \",\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \" log\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \": (\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"...\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#E36209\",\n \"--shiki-dark\": \"#FFAB70\"\n },\n children: \"args\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \") \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"=\u003e\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" {\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" logger.\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \"log\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"(\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"...\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"args)\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" },\"\n })\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" name: \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \"\\\"SERVER\\\"\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \",\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" performance,\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" }),\"\n })\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" requestManager: \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"new\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \" Execute\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"({ schema }),\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" requestParser: \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"new\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \" RequestParser\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"({ schema }),\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" }),\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"})\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: \" \"\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6A737D\",\n \"--shiki-dark\": \"#6A737D\"\n },\n children: \"// Meanwhile... somewhere else in your code\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: \" \"\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"app.\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \"use\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"(\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \"\\\"api/graphql\\\"\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \", graphqlServer.\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \"request\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"())\"\n })]\n })]\n })\n })]\n });\n}\nreturn {\n title,\n frontMatter,\n useTOC,\n default: _createMdxContent\n};\n"},{"filePath":"./src/code/tools/hive/gateways-supergraphs/hive.md","tags":["tools","gateways-supergraphs"],"frontMatter":{"name":"Hive Gateway","description":"Hive Gateway can act as a GraphQL federation gateway or a proxy for any GraphQL service.","url":"https://the-guild.dev/graphql/hive","github":"graphql-hive/gateway"},"stars":13,"formattedStars":"13","lastRelease":"4 days ago","license":"MIT License"},{"filePath":"./src/code/language-support/python/server/graphene-django-cruddals.md","tags":["python","server"],"frontMatter":{"name":"Graphene Django CRUDDALS","description":"Turn your Django-models into a complete GraphQL API with all CRUD operations","url":"https://graphene-django-cruddals.readthedocs.io/en/latest/","github":"juanjcardona13/graphene_django_cruddals"},"stars":12,"formattedStars":"12","lastRelease":"","license":"Apache License 2.0","compiledSource":"\"use strict\";\nconst {Fragment: _Fragment, jsx: _jsx, jsxs: _jsxs} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nconst title = \"\";\nconst frontMatter = {\n \"name\": \"Graphene Django CRUDDALS\",\n \"description\": \"Turn your Django-models into a complete GraphQL API with all CRUD operations\",\n \"url\": \"https://graphene-django-cruddals.readthedocs.io/en/latest/\",\n \"github\": \"juanjcardona13/graphene_django_cruddals\"\n};\nfunction useTOC(props) {\n return [];\n}\nfunction _createMdxContent(props) {\n const _components = {\n a: \"a\",\n code: \"code\",\n p: \"p\",\n pre: \"pre\",\n span: \"span\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsxs(_Fragment, {\n children: [_jsx(_components.p, {\n children: \"You can install the package with pip\"\n }), \"\\n\", _jsx(_components.pre, {\n tabIndex: \"0\",\n \"data-language\": \"bash\",\n \"data-word-wrap\": \"\",\n children: _jsx(_components.code, {\n children: _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \"pip\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \" install\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \" graphene-django-cruddals\"\n })]\n })\n })\n }), \"\\n\", _jsxs(_components.p, {\n children: [\"To use it, simply create a new class that inherits “\", _jsx(_components.code, {\n children: \"DjangoModelCruddals\"\n }), \"”\\nSuppose we have the following models.\"]\n }), \"\\n\", _jsx(_components.pre, {\n tabIndex: \"0\",\n \"data-language\": \"python\",\n \"data-word-wrap\": \"\",\n children: _jsxs(_components.code, {\n children: [_jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"from\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" django.db \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"import\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" models\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n children: \" \"\n }), \"\\n\", _jsx(_components.span, {\n children: \" \"\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"class\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \" Question\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"(\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \"models\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \".\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \"Model\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"):\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" question_text \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"=\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" models.CharField(\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#E36209\",\n \"--shiki-dark\": \"#FFAB70\"\n },\n children: \"max_length\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"=\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#005CC5\",\n \"--shiki-dark\": \"#79B8FF\"\n },\n children: \"200\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \")\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" pub_date \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"=\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" models.DateTimeField(\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \"'date published'\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \")\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" is_active \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"=\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" models.BooleanField(\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#E36209\",\n \"--shiki-dark\": \"#FFAB70\"\n },\n children: \"default\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"=\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#005CC5\",\n \"--shiki-dark\": \"#79B8FF\"\n },\n children: \"True\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \")\"\n })]\n })]\n })\n }), \"\\n\", _jsxs(_components.p, {\n children: [\"Then we can create a complete CRUD+DALS for the models \", _jsx(_components.code, {\n children: \"Question\"\n }), \" with the following code\"]\n }), \"\\n\", _jsx(_components.pre, {\n tabIndex: \"0\",\n \"data-language\": \"python\",\n \"data-word-wrap\": \"\",\n children: _jsxs(_components.code, {\n children: [_jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"from\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" graphene_django_cruddals \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"import\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" DjangoModelCruddals\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n children: \" \"\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"class\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \" CruddalsQuestion\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"(\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \"DjangoModelCruddals\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"):\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \" class\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \" Meta\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \":\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" model \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"=\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" Question\"\n })]\n })]\n })\n }), \"\\n\", _jsxs(_components.p, {\n children: [\"Now you can use the \", _jsx(_components.code, {\n children: \"schema\"\n }), \" that was generated for you,\"]\n }), \"\\n\", _jsx(_components.pre, {\n tabIndex: \"0\",\n \"data-language\": \"python\",\n \"data-word-wrap\": \"\",\n children: _jsx(_components.code, {\n children: _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"schema \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"=\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" CruddalsQuestion.Schema\"\n })]\n })\n })\n }), \"\\n\", _jsxs(_components.p, {\n children: [\"or use in your existing schema root \", _jsx(_components.code, {\n children: \"Query\"\n }), \" and \", _jsx(_components.code, {\n children: \"Mutation\"\n })]\n }), \"\\n\", _jsx(_components.pre, {\n tabIndex: \"0\",\n \"data-language\": \"python\",\n \"data-word-wrap\": \"\",\n children: _jsxs(_components.code, {\n children: [_jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"class\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \" Query\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"(\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6A737D\",\n \"--shiki-dark\": \"#6A737D\"\n },\n children: \" # ... your others queries\"\n })\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \" CruddalsQuestion\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \".\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \"Query\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \",\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \" graphene\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \".\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \"ObjectType\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \",\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"):\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \" pass\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: \" \"\n }), \"\\n\", _jsx(_components.span, {\n children: \" \"\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"class\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \" Mutation\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"(\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6A737D\",\n \"--shiki-dark\": \"#6A737D\"\n },\n children: \" # ... your others mutations\"\n })\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \" CruddalsQuestion\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \".\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \"Mutation\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \",\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \" graphene\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \".\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \"ObjectType\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \",\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"):\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \" pass\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: \" \"\n }), \"\\n\", _jsx(_components.span, {\n children: \" \"\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"schema \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"=\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" graphene.Schema( \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#E36209\",\n \"--shiki-dark\": \"#FFAB70\"\n },\n children: \"query\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"=\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"Query, \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#E36209\",\n \"--shiki-dark\": \"#FFAB70\"\n },\n children: \"mutation\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"=\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"Mutation, )\"\n })]\n })]\n })\n }), \"\\n\", _jsx(_components.p, {\n children: \"That’s it! You can test in graphiql or any other client that you use to test your GraphQL APIs..\"\n }), \"\\n\", _jsxs(_components.p, {\n children: [\"Find more information in the \", _jsx(_components.a, {\n href: \"https://graphene-django-cruddals.readthedocs.io/en/latest/\",\n children: \"official documentation\"\n }), \".\"]\n })]\n });\n}\nreturn {\n title,\n frontMatter,\n useTOC,\n default: _createMdxContent\n};\n"},{"filePath":"./src/code/language-support/haskell/server/graphql-w-persistent.md","tags":["haskell","server"],"frontMatter":{"name":"graphql-w-persistent","description":"Complete set of library tools to abstract relational database schemas with SQL, query with GraphQL, and return GraphQL results","url":"https://hackage.haskell.org/package/graphql-w-persistent","github":"jasonsychau/graphql-w-persistent"},"stars":10,"formattedStars":"10","lastRelease":"","license":"Unknown","compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nconst title = \"\";\nconst frontMatter = {\n \"name\": \"graphql-w-persistent\",\n \"description\": \"Complete set of library tools to abstract relational database schemas with SQL, query with GraphQL, and return GraphQL results\",\n \"url\": \"https://hackage.haskell.org/package/graphql-w-persistent\",\n \"github\": \"jasonsychau/graphql-w-persistent\"\n};\nfunction useTOC(props) {\n return [];\n}\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"One time setup: build schema, deploy as microservice or within server, query SQL database with GraphQL!\"\n });\n}\nreturn {\n title,\n frontMatter,\n useTOC,\n default: _createMdxContent\n};\n"},{"filePath":"./src/code/language-support/python/server/django-graphbox.md","tags":["python","server"],"frontMatter":{"name":"Django Graphbox","description":"Package for easy building a GraphQL API with basic CRUD operations for Django models.","url":"https://90horasporsemana.com/graphbox/","github":"yefeza/django-graphbox"},"stars":10,"formattedStars":"10","lastRelease":"8 months ago","license":"MIT License","compiledSource":"\"use strict\";\nconst {Fragment: _Fragment, jsx: _jsx, jsxs: _jsxs} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nconst title = \"\";\nconst frontMatter = {\n \"name\": \"Django Graphbox\",\n \"description\": \"Package for easy building a GraphQL API with basic CRUD operations for Django models.\",\n \"url\": \"https://90horasporsemana.com/graphbox/\",\n \"github\": \"yefeza/django-graphbox\"\n};\nfunction useTOC(props) {\n return [];\n}\nfunction _createMdxContent(props) {\n const _components = {\n code: \"code\",\n li: \"li\",\n ol: \"ol\",\n p: \"p\",\n pre: \"pre\",\n span: \"span\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsxs(_Fragment, {\n children: [_jsx(_components.p, {\n children: \"A Quickstart for Django Graphbox:\"\n }), \"\\n\", _jsxs(_components.ol, {\n children: [\"\\n\", _jsx(_components.li, {\n children: \"Install the package:\"\n }), \"\\n\"]\n }), \"\\n\", _jsx(_components.pre, {\n tabIndex: \"0\",\n \"data-language\": \"bash\",\n \"data-word-wrap\": \"\",\n children: _jsx(_components.code, {\n children: _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \"pip\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \" install\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \" django-graphbox\"\n })]\n })\n })\n }), \"\\n\", _jsxs(_components.ol, {\n start: \"2\",\n children: [\"\\n\", _jsx(_components.li, {\n children: \"Create a new Django project:\"\n }), \"\\n\"]\n }), \"\\n\", _jsx(_components.pre, {\n tabIndex: \"0\",\n \"data-language\": \"bash\",\n \"data-word-wrap\": \"\",\n children: _jsx(_components.code, {\n children: _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \"django-admin\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \" startproject\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \" myproject\"\n })]\n })\n })\n }), \"\\n\", _jsxs(_components.ol, {\n start: \"3\",\n children: [\"\\n\", _jsx(_components.li, {\n children: \"Create a new Django app:\"\n }), \"\\n\"]\n }), \"\\n\", _jsx(_components.pre, {\n tabIndex: \"0\",\n \"data-language\": \"bash\",\n \"data-word-wrap\": \"\",\n children: _jsxs(_components.code, {\n children: [_jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#005CC5\",\n \"--shiki-dark\": \"#79B8FF\"\n },\n children: \"cd\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \" myproject\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \"python\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \" manage.py\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \" startapp\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \" myapp\"\n })]\n })]\n })\n }), \"\\n\", _jsxs(_components.ol, {\n start: \"4\",\n children: [\"\\n\", _jsxs(_components.li, {\n children: [\"Define your Django models in \", _jsx(_components.code, {\n children: \"myapp/models.py\"\n }), \":\"]\n }), \"\\n\"]\n }), \"\\n\", _jsx(_components.pre, {\n tabIndex: \"0\",\n \"data-language\": \"python\",\n \"data-word-wrap\": \"\",\n children: _jsxs(_components.code, {\n children: [_jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"from\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" django.db \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"import\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" models\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n children: \" \"\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"class\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \" MyModel\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"(\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \"models\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \".\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \"Model\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"):\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" name \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"=\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" models.CharField(\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#E36209\",\n \"--shiki-dark\": \"#FFAB70\"\n },\n children: \"max_length\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"=\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#005CC5\",\n \"--shiki-dark\": \"#79B8FF\"\n },\n children: \"100\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \")\"\n })]\n })]\n })\n }), \"\\n\", _jsxs(_components.ol, {\n start: \"5\",\n children: [\"\\n\", _jsx(_components.li, {\n children: \"Create and run migrations:\"\n }), \"\\n\"]\n }), \"\\n\", _jsx(_components.pre, {\n tabIndex: \"0\",\n \"data-language\": \"bash\",\n \"data-word-wrap\": \"\",\n children: _jsxs(_components.code, {\n children: [_jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \"python\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \" manage.py\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \" makemigrations\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \"python\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \" manage.py\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \" migrate\"\n })]\n })]\n })\n }), \"\\n\", _jsxs(_components.ol, {\n start: \"6\",\n children: [\"\\n\", _jsxs(_components.li, {\n children: [\"Configure and Build your GraphQL Schema in \", _jsx(_components.code, {\n children: \"myapp/schema.py\"\n }), \":\"]\n }), \"\\n\"]\n }), \"\\n\", _jsx(_components.pre, {\n tabIndex: \"0\",\n \"data-language\": \"python\",\n \"data-word-wrap\": \"\",\n children: _jsxs(_components.code, {\n children: [_jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"from\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" django_graphbox.builder \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"import\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" SchemaBuilder\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"from\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" myapp.models \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"import\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" MyModel\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n children: \" \"\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"builder \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"=\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" SchemaBuilder()\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"builder.add_model(MyModel)\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: \" \"\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"query_class \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"=\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" builder.build_schema_query()\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"mutation_class \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"=\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" builder.build_schema_mutation()\"\n })]\n })]\n })\n }), \"\\n\", _jsxs(_components.ol, {\n start: \"7\",\n children: [\"\\n\", _jsxs(_components.li, {\n children: [\"Create a main Schema in \", _jsx(_components.code, {\n children: \"myproject/schema.py\"\n }), \" (In this main schema you can add your own queries and mutations):\"]\n }), \"\\n\"]\n }), \"\\n\", _jsx(_components.pre, {\n tabIndex: \"0\",\n \"data-language\": \"python\",\n \"data-word-wrap\": \"\",\n children: _jsxs(_components.code, {\n children: [_jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"import\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" graphene\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"from\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" myapp.schema \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"import\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" query_class, mutation_class\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n children: \" \"\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"class\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \" Query\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"(\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \"query_class\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \", \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \"graphene\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \".\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \"ObjectType\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"):\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \" pass\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: \" \"\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"class\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \" Mutation\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"(\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \"mutation_class\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \", \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \"graphene\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \".\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \"ObjectType\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"):\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \" pass\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: \" \"\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"schema \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"=\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" graphene.Schema(\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#E36209\",\n \"--shiki-dark\": \"#FFAB70\"\n },\n children: \"query\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"=\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"Query, \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#E36209\",\n \"--shiki-dark\": \"#FFAB70\"\n },\n children: \"mutation\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"=\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"Mutation)\"\n })]\n })]\n })\n }), \"\\n\", _jsxs(_components.ol, {\n start: \"8\",\n children: [\"\\n\", _jsxs(_components.li, {\n children: [\"Add the GraphQL view to your \", _jsx(_components.code, {\n children: \"myproject/urls.py\"\n }), \":\"]\n }), \"\\n\"]\n }), \"\\n\", _jsx(_components.pre, {\n tabIndex: \"0\",\n \"data-language\": \"python\",\n \"data-word-wrap\": \"\",\n children: _jsxs(_components.code, {\n children: [_jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"from\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" django.urls \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"import\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" path\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"from\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" graphene_file_upload.django \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"import\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" FileUploadGraphQLView\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"from\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" django.views.decorators.csrf \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"import\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" csrf_exempt\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"from\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" myproject.schema \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"import\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" schema\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n children: \" \"\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"urlpatterns \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"=\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" [\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" path(\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \"'graphql/'\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \", csrf_exempt(FileUploadGraphQLView.as_view(\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#E36209\",\n \"--shiki-dark\": \"#FFAB70\"\n },\n children: \"graphiql\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"=\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#005CC5\",\n \"--shiki-dark\": \"#79B8FF\"\n },\n children: \"True\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \", \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#E36209\",\n \"--shiki-dark\": \"#FFAB70\"\n },\n children: \"schema\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"=\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"schema))),\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"]\"\n })\n })]\n })\n }), \"\\n\", _jsxs(_components.ol, {\n start: \"9\",\n children: [\"\\n\", _jsx(_components.li, {\n children: \"Run the server:\"\n }), \"\\n\"]\n }), \"\\n\", _jsx(_components.pre, {\n tabIndex: \"0\",\n \"data-language\": \"sh\",\n \"data-word-wrap\": \"\",\n children: _jsx(_components.code, {\n children: _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6F42C1\",\n \"--shiki-dark\": \"#B392F0\"\n },\n children: \"python\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \" manage.py\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \" runserver\"\n })]\n })\n })\n }), \"\\n\", _jsxs(_components.ol, {\n start: \"10\",\n children: [\"\\n\", _jsxs(_components.li, {\n children: [\"Open the GraphiQL interface at \", _jsx(_components.code, {\n children: \"http://localhost:8000/graphql\"\n }), \" and start querying your API!\"]\n }), \"\\n\"]\n }), \"\\n\", _jsx(_components.p, {\n children: \"You can find advanced examples with authentication, filters, validations and more on GitHub or pypi.\"\n })]\n });\n}\nreturn {\n title,\n frontMatter,\n useTOC,\n default: _createMdxContent\n};\n"},{"filePath":"./src/code/language-support/php/server/serge.md","tags":["php","server"],"frontMatter":{"name":"serge","description":"Use GraphQL to define your Domain Model for CQRS/ES and let serge generate code to handle GraphQL requests.","github":"kepawni/serge"},"stars":6,"formattedStars":"6","lastRelease":"","license":"GNU General Public License v3.0"},{"filePath":"./src/code/language-support/javascript/tools/brangr.md","tags":["javascript","tools"],"frontMatter":{"name":"Brangr","description":"Browse Any Graph - A user-friendly viewer for any GraphQL service","github":"networkimprov/brangr"},"stars":3,"formattedStars":"3","lastRelease":"1 year ago","license":"Mozilla Public License 2.0","compiledSource":"/*prettier-ignore*/\n\"use strict\";\nconst {Fragment: _Fragment, jsx: _jsx, jsxs: _jsxs} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nconst title = \"\";\nconst frontMatter = {\n \"name\": \"Brangr\",\n \"description\": \"Browse Any Graph - A user-friendly viewer for any GraphQL service\",\n \"github\": \"networkimprov/brangr\"\n};\nfunction useTOC(props) {\n return [];\n}\nfunction _createMdxContent(props) {\n const _components = {\n a: \"a\",\n blockquote: \"blockquote\",\n code: \"code\",\n em: \"em\",\n li: \"li\",\n p: \"p\",\n pre: \"pre\",\n span: \"span\",\n strong: \"strong\",\n table: \"table\",\n tbody: \"tbody\",\n td: \"td\",\n th: \"th\",\n tr: \"tr\",\n ul: \"ul\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsxs(_Fragment, {\n children: [_jsx(_components.p, {\n children: _jsxs(_components.strong, {\n children: [\"Brangr - \", _jsx(_components.em, {\n children: \"Br\"\n }), \"owse \", _jsx(_components.em, {\n children: \"An\"\n }), \"y \", _jsx(_components.em, {\n children: \"Gr\"\n }), \"aph\"]\n })\n }), \"\\n\", _jsxs(_components.ul, {\n children: [\"\\n\", _jsxs(_components.li, {\n children: [\"\\n\", _jsx(_components.p, {\n children: \"Brangr is a simple, unique tool that any web server can host\\nto provide a user-friendly browser/viewer for any GraphQL service (or many).\"\n }), \"\\n\"]\n }), \"\\n\", _jsxs(_components.li, {\n children: [\"\\n\", _jsx(_components.p, {\n children: \"Brangr formats GraphQL results attractively, via a selection of\\nuser-configurable layouts.\\nIt lets users extract the generated HTML, and its source JSON.\\nIt provides a clever schema browser.\\nIt has built-in docs.\"\n }), \"\\n\"]\n }), \"\\n\", _jsxs(_components.li, {\n children: [\"\\n\", _jsx(_components.p, {\n children: \"Brangr enables sites hosting it to present users with\\na collection of pre-fab GraphQL requests, which they can edit if desired,\\nand let them create their own requests.\\nAnd it allows sites to define custom CSS styling for all aspects of the\\nformatted results.\"\n }), \"\\n\"]\n }), \"\\n\", _jsxs(_components.li, {\n children: [\"\\n\", _jsxs(_components.p, {\n children: [\"Try it at the\\n\", _jsx(_components.a, {\n href: \"https://mnmnotmail.org/bgr/brangr.html\",\n children: _jsx(_components.strong, {\n children: \"public Brangr site\"\n })\n }), \".\"]\n }), \"\\n\"]\n }), \"\\n\"]\n }), \"\\n\", _jsx(_components.p, {\n children: _jsx(_components.strong, {\n children: \"Example\"\n })\n }), \"\\n\", \"\\n\", _jsx(_components.pre, {\n tabIndex: \"0\",\n \"data-language\": \"graphql\",\n \"data-word-wrap\": \"\",\n children: _jsxs(_components.code, {\n children: [_jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#D73A49\",\n \"--shiki-dark\": \"#F97583\"\n },\n children: \"query\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" {\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n children: [_jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#E36209\",\n \"--shiki-dark\": \"#FFAB70\"\n },\n children: \" heroes\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"(\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#E36209\",\n \"--shiki-dark\": \"#FFAB70\"\n },\n children: \"_layout\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \": { \"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#032F62\",\n \"--shiki-dark\": \"#9ECBFF\"\n },\n children: \"type\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \":\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#005CC5\",\n \"--shiki-dark\": \"#79B8FF\"\n },\n children: \" table\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" }) {\"\n }), _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#6A737D\",\n \"--shiki-dark\": \"#6A737D\"\n },\n children: \" # _layout arg not sent to service\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#E36209\",\n \"--shiki-dark\": \"#FFAB70\"\n },\n children: \" first\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#E36209\",\n \"--shiki-dark\": \"#FFAB70\"\n },\n children: \" last\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \" }\"\n })\n }), \"\\n\", _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#24292E\",\n \"--shiki-dark\": \"#E1E4E8\"\n },\n children: \"}\"\n })\n })]\n })\n }), \"\\n\", _jsx(_components.p, {\n children: \"Brangr renders the above query as follows (though not in a quote block):\"\n }), \"\\n\", _jsxs(_components.blockquote, {\n children: [\"heroes...\\n \", _jsxs(_components.table, {\n style: {\n borderSpacing: \"0.5em 0\"\n },\n children: [\"\\n \", _jsxs(_components.tbody, {\n children: [_jsxs(_components.tr, {\n children: [_jsx(_components.th, {\n children: \"First \"\n }), _jsx(_components.th, {\n children: \"Last \"\n })]\n }), \"\\n \", _jsxs(_components.tr, {\n children: [_jsx(_components.td, {\n children: \"Arthur\"\n }), _jsx(_components.td, {\n children: \"Dent \"\n })]\n }), \"\\n \", _jsxs(_components.tr, {\n children: [_jsx(_components.td, {\n children: \"Ford \"\n }), _jsx(_components.td, {\n children: \"Prefect \"\n })]\n }), \"\\n \", _jsxs(_components.tr, {\n children: [_jsx(_components.td, {\n children: \"Zaphod\"\n }), _jsx(_components.td, {\n children: \"Beeblebrox\"\n })]\n }), \"\\n \"]\n })]\n }), \"\\n\"]\n })]\n });\n}\nreturn {\n title,\n frontMatter,\n useTOC,\n default: _createMdxContent\n};\n"},{"filePath":"./src/code/services/graphapi.md","tags":["services"],"frontMatter":{"name":"graphapi®","description":"graphapi® is a secure low-code GraphQL-as-a-service platform. Based on the input data model, it auto-generates the GraphQL schema, all resolvers, and the database stack. Additionally, it provides a user interface allowing teams to manage their data. For more information, go to https://graphapi.com.","url":"https://graphapi.com/docs","github":"graphapi-io/resources"},"stars":2,"formattedStars":"2","lastRelease":"","license":"MIT License"},{"filePath":"./src/code/services/apideck.md","tags":["services"],"frontMatter":{"name":"Apideck","description":"A GraphQL API to query and mutate data across APIs like Salesforce, HubSpot, Microsoft Dynamics, Pipedrive, and many more.","url":"https://www.apideck.com/products/graphql/"}},{"filePath":"./src/code/services/aws-appsync.md","tags":["services"],"frontMatter":{"name":"AWS AppSync","description":"Fully managed GraphQL service with realtime subscriptions, offline programming \u0026 synchronization, and enterprise security features as well as fine grained authorization controls.","url":"https://aws.amazon.com/appsync/"}},{"filePath":"./src/code/services/back4app.md","tags":["services"],"frontMatter":{"name":"Back4App","description":"Fully managed GraphQL backend based on open source Parse Platform. Store and query relational data, run cloud functions and more over GraphQL API. Free to get started.","url":"https://www.back4app.com/docs/parse-graphql/graphql-getting-started"}},{"filePath":"./src/code/services/escape.md","tags":["services"],"frontMatter":{"name":"Escape – GraphQL Security","description":"Live GraphQL Security \u0026 Compliance. Ensure your GraphQL endpoints are production-ready. During development. Without needed configuration. Supports every language and framework. Free to get started.","url":"https://escape.tech/"}},{"filePath":"./src/code/services/faunadb.md","tags":["services"],"frontMatter":{"name":"FaunaDB","description":"Create an instant GraphQL backend by importing a gql schema. The database will create relations and indexes for you, so you'll be ready to query in seconds, without writing any database code. Serverless pricing, free to get started.","url":"https://docs.fauna.com/fauna/current/graphql"}},{"filePath":"./src/code/services/grafbase.md","tags":["services"],"frontMatter":{"name":"Grafbase","description":"GraphQL backends made easy. Build your backend declaratively using a schema-first approach. Accelerate development and reduce boilerplate code by leveraging powerful directives and scalars.","url":"https://grafbase.com"}},{"filePath":"./src/code/services/graphql.security.md","tags":["services"],"frontMatter":{"name":"GraphQL.Security","description":"Fast and free security scan to run a dozen of tests on a GraphQL endpoint. No login is required.","url":"https://graphql.security/"}},{"filePath":"./src/code/services/hygraph.md","tags":["services"],"frontMatter":{"name":"Hygraph","description":"Hygraph is the federated content platform that allows true composability of your stack. Integrate all your services with a unique content federation approach and distribute content from anywhere - to anywhere using a single, powerful GraphQL API.","url":"https://hygraph.com/"}},{"filePath":"./src/code/services/lexascms.md","tags":["services"],"frontMatter":{"name":"LexasCMS","description":"A headless CMS (Content Management System) that combines powerful content personalisation and scheduling capabilities with a modern content editing experience and a blazing fast GraphQL/REST content delivery API.","url":"https://www.lexascms.com"}},{"filePath":"./src/code/services/moesif-api-analytics.md","tags":["services"],"frontMatter":{"name":"Moesif API Analytics","description":"A GraphQL analaytics and monitoring Service to find functional and performance issues.","url":"https://www.moesif.com/features/graphql-analytics"}},{"filePath":"./src/code/language-support/python/client/ql.md","tags":["python","client"],"frontMatter":{"name":"ql","description":"Non intrusive python GraphQL client wrapped around pydantic.","url":"https://dsal3389.github.io/ql/","github":"https://github.com/dsal3389/ql"},"compiledSource":"\"use strict\";\nconst {Fragment: _Fragment, jsx: _jsx, jsxs: _jsxs} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nconst title = \"\";\nconst frontMatter = {\n \"name\": \"ql\",\n \"description\": \"Non intrusive python GraphQL client wrapped around pydantic.\",\n \"url\": \"https://dsal3389.github.io/ql/\",\n \"github\": \"https://github.com/dsal3389/ql\"\n};\nfunction useTOC(props) {\n return [{\n value: \"Install\",\n id: \"install\",\n depth: 2\n }];\n}\nfunction _createMdxContent(props) {\n const _components = {\n code: \"code\",\n h2: \"h2\",\n li: \"li\",\n p: \"p\",\n pre: \"pre\",\n span: \"span\",\n ul: \"ul\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsxs(_Fragment, {\n children: [_jsx(_components.p, {\n children: \"GraphQL client library, wrapped around pydantic classes for type validation,\\nprovides a safe and simple way to query data from a GraphQL API.\"\n }), \"\\n\", _jsx(_components.p, {\n children: \"Features:\"\n }), \"\\n\", _jsxs(_components.ul, {\n children: [\"\\n\", _jsx(_components.li, {\n children: \"python objects to valid GraphQL string\"\n }), \"\\n\", _jsx(_components.li, {\n children: \"scalar query responses\"\n }), \"\\n\", _jsx(_components.li, {\n children: \"type-safety\"\n }), \"\\n\"]\n }), \"\\n\", _jsx(_components.h2, {\n id: \"install\",\n children: \"Install\"\n }), \"\\n\", _jsx(_components.pre, {\n tabIndex: \"0\",\n \"data-language\": \"console\",\n \"data-word-wrap\": \"\",\n children: _jsx(_components.code, {\n children: _jsx(_components.span, {\n children: _jsx(_components.span, {\n style: {\n \"--shiki-light\": \"#005CC5\",\n \"--shiki-dark\": \"#79B8FF\"\n },\n children: \"pip3 install pydantic-graphql\"\n })\n })\n })\n })]\n });\n}\nreturn {\n title,\n frontMatter,\n useTOC,\n default: _createMdxContent\n};\n"},{"filePath":"./src/code/language-support/swift-objective-c-ios/client/graphqlite-ios.md","tags":["swift-objective-c-ios","client"],"frontMatter":{"name":"GraphQLite iOS","description":"GraphQLite iOS SDK is a toolkit to work with GraphQL servers easily. It also provides several other features to make life easier during iOS application development.","url":"https://graphqlite.com/sdk-ios","github":"relatedcode/GraphQLite"}}],"allTags":[{"tag":"server","count":74,"name":"Server"},{"tag":"client","count":54,"name":"Client"},{"tag":"javascript","count":47,"name":"JavaScript"},{"tag":"tools","count":32,"name":"Tools"},{"tag":"services","count":25,"name":"Services"},{"tag":"go","count":13,"name":"Go"},{"tag":"java-kotlin-android","count":13,"name":"Java / Kotlin"},{"tag":"python","count":13,"name":"Python"},{"tag":"php","count":12,"name":"PHP"},{"tag":"c-net","count":10,"name":"C# / .NET"},{"tag":"swift-objective-c-ios","count":7,"name":"Swift / Objective-C"},{"tag":"general","count":6,"name":"General"},{"tag":"clojure","count":4,"name":"Clojure"},{"tag":"elixir","count":4,"name":"Elixir"},{"tag":"haskell","count":4,"name":"Haskell"},{"tag":"rust","count":4,"name":"Rust"},{"tag":"ruby","count":3,"name":"Ruby"},{"tag":"scala","count":3,"name":"Scala"},{"tag":"ballerina","count":2,"name":"Ballerina"},{"tag":"flutter","count":2,"name":"Flutter"},{"tag":"gateways-supergraphs","count":2,"name":"Gateways And Supergraphs"},{"tag":"groovy","count":2,"name":"Groovy"},{"tag":"julia","count":2,"name":"Julia"},{"tag":"c-c","count":1,"name":"C / C++"},{"tag":"d","count":1,"name":"D"},{"tag":"elm","count":1,"name":"Elm"},{"tag":"erlang","count":1,"name":"Erlang"},{"tag":"ocaml-reason","count":1,"name":"OCaml / Reason"},{"tag":"perl","count":1,"name":"Perl"},{"tag":"r","count":1,"name":"R"}]},"__N_SSG":true},"page":"/community/tools-and-libraries","query":{},"buildId":"ANYoRcQUjMjxlujFCfpei","isFallback":false,"gsp":true,"scriptLoader":[]}</script></body></html>