1<!DOCTYPE html> 2<html lang="en-us" class="bg-woodsmoke-1000"> 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="#ffffff" /> 92<meta 93 name="msapplication-TileImage" 94 content="/assets/ms-icon-144x144-CS5pvIdW.png" 95/> 96<meta name="theme-color" content="#ffffff" /> 97 98<link rel="preload" as="style" href="/assets/app-Lcq2UOUK.css"/> 99<link rel="preload" as="style" href="/assets/app-DFPQvEMp.css"/> 100<link rel="modulepreload" href="/assets/app-DAXQQnSt.js"/> 101<link rel="stylesheet" href="/assets/app-DFPQvEMp.css"/>
102<script type="module" defer src="/assets/app-DAXQQnSt.js"></script>
102 103<link rel="stylesheet" href="/assets/app-Lcq2UOUK.css"/> 104 105 </head> 106 107 <body class="font-sans antialiased text-woodsmoke-300 relative"> 108<div x-data class="relative bg-highlighter"> 109 <p class="px-12 py-2.5 text-center text-13 sm:text-14 font-semibold text-highlighter-ink"> 110 Help shape what we build next. Take the 111 <a 112 href="https://tally.so/r/obgR8M" 113 target="_blank" 114 rel="noopener noreferrer" 115 class="underline underline-offset-3 hover:opacity-75 transition-opacity" 116 > 117 AdonisJS developer survey. 118 </a> 119 </p> 120 <button 121 type="button" 122 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" 123 aria-label="Dismiss announcement" 124 @click="localStorage.setItem('announcement:dev-survey', 'dismissed'); $root.remove()" 125 ><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> 126 </button> 127</div>
128<script> 129 if (localStorage.getItem('announcement:dev-survey') === 'dismissed') { 130 document.currentScript.previousElementSibling.remove() 131 } 132</script>
132 133 134<header 135 class="sticky inset-x-0 top-0 border-b border-woodsmoke-900 z-10 backdrop-blur-3xl bg-woodsmoke-950/60" 136> 137 <div class="container-full mx-auto px-5 lg:px-10 py-4 flex items-center justify-between h-18"> 138 <div class="text-white"> 139<a href="/" class="block"> 140 <svg width="107" height="33" viewBox="0 0 107 33" fill="none" xmlns="http://www.w3.org/2000/svg"> 141 <g clip-path="url(#clip0_1245_6827)"> 142 <path 143 fill-rule="evenodd" 144 clip-rule="evenodd" 145 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" 146 fill="currentColor" 147 /> 148 <path 149 fill-rule="evenodd" 150 clip-rule="evenodd" 151 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" 152 fill="currentColor" 153 /> 154 </g> 155 <defs> 156 <clipPath id="clip0_1245_6827"> 157 <rect width="106.922" height="32.6662" fill="currentColor" /> 158 </clipPath> 159 </defs> 160</svg> 161 162 <span class="sr-only">Home page</span> 163</a> 164 165 </div> 166 167 <div class="flex items-center gap-7"> 168 <nav class="flex items-center gap-7"> 169 <ul class="hidden md:flex items-center gap-5"> 170 <li> 171<a href="/packages" class="current md:text-sm hover:text-white transition-colors text-white">
172 <span>Packages</span> 173</a> 174 175 </li> 176 <li> 177<a href="/wall-of-love" class="md:text-sm hover:text-white transition-colors text-woodsmoke-300"> 178 <span>Wall of love</span> 179</a> 180 181 </li> 182 <li> 183<a href="https://docs.adonisjs.com" class="md:text-sm hover:text-white transition-colors text-woodsmoke-300" rel="noopener noreferrer" target="_blank"> 184 <span>Docs</span> 185</a> 186 187 </li> 188 <li> 189<a href="/blog" class="md:text-sm hover:text-white transition-colors text-woodsmoke-300"> 190 <span>Blog</span> 191</a> 192 193 </li> 194 <li> 195<a href="/roadmap" class="md:text-sm hover:text-white transition-colors text-woodsmoke-300"> 196 <span>Roadmap</span> 197</a> 198 199 </li> 200 <li> 201<a href="/sponsor" class="md:text-sm hover:text-white transition-colors text-woodsmoke-300"> 202 <span>Sponsor</span> 203</a> 204 205 </li> 206 <li> 207<a href="/about" class="md:text-sm hover:text-white transition-colors text-woodsmoke-300"> 208 <span>About</span> 209</a> 210 211 </li> 212 213 </ul> 214 215 <ul class="flex items-center gap-5"> 216 <li> 217 <a class="font-medium items-center justify-center cursor-pointer transition-colors text-center uppercase inline-flex bg-indigo-600 hover:bg-indigo-700 focus:bg-indigo-700 text-white font-mono focus-visible:outline-2 focus-visible:-outline-offset-2 focus-visible:outline-indigo-400 px-3 py-1.5 text-xs" href="https://plus.adonisjs.com/" target="_blank"> 218 Plus 219 </a> 220 221 </li> 222 223 <li class="hidden md:block"> 224<a href="https://github.com/adonisjs/core" class="flex items-center gap-2 text-woodsmoke-300 hover:text-white transition-colors" rel="noopener noreferrer" target="_blank"> 225 <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> 226 <span class="font-mono text-14 font-semibold">19K</span> 227 <span class="sr-only">Star adonisjs/core on GitHub</span> 228</a> 229 230 </li> 231 232 <li x-data="" class="flex self-center md:hidden"> 233 <button @click.prevent="$dispatch('toggle-mobile-nav')"><svg width="20px" height="20px" viewBox="0 0 24 24" class="text-woodsmoke-100 hover:text-white 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> 234 <span class="sr-only">Open menu</span> 235 </button> 236 </li> 237 </ul> 238 </nav> 239 </div> 240 </div> 241</header> 242 243 244<div 245 x-data="{ isOpen: false }" 246 x-cloak 247 @toggle-mobile-nav.window="isOpen = !isOpen" 248 x-show="isOpen" 249 class="md:hidden fixed text-center backdrop-blur-xl border-t border-woodsmoke-900 bg-woodsmoke-950/70 left-0 right-0 top-26 bottom-0 z-10 px-5 py-10" 250> 251 <ul class="flex flex-col gap-5"> 252 <li> 253<a href="/packages" class="current md:text-sm hover:text-white transition-colors text-white"> 254 <span>Packages</span> 255</a> 256 257 </li> 258 <li> 259<a href="/wall-of-love" class="md:text-sm hover:text-white transition-colors text-woodsmoke-300">
260 <span>Wall of love</span> 261</a> 262 263 </li> 264 <li> 265<a href="https://docs.adonisjs.com" class="md:text-sm hover:text-white transition-colors text-woodsmoke-300" rel="noopener noreferrer" target="_blank"> 266 <span>Docs</span> 267</a> 268 269 </li> 270 <li> 271<a href="/blog" class="md:text-sm hover:text-white transition-colors text-woodsmoke-300"> 272 <span>Blog</span> 273</a> 274 275 </li> 276 <li> 277<a href="/roadmap" class="md:text-sm hover:text-white transition-colors text-woodsmoke-300"> 278 <span>Roadmap</span> 279</a> 280 281 </li> 282 <li> 283<a href="/sponsor" class="md:text-sm hover:text-white transition-colors text-woodsmoke-300"> 284 <span>Sponsor</span> 285</a> 286 287 </li> 288 <li> 289<a href="/about" class="md:text-sm hover:text-white transition-colors text-woodsmoke-300"> 290 <span>About</span> 291</a> 292 293 </li> 294 295 <li> 296<a href="https://github.com/adonisjs/core" class="inline-block" rel="noopener noreferrer" target="_blank"> 297 <svg width="24px" height="24px" viewBox="0 0 20 20" class="text-woodsmoke-300 hover:text-white 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> 298 <span class="sr-only">GitHub repository</span> 299</a> 300 301 </li> 302 </ul> 303</div> 304 305 306 307 <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","category":"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":"@adityada
307rma\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":"
307Write 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":"
307Mail 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"> 308 <div class="container mx-auto px-5 lg:px-10 py-24 lg:border-x border-woodsmoke-900 relative"> 309 <h1 class="font-display text-34 lg:text-42 text-white leading-10 lg:leading-52 tracking-tight"> 310 Browse the AdonisJS package directory 311 </h1> 312 <p 313 class="text-16 lg:text-18 text-woodsmoke-200 max-w-xl sm:px-2.5 mx-auto mt-5 mb-6 lg:mt-3 leading-7" 314 > 315 Find the packages you need. Official packages for core functionality and community packages for specialized features and integrations. 316 </p> 317 <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-woodsmoke-500"><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> 318 319<input class="w-full px-4 py-2.5 border border-woodsmoke-800/70 bg-woodsmoke-950 text-white rounded-md text-woodsmoke-100 placeholder-woodsmoke-400 pl-12" type="search" x-model="search" placeholder="Search packages" /> 320 321 </div> 322 323 <div 324 class="absolute inset-0 pointer-events-none -z-1 bg-[url('/resources/assets/hero-bg.webp')] bg-position-[60%] md:bg-top bg-no-repeat" 325 ></div> 326 </div> 327</div> 328 329 330 <div class="container mx-auto"> 331 <div 332 class="lg:border-l lg:border-r border-t border-woodsmoke-900 grid lg:grid-cols-[300px_1fr] relative" 333 > 334<aside 335 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))]" 336> 337 <label class="text-14 inline-flex items-center gap-2 select-none text-woodsmoke-50 mb
337-5 lg:mb-10"> 338 <span class="inline-flex items-center cursor-pointer relative"> 339 <input 340 type="checkbox" 341 x-model="officialOnly" 342 class="peer size-4 cursor-pointer transition-all appearance-none rounded shadow hover:shadow-md border border-slate-300" 343 id="check" 344 /> 345 <span 346 class="absolute inset-0 flex items-center justify-center text-white opacity-0 peer-checked:opacity-100 pointer-events-none" 347 ><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> 348 </span> 349 </span> 350 Official packages 351 </label> 352 353 <span class="hidden lg:block uppercase text-12 font-mono text-woodsmoke-50 mb-4">categories</span> 354 355 <nav> 356 <ul 357 class="flex lg:flex-col gap-5 lg:gap-2.5 border-b lg:border-none border-woodsmoke-900 overflow-x-auto" 358 > 359 <li class="flex-1 md:flex-initial"> 360<a href="/packages" class="current text-center lg:text-left block py-3 lg:py-1 text-sm transition-colors relative w-full text-white 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-400"> 361 <span class="tracking-wide">All</span> 362</a> 363 364 </li> 365 <li class="flex-1 md:flex-initial"> 366<a href="/packages/authentication" class="text-center lg:text-left block py-3 lg:py-1 text-sm transition-colors relative w-full text-woodsmoke-400 hover:text-white"> 367 <span class="tracking-wide">Authentication</span> 368</a> 369 370 </li> 371 <li class="flex-1 md:flex-initial"> 372<a href="/packages/authorization" class="text-center lg:text-left block py-3 lg:py-1 text-sm transition-colors relative w-full text-woodsmoke-400 hover:text-white"> 373 <span class="tracking-wide">Authorization</span> 374</a> 375 376 </li> 377 <li class="flex-1 md:flex-initial"> 378<a href="/packages/communication" class="text-center lg:text-left block py-3 lg:py-1 text-sm transition-colors relative w-full text-woodsmoke-400 hover:text-white"> 379 <span class="tracking-wide">Communication</span> 380</a> 381 382 </li> 383 <li class="flex-1 md:flex-initial"> 384<a href="/packages/database" class="text-center lg:text-left block py-3 lg:py-1 text-sm transition-colors relative w-full text-woodsmoke-400 hover:text-white"> 385 <span class="tracking-wide">Database</span> 386</a> 387 388 </li> 389 <li class="flex-1 md:flex-initial"> 390<a href="/packages/devtools" class="text-center lg:text-left block py-3 lg:py-1 text-sm transition-colors relative w-full text-woodsmoke-400 hover:text-white"> 391 <span class="tracking-wide">DevTools</span> 392</a> 393 394 </li> 395 <li class="flex-1 md:flex-initial"> 396<a href="/packages/extensions" class="text-center lg:text-left block py-3 lg:py-1 text-sm transition-colors relative w-full text-woodsmoke-400 hover:text-white"> 397 <span class="tracking-wide">Extensions</span> 398</a> 399 400 </li> 401 <li class="flex-1 md:flex-initial"> 402<a href="/packages/messaging" class="text-center lg:text-left block py-3 lg:py-1 text-sm transition-colors relative w-full text-woodsmoke-400 hover:text-white"> 403 <span class="tracking-wide">Messaging</span> 404</a> 405 406 </li> 407 <li class="flex-1 md:flex-initial"> 408<a href="/packages/monitoring" class="text-center lg:text-left block py-3 lg:py-1 text-sm transition-colors relative w-full text-woodsmoke-400 hover:text-white"> 409 <span class="tracking-wide">Monitoring</span> 410</a> 411 412 </li> 413 <li class="flex-1 md:flex-initial"> 414<a href="/packages/payment" class="text-center lg:text-left block py-3 lg:py-1 text-sm transition-colors relative w-full text-woodsmoke-400 hover:text-white"> 415 <span class="tracking-wide">Payment</span> 416</a> 417 418 </li> 419 <li class="flex-1 md:flex-initial"> 420<a href="/packages/rendering" class="text-center lg:text-left block py-3 lg:py-1 text-sm transition-colors relative w-full text-woodsmoke-400 hover:text-white">
421 <span class="tracking-wide">Rendering</span> 422</a> 423 424 </li> 425 <li class="flex-1 md:flex-initial"> 426<a href="/packages/security" class="text-center lg:text-left block py-3 lg:py-1 text-sm transition-colors relative w-full text-woodsmoke-400 hover:text-white"> 427 <span class="tracking-wide">Security</span> 428</a> 429 430 </li> 431 <li class="flex-1 md:flex-initial"> 432<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-woodsmoke-400 hover:text-white"> 433 <span class="tracking-wide">Starter kits</span> 434</a> 435 436 </li> 437 <li class="flex-1 md:flex-initial"> 438<a href="/packages/storage" class="text-center lg:text-left block py-3 lg:py-1 text-sm transition-colors relative w-full text-woodsmoke-400 hover:text-white"> 439 <span class="tracking-wide">Storage</span> 440</a> 441 442 </li> 443 <li class="flex-1 md:flex-initial"> 444<a href="/packages/testing" class="text-center lg:text-left block py-3 lg:py-1 text-sm transition-colors relative w-full text-woodsmoke-400 hover:text-white"> 445 <span class="tracking-wide">Testing</span> 446</a> 447 448 </li> 449 </ul> 450 </nav> 451</aside> 452 453 454 <section class="lg:border-l border-woodsmoke-900 pt-9 lg:pt-14 pb-20"> 455 456 <div x-show="filteredPackages.length === 0" class="text-center py-20 px-4"> 457 <p class="text-woodsmoke-400 mb-4">No packages found matching your criteria.</p> 458 <button 459 x-show="hasActiveFilters" 460 x-on:click="clearFilters()" 461 class="text-indigo-400 hover:text-indigo-300 transition-colors cursor-pointer" 462 > 463 Clear all filters 464 </button> 465 </div> 466 467 <div 468 x-show="filteredPackages.length > 0" 469 class="grid sm:grid-cols-2 md:grid-cols-3 gap-6 pl-4 lg:pl-17.5 pr-4 lg:pr-10" 470 > 471 <template x-for="pkg in filteredPackages" :key="pkg.name"> 472 <a 473 :href="pkg.repo" 474 target="_blank" 475 rel="noopener noreferrer" 476 class="border border-woodsmoke-900 bg-woodsmoke-900/40 rounded-md p-6 block hover:border-woodsmoke-700 transition-colors" 477 > 478 <div class="flex justify-between items-center mb-6.5"> 479 <template x-if="pkg.icon"> 480 <img :src="pkg.icon" alt="" class="size-7.5 object-contain" /> 481 </template> 482 <template x-if="!pkg.icon && pkg.type !== 'official'"> 483 <span class="size-7.5 text-woodsmoke-700"><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> 484 </span> 485 </template> 486 <span 487 class="text-12 px-3 py-1.5 text-woodsmoke-600 border border-woodsmoke-900 rounded-2xl" 488 x-text="pkg.category" 489 ></span> 490 </div> 491 492 <h2 493 class="text-19 text-woodsmoke-50 font-medium leading-6 mb-1" 494 x-text="pkg.name" 495 ></h2> 496 <p 497 class="text-14 text-woodsmoke-400 leading-5.5 tracking-wide" 498 x-text="pkg.description" 499 ></p> 500 </a> 501 </template> 502 </div> 503 </section> 504 </div> 505 </div> 506 </div></main> 507 508<div class="border-t border-woodsmoke-900"> 509 <div class="container mx-auto px-5 lg:px-10 pt-15 md:pt-30 lg:border-x border-woodsmoke-900"> 510 <div class="lg:px-22.5 mb-30 md:mb-52 space-y-7 sm:space-y-5"> 511 <div class="flex flex-col sm:flex-row gap-1.5 sm:gap-3"> 512 <label class="text-14 text-woodsmoke-50 tracking-wide">VSCode Extensions</label> 513 <div class="flex-1 border-b border-dashed border-woodsmoke-800 sm:mb-1.5"></div> 514 <div class="flex flex-wrap gap-5.5 text-14"> 515 516<a href="https://marketplace.visualstudio.com/items?itemName=jripouteau.adonis-vscode-extension" class="relative hover:text-woodsmoke-50 transition-colors not-last:after:content-['/'] after:pointer-events-none after:text-woodsmoke-400 after:absolute after:-right-3.5" rel="noopener noreferrer" target="_blank"> 517 AdonisJS 518</a> 519 520 521<a href="https://marketplace.visualstudio.com/items?itemName=AdonisJS.vscode-edge" class="relative hover:text-woodsmoke-50 transition-colors not-last:after:content-['/'] after:pointer-events-none after:text-woodsmoke-400 after:absolute after:-right-3.5" rel="noopener noreferrer" target="_blank"> 522 Edge 523</a> 524 525 526<a href="https://marketplace.visualstudio.com/items?itemName=jripouteau.japa-vscode" class="relative hover:text-woodsmoke-50 transition-colors not-last:after:content-['/'] after:pointer-events-none after:text-woodsmoke-400 after:absolute after:-right-3.5" rel="noopener noreferrer" target="_blank"> 527 Japa 528</a> 529 530 </div> 531 </div> 532 <div class="flex flex-col sm:flex-row gap-1.5 sm:gap-3"> 533 <label class="text-14 text-woodsmoke-50 tracking-wide">Community</label> 534 <div class="flex-1 border-b border-dashed border-woodsmoke-800 sm:mb-1.5"></div> 535 <div class="flex flex-wrap gap-5.5 text-14"> 536 537<a href="https://discord.com/invite/vDcEjq6" class="relative hover:text-woodsmoke-50 transition-colors not-last:after:content-['/'] after:pointer-events-none after:text-woodsmoke-400 after:absolute after:-right-3.5" rel="noopener noreferrer" target="_blank"> 538 Discord 539</a> 540 541 542<a href="https://x.com/adonisframework" class="relative hover:text-woodsmoke-50 transition-colors not-last:after:content-['/'] after:pointer-events-none after:text-woodsmoke-400 after:absolute after:-right-3.5" rel="noopener noreferrer" target="_blank"> 543 Twitter 544</a> 545 546 547<a href="https://github.com/adonisjs" class="relative hover:text-woodsmoke-50 transition-colors not-last:after:content-['/'] after:pointer-events-none after:text-woodsmoke-400 after:absolute after:-right-3.5" rel="noopener noreferrer" target="_blank"> 548 GitHub 549</a> 550 551 552<a href="https://github.com/orgs/adonisjs/discussions" class="relative hover:text-woodsmoke-50 transition-colors not-last:after:content-['/'] after:pointer-events-none after:text-woodsmoke-400 after:absolute after:-right-3.5" rel="noopener noreferrer" target="_blank"> 553 Forum 554</a> 555 556 </div> 557 </div> 558 <div class="flex flex-col sm:flex-row gap-1.5 sm:gap-3"> 559 <label class="text-14 text-woodsmoke-50 tracking-wide">Resources</label> 560 <div class="flex-1 border-b border-dashed border-woodsmoke-800 sm:mb-1.5"></div> 561 <div class="flex flex-wrap gap-5.5 text-14"> 562 563<a href="/stories" class="relative hover:text-woodsmoke-50 transition-colors not-last:after:content-['/'] after:pointer-events-none after:text-woodsmoke-400 after:absolute after:-right-3.5"> 564 Stories 565</a> 566 567 568<a href="/about" class="relative hover:text-woodsmoke-50 transition-colors not-last:after:content-['/'] after:pointer-events-none after:text-woodsmoke-400 after:absolute after:-right-3.5"> 569 About 570</a> 571 572 573<a href="/roadmap" class="relative hover:text-woodsmoke-50 transition-colors not-last:after:content-['/'] after:pointer-events-none after:text-woodsmoke-400 after:absolute after:-right-3.5"> 574 Roadmap 575</a> 576 577 578<a href="/blog" class="relative hover:text-woodsmoke-50 transition-colors not-last:after:content-['/'] after:pointer-events-none after:text-woodsmoke-400 after:absolute after:-right-3.5"> 579 Blog 580</a> 581 582 583<a href="/packages" class="current relative hover:text-woodsmoke-50 transition-colors not-last:after:content-['/'] after:pointer-events-none after:text-woodsmoke-400 after:absolute after:-right-3.5"> 584 Packages 585</a> 586 587 588<a href="/contributors" class="relative hover:text-woodsmoke-50 transition-colors not-last:after:content-['/'] after:pointer-events-none after:text-woodsmoke-400 after:absolute after:-right-3.5"> 589 Contributors 590</a> 591 592 593<a href="/support" class="relative hover:text-woodsmoke-50 transition-colors not-last:after:content-['/'] after:pointer-events-none after:text-woodsmoke-400 after:absolute after:-right-3.5"> 594 Support 595</a> 596 597 598<a href="/brand" class="relative hover:text-woodsmoke-50 transition-colors not-last:after:content-['/'] after:pointer-events-none after:text-woodsmoke-400 after:absolute after:-right-3.5"> 599 Brand 600</a> 601 602 603<a href="/sponsor" class="relative hover:text-woodsmoke-50 transition-colors not-last:after:content-['/'] after:pointer-events-none after:text-woodsmoke-400 after:absolute after:-right-3.5"> 604 Sponsor 605</a> 606 607 608<a href="/team" class="relative hover:text-woodsmoke-50 transition-colors not-last:after:content-['/'] after:pointer-events-none after:text-woodsmoke-400 after:absolute after:-right-3.5"> 609 Team 610</a> 611 612 </div> 613 </div> 614 </div> 615 616 <div> 617 <div> 618 <svg 619 class="w-full" 620 xmlns="http://www.w3.org/2000/svg" 621 width="1248"
622 viewBox="0 0 1248 277" 623 fill="none" 624 > 625 <mask 626 id="b" 627 style="mask-type:alpha" 628 maskUnits="userSpaceOnUse" 629 x="0" 630 y="0" 631 width="1248" 632 height="281" 633 > 634 <g clip-path="url(#a)" fill="#282832"> 635 <path 636 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
63605 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" 637 ></path> 638 </g> 639 </mask> 640 <g mask="url(#b)"> 641 <path fill="url(#c)" d="M0 0h1248v282H0z"></path> 642 </g> 643 <defs> 644 <linearGradient 645 id="c" 646 x1="662.5" 647 y1="-55.5" 648 x2="668.5" 649 y2="282" 650 gradientUnits="userSpaceOnUse" 651 > 652 <stop stop-color="#4D4D5F"></stop> 653 <stop offset="1" stop-color="#0D0D10"></stop> 654 </linearGradient> 655 <clipPath id="a"> 656 <path fill="#fff" d="M0 0h1248v281H0z"></path> 657 </clipPath> 658 </defs> 659 </svg> 660 </div> 661 </div> 662 </div> 663</div> 664 665 666 <div 667 class="pointer-events-none absolute inset-0 h-full z-99 mix-blend-overlay overscroll-contain bg-noise bg-size-[64px] opacity-20" 668 ></div> 669
669<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>
669 670</body> 671</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.