1<!DOCTYPE html> 2<html lang="en-us" class="dark-theme bg-canvas"> 3 <head> 4 <meta charset="utf-8" /> 5 <meta name="viewport" content="width=device-width, initial-scale=1" /> 6 <title>Explore AdonisJS Packages</title><meta name="description" content="Discover official and community packages for AdonisJS. Find authentication providers, database drivers, queue systems, integrations, and tools to extend your application" /> 7<link rel="canonical" href="https://adonisjs.com/packages" /> 8<meta name="twitter:title" content="Explore AdonisJS Packages" /> 9<meta name="twitter:description" content="Discover official and community packages for AdonisJS. Find authentication providers, database drivers, queue systems, integrations, and tools to extend your application" /> 10<meta name="twitter:card" content="summary_large_image" /> 11<meta name="twitter:site" content="@adonisframework" /> 12<meta name="twitter:creator" content="@adonisframework" /> 13<meta property="og:title" content="Explore AdonisJS Packages" /> 14<meta property="og:description" content="Discover official and community packages for AdonisJS. Find authentication providers, database drivers, queue systems, integrations, and tools to extend your application" /> 15<meta property="og:url" content="https://adonisjs.com/packages" /> 16 <meta name="twitter:image" content="https://adonisjs.com/assets/packages-BtgbxuCG.jpg" /> 17 <meta property="og:image" content="https://adonisjs.com/assets/packages-BtgbxuCG.jpg" /> 18 19<meta property="og:type" content="website" /> 20 21<link 22 rel="apple-touch-icon" 23 sizes="57x57" 24 href="/assets/apple-icon-57x57-xYBJLDWT.png" 25/> 26<link 27 rel="apple-touch-icon" 28 sizes="60x60" 29 href="/assets/apple-icon-60x60-D6_J_159.png" 30/> 31<link 32 rel="apple-touch-icon" 33 sizes="72x72" 34 href="/assets/apple-icon-72x72-CwGQ7wCB.png" 35/> 36<link 37 rel="apple-touch-icon" 38 sizes="76x76" 39 href="/assets/apple-icon-76x76-aYOM4d7G.png" 40/> 41<link 42 rel="apple-touch-icon" 43 sizes="114x114" 44 href="/assets/apple-icon-114x114-Buyr7H-g.png" 45/> 46<link 47 rel="apple-touch-icon" 48 sizes="120x120" 49 href="/assets/apple-icon-120x120-ribyuC-s.png" 50/> 51<link 52 rel="apple-touch-icon" 53 sizes="144x144" 54 href="/assets/ms-icon-144x144-CS5pvIdW.png" 55/> 56<link 57 rel="apple-touch-icon" 58 sizes="152x152" 59 href="/assets/apple-icon-152x152-5WCCzTD-.png" 60/> 61<link 62 rel="apple-touch-icon" 63 sizes="180x180" 64 href="/assets/apple-icon-180x180-9a7N4Jr0.png" 65/> 66<link 67 rel="icon" 68 type="image/png" 69 sizes="192x192" 70 href="/assets/android-icon-192x192-BsKbegpC.png" 71/> 72<link 73 rel="icon" 74 type="image/png" 75 sizes="32x32" 76 href="/assets/favicon-32x32-B8wNBOa_.png" 77/> 78<link 79 rel="icon" 80 type="image/png" 81 sizes="96x96" 82 href="/assets/favicon-96x96-cvA9CZU9.png" 83/> 84<link 85 rel="icon" 86 type="image/png" 87 sizes="16x16" 88 href="/assets/favicon-16x16-BIWFZ2zQ.png" 89/> 90<link rel="manifest" href="/assets/icons_manifest--KzPhL4h.json" /> 91<meta name="msapplication-TileColor" content="#09090b" /> 92<meta 93 name="msapplication-TileImage" 94 content="/assets/ms-icon-144x144-CS5pvIdW.png" 95/> 96<meta name="theme-color" content="#09090b" /> 97
98<script> 99 (() => { 100 const root = document.documentElement; 101 let storedTheme = null; 102 103 try { 104 storedTheme = localStorage.getItem('adonisjs:theme'); 105 } catch {} 106 107 const theme = 108 storedTheme === 'light' || storedTheme === 'dark' 109 ? storedTheme 110 : window.matchMedia('(prefers-color-scheme: light)').matches 111 ? 'light' 112 : 'dark'; 113 114 root.classList.remove('light-theme', 'dark-theme'); 115 root.classList.add(`${theme}-theme`); 116 root.dataset.theme = theme; 117 118 document 119 .querySelector('meta[name="theme-color"]') 120 ?.setAttribute('content', theme === 'light' ? '#fafafa' : '#09090b'); 121 })(); 122</script>
122 123 124<link rel="preload" as="style" href="/assets/app-Lcq2UOUK.css"/> 125<link rel="preload" as="style" href="/assets/app-q6sJD9cd.css"/> 126<link rel="modulepreload" href="/assets/app-De46YKyw.js"/> 127<link rel="stylesheet" href="/assets/app-q6sJD9cd.css"/>
128<script type="module" defer src="/assets/app-De46YKyw.js"></script>
128 129<link rel="stylesheet" href="/assets/app-Lcq2UOUK.css"/> 130 131 </head> 132 133 <body class="font-sans antialiased text-foreground-muted relative"> 134<div x-data class="relative bg-highlighter"> 135 <p class="px-12 py-2.5 text-center text-13 sm:text-14 font-semibold text-highlighter-ink"> 136 Help shape what we build next. Take the 137 <a 138 href="https://tally.so/r/obgR8M" 139 target="_blank" 140 rel="noopener noreferrer" 141 class="underline underline-offset-3 hover:opacity-75 transition-opacity" 142 > 143 AdonisJS developer survey. 144 </a> 145 </p> 146 <button 147 type="button" 148 class="absolute right-2.5 top-1/2 -translate-y-1/2 flex size-7 items-center justify-center cursor-pointer text-highlighter-ink hover:bg-highlighter-ink/10 transition-colors" 149 aria-label="Dismiss announcement" 150 @click="localStorage.setItem('announcement:dev-survey', 'dismissed'); $root.remove()" 151 ><svg width="1em" height="1em" viewBox="0 0 24 24" class="w-4 h-4"><path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5" d="M18 6L6 18M6 6l12 12"/></svg> 152 </button> 153</div>
154<script> 155 if (localStorage.getItem('announcement:dev-survey') === 'dismissed') { 156 document.currentScript.previousElementSibling.remove() 157 } 158</script>
158 159 160<header class="sticky inset-x-0 top-0 border-b border-divider z-10 backdrop-blur-3xl bg-nav-bg"> 161 <div class="container-full mx-auto px-5 lg:px-10 py-4 flex items-center justify-between h-18"> 162 <div class="text-foreground"> 163<a href="/" class="block"> 164 <svg width="107" height="33" viewBox="0 0 107 33" fill="none" xmlns="http://www.w3.org/2000/svg"> 165 <g clip-path="url(#clip0_1245_6827)"> 166 <path 167 fill-rule="evenodd" 168 clip-rule="evenodd" 169 d="M0 16.3331C0 29.506 3.16017 32.6662 16.3331 32.6662C29.506 32.6662 32.6662 29.506 32.6662 16.3331C32.6662 3.16017 29.506 0 16.3331 0C3.16017 0 0 3.16017 0 16.3331ZM6.58646 19.7261L11.7093 8.08338C12.5742 6.12075 14.2374 5.05627 16.3331 5.05627C18.4288 5.05627 20.092 6.12075 20.9569 8.08338L26.0797 19.7261C26.3126 20.2916 26.5122 21.0235 26.5122 21.6555C26.5122 24.5495 24.483 26.5787 21.589 26.5787C20.6032 26.5787 19.8203 26.3271 19.0278 26.0725C18.2158 25.8116 17.3937 25.5475 16.3331 25.5475C15.2847 25.5475 14.4426 25.814 13.6145 26.076C12.8136 26.3294 12.0258 26.5787 11.0772 26.5787C8.18318 26.5787 6.15402 24.5495 6.15402 21.6555C6.15402 21.0235 6.35361 20.2916 6.58646 19.7261ZM16.3331 10.1125L11.2768 21.5557C12.7737 20.8571 14.5035 20.5245 16.3331 20.5245C18.0961 20.5245 19.8924 20.8571 21.3228 21.5557L16.3331 10.1125Z" 170 fill="currentColor" 171 /> 172 <path 173 fill-rule="evenodd" 174 clip-rule="evenodd" 175 d="M93.7543 8.07967C92.6202 8.07967 91.8012 8.88296 91.8012 10.0013C91.8012 11.1195 92.6202 11.9228 93.7543 11.9228C94.8883 11.9228 95.7074 11.1195 95.7074 10.0013C95.7074 8.88296 94.8883 8.07967 93.7543 8.07967ZM58.0314 24.5865C55.0073 24.5865 52.8179 22.3504 52.8179 18.8532C52.8179 15.293 55.0073 13.0569 58.0314 13.0569C59.4333 13.0569 60.4728 13.5294 61.0871 14.4587V8.5837H64.2373V24.3345H61.0871V23.2162C60.4886 24.1297 59.449 24.5865 58.0314 24.5865ZM56.0311 18.8532C56.0311 16.9001 57.0864 15.6243 58.693 15.6243C60.3153 15.6243 61.3549 16.8843 61.3549 18.8374C61.3549 20.759 60.3153 22.0034 58.693 22.0034C57.0864 22.0034 56.0311 20.759 56.0311 18.8532ZM69.183 18.8217C69.183 16.8843 70.2383 15.64 71.8134 15.64C73.4042 15.64 74.4595 16.8843 74.4595 18.8217C74.4595 20.759 73.4042 22.0034 71.8134 22.0034C70.2383 22.0034 69.183 20.759 69.183 18.8217ZM103.898 21.3261C103.898 21.9088 103.457 22.2554 102.338 22.2554C101.078 22.2554 100.291 21.5938 100.291 20.7905H97.1407C97.2195 22.9642 99.2828 24.5865 102.275 24.5865C105.111 24.5865 106.922 23.3264 106.922 21.0898C106.922 19.4202 105.851 18.2547 103.725 17.8294L101.441 17.3726C100.748 17.2309 100.338 16.8843 100.338 16.4276C100.338 15.7503 101.031 15.388 101.913 15.388C103.173 15.388 103.662 15.9708 103.662 16.6638H106.654C106.575 14.6162 104.969 13.0569 101.976 13.0569C99.1883 13.0569 97.2982 14.4587 97.2982 16.5851C97.2982 18.5067 98.5425 19.373 100.401 19.7667L102.669 20.255C103.41 20.4125 103.898 20.7275 103.898 21.3261ZM95.3451 24.3345H92.1949V13.3089H95.3451V24.3345ZM82.5555 13.3089V14.4587C83.3587 13.5294 84.4298 13.0569 85.7529 13.0569C88.2257 13.0569 89.8323 14.6635 89.8323 17.1521V24.3345H86.6822V17.8136C86.6822 16.4748 85.9261 15.6715 84.6188 15.6715C83.3115 15.6715 82.5555 16.4748 82.5555 17.8136V24.3345H79.4053V13.3089H82.5555ZM71.8134 13.0569C68.4585 13.0569 65.9699 15.4825 65.9699 18.8217C65.9699 22.1609 68.4585 24.5865 71.8134 24.5865C75.1841 24.5865 77.6727 22.1609 77.6727 18.8217C77.6727 15.4825 75.1841 13.0569 71.8134 13.0569ZM45.5411 15.6243C43.9345 15.6243 42.8792 16.9001 42.8792 18.8532C42.8792 20.759 43.9345 22.0034 45.5411 22.0034C47.1634 22.0034 48.2029 20.759 48.2029 18.8374C48.2029 16.8843 47.1634 15.6243 45.5411 15.6243ZM39.666 18.8532C39.666 22.3504 41.8554 24.5865 44.8638 24.5865C46.2971 24.5865 47.3209 24.1297 47.9352 23.2162V24.3345H51.0853V13.3089H47.9352V14.4587C47.3051 13.5294 46.2656 13.0569 44.8638 13.0569C41.8554 13.0569 39.666 15.293 39.666 18.8532Z" 176 fill="currentColor" 177 /> 178 </g> 179 <defs> 180 <clipPath id="clip0_1245_6827"> 181 <rect width="106.922" height="32.6662" fill="currentColor" /> 182 </clipPath> 183 </defs> 184</svg> 185 186 <span class="sr-only">Home page</span> 187</a> 188 189 </div> 190 191 <div class="flex items-center gap-7"> 192 <nav class="flex items-center gap-7"> 193 <ul class="hidden md:flex items-center gap-5"> 194 <li> 195<a href="/packages" class="current md:text-sm hover:text-foreground transition-colors text-foreground">
196 <span>Packages</span> 197</a> 198 199 </li> 200 <li> 201<a href="/wall-of-love" class="md:text-sm hover:text-foreground transition-colors text-foreground-muted"> 202 <span>Wall of love</span> 203</a> 204 205 </li> 206 <li> 207<a href="https://docs.adonisjs.com" class="md:text-sm hover:text-foreground transition-colors text-foreground-muted" rel="noopener noreferrer" target="_blank"> 208 <span>Docs</span> 209</a> 210 211 </li> 212 <li> 213<a href="/blog" class="md:text-sm hover:text-foreground transition-colors text-foreground-muted"> 214 <span>Blog</span> 215</a> 216 217 </li> 218 <li> 219<a href="/roadmap" class="md:text-sm hover:text-foreground transition-colors text-foreground-muted"> 220 <span>Roadmap</span> 221</a> 222 223 </li> 224 <li> 225<a href="/sponsor" class="md:text-sm hover:text-foreground transition-colors text-foreground-muted"> 226 <span>Sponsor</span> 227</a> 228 229 </li> 230 <li> 231<a href="/about" class="md:text-sm hover:text-foreground transition-colors text-foreground-muted"> 232 <span>About</span> 233</a> 234 235 </li> 236 237 </ul> 238 239 <ul class="flex items-center gap-5"> 240 <li x-data="themeSwitcher" class="flex items-center"> 241 <button 242 type="button" 243 @click="toggle()" 244 :aria-label="theme === 'dark' ? 'Switch to light theme' : 'Switch to dark theme'" 245 :title="theme === 'dark' ? 'Switch to light theme' : 'Switch to dark theme'" 246 class="inline-flex size-8 cursor-pointer items-center justify-center rounded-full border border-control-line bg-control text-foreground-muted transition-colors hover:border-control-line-hover hover:bg-control-hover hover:text-foreground" 247 > 248 <span x-cloak x-show="theme === 'dark'"><svg width="1em" height="1em" viewBox="0 0 24 24" class="size-4.5"><path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5" d="M16 12a4 4 0 1 1-8 0a4 4 0 0 1 8 0m-4-9v2m0 14.004v2M5 12H3m18 0h-2m0-7l-2 2M5 5l2 2m0 10l-2 2m14 0l-2-2"/></svg> 249 </span> 250 <span x-cloak x-show="theme === 'light'"><svg width="1em" height="1em" viewBox="0 0 24 24" class="size-4.5"><path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5" d="M21 12.808c-.5 5.347-5.849 9.14-11.107 7.983C-.078 18.6 1.15 3.909 11.11 3C6.395 9.296 14.619 17.462 21 12.808"/></svg> 251 </span> 252 </button> 253 </li> 254 255 <li> 256 <a class="font-medium items-center justify-center cursor-pointer transition-colors text-center uppercase inline-flex bg-accent hover:bg-accent-hover focus:bg-accent-hover text-accent-contrast font-mono focus-visible:outline-2 focus-visible:-outline-offset-2 focus-visible:outline-indigo-400 px-3 py-1.5 text-xs" target="_blank" href="https://plus.adonisjs.com"> 257 Plus 258 </a> 259 260 </li> 261 262 <li class="hidden md:block"> 263<a href="https://github.com/adonisjs/core" class="flex items-center gap-2 text-foreground-muted hover:text-foreground transition-colors" rel="noopener noreferrer" target="_blank"> 264 <svg width="20px" height="20px" viewBox="0 0 20 20"><path fill="currentColor" d="M20 10.25q0 3.351-1.908 6.027t-4.928 3.703q-.352.068-.514-.093a.54.54 0 0 1-.163-.4V16.67q0-1.295-.677-1.895a9 9 0 0 0 1.335-.24q.591-.16 1.223-.52a3.7 3.7 0 0 0 1.055-.888q.423-.528.69-1.402t.267-2.008q0-1.616-1.028-2.75q.48-1.214-.105-2.723q-.364-.12-1.054.147a7 7 0 0 0-1.198.587l-.495.32a9 9 0 0 0-2.5-.346a9 9 0 0 0-2.5.347a12 12 0 0 0-.553-.36q-.345-.214-1.088-.514q-.741-.3-1.12-.18q-.572 1.507-.09 2.722q-1.03 1.134-1.03 2.75q0 1.134.268 2.002q.267.867.683 1.401a3.5 3.5 0 0 0 1.048.894q.632.36 1.224.52q.593.162 1.335.241q-.52.48-.638 1.375a2.5 2.5 0 0 1-.586.2a3.6 3.6 0 0 1-.742.067q-.43 0-.853-.287q-.423-.288-.723-.834a2.1 2.1 0 0 0-.631-.694q-.384-.267-.645-.32l-.26-.04q-.273 0-.378.06t-.065.153a.7.7 0 0 0 .117.187a1 1 0 0 0 .17.16l.09.066q.287.135.567.508q.28.374.41.68l.13.307q.17.507.574.821q.404.315.872.4q.468.087.905.094q.436.006.723-.047l.299-.053q0 .507.007 1.188l.006.72q0 .24-.17.4q-.168.162-.52.094q-3.021-1.028-4.928-3.703Q0 13.6 0 10.25q0-2.79 1.341-5.145a10.1 10.1 0 0 1 3.64-3.73A9.6 9.6 0 0 1 10 0a9.6 9.6 0 0 1 5.02 1.375a10.1 10.1 0 0 1 3.639 3.73Q20 7.461 20 10.25"/></svg>
265 <span class="font-mono text-14 font-semibold">19K</span> 266 <span class="sr-only">Star adonisjs/core on GitHub</span> 267</a> 268 269 </li> 270 271 <li x-data="" class="flex self-center md:hidden"> 272 <button @click.prevent="$dispatch('toggle-mobile-nav')"><svg width="20px" height="20px" viewBox="0 0 24 24" class="text-foreground-muted hover:text-foreground transition-colors"><path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5" d="M4.5 6.5h15M4.5 12h15m-15 5.5h15"/></svg> 273 <span class="sr-only">Open menu</span> 274 </button> 275 </li> 276 </ul> 277 </nav> 278 </div> 279 </div> 280</header> 281 282 283<div 284 x-data="{ isOpen: false }" 285 x-cloak 286 @toggle-mobile-nav.window="isOpen = !isOpen" 287 x-show="isOpen" 288 class="md:hidden fixed text-center backdrop-blur-xl border-t border-divider bg-nav-bg left-0 right-0 top-26 bottom-0 z-10 px-5 py-10" 289> 290 <ul class="flex flex-col gap-5"> 291 <li> 292<a href="/packages" class="current md:text-sm hover:text-foreground transition-colors text-foreground"> 293 <span>Packages</span> 294</a> 295 296 </li> 297 <li> 298<a href="/wall-of-love" class="md:text-sm hover:text-foreground transition-colors text-foreground-muted"> 299 <span>Wall of love</span> 300</a> 301 302 </li> 303 <li> 304<a href="https://docs.adonisjs.com" class="md:text-sm hover:text-foreground transition-colors text-foreground-muted" rel="noopener noreferrer" target="_blank"> 305 <span>Docs</span> 306</a> 307 308 </li> 309 <li> 310<a href="/blog" class="md:text-sm hover:text-foreground transition-colors text-foreground-muted"> 311 <span>Blog</span> 312</a> 313 314 </li> 315 <li> 316<a href="/roadmap" class="md:text-sm hover:text-foreground transition-colors text-foreground-muted"> 317 <span>Roadmap</span> 318</a> 319 320 </li> 321 <li> 322<a href="/sponsor" class="md:text-sm hover:text-foreground transition-colors text-foreground-muted"> 323 <span>Sponsor</span> 324</a> 325 326 </li> 327 <li> 328<a href="/about" class="md:text-sm hover:text-foreground transition-colors text-foreground-muted"> 329 <span>About</span> 330</a> 331 332 </li> 333 334 <li> 335<a href="https://github.com/adonisjs/core" class="inline-block" rel="noopener noreferrer" target="_blank"> 336 <svg width="24px" height="24px" viewBox="0 0 20 20" class="text-foreground-muted hover:text-foreground transition-colors"><path fill="currentColor" d="M20 10.25q0 3.351-1.908 6.027t-4.928 3.703q-.352.068-.514-.093a.54.54 0 0 1-.163-.4V16.67q0-1.295-.677-1.895a9 9 0 0 0 1.335-.24q.591-.16 1.223-.52a3.7 3.7 0 0 0 1.055-.888q.423-.528.69-1.402t.267-2.008q0-1.616-1.028-2.75q.48-1.214-.105-2.723q-.364-.12-1.054.147a7 7 0 0 0-1.198.587l-.495.32a9 9 0 0 0-2.5-.346a9 9 0 0 0-2.5.347a12 12 0 0 0-.553-.36q-.345-.214-1.088-.514q-.741-.3-1.12-.18q-.572 1.507-.09 2.722q-1.03 1.134-1.03 2.75q0 1.134.268 2.002q.267.867.683 1.401a3.5 3.5 0 0 0 1.048.894q.632.36 1.224.52q.593.162 1.335.241q-.52.48-.638 1.375a2.5 2.5 0 0 1-.586.2a3.6 3.6 0 0 1-.742.067q-.43 0-.853-.287q-.423-.288-.723-.834a2.1 2.1 0 0 0-.631-.694q-.384-.267-.645-.32l-.26-.04q-.273 0-.378.06t-.065.153a.7.7 0 0 0 .117.187a1 1 0 0 0 .17.16l.09.066q.287.135.567.508q.28.374.41.68l.13.307q.17.507.574.821q.404.315.872.4q.468.087.905.094q.436.006.723-.047l.299-.053q0 .507.007 1.188l.006.72q0 .24-.17.4q-.168.162-.52.094q-3.021-1.028-4.928-3.703Q0 13.6 0 10.25q0-2.79 1.341-5.145a10.1 10.1 0 0 1 3.64-3.73A9.6 9.6 0 0 1 10 0a9.6 9.6 0 0 1 5.02 1.375a10.1 10.1 0 0 1 3.639 3.73Q20 7.461 20 10.25"/></svg> 337 <span class="sr-only">GitHub repository</span> 338</a> 339 340 </li> 341 </ul> 342</div> 343 344 345 346 <main> <div x-data="packagesFilter([{"name":"@7nohe\u002Fadonis-bullet","category":"DevTools","npm":"@7nohe\u002Fadonis-bullet","repo":"https:\u002F\u002Fgithub.com\u002F7nohe\u002Fadonis-bullet\u002Ftree\u002Fmain","description":"AdonisJS helper to kill N+1 queries","type":"3rd-party","compatibility":"^6.0.0"},{"name":"@acidiney\u002Fbull-queue","category":"Extensions","npm":"@acidiney\u002Fbull-queue","repo":"https:\u002F\u002Fgithub.com\u002Facidiney\u002Fbull-queue","description":"Queue system based on BullMQ for AdonisJS v6 with bullboard","type":"3rd-party","compatibility":"^6.0.0"},{"name":"@foadonis\u002Fgraphql","category":"Communication","npm":"@foadonis\u002Fgraphql","repo":"https:\u002F\u002Fgithub.com\u002FFriendsOfAdonis\u002FFriendsOfAdonis\u002Ftree\u002Fmain\u002Fpackages\u002Fgraphql","description":"Create GraphQL APIs powered by Apollo with Adonis","type":"3rd-party","compatibility":"^6.0.0","icon":"\u002Fassets\u002Ffoadonis-Cl7a7Wrn.png"},{"name":"@foadonis\u002Fmagnify","category":"Database","npm":"@foadonis\u002Fmagnify","repo":"https:\u002F\u002Fgithub.com\u002FFriendsOfAdonis\u002FFriendsOfAdonis\u002Ftree\u002Fmain\u002Fpackages\u002Fmagnify","description":"Plug and play full-text search for your Adonis application.","type":"3rd-party","compatibility":"^6.0.0","icon":"\u002Fassets\u002Ffoadonis-Cl7a7Wrn.png"},{"name":"@foadonis\u002Fmaintenance","category":"Extensions","npm":"@foadonis\u002Fmaintenance","repo":"https:\u002F\u002Fgithub.com\u002FFriendsOfAdonis\u002FFriendsOfAdonis\u002Ftree\u002Fmain\u002Fpackages\u002Fmaintenance","description":"Safely set your Adonis application in maintenance mode.","type":"3rd-party","compatibility":"^6.0.0","icon":"\u002Fassets\u002Ffoadonis-Cl7a7Wrn.png"},{"name":"@foadonis\u002Fopenapi","category":"DevTools","npm":"@foadonis\u002Fopenapi","repo":"https:\u002F\u002Fgithub.com\u002FFriendsOfAdonis\u002FFriendsOfAdonis\u002Ftree\u002Fmain\u002Fpackages\u002Fopenapi","description":"Generate OpenAPI V3 compliant specifications using decorators","type":"3rd-party","compatibility":"^6.0.0","icon":"\u002Fassets\u002Ffoadonis-Cl7a7Wrn.png"},{"name":"@foadonis\u002Fshopkeeper","category":"Payment","npm":"@foadonis\u002Fshopkeeper","repo":"https:\u002F\u002Fgithub.com\u002FFriendsOfAdonis\u002FFriendsOfAdonis\u002Ftree\u002Fmain\u002Fpackages\u002Fshopkeeper","description":"Adonis Shopkeeper provides an expressive, fluent interface to Stripe's subscription billing services.","type":"3rd-party","compatibility":"^6.0.0","icon":"\u002Fassets\u002Ffoadonis-Cl7a7Wrn.png"},{"name":"@julienbenac\u002Fally-dropbox","category":"Authentication","npm":"@julienbenac\u002Fally-dropbox","repo":"https:\u002F\u002Fgithub.com\u002Fjulienbenac\u002Fally-dropbox","description":"A Dropbox driver for AdonisJS Ally","type":"3rd-party","compatibility":"^6.0.0","icon":"\u002Fassets\u002Fdropbox-CA1x2A35.png"},{"name":"@julienbenac\u002Fally-gerermesaffaires","category":"Authentication","npm":"@julienbenac\u002Fally-gerermesaffaires","repo":"https:\u002F\u002Fgithub.com\u002Fjulienbenac\u002Fally-gerermesaffaires","description":"A GererMesAffaires driver for AdonisJS Ally","type":"3rd-party","compatibility":"^6.0.0","icon":"\u002Fassets\u002Fgerermesaffaires-CryIa3dm.png"},{"name":"@julienbenac\u002Fally-orange","category":"Authentication","npm":"@julienbenac\u002Fally-orange","repo":"https:\u002F\u002Fgithub.com\u002Fjulienbenac\u002Fally-orange","description":"An Orange driver for AdonisJS Ally","type":"3rd-party","compatibility":"^6.0.0","icon":"\u002Fassets\u002Forange-DTlohs76.png"},{"name":"@julienbenac\u002Fally-strava","category":"Authentication","npm":"@julienbenac\u002Fally-strava","repo":"https:\u002F\u002Fgithub.com\u002Fjulienbenac\u002Fally-strava","description":"A Strava driver for AdonisJS Ally","type":"3rd-party","compatibility":"^6.0.0","icon":"\u002Fassets\u002Fstrava-CapEZ5l8.png"},{"name":"@mdsadique-inam\u002Fadonisjs-2fa","category":"Authentication","npm":"@mdsadique-inam\u002Fadonisjs-2fa","repo":"https:\u002F\u002Fgithub.com\u002Fmdsadique-inam\u002Fadonisjs-2fa\u002Ftree\u002Fmain","description":"A Two Factor Authentication Helper for AdonisJS","type":"3rd-party","compatibility":"^6.0.0"},{"name":"@nemoventures\u002Fadonis-jobs","category":"Extensions","npm":"@nemoventures\u002Fadonis-jobs","repo":"https:\u002F\u002Fgithub.com\u002Fnemoengineering\u002Fadonis-jobs","description":"BullMQ integration for AdonisJS, with FlowJobs, Telemetry, UI Dashboard, and more.","type":"3rd-party","compatibility":"^6.0.0","icon":"\u002Fassets\u002Fredis-By815TW3.png"},{"name":"@rlanz\u002Fally-twitch","category":"Authentication","npm":"@rlanz\u002Fally-twitch","repo":"https:\u002F\u002Fgithub.com\u002FRomainLanz\u002Fally-twitch","description":"A Twitch driver for AdonisJS Ally","type":"3rd-party","compatibility":"^6.0.0","icon":"\u002Fassets\u002Ftwitch-BHsm-rQX.png"},{"name":"@rlanz\u002Fbull-queue","category":"Extensions","npm":"@rlanz\u002Fbull-queue","repo":"https:\u002F\u002Fgithub.com\u002Fromainlanz\u002Fadonis-bull-queue","description":"Queue system based on BullMQ for AdonisJS","type":"3rd-party","compatibility":"^5.0.0 || ^6.0.0"},{"name":"@rlanz\u002Fsentry","category":"Monitoring","npm":"@rlanz\u002Fsentry","repo":"https:\u002F\u002Fgithub.com\u002FRomainLanz\u002Fsentry","description":"A wrapper around the Sentry SDK to make it easier to use in a AdonisJS application","type":"3rd-party","compatibility":"^6.0.0","icon":"\u002Fassets\u002Fsentry-DvUybcXM.png"},{"name":"@tpointurier\u002Fally-microsoft","category":"Authentication","npm":"@tpointurier\u002Fally-microsoft","repo":"https:\u002F\u002Fgithub.com\u002FThibaultPointurier\u002Fally-microsoft","description":"A Microsoft driver for AdonisJS Ally","type":"3rd-party","compatibility":"^6.0.0","icon":"\u002Fassets\u002Fmicrosoft-BhnQESdE.png"},{"name":"@tpointurier\u002Fally-patreon","category":"Authentication","npm":"@tpointurier\u002Fally-patreon","repo":"https:\u002F\u002Fgithub.com\u002FThibaultPointurier\u002Fally-patreon","description":"A Patreon driver for AdonisJS Ally","type":"3rd-party","compatibility":"^6.0.0","icon":"\u002Fassets\u002Fpatreon-D_R3Q05F.png"},{"name":"@vbusatta\u002Fadonis-stripe","category":"Payment","npm":"@vbusatta\u002Fadonis-stripe","repo":"https:\u002F\u002Fgithub.com\u002Fvittoriobusatta\u002Fadonis-stripe\u002Ftree\u002Fmain","description":"Provider for AdonisJS 6. Simplifies Stripe integration with webhooks and services.","type":"3rd-party","compatibility":"^6.0.0","icon":"\u002Fassets\u002Fstripe6-ByNcSS0R.png"},{"name":"adonis-2fa","category":"Authentication","npm":"@nulix\u002Fadonis-2fa","repo":"https:\u002F\u002Fgithub.com\u002Fnulix-dev\u002Fadonis-2fa\u002Ftree\u002Fmain","description":"A Two Factor Authentication Helper for AdonisJS","type":"3rd-party","compatibility":"^6.0.0"},{"name":"adonis-attachment","category":"Database","npm":"@jrmc\u002Fadonis-attachment","repo":"https:\u002F\u002Fgithub.com\u002Fbatosai\u002Fadonis-attachment","description":"Transform any field in your Lucid model into an attachment data type, automatically generating various sizes and formats.","type":"3rd-party","compatibility":"^6.0.0"},{"name":"adonis-auditing","category":"Database","npm":"@stouder-io\u002Fadonis-auditing","repo":"https:\u002F\u002Fgithub.com\u002FStouderIO\u002Fadonis-auditing","description":"Audit your Lucid models with ease.","type":"3rd-party","compatibility":"^6.0.0"},{"name":"adonis-breadcrumbs","category":"Extensions","npm":"@artian-techs\u002Fadonis-breadcrumbs","repo":"https:\u002F\u002Fgithub.com\u002FArtian-Techs\u002Fadonis-breadcrumbs","description":"Add breadcrumbs to AdonisJS routes only by defining titles.","type":"3rd-party","compatibility":"^6.0.0"},{"name":"adonis-captcha-guard","category":"Security","npm":"adonis-captcha-guard","repo":"https:\u002F\u002Fgithub.com\u002Fmonojson\u002Fadonis-captcha-guard","description":"Cloudflare Turnstile and Google reCAPTCHA v3 for AdonisJS v6","type":"3rd-party","compatibility":"^6.0.0","icon":"\u002Fassets\u002Fadonis-captcha-guard-hWzOLSys.png"},{"name":"adonis-datatables","category":"Database","npm":"@adityadarma\u002Fadonis-datatables","repo":"https:\u002F\u002Fgithub.com\u002Fadityadarma\u002Fadonis-datatables","description":"Manage your datatable server side for AdonisJS","type":"3rd-party","compatibility":"^6.0.0","icon":"\u002Fassets\u002Fdatatables-CdzlHJyu.png"},{"name":"adonis-etl","category":"Database","npm":"@jrmc\u002Fadonis-etl","repo":"https:\u002F\u002Fgithub.com\u002Fbatosai\u002Fadonis-etl","description":"AdonisJS ETL skaffold commands package - Generate ETL (Extract, Transform, Load) components for your AdonisJS applications.","type":"3rd-party","compatibility":"^6.0.0"},{"name":"adonis-geolite2","ca
346tegory":"Extensions","npm":"@stouder-io\u002Fadonis-geolite2","repo":"https:\u002F\u002Fgithub.com\u002FStouderIO\u002Fadonis-geolite2","description":"Maxmind's GeoLite2 integration for AdonisJS","type":"3rd-party","compatibility":"^5.0.0 || ^6.0.0"},{"name":"adonis-lucid-commands","category":"Database","npm":"@jrmc\u002Fadonis-lucid-commands","repo":"https:\u002F\u002Fgithub.com\u002Fbatosai\u002Fadonis-lucid-commands","description":"A set of commands to help you manage your databases.","type":"3rd-party","compatibility":"^6.0.0"},{"name":"adonis-mcp","category":"Extensions","npm":"@jrmc\u002Fadonis-mcp","repo":"https:\u002F\u002Fgithub.com\u002Fbatosai\u002Fadonis-mcp","description":"MCP (Model Context Protocol) for AdonisJS.","type":"3rd-party","compatibility":"^6.0.0"},{"name":"adonis-service-repository","category":"Extensions","npm":"@adityadarma\u002Fadonis-service-repository","repo":"https:\u002F\u002Fgithub.com\u002Fadityadarma\u002Fadonis-service-repository","description":"Manage your service and repository file on AdonisJS","type":"3rd-party","compatibility":"^6.0.0","icon":"\u002Fassets\u002Fdatatables-CdzlHJyu.png"},{"name":"adonis-slack-logger","category":"Monitoring","npm":"@adityadarma\u002Fadonis-logger-slack","repo":"https:\u002F\u002Fgithub.com\u002Fadityadarma\u002Fadonis-logger-slack","description":"Package logger send to slack for AdonisJS","type":"3rd-party","compatibility":"^6.0.0","icon":"\u002Fassets\u002Fslack-DaXuhpSU.png"},{"name":"adonis-translatable","category":"Database","npm":"@stouder-io\u002Fadonis-translatable","repo":"https:\u002F\u002Fgithub.com\u002FStouderIO\u002Fadonis-translatable","description":"Translatable fields for AdonisJS models.","type":"3rd-party","compatibility":"^6.0.0"},{"name":"adonis-unpoly","category":"Extensions","npm":"@jrmc\u002Fadonis-unpoly","repo":"https:\u002F\u002Fgithub.com\u002Fbatosai\u002Fadonis-unpoly","description":"Provider and middleware unpoly for adonisjs","type":"3rd-party","compatibility":"^6.0.0","icon":"\u002Fassets\u002Funpoly-CfPT5gvf.png"},{"name":"adonisjs-activitylog","category":"Monitoring","npm":"@holoyan\u002Fadonisjs-activitylog","repo":"https:\u002F\u002Fgithub.com\u002Fholoyan\u002Fadonisjs-activitylog","description":"Log activity inside your AdonisJS app","type":"3rd-party","compatibility":"^6.0.0"},{"name":"adonisjs-clickhouse","category":"Database","npm":"adonisjs-clickhouse","repo":"https:\u002F\u002Fgithub.com\u002Fflozdra\u002Fadonisjs-clickhouse\u002F","description":"A wrapper for ClickHouse with support for migrations, seeders, templates, and more.","type":"3rd-party","compatibility":"^6.0.0","icon":"\u002Fassets\u002Fadonisjs-clickhouse-Bv90TnCG.png"},{"name":"adonisjs-jobs","category":"Extensions","npm":"adonisjs-jobs","repo":"https:\u002F\u002Fgithub.com\u002FKABBOUCHI\u002Fadonisjs-jobs","description":"Job processing for AdonisJS","type":"3rd-party","compatibility":"^6.0.0"},{"name":"adonisjs-jwt","category":"Authentication","npm":"@maximemrf\u002Fadonisjs-jwt","repo":"https:\u002F\u002Fgithub.com\u002FMaximeMRF\u002Fadonisjs-jwt\u002Ftree\u002Fmain","description":"Authentication with JWT token for AdonisJS","type":"3rd-party","compatibility":"^6.0.0"},{"name":"adonisjs-maintenance","category":"Extensions","npm":"adonisjs-maintenance","repo":"https:\u002F\u002Fgithub.com\u002FMichaelBelgium\u002Fadonisjs-maintenance","description":"A maintenance mode for the AdonisJS framework","type":"3rd-party","compatibility":"^5.9.0 || ^6.2.0"},{"name":"adonisjs-permissions","category":"Authorization","npm":"@holoyan\u002Fadonisjs-permissions","repo":"https:\u002F\u002Fgithub.com\u002Fholoyan\u002Fadonisjs-permissions","description":"Role permissions system for AdonisJs V6+","type":"3rd-party","compatibility":"^6.0.0"},{"name":"adonisjs-scheduler","category":"Extensions","npm":"adonisjs-scheduler","repo":"https:\u002F\u002Fgithub.com\u002FKABBOUCHI\u002Fadonisjs-scheduler","description":"Task scheduler for AdonisJS","type":"3rd-party","compatibility":"^5.0.0 || ^6.0.0"},{"name":"adonisjs-websocket","category":"Extensions","npm":"adonisjs-websocket","repo":"https:\u002F\u002Fgithub.com\u002FKABBOUCHI\u002Fadonisjs-websocket\u002Ftree\u002Fmaster","description":"Websocket provider for AdonisJS","type":"3rd-party","compatibility":"^6.0.0"},{"name":"adonisjs\u002Fcache","category":"Storage","npm":"@adonisjs\u002Fcache","repo":"https:\u002F\u002Fgithub.com\u002Fadonisjs\u002Fcache\u002Ftree\u002F1.x","description":"Official caching module for AdonisJS framework","type":"official","compatibility":"^6.0.0","icon":"\u002Fassets\u002Fadonis-DZiRc8MD.png"},{"name":"adonisjsx","category":"Rendering","npm":"adonisjsx","repo":"https:\u002F\u002Fgithub.com\u002Fmacieklad\u002Fadonisjsx\u002Ftree\u002Fmain","description":"JSX as the main view engine for AdonisJS","type":"3rd-party","compatibility":"^6.0.0","icon":"\u002Fassets\u002Fjsx-DQdXvNez.png"},{"name":"advance-redis-rpc","category":"Communication","npm":"@craftnotion\u002Fadonisjs-advance-redis-rpc","repo":"https:\u002F\u002Fgithub.com\u002FCraftnotion\u002Fadonis-advance-redis-rpc","description":"Advance RPC Provider for Adonisjs, based on Redis pub\u002Fsub transport","type":"3rd-party","compatibility":"^5.0.0 || ^6.0.0"},{"name":"ally","category":"Authentication","npm":"@adonisjs\u002Fally","repo":"https:\u002F\u002Fgithub.com\u002Fadonisjs\u002Fally","description":"Social authentication provider for AdonisJS","type":"official","compatibility":"^5.0.0 || ^6.0.0","icon":"\u002Fassets\u002Fadonis-DZiRc8MD.png"},{"name":"Ally Vk Driver","category":"Authentication","npm":"adonis6_ally_vk","repo":"https:\u002F\u002Fgithub.com\u002Fdmitry-makovsky\u002Fadonis6_ally_vk\u002Ftree\u002Fmain","description":"AdonisJS 6 Ally Vk.com (Vkontakte.ru) Driver","type":"3rd-party","compatibility":"^6.0.0","icon":"\u002Fassets\u002Fvk-DBfMeD7A.png"},{"name":"Ally Yandex Driver","category":"Authentication","npm":"adonis6_ally_yandex","repo":"https:\u002F\u002Fgithub.com\u002Fdmitry-makovsky\u002Fadonis6_ally_yandex\u002Ftree\u002Fmain","description":"AdonisJS 6 Ally Yandex Driver","type":"3rd-party","compatibility":"^6.0.0","icon":"\u002Fassets\u002Fyandex-BuURPs1j.png"},{"name":"ally-blizzard","category":"Authentication","npm":"ally-blizzard","repo":"https:\u002F\u002Fgithub.com\u002Ftom-laplace\u002Fally-blizzard","description":"A Blizzard\u002FBattle.net driver for AdonisJS Ally","type":"3rd-party","compatibility":"^6.0.0","icon":"\u002Fassets\u002Fblizzard-qqlKkHD6.png"},{"name":"ally-tiktok","category":"Authentication","npm":"adonis-ally-tiktok","repo":"https:\u002F\u002Fgithub.com\u002Fmonojson\u002Fadonis-ally-tiktok","description":"An TikTok driver for AdonisJS Ally","type":"3rd-party","compatibility":"^6.0.0","icon":"\u002Fassets\u002Ftiktok-BkPeRgTQ.png"},{"name":"api-client","category":"Testing","npm":"@japa\u002Fapi-client","repo":"https:\u002F\u002Fgithub.com\u002Fjapa\u002Fapi-client\u002Ftree\u002Fdevelop","description":"Browser and API testing client for Japa. Built on top of Playwright","type":"official","compatibility":"^5.0.0 || ^6.0.0","icon":"\u002Fassets\u002Fjapa-DwEWWpfm.png"},{"name":"auth","category":"Authentication","npm":"@adonisjs\u002Fauth","repo":"https:\u002F\u002Fgithub.com\u002Fadonisjs\u002Fauth","description":"Offical authentication provider for Adonis framework","type":"official","compatibility":"^5.0.0 || ^6.0.0","icon":"\u002Fassets\u002Fadonis-DZiRc8MD.png"},{"name":"bouncer","category":"Authorization","npm":"@adonisjs\u002Fbouncer","repo":"https:\u002F\u002Fgithub.com\u002Fadonisjs\u002Fbouncer","description":"Authorization layer for AdonisJS","type":"official","compatibility":"^5.0.0 || ^6.0.0","icon":"\u002Fassets\u002Fadonis-DZiRc8MD.png"},{"name":"browser-client","category":"Testing","npm":"@japa\u002Fbrowser-client","repo":"https:\u002F\u002Fgithub.com\u002Fjapa\u002Fbrowser-client\u002Ftree\u002Fdevelop","description":"Browser client built on top of Playwright for writing end to end tests","type":"official","compatibility":"^5.0.0 || ^6.0.0","icon":"\u002Fassets\u002Fjapa-DwEWWpfm.png"},{"name":"clickhouse","category":"Database","npm":"adonis-clickhouse","repo":"https:\u002F\u002Fgithub.com\u002Fshiny\u002Fadonis-clickhouse","description":"A ClickHouse provider for AdonisJS","type":"3rd-party","compatibility":"^6.0.0","icon":"\u002Fassets\u002Fclickhouse-Dhs7NJyD.png"},{"name":"CodeSyncr\u002Fadonisjs-whatsapp","category":"Messaging","npm":"@brighthustle\u002Fadonisjs-whatsapp","repo":"https:\u002F\u002Fgithub.com\u002FCodeSyncr\u002Fadonisjs-whatsapp","description":"Whatsapp API integration with multiple business api numbers compatibility (database provider).","type":"3rd-party","compatibility":"^5.0.0 || ^6.0.0","icon":"\u002Fassets\u002Fwhatsapp-hwzMySNF.png"},{"name":"Edge VS Code","category":"DevTools","repo":"https:\u002F\u002Fgithub.com\u002Fedge-js\u002Fedge-vscode","description":"Official VS Code extension for Edge.js","type":"official","compatibility":"^5.0.0 || ^6.0.0","icon":"\u002Fassets\u002Fedge-YoqSd_p2.jpeg"},{"name":"Edge Zed","category":"DevTools","repo":"https:\u002F\u002Fgithub.com\u002FHexacker\u002Fzed-edge\u002Ftree\u002Fmain","description":"Zed extension for Edge.js","type":"3rd-party","compatibility":"^6.0.0","icon":"\u002Fassets\u002Fzed-DLIYxSD7.png"},{"name":"edge-components","category":"Extensions","npm":"@jrmc\u002Fedge-components","repo":"https:\u002F\u002Fgithub.com\u002Fbatosai\u002Fedge-components","description":"The most popular, free and open-source Tailwind CSS component library in edge template engine with daisyUI and Alpine.js","type":"3rd-party","compatibility":"^6.0.0"},{"name":"edge-iconify","category":"Rendering","npm":"edge-iconify","repo":"https:\u002F\u002Fgithub.com\u002Fedge-js\u002Fedge-iconify\u002Ftree\u002Fmain","description":"Iconify integration for the Edge template engine","type":"official","compatibility":"^5.0.0 || ^6.0.0","icon":"\u002Fassets\u002Fedge-YoqSd_p2.jpeg"},{"name":"edge-tags","category":"Rendering","npm":"edge-tags","repo":"https:\u002F\u002Fgithub.com\u002FKABBOUCHI\u002Fedge-tags\u002Ftree\u002Fmaster","description":"Transpile HTML x-tags into Edge.js components","type":"3rd-party","compatibility":"^6.0.0"},{"name":"expect-type","category":"Testing","npm":"@japa\u002Fexpect-type","repo":"https:\u002F\u002Fgithub.com\u002Fjapa\u002Fexpect-type\u002Ftree\u002Fdevelop","description":"
346Write assertions for TypeScript types","type":"official","compatibility":"^5.0.0 || ^6.0.0","icon":"\u002Fassets\u002Fjapa-DwEWWpfm.png"},{"name":"file-system","category":"Testing","npm":"@japa\u002Ffile-system","repo":"https:\u002F\u002Fgithub.com\u002Fjapa\u002Ffile-system\u002Ftree\u002Fdevelop","description":"File system plugin for writing assertions for files and directories","type":"official","compatibility":"^5.0.0 || ^6.0.0","icon":"\u002Fassets\u002Fjapa-DwEWWpfm.png"},{"name":"flydrive-azure","category":"Storage","npm":"flydrive-azure","repo":"https:\u002F\u002Fgithub.com\u002Fnecessarylion\u002Fflydrive-azure-driver","description":"Flydrive - Azure blob storage driver","type":"3rd-party","compatibility":"^6.0.0","icon":"\u002Fassets\u002Fazure-DOsrjG9D.png"},{"name":"girouette","category":"Extensions","npm":"@adonisjs-community\u002Fgirouette","repo":"https:\u002F\u002Fgithub.com\u002Fadonisjs-community\u002Fgirouette","description":"An AdonisJS package allowing decorators-based routing.","type":"3rd-party","compatibility":"^6.0.0","icon":"\u002Fassets\u002Fgirouette-BUjQR8IX.png"},{"name":"i18n","category":"Extensions","npm":"@adonisjs\u002Fi18n","repo":"https:\u002F\u002Fgithub.com\u002Fadonisjs\u002Fi18n","description":"Internationalization for AdonisJS apps","type":"official","compatibility":"^5.0.0 || ^6.0.0","icon":"\u002Fassets\u002Fadonis-DZiRc8MD.png"},{"name":"inertia","category":"Rendering","npm":"@adonisjs\u002Finertia","repo":"https:\u002F\u002Fgithub.com\u002Fadonisjs\u002Finertia\u002Ftree\u002Fmain","description":"Official Inertia.js adapter for AdonisJS","type":"official","compatibility":"^6.0.0","icon":"\u002Fassets\u002Finertia-CyuT29y-.png"},{"name":"InertiaJS Starter Kit","category":"Starter kits","repo":"https:\u002F\u002Fgithub.com\u002Ffilipebraida\u002Fadonisjs-starter-kit","description":"AdonisJS Monorepo, Inertia, Shadcn, React ...","type":"3rd-party","compatibility":"^6.0.0"},{"name":"Izzyjs Route","category":"Extensions","npm":"@izzyjs\u002Froute","repo":"https:\u002F\u002Fgithub.com\u002Fizzyjs\u002Froute\u002Ftree\u002Fmain","description":"Use your AdonisJs routes in your Inertia.js application","type":"3rd-party","compatibility":"^6.0.0"},{"name":"lock","category":"Extensions","npm":"@adonisjs\u002Flock","repo":"https:\u002F\u002Fgithub.com\u002Fadonisjs\u002Flock\u002Ftree\u002Fmain","description":"Atomic locks (mutex) for AdonisJS applications","type":"official","compatibility":"^6.0.0","icon":"\u002Fassets\u002Fadonis-DZiRc8MD.png"},{"name":"lucid","category":"Database","npm":"@adonisjs\u002Flucid","repo":"https:\u002F\u002Fgithub.com\u002Fadonisjs\u002Flucid","description":"SQL ORM built on top of Active Record pattern","type":"official","compatibility":"^5.0.0 || ^6.0.0","icon":"\u002Fassets\u002Fadonis-DZiRc8MD.png"},{"name":"lucid-filter","category":"Database","npm":"adonis-lucid-filter","repo":"https:\u002F\u002Fgithub.com\u002Flookinlab\u002Fadonis-lucid-filter","description":"Addon for filtering AdonisJS Lucid ORM","type":"3rd-party","compatibility":"^5.0.0 || ^6.0.0"},{"name":"lucid-soft-deletes","category":"Database","npm":"adonis-lucid-soft-deletes","repo":"https:\u002F\u002Fgithub.com\u002Flookinlab\u002Fadonis-lucid-soft-deletes","description":"Addon for soft deletes AdonisJS Lucid ORM","type":"3rd-party","compatibility":"^5.0.0 || ^6.0.0"},{"name":"mailer","category":"Messaging","npm":"@adonisjs\u002Fmail","repo":"https:\u002F\u002Fgithub.com\u002Fadonisjs\u002Fmail","description":"
346Mail provider for adonis framework and has support for all common mailing services to send emails","type":"official","compatibility":"^5.0.0 || ^6.0.0","icon":"\u002Fassets\u002Fadonis-DZiRc8MD.png"},{"name":"modules","category":"DevTools","npm":"@adonisjs-community\u002Fmodules","repo":"https:\u002F\u002Fgithub.com\u002Fadonisjs-community\u002Fmodules\u002Ftree\u002Fmain","description":"Modules for AdonisJS","type":"3rd-party","compatibility":"^6.0.0","icon":"\u002Fassets\u002Fmodules-CWGO4yQX.png"},{"name":"prometheus","category":"Monitoring","npm":"@julr\u002Fadonisjs-prometheus","repo":"https:\u002F\u002Fgithub.com\u002FJulien-R44\u002Fadonisjs-prometheus","description":"ð Prometheus integration for AdonisJS","type":"3rd-party","compatibility":"^6.0.0","icon":"\u002Fassets\u002Fprometheus-BA7c5XF5.png"},{"name":"Rabbitmq","category":"Messaging","npm":"rabbitmq-adonis-v6","repo":"https:\u002F\u002Fgithub.com\u002Fmvargaslandolfi1993\u002Frabbitmq-adonis-v6","description":"Rabbitmq provider for adonisjs v6 framework","type":"3rd-party","compatibility":"^6.0.0"},{"name":"react-adonisjs","category":"Rendering","npm":"@matstack\u002Freact-adonisjs","repo":"https:\u002F\u002Fgithub.com\u002Fjarle\u002Freact-adonisjs","description":"Build fullstack React Router applications with AdonisJS","type":"3rd-party","compatibility":"^6.0.0","icon":"\u002Fassets\u002Freact-router-HFkbyMpy.png"},{"name":"redis","category":"Database","npm":"@adonisjs\u002Fredis","repo":"https:\u002F\u002Fgithub.com\u002Fadonisjs\u002Fredis","description":"AdonisJS addon for Redis","type":"official","compatibility":"^5.0.0 || ^6.0.0","icon":"\u002Fassets\u002Fredis-By815TW3.png"},{"name":"resque","category":"Extensions","npm":"adonis-resque","repo":"https:\u002F\u002Fgithub.com\u002Fshiny\u002Fadonis-resque","description":"A Node Resque Queue for AdonisJS v6","type":"3rd-party","compatibility":"^6.0.0","icon":"\u002Fassets\u002Fresque-ZOu291Ww.png"},{"name":"sail","category":"DevTools","npm":"adonis-sail","repo":"https:\u002F\u002Fgithub.com\u002FJulien-R44\u002Fadonis-sail","description":"âµGenerate a ready-to-use local docker environment for your Adonis application","type":"3rd-party","compatibility":"^5.0.0 || ^6.0.0","icon":"\u002Fassets\u002Fsail-D5iqwOqW.png"},{"name":"session","category":"Extensions","npm":"@adonisjs\u002Fsession","repo":"https:\u002F\u002Fgithub.com\u002Fadonisjs\u002Fsession","description":"Session provider for AdonisJS","type":"official","compatibility":"^5.0.0 || ^6.0.0","icon":"\u002Fassets\u002Fadonis-DZiRc8MD.png"},{"name":"shield","category":"Security","npm":"@adonisjs\u002Fshield","repo":"https:\u002F\u002Fgithub.com\u002Fadonisjs\u002Fshield","description":"A middleware for AdonisJS to keep web applications secure from common web attacks","type":"official","compatibility":"^5.0.0 || ^6.0.0","icon":"\u002Fassets\u002Fadonis-DZiRc8MD.png"},{"name":"snapshot-testing","category":"Testing","npm":"@japa\u002Fsnapshot","repo":"https:\u002F\u002Fgithub.com\u002Fjapa\u002Fsnapshot","description":"Snapshot testing plugin for Japa","type":"official","compatibility":"^5.0.0 || ^6.0.0","icon":"\u002Fassets\u002Fjapa-DwEWWpfm.png"},{"name":"sooluh\u002Fadonisjs-grammy","category":"Messaging","npm":"adonisjs-grammy","repo":"https:\u002F\u002Fgithub.com\u002Fsooluh\u002Fadonisjs-grammy","description":"GrammY Web Framework Adapter for AdonisJS","type":"3rd-party","compatibility":"^6.0.0","icon":"\u002Fassets\u002Ftelegram-CXGvvr9V.png"},{"name":"transmit","category":"Communication","npm":"@adonisjs\u002Ftransmit","repo":"https:\u002F\u002Fgithub.com\u002Fadonisjs\u002Ftransmit\u002Ftree\u002Fmain","description":"A Server-Sent-Event module bringing real-time capabilities to AdonisJS.","type":"official","compatibility":"^6.0.0","icon":"\u002Fassets\u002Fadonis-DZiRc8MD.png"},{"name":"Tuyau","category":"Communication","npm":"@tuyau\u002Fclient","repo":"https:\u002F\u002Fgithub.com\u002FJulien-R44\u002Ftuyau","description":"RPC \u002F End-to-end typesafe client For AdonisJS, Ziggy-like helpers","type":"3rd-party","compatibility":"^6.0.0","icon":"\u002Fassets\u002Ftuyau-C9Y2YAS3.png"},{"name":"Unpoly Starter Kit","category":"Starter kits","repo":"https:\u002F\u002Fgithub.com\u002Fbatosai\u002Fadonis-starter-kit","description":"AdonisJS, Unpoly, AlpineJS, DaisyUI...","type":"3rd-party","compatibility":"^6.0.0"},{"name":"vite","category":"Rendering","npm":"@adonisjs\u002Fvite","repo":"https:\u002F\u002Fgithub.com\u002Fadonisjs\u002Fvite\u002Ftree\u002Fmain","description":"Vite plugin for Adonis.js","type":"official","compatibility":"^6.0.0","icon":"\u002Fassets\u002Fvite-BFizW4WK.png"},{"name":"vscode-extension","category":"DevTools","repo":"https:\u002F\u002Fgithub.com\u002FJulien-R44\u002Fadonis-vscode-extension","description":"ð» Official VS Code Extension for AdonisJS","type":"official","compatibility":"^5.0.0 || ^6.0.0","icon":"\u002Fassets\u002Fvscode-BEY5Nicz.png"}])"><div class="hero text-center"> 347 <div class="container mx-auto px-5 lg:px-10 py-24 lg:border-x border-divider relative"> 348 <h1 349 class="font-display text-34 lg:text-42 text-foreground leading-10 lg:leading-52 tracking-tight" 350 > 351 Browse the AdonisJS package directory 352 </h1> 353 <p 354 class="text-16 lg:text-18 text-foreground-muted max-w-xl sm:px-2.5 mx-auto mt-5 mb-6 lg:mt-3 leading-7" 355 > 356 Find the packages you need. Official packages for core functionality and community packages for specialized features and integrations. 357 </p> 358 <div class="relative max-w-96 mx-auto"><svg width="1em" height="1em" viewBox="0 0 24 24" class="size-6 absolute top-1/2 left-4.5 transform -translate-y-1/2 text-foreground-muted"><path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5" d="M19 11.5a7.5 7.5 0 1 1-15 0a7.5 7.5 0 0 1 15 0m-2.107 5.42l3.08 3.08"/></svg> 359 360<input class="w-full px-4 py-2.5 border border-control-line bg-control text-foreground rounded-md text-foreground-muted placeholder-muted-2 pl-12" type="search" x-model="search" placeholder="Search packages" /> 361 362 </div> 363 364 <div 365 class="absolute inset-0 pointer-events-none -z-1 bg-hero-pattern bg-position-[60%] md:bg-top bg-no-repeat" 366 ></div> 367 </div> 368</div> 369 370 371 <div class="container mx-auto"> 372 <div 373 class="lg:border-l lg:border-r border-t border-divider grid lg:grid-cols-[300px_1fr] relative" 374 > 375<aside 376 class="px-5 pt-8 lg:pt-14 lg:pb-12 lg:pl-28 lg:pr-0 lg:sticky lg:top-18 self-start backdrop-blur-2xl whitespace-nowrap overflow-auto lg:mb-6 lg:max-h-[calc(100dvh-(var(--spacing)*18))]" 377> 378 <label class="text-14 inline-flex items-center gap-2 select-none text-foreground mb-5 lg:mb-10"> 379 <span class="inline-flex items-center cursor-pointer relative"> 380 <input 381 type="checkbox" 382 x-model="officialOnly" 383 class="peer size-4 cursor-pointer transition-all appearance-none rounded shadow hover:shadow-md border border-control-line hover:border-control-line-hover" 384 id="check" 385 />
386 <span 387 class="absolute inset-0 flex items-center justify-center text-foreground opacity-0 peer-checked:opacity-100 pointer-events-none" 388 ><svg width="1em" height="1em" viewBox="0 0 24 24" class="size-3"><path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5" d="m6 13.626l1.606 1.722c.886.95 1.329 1.424 1.825 1.574c.436.131.9.096 1.315-.1c.473-.224.852-.761 1.612-1.836L18 7"/></svg> 389 </span> 390 </span> 391 Official packages 392 </label> 393 394 <span class="hidden lg:block uppercase text-12 font-mono text-foreground mb-4">categories</span> 395 396 <nav> 397 <ul 398 class="flex lg:flex-col gap-5 lg:gap-2.5 border-b lg:border-none border-divider overflow-x-auto" 399 > 400 <li class="flex-1 md:flex-initial"> 401<a href="/packages" class="current text-center lg:text-left block py-3 lg:py-1 text-sm transition-colors relative w-full text-accent-text font-medium before:absolute before:right-0 before:bottom-0 lg:before:top-0 before:w-full lg:before:w-auto before:border-b-2 lg:before:border-r-2 before:border-indigo-500"> 402 <span class="tracking-wide">All</span> 403</a> 404 405 </li> 406 <li class="flex-1 md:flex-initial"> 407<a href="/packages/authentication" class="text-center lg:text-left block py-3 lg:py-1 text-sm transition-colors relative w-full text-foreground-muted hover:text-foreground"> 408 <span class="tracking-wide">Authentication</span> 409</a> 410 411 </li> 412 <li class="flex-1 md:flex-initial"> 413<a href="/packages/authorization" class="text-center lg:text-left block py-3 lg:py-1 text-sm transition-colors relative w-full text-foreground-muted hover:text-foreground"> 414 <span class="tracking-wide">Authorization</span> 415</a> 416 417 </li> 418 <li class="flex-1 md:flex-initial"> 419<a href="/packages/communication" class="text-center lg:text-left block py-3 lg:py-1 text-sm transition-colors relative w-full text-foreground-muted hover:text-foreground"> 420 <span class="tracking-wide">Communication</span> 421</a> 422 423 </li> 424 <li class="flex-1 md:flex-initial"> 425<a href="/packages/database" class="text-center lg:text-left block py-3 lg:py-1 text-sm transition-colors relative w-full text-foreground-muted hover:text-foreground"> 426 <span class="tracking-wide">Database</span> 427</a> 428 429 </li> 430 <li class="flex-1 md:flex-initial"> 431<a href="/packages/devtools" class="text-center lg:text-left block py-3 lg:py-1 text-sm transition-colors relative w-full text-foreground-muted hover:text-foreground"> 432 <span class="tracking-wide">DevTools</span> 433</a> 434 435 </li> 436 <li class="flex-1 md:flex-initial"> 437<a href="/packages/extensions" class="text-center lg:text-left block py-3 lg:py-1 text-sm transition-colors relative w-full text-foreground-muted hover:text-foreground"> 438 <span class="tracking-wide">Extensions</span> 439</a> 440 441 </li> 442 <li class="flex-1 md:flex-initial"> 443<a href="/packages/messaging" class="text-center lg:text-left block py-3 lg:py-1 text-sm transition-colors relative w-full text-foreground-muted hover:text-foreground"> 444 <span class="tracking-wide">Messaging</span> 445</a> 446 447 </li> 448 <li class="flex-1 md:flex-initial"> 449<a href="/packages/monitoring" class="text-center lg:text-left block py-3 lg:py-1 text-sm transition-colors relative w-full text-foreground-muted hover:text-foreground"> 450 <span class="tracking-wide">Monitoring</span> 451</a> 452 453 </li> 454 <li class="flex-1 md:flex-initial"> 455<a href="/packages/payment" class="text-center lg:text-left block py-3 lg:py-1 text-sm transition-colors relative w-full text-foreground-muted hover:text-foreground"> 456 <span class="tracking-wide">Payment</span> 457</a> 458 459 </li> 460 <li class="flex-1 md:flex-initial"> 461<a href="/packages/rendering" class="text-center lg:text-left block py-3 lg:py-1 text-sm transition-colors relative w-full text-foreground-muted hover:text-foreground"> 462 <span class="tracking-wide">Rendering</span> 463</a> 464 465 </li> 466 <li class="flex-1 md:flex-initial"> 467<a href="/packages/security" class="text-center lg:text-left block py-3 lg:py-1 text-sm transition-colors relative w-full text-foreground-muted hover:text-foreground">
468 <span class="tracking-wide">Security</span> 469</a> 470 471 </li> 472 <li class="flex-1 md:flex-initial"> 473<a href="/packages/starter-kits" class="text-center lg:text-left block py-3 lg:py-1 text-sm transition-colors relative w-full text-foreground-muted hover:text-foreground"> 474 <span class="tracking-wide">Starter kits</span> 475</a> 476 477 </li> 478 <li class="flex-1 md:flex-initial"> 479<a href="/packages/storage" class="text-center lg:text-left block py-3 lg:py-1 text-sm transition-colors relative w-full text-foreground-muted hover:text-foreground"> 480 <span class="tracking-wide">Storage</span> 481</a> 482 483 </li> 484 <li class="flex-1 md:flex-initial"> 485<a href="/packages/testing" class="text-center lg:text-left block py-3 lg:py-1 text-sm transition-colors relative w-full text-foreground-muted hover:text-foreground"> 486 <span class="tracking-wide">Testing</span> 487</a> 488 489 </li> 490 </ul> 491 </nav> 492</aside> 493 494 495 <section class="lg:border-l border-divider pt-9 lg:pt-14 pb-20"> 496 497 <div x-show="filteredPackages.length === 0" class="text-center py-20 px-4"> 498 <p class="text-foreground-muted mb-4">No packages found matching your criteria.</p> 499 <button 500 x-show="hasActiveFilters" 501 x-on:click="clearFilters()" 502 class="text-foreground hover:text-cta-hover transition-colors cursor-pointer" 503 > 504 Clear all filters 505 </button> 506 </div> 507 508 <div 509 x-show="filteredPackages.length > 0" 510 class="grid sm:grid-cols-2 md:grid-cols-3 gap-6 pl-4 lg:pl-17.5 pr-4 lg:pr-10" 511 > 512 <template x-for="pkg in filteredPackages" :key="pkg.name"> 513 <a 514 :href="pkg.repo" 515 target="_blank" 516 rel="noopener noreferrer" 517 class="border border-control-line bg-control rounded-md p-6 block hover:border-control-line-hover hover:bg-control-hover transition-colors" 518 > 519 <div class="flex justify-between items-center mb-6.5"> 520 <template x-if="pkg.icon"> 521 <img :src="pkg.icon" alt="" class="size-7.5 object-contain" /> 522 </template> 523 <template x-if="!pkg.icon && pkg.type !== 'official'"> 524 <span class="size-7.5 text-muted-2"><svg width="1em" height="1em" viewBox="0 0 24 24" class="size-7.5"><path fill="currentColor" d="M11.669 2.282c.218-.043.443-.043.662 0c.251.048.479.167.691.277l.053.028l8.27 4.28a.75.75 0 0 1 .405.666v7.898c0 .283.002.583-.093.862a1.8 1.8 0 0 1-.395.652c-.205.214-.473.351-.723.48l-.063.033l-8.131 4.208a.75.75 0 0 1-.69 0l-8.131-4.208l-.063-.033c-.25-.129-.518-.266-.723-.48a1.8 1.8 0 0 1-.395-.652c-.095-.28-.094-.58-.093-.863V7.533a.75.75 0 0 1 .405-.666l8.269-4.28l.053-.027c.213-.111.44-.23.692-.278m.226 1.496a7 7 0 0 0-.282.141L4.668 7.514L12 11.102l7.332-3.588l-6.946-3.595a7 7 0 0 0-.282-.141l-.058-.024m-.796 16.013v-7.362l-7.5-3.67v6.624c0 .187 0 .294.005.375l.009.078a.3.3 0 0 0 .057.095c.005.004.021.017.064.042c.068.042.163.09.328.176zm.645-15.99l.06-.023z"/></svg> 525 </span> 526 </template> 527 <span 528 class="text-12 px-3 py-1.5 text-foreground-muted border border-line rounded-2xl" 529 x-text="pkg.category" 530 ></span> 531 </div> 532 533 <h2 534 class="text-19 text-foreground font-medium leading-6 mb-1" 535 x-text="pkg.name" 536 ></h2> 537 <p 538 class="text-14 text-foreground-muted leading-5.5 tracking-wide" 539 x-text="pkg.description" 540 ></p> 541 </a> 542 </template> 543 </div> 544 </section> 545 </div> 546 </div> 547 </div></main> 548 549<div class="border-t border-divider"> 550 <div class="container mx-auto px-5 lg:px-10 pt-15 md:pt-30 lg:border-x border-divider"> 551 <div class="lg:px-22.5 mb-30 md:mb-52 space-y-7 sm:space-y-5"> 552 <div class="flex flex-col sm:flex-row gap-1.5 sm:gap-3"> 553 <label class="text-14 text-foreground tracking-wide">VSCode Extensions</label> 554 <div class="flex-1 border-b border-dashed border-line sm:mb-1.5"></div> 555 <div class="flex flex-wrap gap-5.5 text-14"> 556 557<a href="https://marketplace.visualstudio.com/items?itemName=jripouteau.adonis-vscode-extension" class="relative hover:text-foreground transition-colors not-last:after:content-['/'] after:pointer-events-none after:text-foreground-muted after:absolute after:-right-3.5" rel="noopener noreferrer" target="_blank"> 558 AdonisJS 559</a> 560 561 562<a href="https://marketplace.visualstudio.com/items?itemName=AdonisJS.vscode-edge" class="relative hover:text-foreground transition-colors not-last:after:content-['/'] after:pointer-events-none after:text-foreground-muted after:absolute after:-right-3.5" rel="noopener noreferrer" target="_blank"> 563 Edge 564</a> 565 566 567<a href="https://marketplace.visualstudio.com/items?itemName=jripouteau.japa-vscode" class="relative hover:text-foreground transition-colors not-last:after:content-['/'] after:pointer-events-none after:text-foreground-muted after:absolute after:-right-3.5" rel="noopener noreferrer" target="_blank"> 568 Japa 569</a> 570 571 </div> 572 </div> 573 <div class="flex flex-col sm:flex-row gap-1.5 sm:gap-3"> 574 <label class="text-14 text-foreground tracking-wide">Community</label> 575 <div class="flex-1 border-b border-dashed border-line sm:mb-1.5"></div> 576 <div class="flex flex-wrap gap-5.5 text-14"> 577 578<a href="https://discord.com/invite/vDcEjq6" class="relative hover:text-foreground transition-colors not-last:after:content-['/'] after:pointer-events-none after:text-foreground-muted after:absolute after:-right-3.5" rel="noopener noreferrer" target="_blank"> 579 Discord 580</a> 581 582 583<a href="https://x.com/adonisframework" class="relative hover:text-foreground transition-colors not-last:after:content-['/'] after:pointer-events-none after:text-foreground-muted after:absolute after:-right-3.5" rel="noopener noreferrer" target="_blank"> 584 Twitter 585</a> 586 587 588<a href="https://github.com/adonisjs" class="relative hover:text-foreground transition-colors not-last:after:content-['/'] after:pointer-events-none after:text-foreground-muted after:absolute after:-right-3.5" rel="noopener noreferrer" target="_blank"> 589 GitHub 590</a> 591 592 593<a href="https://github.com/orgs/adonisjs/discussions" class="relative hover:text-foreground transition-colors not-last:after:content-['/'] after:pointer-events-none after:text-foreground-muted after:absolute after:-right-3.5" rel="noopener noreferrer" target="_blank"> 594 Forum 595</a> 596 597 </div> 598 </div> 599 <div class="flex flex-col sm:flex-row gap-1.5 sm:gap-3"> 600 <label class="text-14 text-foreground tracking-wide">Resources</label> 601 <div class="flex-1 border-b border-dashed border-line sm:mb-1.5"></div> 602 <div class="flex flex-wrap gap-5.5 text-14"> 603 604<a href="/stories" class="relative hover:text-foreground transition-colors not-last:after:content-['/'] after:pointer-events-none after:text-foreground-muted after:absolute after:-right-3.5"> 605 Stories 606</a> 607 608 609<a href="/about" class="relative hover:text-foreground transition-colors not-last:after:content-['/'] after:pointer-events-none after:text-foreground-muted after:absolute after:-right-3.5"> 610 About 611</a> 612 613 614<a href="/roadmap" class="relative hover:text-foreground transition-colors not-last:after:content-['/'] after:pointer-events-none after:text-foreground-muted after:absolute after:-right-3.5"> 615 Roadmap 616</a> 617 618 619<a href="/blog" class="relative hover:text-foreground transition-colors not-last:after:content-['/'] after:pointer-events-none after:text-foreground-muted after:absolute after:-right-3.5"> 620 Blog 621</a> 622 623 624<a href="/packages" class="current relative hover:text-foreground transition-colors not-last:after:content-['/'] after:pointer-events-none after:text-foreground-muted after:absolute after:-right-3.5"> 625 Packages 626</a> 627 628 629<a href="/contributors" class="relative hover:text-foreground transition-colors not-last:after:content-['/'] after:pointer-events-none after:text-foreground-muted after:absolute after:-right-3.5"> 630 Contributors 631</a> 632 633 634<a href="/support" class="relative hover:text-foreground transition-colors not-last:after:content-['/'] after:pointer-events-none after:text-foreground-muted after:absolute after:-right-3.5"> 635 Support 636</a> 637 638 639<a href="/brand" class="relative hover:text-foreground transition-colors not-last:after:content-['/'] after:pointer-events-none after:text-foreground-muted after:absolute after:-right-3.5"> 640 Brand 641</a> 642 643 644<a href="/sponsor" class="relative hover:text-foreground transition-colors not-last:after:content-['/'] after:pointer-events-none after:text-foreground-muted after:absolute after:-right-3.5"> 645 Sponsor 646</a> 647 648 649<a href="/team" class="relative hover:text-foreground transition-colors not-last:after:content-['/'] after:pointer-events-none after:text-foreground-muted after:absolute after:-right-3.5"> 650 Team 651</a> 652 653 </div> 654 </div> 655 </div> 656 657 <div> 658 <div> 659 <svg 660 class="w-full" 661 xmlns="http://www.w3.org/2000/svg" 662 width="1248"
663 viewBox="0 0 1248 277" 664 fill="none" 665 > 666 <mask 667 id="b" 668 style="mask-type:alpha" 669 maskUnits="userSpaceOnUse" 670 x="0" 671 y="0" 672 width="1248" 673 height="281" 674 > 675 <g clip-path="url(#a)" fill="var(--color-border)"> 676 <path 677 d="M1162.91 280.9c-28.36 0-50.9-5.698-67.62-17.094-16.71-11.395-25.83-27.096-27.35-47.102h50.9c1.27 8.61 5.58 15.195 12.92 19.753 7.6 4.305 17.98 6.457 31.15 6.457 11.9 0 20.51-1.646 25.83-4.938 5.57-3.545 8.36-8.483 8.36-14.814 0-4.812-1.65-8.483-4.94-11.016-3.04-2.785-8.74-5.064-17.09-6.837l-31.15-6.458c-23.05-4.811-40.02-12.028-50.91-21.651-10.89-9.876-16.33-22.538-16.33-37.985 0-18.74 7.22-33.301 21.65-43.684 14.44-10.635 34.57-15.953 60.4-15.953 25.58 0 45.97 5.191 61.16 15.574 15.2 10.129 23.55 24.31 25.07 42.543h-50.9c-1.01-6.584-4.56-11.522-10.64-14.814-6.08-3.545-14.69-5.318-25.83-5.318-10.13 0-17.73 1.519-22.79 4.558-4.81 2.786-7.22 6.837-7.22 12.155 0 4.559 2.03 8.231 6.08 11.016 4.05 2.532 10.76 4.812 20.13 6.837l34.95 7.218c19.5 4.051 34.19 11.649 44.07 22.791 10.13 10.889 15.19 23.804 15.19 38.745 0 18.992-7.47 33.807-22.41 44.443-14.69 10.382-35.58 15.574-62.68 15.574ZM983.38 281.091V87.366h56.98v193.725h-56.98Zm-1.9-219.555V0h60.78v61.536h-60.78ZM750.413 281.101V87.376h55.84v45.582h1.14v148.143h-56.98Zm134.853 0V161.068c0-10.636-2.785-18.613-8.357-23.931-5.318-5.318-13.169-7.977-23.552-7.977-8.863 0-16.841 2.026-23.931 6.078-6.838 4.051-12.283 9.622-16.335 16.713-3.799 7.091-5.698 15.447-5.698 25.07l-4.938-46.722c6.331-14.181 15.574-25.45 27.73-33.806 12.409-8.61 27.604-12.915 45.585-12.915 21.526 0 37.987 6.077 49.383 18.233 11.396 11.902 17.094 27.982 17.094 48.241v131.049h-56.981ZM613.1 280.9c-21.272 0-40.013-4.179-56.22-12.536-15.955-8.61-28.491-20.512-37.608-35.706-8.863-15.447-13.295-33.174-13.295-53.179 0-20.006 4.432-37.479 13.295-52.42 9.117-14.941 21.653-26.589 37.608-34.946 16.207-8.357 34.948-12.535 56.22-12.535 21.526 0 40.267 4.178 56.221 12.535 16.208 8.357 28.744 20.005 37.607 34.946 8.864 14.941 13.296 32.414 13.296 52.42 0 20.005-4.559 37.732-13.676 53.179-8.863 15.194-21.399 27.096-37.607 35.706-15.954 8.357-34.568 12.536-55.841 12.536Zm0-44.823c8.864 0 16.841-2.279 23.932-6.837 7.344-4.559 13.169-11.016 17.474-19.373 4.305-8.61 6.458-18.866 6.458-30.768 0-17.473-4.685-30.895-14.055-40.264-9.117-9.623-20.387-14.435-33.809-14.435-13.422 0-24.818 4.812-34.188 14.435-9.117 9.623-13.675 23.044-13.675 40.264 0 11.902 2.152 22.158 6.458 30.768 4.305 8.357 10.003 14.814 17.094 19.373 7.344 4.558 15.448 6.837 24.311 6.837ZM419.774 280.902v-46.721l3.799.759c-2.533 13.928-10.13 25.07-22.793 33.427-12.409 8.357-27.35 12.535-44.824 12.535-17.728 0-33.176-4.051-46.345-12.155-12.915-8.357-22.918-20.005-30.009-34.946-7.091-14.941-10.637-32.541-10.637-52.8 0-20.512 3.672-38.365 11.017-53.559 7.344-15.194 17.6-26.969 30.769-35.326 13.422-8.357 28.997-12.535 46.724-12.535 18.487 0 33.429 4.3
67705 44.825 12.915 11.649 8.61 18.487 20.385 20.513 35.326l-4.179.38V3.61h56.981v277.292h-55.841Zm-45.585-45.582c13.422 0 24.312-4.685 32.669-14.054 8.357-9.623 12.536-23.298 12.536-41.024 0-17.727-4.305-31.275-12.916-40.645-8.357-9.623-19.373-14.434-33.048-14.434-13.169 0-24.059 4.811-32.669 14.434-8.357 9.623-12.536 23.298-12.536 41.024 0 17.727 4.179 31.275 12.536 40.645 8.61 9.369 19.753 14.054 33.428 14.054ZM0 281.104 98.007 7.61h50.142L58.12 281.104H0Zm200.572 0L110.922 7.61h52.422l98.007 273.494h-60.779ZM51.662 175.125H205.13v45.583H51.662v-45.583Z" 678 ></path> 679 </g> 680 </mask> 681 <g mask="url(#b)"> 682 <path fill="url(#c)" d="M0 0h1248v282H0z"></path> 683 </g> 684 <defs> 685 <linearGradient 686 id="c" 687 x1="662.5" 688 y1="-55.5" 689 x2="668.5" 690 y2="282" 691 gradientUnits="userSpaceOnUse" 692 > 693 <stop stop-color="var(--color-dots)"></stop> 694 <stop offset="1" stop-color="var(--color-card)"></stop> 695 </linearGradient> 696 <clipPath id="a"> 697 <path fill="#fff" d="M0 0h1248v281H0z"></path> 698 </clipPath> 699 </defs> 700 </svg> 701 </div> 702 </div> 703 </div> 704</div> 705 706
706<script type="module" src="https://static.cloudflareinsights.com/beacon.min.js/v31edd6df95cf4e85bb4c19e7a9bdbcba1788362987495" integrity="sha512-iIg7k2xntmwu6/uSb5tpc/hySgZc4eoL31yB29W6tJFo2akwjPWcEqnCEdJvGexCL0KEQwVYv5BlowfhVz26hg==" data-cf-beacon='{"version":"2024.11.0","token":"b3fcabc4c85744c3924d25d13183af75","r":1,"spa":2}' crossorigin="anonymous"></script>
706 707</body> 708</html>
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.