1<!DOCTYPE html><html class="scroll-pt-[60px] lg:scroll-pt-[70px]"><head><meta charSet="utf-8" data-next-head=""/><meta name="viewport" content="initial-scale=1.0, width=device-width" data-next-head=""/><meta name="referrer" content="no-referrer-when-downgrade" data-next-head=""/><link rel="apple-touch-icon" sizes="180x180" href="/static/apple-touch-icon.png" data-next-head=""/><link rel="icon" type="image/png" sizes="32x32" href="/static/favicon-32x32.png" data-next-head=""/><link rel="icon" type="image/png" sizes="16x16" href="/static/favicon-16x16.png" data-next-head=""/><link rel="manifest" href="/static/site.webmanifest" data-next-head=""/><link rel="mask-icon" href="/static/safari-pinned-tab.svg" color="#2e183d" data-next-head=""/><meta name="msapplication-TileColor" content="#d7ff64" data-next-head=""/><meta name="theme-color" content="#ffffff" data-next-head=""/>
1<script type="application/ld+json" data-next-head=""> 2 { 3 "@context": "https://schema.org", 4 "@type": "WebSite", 5 "name": "Astral", 6 "url": "https://astral.sh", 7 "sameAs": ["https://twitter.com/astral_sh"] 8 } 9 </script>
9<link rel="alternate" type="application/rss+xml" href="/blog/rss.xml" title="RSS Feed" data-next-head=""/><title data-next-head="">Ruff, an extremely fast Python linter | Astral</title><meta name="robots" content="index,follow" data-next-head=""/><meta name="description" content="A high-performance Python linter and code formatter, written in Rust. Ruff can replace dozens of static analysis tools, all while executing 10-100x faster." data-next-head=""/><meta name="twitter:card" content="summary_large_image" data-next-head=""/><meta name="twitter:site" content="@astral_sh" data-next-head=""/><meta property="og:title" content="Ruff, an extremely fast Python linter | Astral" data-next-head=""/><meta property="og:description" content="A high-performance Python linter and code formatter, written in Rust. Ruff can replace dozens of static analysis tools, all while executing 10-100x faster." data-next-head=""/><meta property="og:url" content="https://astral.sh/ruff" data-next-head=""/><meta property="og:image" content="https://astral.sh/static/OpenGraph/Ruff.png" data-next-head=""/><link rel="canonical" href="https://astral.sh/ruff" data-next-head=""/><link rel="preload" as="image" href="/_next/static/media/ruff-bg.0m~_5dez8jycv.png" data-next-head=""/><link data-next-font="" rel="preconnect" href="/" crossorigin="anonymous"/><link rel="preload" href="/_next/static/chunks/00h_peupriwi9.css" as="style"/><link rel="stylesheet" href="/_next/static/chunks/00h_peupriwi9.css" data-n-g=""/><link rel="preload" href="/_next/static/chunks/125-s-emkbb~1.css" as="style"/><link rel="stylesheet" href="/_next/static/chunks/125-s-emkbb~1.css" data-n-p=""/><noscript data-n-css=""></noscript>
9<script src="/_next/static/chunks/0n7h.p2sst-x4.js" defer=""></script>
9<script src="/_next/static/chunks/0bz7o724ax8.5.js" defer=""></script>
9<script src="/_next/static/chunks/026kzbj.dacwk.js" defer=""></script>
9<script src="/_next/static/chunks/0nl1vy_56n.-n.js" defer=""></script>
9<script src="/_next/static/chunks/04.gx-..p.8ev.js" defer=""></script>
9<script src="/_next/static/chunks/101_iiqdd8a7b.js" defer=""></script>
9<script src="/_next/static/chunks/turbopack-08s21fv7nu423.js" defer=""></script>
9<script src="/_next/static/chunks/13x825xp25hox.js" defer=""></script>
9<script src="/_next/static/chunks/0r_tfde2x3ckd.js" defer=""></script>
9<script src="/_next/static/chunks/0e0t_sllp2j8d.js" defer=""></script>
9<script src="/_next/static/chunks/turbopack-0~gddhsvf7itn.js" defer=""></script>
9<script src="/_next/static/cxj-dXkcuNcieMR3VeEHa/_buildManifest.js" defer=""></script>
9<script src="/_next/static/cxj-dXkcuNcieMR3VeEHa/_ssgManifest.js" defer=""></script>
9<script src="/_next/static/cxj-dXkcuNcieMR3VeEHa/_clientMiddlewareManifest.js" defer=""></script>
9</head><body><div id="__next"><div class=""><header class="header fixed left-0 top-0 z-50 w-full" style="will-change:auto"><div class=" h-[60px] border-transparent border-opacity-0 bg-transparent lg:h-[120px] false flex w-full flex-col items-center border-b transition-all duration-200 ease-in-out"><div class="container flex h-full w-full items-center justify-between"><div class="flex h-full w-full items-center justify-between"><div class="flex"><a class="group block w-[120px] text-black transition-opacity duration-200 ease-in-out hover:opacity-75 dark:text-white dark:brightness-0 dark:invert lg:w-[150px]" aria-label="Homepage" href="/"><svg width="154" height="24" fill="none" xmlns="http://www.w3.org/2000/svg"><path fill-rule="evenodd" clip-rule="evenodd" d="M103.68 2.396A2.396 2.396 0 0 1 106.076 0h19.207a2.397 2.397 0 0 1 2.397 2.396V24h-11.04v-7.2h-1.92V24h-11.04V2.396Zm14.88 8.644V9.12h-5.76v1.92h5.76ZM0 2.396A2.396 2.396 0 0 1 2.396 0h19.207A2.396 2.396 0 0 1 24 2.396V24H12.96v-7.2h-1.92V24H0V2.396Zm14.88 8.644V9.12H9.12v1.92h5.76Z" fill="currentColor"></path><path d="M25.92 2.396A2.397 2.397 0 0 1 28.315 0h19.207a2.396 2.396 0 0 1 2.396 2.396V7.2H38.88V5.28h-1.92v3.84h10.564a2.396 2.396 0 0 1 2.396 2.397v10.087A2.396 2.396 0 0 1 47.523 24H28.316a2.397 2.397 0 0 1-2.397-2.396V16.8h11.04v1.92h1.92v-3.84H28.316a2.397 2.397 0 0 1-2.397-2.397V2.396ZM75.84 3.84H64.8V0H53.76v3.84h-1.92v9.12h1.92v8.643A2.396 2.396 0 0 0 56.155 24h19.683v-9.12H64.8v-1.92h8.644a2.397 2.397 0 0 0 2.396-2.397V3.84Z" fill="currentColor"></path><path fill-rule="evenodd" clip-rule="evenodd" d="M101.76 2.396A2.397 2.397 0 0 0 99.363 0H77.76v24H88.8v-7.2h1.92V24h11.04v-9.12h-4.8v-1.92h2.403a2.397 2.397 0 0 0 2.397-2.397V2.396ZM92.64 9.12v1.92h-5.76V9.12h5.76Z" fill="currentColor"></path><path d="M140.64 14.88h12.96V24h-24V0h11.04v14.88Z" fill="currentColor"></path></svg></a></div><nav class="hidden h-full w-full items-center justify-between pl-16 lg:flex lg:flex-1"><ul class="flex h-full items-center space-x-8 text-space"><li class="menu-item relative flex h-full items-center text-sm font-medium uppercase tracking-wider text-space dark:text-white has-submenu"><div class="flex h-[70%] items-center" tabindex="0"><div class="flex cursor-default items-center space-x-2"><span>Tools</span><div class="transform transition-all duration-200 ease-in-out false "><svg width="11" height="6" viewBox="0 0 11 6" fill="none" xmlns="http://www.w3.org/2000/svg"><path fill-rule="evenodd" clip-rule="evenodd" d="M10.3799 0.219668C10.6728 0.512558 10.6728 0.987438 10.3799 1.28033L6.12994 5.5303C5.83705 5.8232 5.36217 5.8232 5.06928 5.5303L0.819277 1.28033C0.526387 0.987438 0.526387 0.512558 0.819277 0.219668C1.11217 -0.0732225 1.58705 -0.0732225 1.87994 0.219668L5.59961 3.93934L9.31931 0.219668C9.61221 -0.0732225 10.087 -0.0732225 10.3799 0.219668Z" fill="currentColor"></path></svg></div></div></div></li><li class="menu-item relative flex h-full items-center text-sm font-medium uppercase tracking-wider text-space dark:text-white has-submenu"><div class="flex h-[70%] items-center" tabindex="1"><div class="flex cursor-default items-center space-x-2"><span>Docs</span><div class="transform transition-all duration-200 ease-in-out false "><svg width="11" height="6" viewBox="0 0 11 6" fill="none" xmlns="http://www.w3.org/2000/svg"><path fill-rule="evenodd" clip-rule="evenodd" d="M10.3799 0.219668C10.6728 0.512558 10.6728 0.987438 10.3799 1.28033L6.12994 5.5303C5.83705 5.8232 5.36217 5.8232 5.06928 5.5303L0.819277 1.28033C0.526387 0.987438 0.526387 0.512558 0.819277 0.219668C1.11217 -0.0732225 1.58705 -0.0732225 1.87994 0.219668L5.59961 3.93934L9.31931 0.219668C9.61221 -0.0732225 10.087 -0.0732225 10.3799 0.219668Z" fill="currentColor"></path></svg></div></div></div></li><li class="menu-item relative flex h-full items-center text-sm font-medium uppercase tracking-wider text-space dark:text-white false"><a target="" class="flex h-[70%] cursor-pointer items-center transition-opacity duration-200 ease-in-out hover:opacity-75" aria-label="Blog" href="/blog"><span>Blog</span></a></li><li class="menu-item relative flex h-full items-center text-sm font-medium uppercase tracking-wider text-space dark:text-white false"><a target="" class="flex h-[70%] cursor-pointer items-center transition-opacity duration-200 ease-in-out hover:opacity-75" aria-label="Company" href="/about"><span>Company</span></a></li></ul></nav><div class="flex items-center space-x-4 lg:space-x-6"><a href="https://github.com/astral-sh" target="_blank" aria-label="GitHub" class="hidden items-center justify-start rounded-[4px] border border-[#
9E5E7EB] bg-[#ffffff] bg-opacity-10 p-1 text-xs transition-all duration-200 ease-in-out hover:border-opacity-70 hover:shadow dark:border-opacity-10 xs:inline-flex" rel="noreferrer"><div class="mr-1 flex h-6 w-6 items-center justify-center"><svg width="18" height="17" viewBox="0 0 18 17" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M6.28219 13.3568C6.28219 13.3568 6.24905 13.3237 6.2159 13.2905C6.18276 13.2905 6.14962 13.2574 6.08333 13.2574C5.95076 13.2574 5.91762 13.3237 5.91762 13.39C5.91762 13.4894 5.95076 13.5225 6.08333 13.5225C6.2159 13.5225 6.28219 13.4563 6.28219 13.3568ZM5.25477 13.2243C5.25477 13.158 5.32105 13.1248 5.45362 13.158C5.55305 13.1911 5.58619 13.2243 5.58619 13.2905C5.58619 13.3568 5.55305 13.39 5.51991 13.39C5.45362 13.4231 5.42048 13.4231 5.38734 13.39C5.32105 13.39 5.28791 13.3568 5.25477 13.3237C5.22163 13.2905 5.22163 13.2574 5.25477 13.2243ZM6.71304 13.158C6.81247 13.158 6.87876 13.1911 6.87876 13.2574C6.87876 13.3237 6.84561 13.39 6.74618 13.4231C6.6799 13.4231 6.64676 13.4231 6.61361 13.4231C6.58047 13.4231 6.54733 13.3568 6.54733 13.2905C6.54733 13.2243 6.58047 13.1911 6.71304 13.158ZM8.90045 0.464355C10.3919 0.464355 11.7839 0.828924 13.0764 1.52492C14.3358 2.25406 15.3633 3.21519 16.0924 4.40832C16.8215 5.66774 17.2192 7.05973 17.2192 8.55115C17.2192 10.4071 16.689 12.0311 15.6615 13.4894C14.6341 14.9477 13.3084 15.9419 11.6513 16.4722C11.4524 16.5385 11.3199 16.5054 11.2204 16.4059C11.121 16.3397 11.0879 16.2071 11.0879 16.0745V13.2905C11.0879 12.5945 10.889 12.0974 10.5244 11.766C11.3199 11.6997 11.9496 11.5671 12.3473 11.4346C12.9439 11.2357 13.441 10.9043 13.7724 10.4403C14.137 9.87685 14.3358 9.08143 14.3358 8.08715C14.3358 7.68944 14.2364 7.32487 14.1038 6.99345C13.9713 6.79459 13.7724 6.49631 13.4741 6.16488C13.5404 5.96603 13.6067 5.70089 13.6398 5.36946C13.6398 4.90546 13.5736 4.40832 13.4078 3.91119C13.1758 3.8449 12.8776 3.91119 12.4799 4.04376C12.2147 4.17633 11.8833 4.3089 11.5519 4.50775L11.121 4.80604C10.425 4.60718 9.72902 4.50775 8.99988 4.50775C8.27074 4.50775 7.60789 4.60718 6.94504 4.80604L6.51419 4.50775C6.14962 4.3089 5.81819 4.17633 5.55305 4.04376C5.15534 3.91119 4.85706 3.8449 4.6582 3.91119C4.45935 4.40832 4.35992 4.90546 4.4262 5.36946C4.4262 5.70089 4.45935 5.93288 4.55877 6.13174C4.29363 6.46317 4.09478 6.79459 3.96221 7.05973C3.82964 7.32487 3.79649 7.68944 3.79649 8.08715C3.79649 9.08143 3.96221 9.87685 4.32678 10.4071C4.62506 10.8711 5.08906 11.2357 5.71876 11.4346C6.11648 11.5671 6.71304 11.6997 7.50846 11.766C7.21018 12.0311 7.04447 12.4288 6.97818 12.8928C6.58047 13.0917 6.2159 13.158 5.88448 13.0917C5.28791 13.0585 4.85706 12.7603 4.55877 12.1968C4.4262 11.9648 4.22735 11.766 4.02849 11.6003C3.86278 11.534 3.69707 11.4346 3.53135 11.3683L3.29936 11.3351C3.03421 11.3351 2.90164 11.4014 2.90164 11.4677C2.90164 11.534 2.93479 11.6334 3.06736 11.6997L3.23307 11.8323C3.36564 11.9317 3.53135 12.0643 3.69707 12.2631C3.82964 12.4288 3.92906 12.5945 4.02849 12.7934L4.16106 13.0585C4.26049 13.39 4.45935 13.6551 4.79077 13.8208C5.05591 13.9865 5.3542 14.086 5.75191 14.1191C6.01705 14.1522 6.28219 14.1522 6.58047 14.086L6.94504 14.0528L6.97818 16.0745C6.97818 16.2071 6.9119 16.3397 6.81247 16.4059C6.71304 16.5054 6.58047 16.5385 6.41476 16.4722C4.72449 15.9419 3.36564 14.9477 2.33822 13.4894C1.27766 12.0311 0.780518 10.4071 0.780518 8.55115C0.780518 7.05973 1.11194 5.70089 1.84108 4.44147C2.53708 3.21519 3.49821 2.25406 4.75763 1.52492C5.98391 0.828924 7.37589 0.464355 8.90045 0.464355ZM3.99535 11.8986C4.02849 11.8654 4.09478 11.8654 4.16106 11.9317C4.22735 11.998 4.22735 12.0643 4.19421 12.0974C4.12792 12.1637 4.09478 12.1305 4.02849 12.0643C3.96221 11.998 3.92906 11.9648 3.99535 11.8986ZM3.63078 11.6334C3.66392 11.6003 3.73021 11.6003 3.79649 11.6334C3.86278 11.6666 3.86278 11.6997 3.86278 11.766C3.82964 11.8323 3.76335 11.8323 3.69707 11.766C3.63078 11.7328 3.59764 11.6997 3.63078 11.6334ZM4.72449 12.7934C4.72449 12.7934 4.75763 12.7934 4.82391 12.7934C4.85706 12.7934 4.8902 12.8265 4.92334 12.8597C4.95648 12.8928 4.98963 12.926 4.98963 12.9591C4.98963 13.0254 4.98963 13.0585 4.98963 13.0585C4.92334 13.1248 4.82391 13.1248 4.75763 13.0254C4.69134 12.9923 4.69134 12.9591 4.69134 12.8928C4.69134 12.8597 4.69134 12.8265 4.72449 12.7934ZM4.32678 12.3294C4.35992 12.3294 4.39306 12.3294 4.4262 12.3294C4.45935 12.3294 4.49249 12.3625 4.52563 12.3957C4.59192 12.4951 4.59192 12.5614 4.52563 12.5945C4.49249 12.6277 4.45935 12.6277 4.4262 12.5945C4.39306 12.5945 4.35992
912.5614 4.32678 12.5283C4.26049 12.4288 4.26049 12.3625 4.32678 12.3294Z" fill="currentColor"></path></svg></div><div class="block h-6 w-[1px] bg-[#E5E7EB] dark:opacity-20"></div><div class="ml-1 flex h-6 w-6 items-center justify-center"><svg width="16" height="100%" viewBox="0 0 12 11" fill="none" xmlns="http://www.w3.org/2000/svg"><path fill-rule="evenodd" clip-rule="evenodd" d="M12 4.23077L7.8 3.68923L6 0L4.2 3.68923L0 4.23077L3.08571 6.98923L2.28857 11L6 9.02846L9.71143 11L8.91429 6.98923L12 4.23077Z" fill="currentColor"></path></svg></div></a><div class="hidden lg:block"><a target="_blank" href="https://github.com/astral-sh"><div class="btn btn--short btn--radiate "><div class="relative overflow-hidden">Get Started</div></div></a></div><div class="relative flex h-8 w-12 items-center justify-center overflow-hidden rounded-[4px] border border-[#E5E7EB] bg-[#ffffff] bg-opacity-10 p-1 text-xs transition-all duration-200 ease-in-out hover:border-opacity-70 dark:border-opacity-10 lg:hidden"><div role="button" tabindex="0"><div class="hamburger-react" aria-label="Show menu" aria-expanded="false" role="button" style="cursor:pointer;height:48px;position:relative;transition:0.4s cubic-bezier(0, 0, 0, 1);user-select:none;width:48px;outline:none;transform:none" tabindex="0"><div style="background:currentColor;height:2px;left:13px;position:absolute;width:22px;top:19px;transition:0.4s cubic-bezier(0, 0, 0, 1);transform:none"></div><div style="background:currentColor;height:2px;left:13px;position:absolute;width:22px;top:27px;transition:0.4s cubic-bezier(0, 0, 0, 1);transform:none"></div></div></div></div></div></div></div></div></header><div class="group fixed bottom-6 left-6 z-50 hidden items-center justify-center divide-x divide-[#E5E7EB] rounded-[8px] border border-[#E5E7EB] bg-white/90 p-2 pr-3 shadow backdrop-blur dark:divide-opacity-10 dark:border-white dark:border-opacity-10 dark:bg-space/90 lg:flex"><a href="https://github.com/astral-sh"><div class="flex cursor-pointer items-center justify-start space-x-3"><div class="flex h-6 w-6 items-center justify-center rounded-[4px] border border-[#E5E7EB] bg-[#ffffff] bg-opacity-10 text-xs shadow group-hover:shadow-none dark:border-opacity-10">G</div><div class="flex items-center space-x-2"><div><svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M5.50167 12.8925C5.50167 12.8925 5.46853 12.8593 5.43539 12.8262C5.40224 12.8262 5.3691 12.793 5.30282 12.793C5.17025 12.793 5.1371 12.8593 5.1371 12.9256C5.1371 13.025 5.17025 13.0582 5.30282 13.0582C5.43539 13.0582 5.50167 12.9919 5.50167 12.8925ZM4.47425 12.7599C4.47425 12.6936 4.54054 12.6605 4.67311 12.6936C4.77253 12.7268 4.80568 12.7599 4.80568 12.8262C4.80568 12.8925 4.77253 12.9256 4.73939 12.9256C4.67311 12.9588 4.63996 12.9588 4.60682 12.9256C4.54054 12.9256 4.50739 12.8925 4.47425 12.8593C4.44111 12.8262 4.44111 12.793 4.47425 12.7599ZM5.93252 12.6936C6.03195 12.6936 6.09824 12.7268 6.09824 12.793C6.09824 12.8593 6.0651 12.9256 5.96567 12.9588C5.89938 12.9588 5.86624 12.9588 5.8331 12.9588C5.79995 12.9588 5.76681 12.8925 5.76681 12.8262C5.76681 12.7599 5.79995 12.7268 5.93252 12.6936ZM8.11994 0C9.61135 0 11.0033 0.364569 12.2959 1.06056C13.5553 1.7897 14.5827 2.75084 15.3119 3.94397C16.041 5.20339 16.4387 6.59538 16.4387 8.08679C16.4387 9.94278 15.9084 11.5668 14.881 13.025C13.8536 14.4833 12.5279 15.4776 10.8708 16.0079C10.6719 16.0742 10.5393 16.041 10.4399 15.9416C10.3405 15.8753 10.3073 15.7427 10.3073 15.6102V12.8262C10.3073 12.1302 10.1085 11.6331 9.74392 11.3016C10.5393 11.2353 11.1691 11.1028 11.5668 10.9702C12.1633 10.7713 12.6605 10.4399 12.9919 9.97592C13.3565 9.4125 13.5553 8.61708 13.5553 7.6228C13.5553 7.22509 13.4559 6.86052 13.3233 6.52909C13.1908 6.33024 12.9919 6.03195 12.6936 5.70053C12.7599 5.50167 12.8262 5.23653 12.8593 4.9051C12.8593 4.44111 12.793 3.94397 12.6273 3.44683C12.3953 3.38054 12.097 3.44683 11.6993 3.5794C11.4342 3.71197 11.1028 3.84454 10.7713 4.0434L10.3405 4.34168C9.6445 4.14282 8.9485 4.0434 8.21936 4.0434C7.49023 4.0434 6.82737 4.14282 6.16452 4.34168L5.73367 4.0434C5.3691 3.84454 5.03767 3.71197 4.77253 3.5794C4.37482 3.44683 4.07654 3.38054 3.87768 3.44683C3.67883 3.94397 3.5794 4.44111 3.64569 4.9051C3.64569 5.23653 3.67883 5.46853 3.77826 5.66738C3.51312 5.99881 3.31426 6.33024 3.18169 6.59538C3.04912 6.86052 3.01598 7.22509 3.01598 7.6228C3.01598 8.61708 3.18169 9.4125 3.54626 9.94278C3.84454 10.4068 4.30854 10.7713 4.93825 10.9702C5.33596 11.
91028 5.93252 11.2353 6.72795 11.3016C6.42966 11.5668 6.26395 11.9645 6.19767 12.4285C5.79995 12.6273 5.43539 12.6936 5.10396 12.6273C4.50739 12.5942 4.07654 12.2959 3.77826 11.7325C3.64569 11.5005 3.44683 11.3016 3.24797 11.1359C3.08226 11.0696 2.91655 10.9702 2.75084 10.9039L2.51884 10.8708C2.2537 10.8708 2.12113 10.9371 2.12113 11.0033C2.12113 11.0696 2.15427 11.1691 2.28684 11.2353L2.45255 11.3679C2.58512 11.4673 2.75084 11.5999 2.91655 11.7988C3.04912 11.9645 3.14855 12.1302 3.24797 12.329L3.38054 12.5942C3.47997 12.9256 3.67883 13.1908 4.01025 13.3565C4.27539 13.5222 4.57368 13.6216 4.97139 13.6547C5.23653 13.6879 5.50167 13.6879 5.79995 13.6216L6.16452 13.5885L6.19767 15.6102C6.19767 15.7427 6.13138 15.8753 6.03195 15.9416C5.93252 16.041 5.79995 16.0742 5.63424 16.0079C3.94397 15.4776 2.58512 14.4833 1.5577 13.025C0.497139 11.5668 0 9.94278 0 8.08679C0 6.59538 0.331426 5.23653 1.06056 3.97711C1.75656 2.75084 2.71769 1.7897 3.97711 1.06056C5.20339 0.364569 6.59538 0 8.11994 0ZM3.21483 11.4342C3.24797 11.4011 3.31426 11.4011 3.38054 11.4673C3.44683 11.5336 3.44683 11.5999 3.41369 11.6331C3.3474 11.6993 3.31426 11.6662 3.24797 11.5999C3.18169 11.5336 3.14855 11.5005 3.21483 11.4342ZM2.85026 11.1691C2.88341 11.1359 2.94969 11.1359 3.01598 11.1691C3.08226 11.2022 3.08226 11.2353 3.08226 11.3016C3.04912 11.3679 2.98283 11.3679 2.91655 11.3016C2.85026 11.2685 2.81712 11.2353 2.85026 11.1691ZM3.94397 12.329C3.94397 12.329 3.97711 12.329 4.0434 12.329C4.07654 12.329 4.10968 12.3622 4.14282 12.3953C4.17597 12.4285 4.20911 12.4616 4.20911 12.4948C4.20911 12.561 4.20911 12.5942 4.20911 12.5942C4.14282 12.6605 4.0434 12.6605 3.97711 12.561C3.91083 12.5279 3.91083 12.4948 3.91083 12.4285C3.91083 12.3953 3.91083 12.3622 3.94397 12.329ZM3.54626 11.865C3.5794 11.865 3.61254 11.865 3.64569 11.865C3.67883 11.865 3.71197 11.8982 3.74511 11.9313C3.8114 12.0308 3.8114 12.097 3.74511 12.1302C3.71197 12.1633 3.67883 12.1633 3.64569 12.1302C3.61254 12.1302 3.5794 12.097 3.54626 12.0639C3.47997 11.9645 3.47997 11.8982 3.54626 11.865Z" fill="currentColor"></path></svg></div></div></div></a></div><main><section id="" class="overflow-visible dark:bg-black text-black dark:text-white pt-0 pb-0 inner-margin-t inner-margin-b"><div class="container"><div class="mb-12 pt-[60px] lg:pt-[120px]"><div class="inner-margin-b mx-auto grid-cols-12 lg:ml-[180px] lg:grid"><div class="hidden space-y-10 lg:col-span-3 lg:block"><div class="h-24 w-24 overflow-hidden rounded-[12px]"><span style="box-sizing:border-box;display:block;overflow:hidden;width:initial;height:initial;background:none;opacity:1;border:0;margin:0;padding:0;position:relative"><span style="box-sizing:border-box;display:block;width:initial;height:initial;background:none;opacity:1;border:0;margin:0;padding:0;padding-top:100%"></span><img alt="Ruff logo" src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" decoding="async" data-nimg="responsive" style="opacity:0;transition:opacity 0.2s;position:absolute;top:0;left:0;bottom:0;right:0;box-sizing:border-box;padding:0;border:none;margin:auto;display:block;width:0;height:0;min-width:100%;max-width:100%;min-height:100%;max-height:100%"/><noscript><img alt="Ruff logo" loading="lazy" decoding="async" data-nimg="responsive" style="opacity:0;transition:opacity 0.2s;position:absolute;top:0;left:0;bottom:0;right:0;box-sizing:border-box;padding:0;border:none;margin:auto;display:block;width:0;height:0;min-width:100%;max-width:100%;min-height:100%;max-height:100%" sizes="100vw" srcSet="/static/media/2023-03-bac873c3-Ruff-Logo.svg 640w, /static/media/2023-03-bac873c3-Ruff-Logo.svg 750w, /static/media/2023-03-bac873c3-Ruff-Logo.svg 828w, /static/media/2023-03-bac873c3-Ruff-Logo.svg 1080w, /static/media/2023-03-bac873c3-Ruff-Logo.svg 1200w, /static/media/2023-03-bac873c3-Ruff-Logo.svg 1920w, /static/media/2023-03-bac873c3-Ruff-Logo.svg 2048w, /static/media/2023-03-bac873c3-Ruff-Logo.svg 3840w" src="/static/media/2023-03-bac873c3-Ruff-Logo.svg"/></noscript></span></div></div><div class="lg:col-span-9"><div class="flex w-full flex-col items-start"><div class="text-card flex flex-col items-start space-y-6 text-center md:text-left md:"><h6 class="text-h6 w-full subtitle">Ruff</h6><h1 class="w-full break-words text-h1 md:">Lint at lightspeed</h1><div class="prose w-full body-xl md:max-w-2xl"><p>An extremely fast Python linter, written in Rust.</p> 10</div><div class="w-full md:w-auto md:pt-4"><div class="space-y-4 lg:flex lg:space-x-4 lg:space-y-0"><div><a href="https://github.com/astral-sh/ruff" target="_blank" class="inline-block w-full md:w-auto"><div class="btn btn--default btn--black lg:w-auto w-full"><div class="relative overflow-hidden">Get started</div></div></a></div><div><a href="https://docs.astral.sh/ruff/" target="_blank" class="inline-block w-full md:w-auto"><div class="btn btn--outline btn--black lg:w-auto w-full"><div class="relative overflow-hidden">Browse docs</div></div></a></div></div></div></div></div></div></div><div class="relative mt-8 rounded-[12px] bg-rock lg:rounded-[12px]"><span style="box-sizing:border-box;display:block;overflow:hidden;width:initial;height:initial;background:none;opacity:1;border:0;margin:0;padding:0;position:absolute;top:0;left:0;bottom:0;right:0">
10<img alt="Background pattern" src="/_next/static/media/ruff-bg.0m~_5dez8jycv.png" decoding="async" data-nimg="fill" class="rounded-[12px] lg:rounded-[12px]" style="position:absolute;top:0;left:0;bottom:0;right:0;box-sizing:border-box;padding:0;border:none;margin:auto;display:block;width:0;height:0;min-width:100%;max-width:100%;min-height:100%;max-height:100%;object-fit:cover"/></span><div class="absolute left-0 top-0 flex h-8 w-full grid-cols-12 justify-between lg:h-12"><div class="relative z-0 h-full w-full rounded-tl-[12px]"><div class="absolute right-0 top-0 flex h-6 w-6 items-start justify-end text-white dark:text-black"><svg width="12" height="12" viewBox="0 0 12 12" fill="none" xmlns="http://www.w3.org/2000/svg"><path fill-rule="evenodd" clip-rule="evenodd" d="M12 0H0C6.62742 0 12 5.37258 12 12V0Z" fill="currentColor"></path></svg></div></div><div class="h-full flex-shrink-0" style="width:5%"><div class="relative z-10 h-full w-full rounded-bl-[12px] bg-white dark:bg-space"></div><div class="absolute -bottom-4 right-0 flex h-4 w-4 items-end justify-end text-white dark:text-black lg:-bottom-8 lg:h-8 lg:w-8"><div class="absolute inset-0 flex items-start justify-end text-white dark:text-black"><svg width="12" height="12" viewBox="0 0 12 12" fill="none" xmlns="http://www.w3.org/2000/svg"><path fill-rule="evenodd" clip-rule="evenodd" d="M12 0H0C6.62742 0 12 5.37258 12 12V0Z" fill="currentColor"></path></svg></div></div></div></div><div class="flex h-full w-full items-end justify-center overflow-hidden"><div class="mx-aut z-10 mb-12 flex w-[90%] md:w-[75%] lg:mb-24"><div class="mt-12 w-full max-w-[1060px] space-y-6 rounded-[12px] bg-galaxy p-6 lg:mx-auto lg:mt-24 lg:space-y-10 lg:p-12"><div><p class="mb-6 text-[14px] text-crater lg:text-[18px]">Linting the CPython codebase, from scratch.</p></div><div><ul class="space-y-4 rounded-[12px] lg:space-y-6"><li class="flex items-end justify-between space-x-10"><div class="w-full space-y-2 lg:w-[85%]"><div class="relative"><div><div class="h-2 rounded-[2px] bg-radiate" style="width:0%"></div></div><div class="absolute left-0 top-0 h-2 rounded-[2px] bg-white/10" style="width:0.26666666666666666%"></div></div><div class=" text-radiate flex justify-between text-[12px] tracking-widest"><p class="font-medium uppercase">Ruff</p><div class="font-mono lg:hidden"><span></span>s</div></div></div><div class="hidden w-[15%] text-right font-mono text-[16px] lg:block lg:text-[28px] text-radiate"><div><span></span>s</div></div></li><li class="flex items-end justify-between space-x-10"><div class="w-full space-y-2 lg:w-[85%]"><div class="relative"><div><div class="h-2 rounded-[2px] bg-crater" style="width:0%"></div></div><div class="absolute left-0 top-0 h-2 rounded-[2px] bg-white/10" style="width:9.95%"></div></div><div class=" text-crater flex justify-between text-[12px] tracking-widest"><p class="font-medium uppercase">Autoflake</p><div class="font-mono lg:hidden"><span></span>s</div></div></div><div class="hidden w-[15%] text-right font-mono text-[16px] lg:block lg:text-[28px] text-crater"><div><span></span>s</div></div></li><li class="flex items-end justify-between space-x-10"><div class="w-full space-y-2 lg:w-[85%]"><div class="relative"><div><div class="h-2 rounded-[2px] bg-crater" style="width:0%"></div></div><div class="absolute left-0 top-0 h-2 rounded-[2px] bg-white/10" style="width:19.383333333333336%"></div></div><div class=" text-crater flex justify-between text-[12px] tracking-widest"><p class="font-medium uppercase">Flake8</p><div class="font-mono lg:hidden"><span></span>s</div></div></div><div class="hidden w-[15%] text-right font-mono text-[16px] lg:block lg:text-[28px] text-crater"><div><span></span>s</div></div></li><li class="flex items-end justify-between space-x-10"><div class="w-full space-y-2 lg:w-[85%]"><div class="relative"><div><div class="h-2 rounded-[2px] bg-crater" style="width:0%"></div></div><div class="absolute left-0 top-0 h-2 rounded-[2px] bg-white/10" style="width:25.916666666666664%"></div></div><div class=" text-crater flex justify-between text-[12px] tracking-widest"><p class="font-medium uppercase">Pyflakes</p><div class="font-mono lg:hidden"><span></span>s</div></div></div><div class="hidden w-[15%] text-right font-mono text-[16px] lg:block lg:text-[28px] text-crater"><div><span></span>s</div></div></li><li class="flex items-end justify-between space-x-10"><div class="w-full space-y-2 lg:w-[85%]"><div class="relative"><div><div class="h-2 rounded-[2px] bg-crater" style="width:0%"></div></div><div class="absolute left-0 top-0 h-2 rounded-[2px] bg-white/10" style="width:76.03333333333333%"></div></div><div class=" text-crater flex justify-between text-[12px] tracking-widest"><p class="font-medium uppercase">pycodestyle</p><div class="font-mono lg:hidden"><span></span>s</div></div></div><div class="hidden w-[15%] text-right font-mono text-[16px] lg:block lg:text-[28px] text-crater"><div><span></span>s</div></div></li><li class="flex items-end justify-between space-x-10"><div class="w-full space-y-2 lg:w-[85%]"><div class="relative"><div><div class="h-2 rounded-[2px] bg-crater" style="width:0%"></div></div><div class="absolute left-0 top-0 h-2 rounded-[2px] bg-white/10" style="width:100%"></div></div><div class=" text-crater flex justify-between text-[12px] tracking-widest"><p class="font-medium uppercase">Pylint</p><div class="font-mono lg:hidden"><span></span>s</div></div></div><div class="hidden w-[15%] text-right font-mono text-[16px] lg:block lg:text-[28px] text-crater"><div><span></span>s</div></div></li></ul></div></div></div></div><div class="absolute bottom-0 right-0 flex h-8 w-full grid-cols-12 justify-between lg:h-12"><div class="h-full flex-shrink-0" style="width:5%"><div class="relative z-10 h-full w-full rounded-tr-[12px] bg-white dark:bg-space"></div><div class="absolute -top-4 left-0 flex h-4 w-4 items-end justify-start text-white dark:text-black lg:-top-8 lg:h-8 lg:w-8"><div class="absolute inset-0 mt-[4px] flex items-start justify-start text-white dark:text-black lg:mt-[20px]"><svg width="12" height="12" viewBox="0 0 12 12" fill="none" xmlns="http://www.w3.org/2000/svg" style="transform:scale(-1)"><path fill-rule="evenodd" clip-rule="evenodd" d="M12 0H0C6.62742 0 12 5.37258 12 12V0Z" fill="currentColor"></path></svg></div></div></div><div class="relative z-0 h-full w-full rounded-tr-[12px]"><div class="absolute bottom-0 left-0 flex h-6 w-6 items-start justify-start text-white dark:text-black"><svg width="12" height="12" viewBox="0 0 12 12" fill="none" xmlns="http://www.w3.org/2000/svg" style="transform:scale(-1) translateY(-12px)"><path fill-rule="evenodd" clip-rule="evenodd" d="M12 0H0C6.62742 0 12 5.37258 12 12V0Z" fill="currentColor"></path></svg></div></div></div></div></div><div class="w-full"><div class="text-md prose mx-auto mb-6 flex justify-center text-center uppercase tracking-widest"><div>Trusted across open source</div></div><div class="relative mx-[-1.5rem] flex items-center overflow-hidden sm:mx-[-3rem] md:hidden"><div class="animate-marquee-1 flex h-[48px] items-center whitespace-nowrap"><a target="_blank" rel="noopener noreferrer" class="mx-2 inline-flex max-h-[55px] max-w-[150px] flex-shrink-0 items-center justify-center overflow-hidden transition-opacity duration-200 ease-in-out hover:opacity-75" style="width:180px" href="https://github.com/pandas-dev/pandas/blob/3b39a1014be661ed905d185aa4d78dbb627fe65d/pyproject.toml#L195"><span style="box-sizing:border-box;display:inline-block;overflow:hidden;width:initial;height:initial;background:none;opacity:1;border:0;margin:0;padding:0;position:relative;max-width:100%"><span style="box-sizing:border-box;display:block;width:initial;height:initial;background:none;opacity:1;border:0;margin:0;padding:0;max-width:100%"><img style="display:block;max-width:100%;width:initial;height:initial;background:none;opacity:1;border:0;margin:0;padding:0" alt="" aria-hidden="true" src="data:image/svg+xml,%3csvg%20xmlns=%27http://www.w3.org/2000/svg%27%20version=%271.1%27%20width=%27123%27%20height=%2765%27/%3e"/></span><img alt="Pandas" src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" decoding="async" data-nimg="intrinsic" class="dark:brightness-0 dark:invert" style="opacity:0;transition:opacity 0.2s;position:absolute;top:0;left:0;bottom:0;right:0;box-sizing:border-box;padding:0;border:none;margin:auto;display:block;width:0;height:0;min-width:100%;max-width:100%;min-height:100%;max-height:100%"/><noscript><img alt="Pandas" loading="lazy" decoding="async" data-nimg="intrinsic" style="opacity:0;transition:opacity 0.2s;position:absolute;top:0;left:0;bottom:0;right:0;box-sizing:border-box;padding:0;border:none;margin:auto;display:block;width:0;height:0;min-width:100%;max-width:100%;min-height:100%;max-height:100%" class="dark:brightness-0 dark:invert" srcSet="/static/media/2023-04-3c71d5b0-pandas-1.svg 1x, /static/media/2023-04-3c71d5b0-pandas-1.svg 2x" src="/static/media/2023-04-3c71d5b0-pandas-1.svg"/></noscript></span></a><a target="_blank" rel="noopener noreferrer" class="mx-2 inline-flex max-h-[55px] max-w-[150px] flex-shrink-0 items-center justify-center overflow-hidden transition-opacity duration-200 ease-in-out hover:opacity-75" style="width:180px" href="https://github.com/huggingface/transformers/blob/fe1f5a639d93c9272856c670cff3b0e1a10d5b2b/pyproject.toml#L5"><span style="box-sizing:border-box;display:inline-block;overflow:hidden;width:initial;height:initial;background:none;opacity:1;border:0;margin:0;padding:0;position:relative;max-width:100%"><span style="box-sizing:border-box;display:block;width:initial;height:initial;background:none;opacity:1;border:0;margin:0;padding:0;max-width:100%"><img style="display:block;max-width:100%;width:initial;height:initial;background:none;opacity:1;border:0;margin:0;padding:0" alt="" aria-hidden="true" src="data:image/svg+xml,%3csvg%20xmlns=%27http://www.w3.org/2000/svg%27%20version=%271.1%27%20width=%27196%27%20height=%2765%27/%3e"/></span><img alt="Hugging Face" src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" decoding="async" data-nimg="intrinsic" class="dark:brightness-0 dark:invert" style="opacity:0;transition:opacity 0.2s;position:absolute;top:0;left:0;bottom:0;right:0;box-sizing:border-box;padding:0;border:none;margin:auto;display:block;width:0;height:0;min-width:100%;max-width:100%;min-height:100%;max-height:100%"/><noscript><img alt="Hugging Face" loading="lazy" decoding="async" data-nimg="intrinsic" style="opacity:0;transition:opacity 0.2s;position:absolute;top:0;left:0;bottom:0;right:0;box-sizing:border-box;padding:0;border:none;margin:auto;display:block;width:0;height:0;min-width:100%;max-width:100%;min-height:100%;max-height:100%" class="dark:brightness-0 dark:invert" srcSet="/static/media/2023-04-b6fac3fe-hugging-face-1.svg 1x, /static/media/2023-04-b6fac3fe-hugging-face-1.svg 2x" src="/static/media/2023-04-b6fac3fe-hugging-face-1.svg"/></noscript></span></a><a target="_blank" rel="noopener noreferrer" class="mx-2 inline-flex max-h-[55px] max-w-[150px] flex-shrink-0 items-center justify-center overflow-hidden transition-opacity duration-200 ease-in-out hover:opacity-75" style="width:180px" href="https://github.com/tiangolo/fastapi/blob/6ce6c8954cf0bf526cc605e8f5eb1e3f2b95c675/pyproject.toml#L164"><span style="box-sizing:border-box;display:inline-block;overflow:hidden;width:initial;height:initial;background:none;opacity:1;border:0;margin:0;padding:0;position:relative;max-width:100%"><span style="box-sizing:border-box;display:block;width:initial;height:initial;background:none;opacity:1;border:0;margin:0;padding:0;max-width:100%"><img style="display:block;max-width:100%;width:initial;height:initial;background:none;opacity:1;border:0;margin:0;padding:0" alt="" aria-hidden="true" src="data:image/svg+xml,%3csvg%20xmlns=%27http://www.w3.org/2000/svg%27%20version=%271.1%27%20width=%27294%27%20height=%2770%27/%3e"/></span><img alt="FastAPI" src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" decoding="async" data-nimg="intrinsic" class="dark:brightness-0 dark:invert" style="opacity:0;transition:opacity 0.2s;position:absolute;top:0;left:0;bottom:0;right:0;box-sizing:border-box;padding:0;border:none;margin:auto;display:block;width:0;height:0;min-width:100%;max-width:100%;min-height:100%;max-height:100%"/><noscript><img alt="FastAPI" loading="lazy" decoding="async" data-nimg="intrinsic" style="opacity:0;transition:opacity 0.2s;position:absolute;top:0;left:0;bottom:0;right:0;box-sizing:border-box;padding:0;border:none;margin:auto;display:block;width:0;height:0;min-width:100%;max-width:100%;min-height:100%;max-height:100%" class="dark:brightness-0 dark:invert" srcSet="/_next/image?url=%2Fstatic%2Fmedia%2F2023-03-773304b3-fastapi-1.png&w=384&q=75 1x, /_next/image?url=%2Fstatic%2Fmedia%2F2023-03-773304b3-fastapi-1.png&w=640&q=75 2x" src="/_next/image?url=%2Fstatic%2Fmedia%2F2023-03-773304b3-fastapi-1.png&w=640&q=75"/></noscript></span></a><a target="_blank" rel="noopener noreferrer" class="mx-2 inline-flex max-h-[55px] max-w-[150px] flex-shrink-0 items-center justify-center overflow-hidden transition-opacity duration-200 ease-in-out hover:opacity-75" style="width:180px" href="https://github.com/apache/airflow/blob/afbe98d580508b238518e70bc0a65088e99d6581/pyproject.toml#L29"><span style="box-sizing:border-box;display:inline-block;overflow:hidden;width:initial;height:initial;background:none;opacity:1;border:0;margin:0;padding:0;position:relative;max-width:100%"><span style="box-sizing:border-box;display:block;width:initial;height:initial;background:none;opacity:1;border:0;margin:0;padding:0;max-width:100%"><img style="display:block;max-width:100%;width:initial;height:initial;background:none;opacity:1;border:0;margin:0;padding:0" alt="" aria-hidden="true" src="data:image/svg+xml,%3csvg%20xmlns=%27http://www.w3.org/2000/svg%27%20version=%271.1%27%20width=%27120%27%20height=%2765%27/%3e"/></span><img alt="Airflow" src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" decoding="async" data-nimg="intrinsic" class="dark:brightness-0 dark:invert" style="opacity:0;transition:opacity 0.2s;position:absolute;top:0;left:0;bottom:0;right:0;box-sizing:border-box;padding:0;border:none;margin:auto;display:block;width:0;height:0;min-width:100%;max-width:100%;min-height:100%;max-height:100%"/><noscript><img alt="Airflow" loading="lazy" decoding="async" data-nimg="intrinsic" style="opacity:0;transition:opacity 0.2s;position:absolute;top:0;left:0;bottom:0;right:0;box-sizing:border-box;padding:0;border:none;margin:auto;display:block;width:0;height:0;min-width:100%;max-width:100%;min-height:100%;max-height:100%" class="dark:brightness-0 dark:invert" srcSet="/static/media/2023-04-37800ea6-airflow-1.svg 1x, /static/media/2023-04-37800ea6-airflow-1.svg 2x" src="/static/media/2023-04-37800ea6-airflow-1.svg"/></noscript></span></a><a target="_blank" rel="noopener noreferrer" class="mx-2 inline-flex max-h-[55px] max-w-[150px] flex-shrink-0 items-center justify-center overflow-hidden transition-opacity duration-200 ease-in-out hover:opacity-75" style="width:180px" href="https://github.com/dagster-io/dagster/blob/194e66741e6850fee827ccca6cf8df92999a7e5d/pyproject.toml#L119"><span style="box-sizing:border-box;display:inline-block;overflow:hidden;width:initial;height:initial;background:none;opacity:1;border:0;margin:0;padding:0;position:relative;max-width:100%"><span style="box-sizing:border-box;display:block;width:initial;height:initial;background:none;opacity:1;border:0;margin:0;padding:0;max-width:100%"><img style="display:block;max-width:100%;width:initial;height:initial;background:none;opacity:1;border:0;margin:0;padding:0" alt="" aria-hidden="true" src="data:image/svg+xml,%3csvg%20xmlns=%27http://www.w3.org/2000/svg%27%20version=%271.1%27%20width=%27154%27%20height=%2733%27/%3e"/></span><img alt="Elementl" src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" decoding="async" data-nimg="intrinsic" class="dark:brightness-0 dark:invert" style="opacity:0;transition:opacity 0.2s;position:absolute;top:0;left:0;bottom:0;right:0;box-sizing:border-box;padding:0;border:none;margin:auto;display:block;width:0;height:0;min-width:100%;max-width:100%;min-height:
10100%;max-height:100%"/><noscript><img alt="Elementl" loading="lazy" decoding="async" data-nimg="intrinsic" style="opacity:0;transition:opacity 0.2s;position:absolute;top:0;left:0;bottom:0;right:0;box-sizing:border-box;padding:0;border:none;margin:auto;display:block;width:0;height:0;min-width:100%;max-width:100%;min-height:100%;max-height:100%" class="dark:brightness-0 dark:invert" srcSet="/static/media/2023-03-e540c3f1-element.svg 1x, /static/media/2023-03-e540c3f1-element.svg 2x" src="/static/media/2023-03-e540c3f1-element.svg"/></noscript></span></a><a target="_blank" rel="noopener noreferrer" class="mx-2 inline-flex max-h-[55px] max-w-[150px] flex-shrink-0 items-center justify-center overflow-hidden transition-opacity duration-200 ease-in-out hover:opacity-75" style="width:180px" href="https://github.com/scipy/scipy/blob/c3a277b1f1b97bfb13e1f4c5063aabbc6772f23d/tools/ruff.toml#L1"><span style="box-sizing:border-box;display:inline-block;overflow:hidden;width:initial;height:initial;background:none;opacity:1;border:0;margin:0;padding:0;position:relative;max-width:100%"><span style="box-sizing:border-box;display:block;width:initial;height:initial;background:none;opacity:1;border:0;margin:0;padding:0;max-width:100%"><img style="display:block;max-width:100%;width:initial;height:initial;background:none;opacity:1;border:0;margin:0;padding:0" alt="" aria-hidden="true" src="data:image/svg+xml,%3csvg%20xmlns=%27http://www.w3.org/2000/svg%27%20version=%271.1%27%20width=%27110%27%20height=%2765%27/%3e"/></span><img alt="SciPy" src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" decoding="async" data-nimg="intrinsic" class="dark:brightness-0 dark:invert" style="opacity:0;transition:opacity 0.2s;position:absolute;top:0;left:0;bottom:0;right:0;box-sizing:border-box;padding:0;border:none;margin:auto;display:block;width:0;height:0;min-width:100%;max-width:100%;min-height:100%;max-height:100%"/><noscript><img alt="SciPy" loading="lazy" decoding="async" data-nimg="intrinsic" style="opacity:0;transition:opacity 0.2s;position:absolute;top:0;left:0;bottom:0;right:0;box-sizing:border-box;padding:0;border:none;margin:auto;display:block;width:0;height:0;min-width:100%;max-width:100%;min-height:100%;max-height:100%" class="dark:brightness-0 dark:invert" srcSet="/static/media/2023-04-8552506b-scipy-1.svg 1x, /static/media/2023-04-8552506b-scipy-1.svg 2x" src="/static/media/2023-04-8552506b-scipy-1.svg"/></noscript></span></a><a target="_blank" rel="noopener noreferrer" class="mx-2 inline-flex max-h-[55px] max-w-[150px] flex-shrink-0 items-center justify-center overflow-hidden transition-opacity duration-200 ease-in-out hover:opacity-75" style="width:180px" href="https://github.com/mozilla/gecko-dev/blob/6e2eff1bc53ad074fe4e7736c857b30779b92c5b/pyproject.toml#L1"><span style="box-sizing:border-box;display:inline-block;overflow:hidden;width:initial;height:initial;background:none;opacity:1;border:0;margin:0;padding:0;position:relative;max-width:100%"><span style="box-sizing:border-box;display:block;width:initial;height:initial;background:none;opacity:1;border:0;margin:0;padding:0;max-width:100%"><img style="display:block;max-width:100%;width:initial;height:initial;background:none;opacity:1;border:0;margin:0;padding:0" alt="" aria-hidden="true" src="data:image/svg+xml,%3csvg%20xmlns=%27http://www.w3.org/2000/svg%27%20version=%271.1%27%20width=%27120%27%20height=%2760%27/%3e"/></span><img alt="Mozilla" src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" decoding="async" data-nimg="intrinsic" class="dark:brightness-0 dark:invert" style="opacity:0;transition:opacity 0.2s;position:absolute;top:0;left:0;bottom:0;right:0;box-sizing:border-box;padding:0;border:none;margin:auto;display:block;width:0;height:0;min-width:100%;max-width:100%;min-height:100%;max-height:100%"/><noscript><img alt="Mozilla" loading="lazy" decoding="async" data-nimg="intrinsic" style="opacity:0;transition:opacity 0.2s;position:absolute;top:0;left:0;bottom:0;right:0;box-sizing:border-box;padding:0;border:none;margin:auto;display:block;width:0;height:0;min-width:100%;max-width:100%;min-height:100%;max-height:100%" class="dark:brightness-0 dark:invert" srcSet="/static/media/2023-04-f9196d4d-mozilla-1.svg 1x, /static/media/2023-04-f9196d4d-mozilla-1.svg 2x" src="/static/media/2023-04-f9196d4d-mozilla-1.svg"/></noscript></span></a><a target="_blank" rel="noopener noreferrer" class="mx-2 inline-flex max-h-[55px] max-w-[150px] flex-shrink-0 items-center justify-center overflow-hidden transition-opacity duration-200 ease-in-out hover:opacity-75" style="width:180px" href="https://github.com/Snowflake-Labs/snowcli/blob/76bd0cde8c9b44bfadee4ad1eff969b9c275fc49/pyproject.toml#L38"><span style="box-sizing:border-box;display:inline-block;overflow:hidden;width:initial;height:initial;background:none;opacity:1;border:0;margin:0;padding:0;position:relative;max-width:100%"><span style="box-sizing:border-box;display:block;width:initial;height:initial;background:none;opacity:1;border:0;margin:0;padding:0;max-width:100%"><img style="display:block;max-width:100%;width:initial;height:initial;background:none;opacity:1;border:0;margin:0;padding:0" alt="" aria-hidden="true" src="data:image/svg+xml,%3csvg%20xmlns=%27http://www.w3.org/2000/svg%27%20version=%271.1%27%20width=%27171%27%20height=%2741%27/%3e"/></span><img alt="Snowflake" src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" decoding="async" data-nimg="intrinsic" class="dark:brightness-0 dark:invert" style="opacity:0;transition:opacity 0.2s;position:absolute;top:0;left:0;bottom:0;right:0;box-sizing:border-box;padding:0;border:none;margin:auto;display:block;width:0;height:0;min-width:100%;max-width:100%;min-height:100%;max-height:100%"/><noscript><img alt="Snowflake" loading="lazy" decoding="async" data-nimg="intrinsic" style="opacity:0;transition:opacity 0.2s;position:absolute;top:0;left:0;bottom:0;right:0;box-sizing:border-box;padding:0;border:none;margin:auto;display:block;width:0;height:0;min-width:100%;max-width:100%;min-height:100%;max-height:100%" class="dark:brightness-0 dark:invert" srcSet="/static/media/2023-03-1e0ab03c-snowflake.svg 1x, /static/media/2023-03-1e0ab03c-snowflake.svg 2x" src="/static/media/2023-03-1e0ab03c-snowflake.svg"/></noscript></span></a></div><div class="animate-marquee-2 absolute top-0 flex h-[48px] items-center whitespace-nowrap"><a target="_blank" rel="noopener noreferrer" class="mx-2 inline-flex max-h-[55px] max-w-[150px] flex-shrink-0 items-center justify-center overflow-hidden transition-opacity duration-200 ease-in-out hover:opacity-75" style="width:180px" href="https://github.com/pandas-dev/pandas/blob/3b39a1014be661ed905d185aa4d78dbb627fe65d/pyproject.toml#L195"><span style="box-sizing:border-box;display:inline-block;overflow:hidden;width:initial;height:initial;background:none;opacity:1;border:0;margin:0;padding:0;position:relative;max-width:100%"><span style="box-sizing:border-box;display:block;width:initial;height:initial;background:none;opacity:1;border:0;margin:0;padding:0;max-width:100%"><img style="display:block;max-width:100%;width:initial;height:initial;background:none;opacity:1;border:0;margin:0;padding:0" alt="" aria-hidden="true" src="data:image/svg+xml,%3csvg%20xmlns=%27http://www.w3.org/2000/svg%27%20version=%271.1%27%20width=%27123%27%20height=%2765%27/%3e"/></span><img alt="Pandas" src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" decoding="async" data-nimg="intrinsic" class="dark:brightness-0 dark:invert" style="opacity:0;transition:opacity 0.2s;position:absolute;top:0;left:0;bottom:0;right:0;box-sizing:border-box;padding:0;border:none;margin:auto;display:block;width:0;height:0;min-width:100%;max-width:100%;min-height:100%;max-height:100%"/><noscript><img alt="Pandas" loading="lazy" decoding="async" data-nimg="intrinsic" style="opacity:0;transition:opacity 0.2s;position:absolute;top:0;left:0;bottom:0;right:0;box-sizing:border-box;padding:0;border:none;margin:auto;display:block;width:0;height:0;min-width:100%;max-width:100%;min-height:100%;max-height:100%" class="dark:brightness-0 dark:invert" srcSet="/static/media/2023-04-3c71d5b0-pandas-1.svg 1x, /static/media/2023-04-3c71d5b0-pandas-1.svg 2x" src="/static/media/2023-04-3c71d5b0-pandas-1.svg"/></noscript></span></a><a target="_blank" rel="noopener noreferrer" class="mx-2 inline-flex max-h-[55px] max-w-[150px] flex-shrink-0 items-center justify-center overflow-hidden transition-opacity duration-200 ease-in-out hover:opacity-75" style="width:180px" href="https://github.com/huggingface/transformers/blob/fe1f5a639d93c9272856c670cff3b0e1a10d5b2b/pyproject.toml#L5"><span style="box-sizing:border-box;display:inline-block;overflow:hidden;width:initial;height:initial;background:none;opacity:1;border:0;margin:0;padding:0;position:relative;max-width:100%"><span style="box-sizing:border-box;display:block;width:initial;height:initial;background:none;opacity:1;border:0;margin:0;padding:0;max-width:100%"><img style="display:block;max-width:100%;width:initial;height:initial;background:none;opacity:1;border:0;margin:0;padding:0" alt="" aria-hidden="true" src="data:image/svg+xml,%3csvg%20xmlns=%27http://www.w3.org/2000/svg%27%20version=%271.1%27%20width=%27196%27%20height=%2765%27/%3e"/></span><img alt="Hugging Face" src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" decoding="async" data-nimg="intrinsic" class="dark:brightness-0 dark:invert" style="opacity:0;transition:opacity 0.2s;position:absolute;top:0;left:0;bottom:0;right:0;box-sizing:border-box;padding:0;border:none;margin:auto;display:block;width:0;height:0;min-width:100%;max-width:100%;min-height:100%;max-height:100%"/><noscript><img alt="Hugging Face" loading="lazy" decoding="async" data-nimg="intrinsic" style="opacity:0;transition:opacity 0.2s;position:absolute;top:0;left:0;bottom:0;right:0;box-sizing:border-box;padding:0;border:none;margin:auto;display:block;width:0;height:0;min-width:100%;max-width:100%;min-height:100%;max-height:100%" class="dark:brightness-0 dark:invert" srcSet="/static/media/2023-04-b6fac3fe-hugging-face-1.svg 1x, /static/media/2023-04-b6fac3fe-hugging-face-1.svg 2x" src="/static/media/2023-04-b6fac3fe-hugging-face-1.svg"/></noscript></span></a><a target="_blank" rel="noopener noreferrer" class="mx-2 inline-flex max-h-[55px] max-w-[150px] flex-shrink-0 items-center justify-center overflow-hidden transition-opacity duration-200 ease-in-out hover:opacity-75" style="width:180px" href="https://github.com/tiangolo/fastapi/blob/6ce6c8954cf0bf526cc605e8f5eb1e3f2b95c675/pyproject.toml#L164"><span style="box-sizing:border-box;display:inline-block;overflow:hidden;width:initial;height:initial;background:none;opacity:1;border:0;margin:0;padding:0;position:relative;max-width:100%"><span style="box-sizing:border-box;display:block;width:initial;height:initial;background:none;opacity:1;border:0;margin:0;padding:0;max-width:100%"><img style="display:block;max-width:100%;width:initial;height:initial;background:none;opacity:1;border:0;margin:0;padding:0" alt="" aria-hidden="true" src="data:image/svg+xml,%3csvg%20xmlns=%27http://www.w3.org/2000/svg%27%20version=%271.1%27%20width=%27294%27%20height=%2770%27/%3e"/></span><img alt="FastAPI" src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" decoding="async" data-nimg="intrinsic" class="dark:brightness-0 dark:invert" style="opacity:0;transition:opacity 0.2s;position:absolute;top:0;left:0;bottom:0;right:0;box-sizing:border-box;padding:0;border:none;margin:auto;display:block;width:0;height:0;min-width:100%;max-width:100%;min-height:100%;max-height:100%"/><noscript><img alt="FastAPI" loading="lazy" decoding="async" data-nimg="intrinsic" style="opacity:0;transition:opacity 0.2s;position:absolute;top:0;left:0;bottom:0;right:0;box-sizing:border-box;padding:0;border:none;margin:auto;display:block;width:0;height:0;min-width:100%;max-width:100%;min-height:100%;max-height:100%" class="dark:brightness-0 dark:invert" srcSet="/_next/image?url=%2Fstatic%2Fmedia%2F2023-03-773304b3-fastapi-1.png&w=384&q=75 1x, /_next/image?url=%2Fstatic%2Fmedia%2F2023-03-773304b3-fastapi-1.png&w=640&q=75 2x" src="/_next/image?url=%2Fstatic%2Fmedia%2F2023-03-773304b3-fastapi-1.png&w=640&q=75"/></noscript></span></a><a target="_blank" rel="noopener noreferrer" class="mx-2 inline-flex max-h-[55px] max-w-[150px] flex-shrink-0 items-center justify-center overflow-hidden transition-opacity duration-200 ease-in-out hover:opacity-75" style="width:180px" href="https://github.com/apache/airflow/blob/afbe98d580508b238518e70bc0a65088e99d6581/pyproject.toml#L29"><span style="box-sizing:border-box;display:inline-block;overflow:hidden;width:initial;height:initial;background:none;opacity:1;border:0;margin:0;padding:0;position:relative;max-width:100%"><span style="box-sizing:border-box;display:block;width:initial;height:initial;background:none;opacity:1;border:0;margin:0;padding:0;max-width:100%"><img style="display:block;max-width:100%;width:initial;height:initial;background:none;opacity:1;border:0;margin:0;padding:0" alt="" aria-hidden="true" src="data:image/svg+xml,%3csvg%20xmlns=%27http://www.w3.org/2000/svg%27%20version=%271.1%27%20width=%27120%27%20height=%2765%27/%3e"/></span><img alt="Airflow" src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" decoding="async" data-nimg="intrinsic" class="dark:brightness-0 dark:invert" style="opacity:0;transition:opacity 0.2s;position:absolute;top:0;left:0;bottom:0;right:0;box-sizing:border-box;padding:0;border:none;margin:auto;display:block;width:0;height:0;min-width:100%;max-width:100%;min-height:100%;max-height:100%"/><noscript><img alt="Airflow" loading="lazy" decoding="async" data-nimg="intrinsic" style="opacity:0;transition:opacity 0.2s;position:absolute;top:0;left:0;bottom:0;right:0;box-sizing:border-box;padding:0;border:none;margin:auto;display:block;width:0;height:0;min-width:100%;max-width:100%;min-height:100%;max-height:100%" class="dark:brightness-0 dark:invert" srcSet="/static/media/2023-04-37800ea6-airflow-1.svg 1x, /static/media/2023-04-37800ea6-airflow-1.svg 2x" src="/static/media/2023-04-37800ea6-airflow-1.svg"/></noscript></span></a><a target="_blank" rel="noopener noreferrer" class="mx-2 inline-flex max-h-[55px] max-w-[150px] flex-shrink-0 items-center justify-center overflow-hidden transition-opacity duration-200 ease-in-out hover:opacity-75" style="width:180px" href="https://github.com/dagster-io/dagster/blob/194e66741e6850fee827ccca6cf8df92999a7e5d/pyproject.toml#L119"><span style="box-sizing:border-box;display:inline-block;overflow:hidden;width:initial;height:initial;background:none;opacity:1;border:0;margin:0;padding:0;position:relative;max-width:100%"><span style="box-sizing:border-box;display:block;width:initial;height:initial;background:none;opacity:1;border:0;margin:0;padding:0;max-width:100%"><img style="display:block;max-width:100%;width:initial;height:initial;background:none;opacity:1;border:0;margin:0;padding:0" alt="" aria-hidden="true" src="data:image/svg+xml,%3csvg%20xmlns=%27http://www.w3.org/2000/svg%27%20version=%271.1%27%20width=%27154%27%20height=%2733%27/%3e"/></span><img alt="Elementl" src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" decoding="async" data-nimg="intrinsic" class="dark:brightness-0 dark:invert" style="opacity:0;transition:opacity 0.2s;position:absolute;top:0;left:0;bottom:0;right:0;box-sizing:border-box;padding:0;border:none;margin:auto;display:block;width:0;height:0;min-width:100%;max-width:100%;min-height:100%;max-height:100%"/><noscript><img alt="Elementl" loading="lazy" decoding="async" data-nimg="intrinsic" style="opacity:0;transition:opacity 0.2s;position:absolute;top:0;left:0;bottom:0;right:0;box-sizing:border-box;padding:0;border:none;margin:auto;display:block;width:0;height:0;min-width:100%;max-width:100%;min-height:100%;max-height:100%" class="dark:brightness-0 dark:invert" srcSet="/static/media/2023-03-e540c3f1-element.svg 1x, /static/media/2023-03-e540c3f1-element.svg 2x" src="/static/media/2023-03-e540c3f1-element.svg"/></noscript></span></a><a target="_blank" rel="noopener noreferrer" class="mx-2 inline-flex max-h-[55px] max-w-[150px] flex-shrink-0
10 items-center justify-center overflow-hidden transition-opacity duration-200 ease-in-out hover:opacity-75" style="width:180px" href="https://github.com/scipy/scipy/blob/c3a277b1f1b97bfb13e1f4c5063aabbc6772f23d/tools/ruff.toml#L1"><span style="box-sizing:border-box;display:inline-block;overflow:hidden;width:initial;height:initial;background:none;opacity:1;border:0;margin:0;padding:0;position:relative;max-width:100%"><span style="box-sizing:border-box;display:block;width:initial;height:initial;background:none;opacity:1;border:0;margin:0;padding:0;max-width:100%"><img style="display:block;max-width:100%;width:initial;height:initial;background:none;opacity:1;border:0;margin:0;padding:0" alt="" aria-hidden="true" src="data:image/svg+xml,%3csvg%20xmlns=%27http://www.w3.org/2000/svg%27%20version=%271.1%27%20width=%27110%27%20height=%2765%27/%3e"/></span><img alt="SciPy" src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" decoding="async" data-nimg="intrinsic" class="dark:brightness-0 dark:invert" style="opacity:0;transition:opacity 0.2s;position:absolute;top:0;left:0;bottom:0;right:0;box-sizing:border-box;padding:0;border:none;margin:auto;display:block;width:0;height:0;min-width:100%;max-width:100%;min-height:100%;max-height:100%"/><noscript><img alt="SciPy" loading="lazy" decoding="async" data-nimg="intrinsic" style="opacity:0;transition:opacity 0.2s;position:absolute;top:0;left:0;bottom:0;right:0;box-sizing:border-box;padding:0;border:none;margin:auto;display:block;width:0;height:0;min-width:100%;max-width:100%;min-height:100%;max-height:100%" class="dark:brightness-0 dark:invert" srcSet="/static/media/2023-04-8552506b-scipy-1.svg 1x, /static/media/2023-04-8552506b-scipy-1.svg 2x" src="/static/media/2023-04-8552506b-scipy-1.svg"/></noscript></span></a><a target="_blank" rel="noopener noreferrer" class="mx-2 inline-flex max-h-[55px] max-w-[150px] flex-shrink-0 items-center justify-center overflow-hidden transition-opacity duration-200 ease-in-out hover:opacity-75" style="width:180px" href="https://github.com/mozilla/gecko-dev/blob/6e2eff1bc53ad074fe4e7736c857b30779b92c5b/pyproject.toml#L1"><span style="box-sizing:border-box;display:inline-block;overflow:hidden;width:initial;height:initial;background:none;opacity:1;border:0;margin:0;padding:0;position:relative;max-width:100%"><span style="box-sizing:border-box;display:block;width:initial;height:initial;background:none;opacity:1;border:0;margin:0;padding:0;max-width:100%"><img style="display:block;max-width:100%;width:initial;height:initial;background:none;opacity:1;border:0;margin:0;padding:0" alt="" aria-hidden="true" src="data:image/svg+xml,%3csvg%20xmlns=%27http://www.w3.org/2000/svg%27%20version=%271.1%27%20width=%27120%27%20height=%2760%27/%3e"/></span><img alt="Mozilla" src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" decoding="async" data-nimg="intrinsic" class="dark:brightness-0 dark:invert" style="opacity:0;transition:opacity 0.2s;position:absolute;top:0;left:0;bottom:0;right:0;box-sizing:border-box;padding:0;border:none;margin:auto;display:block;width:0;height:0;min-width:100%;max-width:100%;min-height:100%;max-height:100%"/><noscript><img alt="Mozilla" loading="lazy" decoding="async" data-nimg="intrinsic" style="opacity:0;transition:opacity 0.2s;position:absolute;top:0;left:0;bottom:0;right:0;box-sizing:border-box;padding:0;border:none;margin:auto;display:block;width:0;height:0;min-width:100%;max-width:100%;min-height:100%;max-height:100%" class="dark:brightness-0 dark:invert" srcSet="/static/media/2023-04-f9196d4d-mozilla-1.svg 1x, /static/media/2023-04-f9196d4d-mozilla-1.svg 2x" src="/static/media/2023-04-f9196d4d-mozilla-1.svg"/></noscript></span></a><a target="_blank" rel="noopener noreferrer" class="mx-2 inline-flex max-h-[55px] max-w-[150px] flex-shrink-0 items-center justify-center overflow-hidden transition-opacity duration-200 ease-in-out hover:opacity-75" style="width:180px" href="https://github.com/Snowflake-Labs/snowcli/blob/76bd0cde8c9b44bfadee4ad1eff969b9c275fc49/pyproject.toml#L38"><span style="box-sizing:border-box;display:inline-block;overflow:hidden;width:initial;height:initial;background:none;opacity:1;border:0;margin:0;padding:0;position:relative;max-width:100%"><span style="box-sizing:border-box;display:block;width:initial;height:initial;background:none;opacity:1;border:0;margin:0;padding:0;max-width:100%"><img style="display:block;max-width:100%;width:initial;height:initial;background:none;opacity:1;border:0;margin:0;padding:0" alt="" aria-hidden="true" src="data:image/svg+xml,%3csvg%20xmlns=%27http://www.w3.org/2000/svg%27%20version=%271.1%27%20width=%27171%27%20height=%2741%27/%3e"/></span><img alt="Snowflake" src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" decoding="async" data-nimg="intrinsic" class="dark:brightness-0 dark:invert" style="opacity:0;transition:opacity 0.2s;position:absolute;top:0;left:0;bottom:0;right:0;box-sizing:border-box;padding:0;border:none;margin:auto;display:block;width:0;height:0;min-width:100%;max-width:100%;min-height:100%;max-height:100%"/><noscript><img alt="Snowflake" loading="lazy" decoding="async" data-nimg="intrinsic" style="opacity:0;transition:opacity 0.2s;position:absolute;top:0;left:0;bottom:0;right:0;box-sizing:border-box;padding:0;border:none;margin:auto;display:block;width:0;height:0;min-width:100%;max-width:100%;min-height:100%;max-height:100%" class="dark:brightness-0 dark:invert" srcSet="/static/media/2023-03-1e0ab03c-snowflake.svg 1x, /static/media/2023-03-1e0ab03c-snowflake.svg 2x" src="/static/media/2023-03-1e0ab03c-snowflake.svg"/></noscript></span></a></div></div><div class="mx-auto hidden max-w-[900px] flex-wrap items-center justify-center gap-y-2 md:flex lg:gap-y-4"><a target="_blank" rel="noopener noreferrer" class="flex w-[25%] flex-shrink-0 items-center justify-center overflow-hidden transition-opacity duration-200 ease-in-out hover:opacity-75" href="https://github.com/pandas-dev/pandas/blob/3b39a1014be661ed905d185aa4d78dbb627fe65d/pyproject.toml#L195"><div class="flex max-h-[70%] max-w-[80%] lg:max-h-[55px] lg:max-w-[150px]"><span style="box-sizing:border-box;display:inline-block;overflow:hidden;width:initial;height:initial;background:none;opacity:1;border:0;margin:0;padding:0;position:relative;max-width:100%"><span style="box-sizing:border-box;display:block;width:initial;height:initial;background:none;opacity:1;border:0;margin:0;padding:0;max-width:100%"><img style="display:block;max-width:100%;width:initial;height:initial;background:none;opacity:1;border:0;margin:0;padding:0" alt="" aria-hidden="true" src="data:image/svg+xml,%3csvg%20xmlns=%27http://www.w3.org/2000/svg%27%20version=%271.1%27%20width=%27123%27%20height=%2765%27/%3e"/></span><img alt="Pandas" src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" decoding="async" data-nimg="intrinsic" class="w-full object-contain dark:brightness-0 dark:invert" style="opacity:0;transition:opacity 0.2s;position:absolute;top:0;left:0;bottom:0;right:0;box-sizing:border-box;padding:0;border:none;margin:auto;display:block;width:0;height:0;min-width:100%;max-width:100%;min-height:100%;max-height:100%"/><noscript><img alt="Pandas" loading="lazy" decoding="async" data-nimg="intrinsic" style="opacity:0;transition:opacity 0.2s;position:absolute;top:0;left:0;bottom:0;right:0;box-sizing:border-box;padding:0;border:none;margin:auto;display:block;width:0;height:0;min-width:100%;max-width:100%;min-height:100%;max-height:100%" class="w-full object-contain dark:brightness-0 dark:invert" srcSet="/static/media/2023-04-3c71d5b0-pandas-1.svg 1x, /static/media/2023-04-3c71d5b0-pandas-1.svg 2x" src="/static/media/2023-04-3c71d5b0-pandas-1.svg"/></noscript></span></div></a><a target="_blank" rel="noopener noreferrer" class="flex w-[25%] flex-shrink-0 items-center justify-center overflow-hidden transition-opacity duration-200 ease-in-out hover:opacity-75" href="https://github.com/huggingface/transformers/blob/fe1f5a639d93c9272856c670cff3b0e1a10d5b2b/pyproject.toml#L5"><div class="flex max-h-[70%] max-w-[80%] lg:max-h-[55px] lg:max-w-[150px]"><span style="box-sizing:border-box;display:inline-block;overflow:hidden;width:initial;height:initial;background:none;opacity:1;border:0;margin:0;padding:0;position:relative;max-width:100%"><span style="box-sizing:border-box;display:block;width:initial;height:initial;background:none;opacity:1;border:0;margin:0;padding:0;max-width:100%"><img style="display:block;max-width:100%;width:initial;height:initial;background:none;opacity:1;border:0;margin:0;padding:0" alt="" aria-hidden="true" src="data:image/svg+xml,%3csvg%20xmlns=%27http://www.w3.org/2000/svg%27%20version=%271.1%27%20width=%27196%27%20height=%2765%27/%3e"/></span><img alt="Hugging Face" src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" decoding="async" data-nimg="intrinsic" class="w-full object-contain dark:brightness-0 dark:invert" style="opacity:0;transition:opacity 0.2s;position:absolute;top:0;left:0;bottom:0;right:0;box-sizing:border-box;padding:0;border:none;margin:auto;display:block;width:0;height:0;min-width:100%;max-width:100%;min-height:100%;max-height:100%"/><noscript><img alt="Hugging Face" loading="lazy" decoding="async" data-nimg="intrinsic" style="opacity:0;transition:opacity 0.2s;position:absolute;top:0;left:0;bottom:0;right:0;box-sizing:border-box;padding:0;border:none;margin:auto;display:block;width:0;height:0;min-width:100%;max-width:100%;min-height:100%;max-height:100%" class="w-full object-contain dark:brightness-0 dark:invert" srcSet="/static/media/2023-04-b6fac3fe-hugging-face-1.svg 1x, /static/media/2023-04-b6fac3fe-hugging-face-1.svg 2x" src="/static/media/2023-04-b6fac3fe-hugging-face-1.svg"/></noscript></span></div></a><a target="_blank" rel="noopener noreferrer" class="flex w-[25%] flex-shrink-0 items-center justify-center overflow-hidden transition-opacity duration-200 ease-in-out hover:opacity-75" href="https://github.com/tiangolo/fastapi/blob/6ce6c8954cf0bf526cc605e8f5eb1e3f2b95c675/pyproject.toml#L164"><div class="flex max-h-[70%] max-w-[80%] lg:max-h-[55px] lg:max-w-[150px]"><span style="box-sizing:border-box;display:inline-block;overflow:hidden;width:initial;height:initial;background:none;opacity:1;border:0;margin:0;padding:0;position:relative;max-width:100%"><span style="box-sizing:border-box;display:block;width:initial;height:initial;background:none;opacity:1;border:0;margin:0;padding:0;max-width:100%"><img style="display:block;max-width:100%;width:initial;height:initial;background:none;opacity:1;border:0;margin:0;padding:0" alt="" aria-hidden="true" src="data:image/svg+xml,%3csvg%20xmlns=%27http://www.w3.org/2000/svg%27%20version=%271.1%27%20width=%27294%27%20height=%2770%27/%3e"/></span><img alt="FastAPI" src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" decoding="async" data-nimg="intrinsic" class="w-full object-contain dark:brightness-0 dark:invert" style="opacity:0;transition:opacity 0.2s;position:absolute;top:0;left:0;bottom:0;right:0;box-sizing:border-box;padding:0;border:none;margin:auto;display:block;width:0;height:0;min-width:100%;max-width:100%;min-height:100%;max-height:100%"/><noscript><img alt="FastAPI" loading="lazy" decoding="async" data-nimg="intrinsic" style="opacity:0;transition:opacity 0.2s;position:absolute;top:0;left:0;bottom:0;right:0;box-sizing:border-box;padding:0;border:none;margin:auto;display:block;width:0;height:0;min-width:100%;max-width:100%;min-height:100%;max-height:100%" class="w-full object-contain dark:brightness-0 dark:invert" srcSet="/_next/image?url=%2Fstatic%2Fmedia%2F2023-03-773304b3-fastapi-1.png&w=384&q=75 1x, /_next/image?url=%2Fstatic%2Fmedia%2F2023-03-773304b3-fastapi-1.png&w=640&q=75 2x" src="/_next/image?url=%2Fstatic%2Fmedia%2F2023-03-773304b3-fastapi-1.png&w=640&q=75"/></noscript></span></div></a><a target="_blank" rel="noopener noreferrer" class="flex w-[25%] flex-shrink-0 items-center justify-center overflow-hidden transition-opacity duration-200 ease-in-out hover:opacity-75" href="https://github.com/apache/airflow/blob/afbe98d580508b238518e70bc0a65088e99d6581/pyproject.toml#L29"><div class="flex max-h-[70%] max-w-[80%] lg:max-h-[55px] lg:max-w-[150px]"><span style="box-sizing:border-box;display:inline-block;overflow:hidden;width:initial;height:initial;background:none;opacity:1;border:0;margin:0;padding:0;position:relative;max-width:100%"><span style="box-sizing:border-box;display:block;width:initial;height:initial;background:none;opacity:1;border:0;margin:0;padding:0;max-width:100%"><img style="display:block;max-width:100%;width:initial;height:initial;background:none;opacity:1;border:0;margin:0;padding:0" alt="" aria-hidden="true" src="data:image/svg+xml,%3csvg%20xmlns=%27http://www.w3.org/2000/svg%27%20version=%271.1%27%20width=%27120%27%20height=%2765%27/%3e"/></span><img alt="Airflow" src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" decoding="async" data-nimg="intrinsic" class="w-full object-contain dark:brightness-0 dark:invert" style="opacity:0;transition:opacity 0.2s;position:absolute;top:0;left:0;bottom:0;right:0;box-sizing:border-box;padding:0;border:none;margin:auto;display:block;width:0;height:0;min-width:100%;max-width:100%;min-height:100%;max-height:100%"/><noscript><img alt="Airflow" loading="lazy" decoding="async" data-nimg="intrinsic" style="opacity:0;transition:opacity 0.2s;position:absolute;top:0;left:0;bottom:0;right:0;box-sizing:border-box;padding:0;border:none;margin:auto;display:block;width:0;height:0;min-width:100%;max-width:100%;min-height:100%;max-height:100%" class="w-full object-contain dark:brightness-0 dark:invert" srcSet="/static/media/2023-04-37800ea6-airflow-1.svg 1x, /static/media/2023-04-37800ea6-airflow-1.svg 2x" src="/static/media/2023-04-37800ea6-airflow-1.svg"/></noscript></span></div></a><a target="_blank" rel="noopener noreferrer" class="flex w-[25%] flex-shrink-0 items-center justify-center overflow-hidden transition-opacity duration-200 ease-in-out hover:opacity-75" href="https://github.com/dagster-io/dagster/blob/194e66741e6850fee827ccca6cf8df92999a7e5d/pyproject.toml#L119"><div class="flex max-h-[70%] max-w-[80%] lg:max-h-[55px] lg:max-w-[150px]"><span style="box-sizing:border-box;display:inline-block;overflow:hidden;width:initial;height:initial;background:none;opacity:1;border:0;margin:0;padding:0;position:relative;max-width:100%"><span style="box-sizing:border-box;display:block;width:initial;height:initial;background:none;opacity:1;border:0;margin:0;padding:0;max-width:100%"><img style="display:block;max-width:100%;width:initial;height:initial;background:none;opacity:1;border:0;margin:0;padding:0" alt="" aria-hidden="true" src="data:image/svg+xml,%3csvg%20xmlns=%27http://www.w3.org/2000/svg%27%20version=%271.1%27%20width=%27154%27%20height=%2733%27/%3e"/></span><img alt="Elementl" src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" decoding="async" data-nimg="intrinsic" class="w-full object-contain dark:brightness-0 dark:invert" style="opacity:0;transition:opacity 0.2s;position:absolute;top:0;left:0;bottom:0;right:0;box-sizing:border-box;padding:0;border:none;margin:auto;display:block;width:0;height:0;min-width:100%;max-width:100%;min-height:100%;max-height:100%"/><noscript><img alt="Elementl" loading="lazy" decoding="async" data-nimg="intrinsic" style="opacity:0;transition:opacity 0.2s;position:absolute;top:0;left:0;bottom:0;right:0;box-sizing:border-box;padding:0;border:none;margin:auto;display:block;width:0;height:0;min-width:100%;max-width:100%;min-height:100%;max-height:100%" class="w-full object-contain dark:brightness-0 dark:invert" srcSet="/static/media/2023-03-e540c3f1-element.svg 1x, /static/media/2023-03-e540c3f1-element.svg 2x" src="/static/media/2023-03-e540c3f1-element.svg"/></noscript></span></div></a><a target="_blank" rel="noopener noreferrer" class="flex w-[25%] flex-shrink-0 items-center justify-center overflow-hidden transition-opacity duration-200 ease-in-out hover:opacity-75" href="https://github.com/scipy/scipy/blob/c3a277b1f1b97bfb13e1f4c5063aabbc6772f23d/tools/ruff.toml#L1"><div class="flex max-h-[70%] max-w-[80%] lg:max-h-[55px] lg:max-w-[150px]"><span style="box-sizi
10ng:border-box;display:inline-block;overflow:hidden;width:initial;height:initial;background:none;opacity:1;border:0;margin:0;padding:0;position:relative;max-width:100%"><span style="box-sizing:border-box;display:block;width:initial;height:initial;background:none;opacity:1;border:0;margin:0;padding:0;max-width:100%"><img style="display:block;max-width:100%;width:initial;height:initial;background:none;opacity:1;border:0;margin:0;padding:0" alt="" aria-hidden="true" src="data:image/svg+xml,%3csvg%20xmlns=%27http://www.w3.org/2000/svg%27%20version=%271.1%27%20width=%27110%27%20height=%2765%27/%3e"/></span><img alt="SciPy" src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" decoding="async" data-nimg="intrinsic" class="w-full object-contain dark:brightness-0 dark:invert" style="opacity:0;transition:opacity 0.2s;position:absolute;top:0;left:0;bottom:0;right:0;box-sizing:border-box;padding:0;border:none;margin:auto;display:block;width:0;height:0;min-width:100%;max-width:100%;min-height:100%;max-height:100%"/><noscript><img alt="SciPy" loading="lazy" decoding="async" data-nimg="intrinsic" style="opacity:0;transition:opacity 0.2s;position:absolute;top:0;left:0;bottom:0;right:0;box-sizing:border-box;padding:0;border:none;margin:auto;display:block;width:0;height:0;min-width:100%;max-width:100%;min-height:100%;max-height:100%" class="w-full object-contain dark:brightness-0 dark:invert" srcSet="/static/media/2023-04-8552506b-scipy-1.svg 1x, /static/media/2023-04-8552506b-scipy-1.svg 2x" src="/static/media/2023-04-8552506b-scipy-1.svg"/></noscript></span></div></a><a target="_blank" rel="noopener noreferrer" class="flex w-[25%] flex-shrink-0 items-center justify-center overflow-hidden transition-opacity duration-200 ease-in-out hover:opacity-75" href="https://github.com/mozilla/gecko-dev/blob/6e2eff1bc53ad074fe4e7736c857b30779b92c5b/pyproject.toml#L1"><div class="flex max-h-[70%] max-w-[80%] lg:max-h-[55px] lg:max-w-[150px]"><span style="box-sizing:border-box;display:inline-block;overflow:hidden;width:initial;height:initial;background:none;opacity:1;border:0;margin:0;padding:0;position:relative;max-width:100%"><span style="box-sizing:border-box;display:block;width:initial;height:initial;background:none;opacity:1;border:0;margin:0;padding:0;max-width:100%"><img style="display:block;max-width:100%;width:initial;height:initial;background:none;opacity:1;border:0;margin:0;padding:0" alt="" aria-hidden="true" src="data:image/svg+xml,%3csvg%20xmlns=%27http://www.w3.org/2000/svg%27%20version=%271.1%27%20width=%27120%27%20height=%2760%27/%3e"/></span><img alt="Mozilla" src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" decoding="async" data-nimg="intrinsic" class="w-full object-contain dark:brightness-0 dark:invert" style="opacity:0;transition:opacity 0.2s;position:absolute;top:0;left:0;bottom:0;right:0;box-sizing:border-box;padding:0;border:none;margin:auto;display:block;width:0;height:0;min-width:100%;max-width:100%;min-height:100%;max-height:100%"/><noscript><img alt="Mozilla" loading="lazy" decoding="async" data-nimg="intrinsic" style="opacity:0;transition:opacity 0.2s;position:absolute;top:0;left:0;bottom:0;right:0;box-sizing:border-box;padding:0;border:none;margin:auto;display:block;width:0;height:0;min-width:100%;max-width:100%;min-height:100%;max-height:100%" class="w-full object-contain dark:brightness-0 dark:invert" srcSet="/static/media/2023-04-f9196d4d-mozilla-1.svg 1x, /static/media/2023-04-f9196d4d-mozilla-1.svg 2x" src="/static/media/2023-04-f9196d4d-mozilla-1.svg"/></noscript></span></div></a><a target="_blank" rel="noopener noreferrer" class="flex w-[25%] flex-shrink-0 items-center justify-center overflow-hidden transition-opacity duration-200 ease-in-out hover:opacity-75" href="https://github.com/Snowflake-Labs/snowcli/blob/76bd0cde8c9b44bfadee4ad1eff969b9c275fc49/pyproject.toml#L38"><div class="flex max-h-[70%] max-w-[80%] lg:max-h-[55px] lg:max-w-[150px]"><span style="box-sizing:border-box;display:inline-block;overflow:hidden;width:initial;height:initial;background:none;opacity:1;border:0;margin:0;padding:0;position:relative;max-width:100%"><span style="box-sizing:border-box;display:block;width:initial;height:initial;background:none;opacity:1;border:0;margin:0;padding:0;max-width:100%"><img style="display:block;max-width:100%;width:initial;height:initial;background:none;opacity:1;border:0;margin:0;padding:0" alt="" aria-hidden="true" src="data:image/svg+xml,%3csvg%20xmlns=%27http://www.w3.org/2000/svg%27%20version=%271.1%27%20width=%27171%27%20height=%2741%27/%3e"/></span><img alt="Snowflake" src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" decoding="async" data-nimg="intrinsic" class="w-full object-contain dark:brightness-0 dark:invert" style="opacity:0;transition:opacity 0.2s;position:absolute;top:0;left:0;bottom:0;right:0;box-sizing:border-box;padding:0;border:none;margin:auto;display:block;width:0;height:0;min-width:100%;max-width:100%;min-height:100%;max-height:100%"/><noscript><img alt="Snowflake" loading="lazy" decoding="async" data-nimg="intrinsic" style="opacity:0;transition:opacity 0.2s;position:absolute;top:0;left:0;bottom:0;right:0;box-sizing:border-box;padding:0;border:none;margin:auto;display:block;width:0;height:0;min-width:100%;max-width:100%;min-height:100%;max-height:100%" class="w-full object-contain dark:brightness-0 dark:invert" srcSet="/static/media/2023-03-1e0ab03c-snowflake.svg 1x, /static/media/2023-03-1e0ab03c-snowflake.svg 2x" src="/static/media/2023-03-1e0ab03c-snowflake.svg"/></noscript></span></div></a></div></div></div></section><section id="" class="overflow-visible relative bg-starlight dark:bg-space text-black dark:text-white pt-0 pb-0 padding-t padding-b"><div class="absolute left-0 top-0 flex h-8 w-full grid-cols-12 justify-between overflow-hidden lg:h-12"><div class="h-full" style="width:5%"><div class="relative h-full w-full rounded-br-[12px] bg-white dark:bg-black"><div class="absolute -right-4 z-0 h-4 w-4 lg:h-8 lg:w-8 bg-white dark:bg-black"></div></div></div><div class="relative z-10 h-full w-full rounded-tl-[12px] bg-starlight dark:bg-space"></div></div><div class="container"><div class="flex w-full flex-col md:items-center"><div class="text-card flex flex-col items-center space-y-5 text-center md:text-center md:"><h2 class="w-full break-words text-h2 md:max-w-2xl">An ambitious tool for ambitious projects</h2><div class="prose w-full body-l md:max-w-2xl"><p>Ruff is a high-performance Python linter that lets you ship faster. Replace dozens of dependencies with a single tool â that runs in a fraction of the time.</p> 11</div></div></div><div class="relative"><div class="padding-t"><div class="mx-auto max-w-[1140px]"><ul class="space-y-20 lg:space-y-32"><li class="space-y-10 lg:grid lg:grid-cols-12"><div class="lg:order-1 lg:col-span-8"><div style="transform:translateZ(0px)" class="flex h-full w-full items-center justify-center"><div class="h-[50px] w-[50px]"><svg version="1.1" id="L3" xmlns="http://www.w3.org/2000/svg" x="0px" y="0px" viewBox="0 0 100 100" enable-background="new 0 0 0 0"><circle fill="none" stroke="#fff" stroke-width="4" cx="50" cy="50" r="44" opacity="0.5"></circle><circle fill="#fff" stroke="#8655FF" stroke-width="3" cx="8" cy="54" r="6"><animateTransform attributeName="transform" dur="2s" type="rotate" from="0 50 48" to="360 50 52" repeatCount="indef
11inite"></animateTransform></circle></svg></div></div></div><div class="lg:col-span-4 lg:max-w-sm"><div class="flex w-full flex-col items-start"><div class="text-card flex flex-col items-start space-y-4 text-center md:text-left md:"><h2 class="w-full break-words text-h4 md:">"Shockingly fast"</h2><div class="prose w-full body-l md:"><p>Ruff is 10-100x faster than existing tools, enabling sub-second feedback loops on even the largest codebases.</p> 12</div></div></div></div></li><li class="space-y-10 lg:grid lg:grid-cols-12"><div class="lg:order-0 lg:col-span-8"><div style="transform:translateZ(0px)" class="flex h-full w-full items-center justify-center"><div class="h-[50px] w-[50px]"><svg version="1.1" id="L3" xmlns="http://www.w3.org/2000/svg" x="0px" y="0px" viewBox="0 0 100 100" enable-background="new 0 0 0 0"><circle fill="none" stroke="#fff" stroke-width="4" cx="50" cy="50" r="44" opacity="0.5"></circle><circle fill="#fff" stroke="#8655FF" stroke-width="3" cx="8" cy="54" r="6"><animateTransform attributeName="transform" dur="2s" type="rotate" from="0 50 48" to="360 50 52" repeatCount="indefinite"></animateTransform></circle></svg></div></div></div><div class="lg:col-span-4 lg:max-w-sm"><div class="flex w-full flex-col items-start"><div class="text-card flex flex-col items-start space-y-4 text-center md:text-left md:"><h2 class="w-full break-words text-h4 md:">All-in-one</h2><div class="prose w-full body-l md:"><p>Replace dozens of tools with a single, unified interface. Ruff supports over 500 rules and maintains drop-in compatibility with Flake8, isort, and more.</p> 13</div></div></div></div></li><li class="space-y-10 lg:grid lg:grid-cols-12"><div class="lg:order-1 lg:col-span-8"><div style="transform:translateZ(0px)" class="flex h-full w-full items-center justify-center"><div class="h-[50px] w-[50px]"><svg version="1.1" id="L3" xmlns="http://www.w3.org/2000/svg" x="0px" y="0px" viewBox="0 0 100 100" enable-background="new 0 0 0 0"><circle fill="none" stroke="#fff" stroke-width="4" cx="50" cy="50" r="44" opacity="0.5"></circle><circle fill="#fff" stroke="#8655FF" stroke-width="3" cx="8" cy="54" r="6"><animateTransform attributeName="transform" dur="2s" type="rotate" from="0 50 48" to="360 50 52" repeatCount="indefinite"></animateTransform></circle></svg></div></div></div><div class="lg:col-span-4 lg:max-w-sm"><div class="flex w-full flex-col items-start"><div class="text-card flex flex-col items-start space-y-4 text-center md:text-left md:"><h2 class="w-full break-words text-h4 md:">Automated</h2><div class="prose w-full body-l md:"><p>Automatically upgrade to newer Python syntax, organize imports, remove unused variables, and more with Ruffâs powerful autofix model.</p> 14</div></div></div></div></li></ul></div></div></div></div></section><section id="" class="overflow-visible bg-galaxy dark:bg-galaxy text-white pt-0 pb-0 padding-t padding-b"><div class=""><div class=""><div class="mt-12 lg:mt-0"><div class="inner-margin-b container text-center"><h3 class="text-h2 mx-auto max-w-[750px] lg:min-h-[150px]"><div class="font-semibold">Tried and tested.</div>Powering impactful projects across open source.</h3></div><div class="flex w-screen flex-row overflow-hidden"><div class="swiper"><div class="swiper-wrapper"><div class="swiper-slide w-full max-w-[300px] sm:max-w-[500px] md:max-w-[740px] lg:max-w-[920px] xl:max-w-[1060px]"><blockquote class="relative h-full w-full flex-shrink-0 rounded-[12px] p-6 lg:p-20 bg-space dark:bg-space"><div class="absolute right-0 top-0 flex h-10 w-10 items-center justify-center rounded-bl-[12px] bg-black dark:bg-galaxy text-radiate p-2 lg:h-20 lg:w-20 lg:p-4"><svg width="52" height="25" viewBox="0 0 52 25" fill="none" xmlns="http://www.w3.org/2000/svg"><path fill-rule="evenodd" clip-rule="evenodd" d="M1.25 0C0.559644 0 0 0.559644 0 1.25V15.5V17.5V23.75C0 24.4404 0.559644 25 1.25 25H23.75C24.4404 25 25 24.4404 25 23.75V5.25C25 4.55964 24.4404 4 23.75 4H11.5V0H1.25ZM28.25 0C27.5596 0 27 0.559644 27 1.25V15.5V17.5V23.75C27 24.4404 27.5596 25 28.25 25H50.75C51.4404 25 52 24.4404 52 23.75V5.25C52 4.55964 51.4404 4 50.75 4H38.5V0H28.25Z" fill="currentColor"></path></svg><div class="absolute -left-8 top-0 h-8 w-8 bg-black dark:bg-galaxy text-radiate"><div class="absolute inset-0 rounded-tr-[12px] bg-space dark:bg-space"></div></div><div class="absolute -bottom-8 right-0 h-8 w-full bg-black dark:bg-galaxy text-radiate"><div class="absolute inset-0 rounded-tr-[12px] bg-space dark:bg-space"></div></div></div><div class="relative z-20 h-full w-full items-start gap-8 lg:mt-0 lg:grid lg:grid-cols-12 lg:gap-12 xl:gap-20"><div class="hidden overflow-hidden rounded-[12px] lg:col-span-4 lg:block"><span style="box-sizing:border-box;display:block;overflow:hidden;width:initial;height:initial;background:none;opacity:1;border:0;margin:0;padding:0;position:relative"><span style="box-sizing:border-box;display:block;width:initial;height:initial;background:none;opacity:1;border:0;margin:0;padding:0;padding-top:117.3076923076923%"></span><img alt="Sebastián RamÃrez" src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" decoding="async" data-nimg="responsive" style="opacity:0;transition:opacity 0.2s;position:absolute;top:0;left:0;bottom:0;right:0;box-sizing:border-box;padding:0;border:none;margin:auto;display:block;width:0;height:0;min-width:100%;max-width:100%;min-height:100%;max-height:100%"/><noscript><img alt="Sebastián RamÃrez" loading="lazy" decoding="async" data-nimg="responsive" style="opacity:0;transition:opacity 0.2s;position:absolute;top:0;left:0;bottom:0;right:0;box-sizing:border-box;padding:0;border:none;margin:auto;display:block;width:0;height:0;min-width:100%;max-width:100%;min-height:100%;max-height:100%" sizes="100vw" srcSet="/_next/image?url=%2Fstatic%2Fmedia%2F2023-03-32cd25da-sebastian-ramirez.jpg&w=640&q=75 640w, /_next/image?url=%2Fstatic%2Fmedia%2F2023-03-32cd25da-sebastian-ramirez.jpg&w=750&q=75 750w, /_next/image?url=%2Fstatic%2Fmedia%2F2023-03-32cd25da-sebastian-ramirez.jpg&w=828&q=75 828w, /_next/image?url=%2Fstatic%2Fmedia%2F2023-03-32cd25da-sebastian-ramirez.jpg&w=1080&q=75 1080w, /_next/image?url=%2Fstatic%2Fmedia%2F2023-03-32cd25da-sebastian-ramirez.jpg&w=1200&q=75 1200w, /_next/image?url=%2Fstatic%2Fmedia%2F2023-03-32cd25da-sebastian-ramirez.jpg&w=1920&q=75 1920w, /_next/image?url=%2Fstatic%2Fmedia%2F2023-03-32cd25da-sebastian-ramirez.jpg&w=2048&q=75 2048w, /_next/image?url=%2Fstatic%2Fmedia%2F2023-03-32cd25da-sebastian-ramirez.jpg&w=3840&q=75 3840w" src="/_next/image?url=%2Fstatic%2Fmedia%2F2023-03-32cd25da-sebastian-ramirez.jpg&w=3840&q=75"/></noscript></span></div><div class="flex h-full w-full flex-col justify-between space-y-8 lg:col-span-8 lg:w-auto"><p class="w-11/12 whitespace-normal text-base leading-snug lg:text-[30px] lg:leading-[140%]">Ruff is so fast that sometimes I add an intentional bug in the code just to confirm it's actually running.</p><div class="flex items-center space-x-4 lg:space-x-0"><div class="h-12 w-12 flex-shrink-0 overflow-hidden rounded-lg lg:hidden"><span style="box-sizing:border-box;display:block;overflow:hidden;width:initial;height:initial;background:none;opacity:1;border:0;margin:0;padding:0;position:relative"><span style="box-sizing:border-box;display:block;width:initial;height:initial;background:none;opacity:1;border:0;margin:0;padding:0;padding-top:117.3076923076923%"></span><img alt="Sebastián RamÃrez" src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" decoding="async" data-nimg="responsive" style="opacity:0;transition:opacity 0.2s;position:absolute;top:0;left:0;bottom:0;right:0;box-sizing:border-box;padding:0;border:none;margin:auto;display:block;width:0;height:0;min-width:100%;max-width:100%;min-height:100%;max-height:100%"/><noscript><img alt="Sebastián RamÃrez" loading="lazy" decoding="async" data-nimg="responsive" style="opacity:0;transition:opacity 0.2s;position:absolute;top:0;left:0;bottom:0;right:0;box-sizing:border-box;padding:0;border:none;margin:auto;display:block;width:0;height:0;min-width:100%;max-width:100%;min-height:100%;max-height:100%" sizes="100vw" srcSet="/_next/image?url=%2Fstatic%2Fmedia%2F2023-03-32cd25da-sebastian-ramirez.jpg&w=640&q=75 640w, /_next/image?url=%2Fstatic%2Fmedia%2F2023-03-32cd25da-sebastian-ramirez.jpg&w=750&q=75 750w, /_next/image?url=%2Fstatic%2Fmedia%2F2023-03-32cd25da-sebastian-ramirez.jpg&w=828&q=75 828w, /_next/image?url=%2Fstatic%2Fmedia%2F2023-03-32cd25da-sebastian-ramirez.jpg&w=1080&q=75 1080w, /_next/image?url=%2Fstatic%2Fmedia%2F2023-03-32cd25da-sebastian-ramirez.jpg&w=1200&q=75 1200w, /_next/image?url=%2Fstatic%2Fmedia%2F2023-03-32cd25da-sebastian-ramirez.jpg&w=1920&q=75 1920w, /_next/image?url=%2Fstatic%2Fmedia%2F2023-03-32cd25da-sebastian-ramirez.jpg&w=2048&q=75 2048w, /_next/image?url=%2Fstatic%2Fmedia%2F2023-03-32cd25da-sebastian-ramirez.jpg&w=3840&q=75 3840w" src="/_next/image?url=%2Fstatic%2Fmedia%2F2023-03-32cd25da-sebastian-ramirez.jpg&w=3840&q=75"/></noscript></span></div><div class="space-y-2"><cite class="text-xs font-medium uppercase not-italic tracking-wider lg:text-base">Sebastián RamÃrez</cite><p class="body-s !leading-none text-nebula">Creator of FastAPI</p></div></div></div></div></blockquote></div><div class="swiper-slide w-full max-w-[300px] sm:max-w-[500px] md:max-w-[740px] lg:max-w-[920px] xl:max-w-[1060px]"><blockquote class="relative h-full w-full flex-shrink-0 rounded-[12px] p-6 lg:p-20 bg-space dark:bg-space"><div class="absolute right-0 top-0 flex h-10 w-10 items-center justify-center rounded-bl-[12px] bg-black dark:bg-galaxy text-radiate p-2 lg:h-20 lg:w-20 lg:p-4">
14<svg width="52" height="25" viewBox="0 0 52 25" fill="none" xmlns="http://www.w3.org/2000/svg"><path fill-rule="evenodd" clip-rule="evenodd" d="M1.25 0C0.559644 0 0 0.559644 0 1.25V15.5V17.5V23.75C0 24.4404 0.559644 25 1.25 25H23.75C24.4404 25 25 24.4404 25 23.75V5.25C25 4.55964 24.4404 4 23.75 4H11.5V0H1.25ZM28.25 0C27.5596 0 27 0.559644 27 1.25V15.5V17.5V23.75C27 24.4404 27.5596 25 28.25 25H50.75C51.4404 25 52 24.4404 52 23.75V5.25C52 4.55964 51.4404 4 50.75 4H38.5V0H28.25Z" fill="currentColor"></path></svg><div class="absolute -left-8 top-0 h-8 w-8 bg-black dark:bg-galaxy text-radiate"><div class="absolute inset-0 rounded-tr-[12px] bg-space dark:bg-space"></div></div><div class="absolute -bottom-8 right-0 h-8 w-full bg-black dark:bg-galaxy text-radiate"><div class="absolute inset-0 rounded-tr-[12px] bg-space dark:bg-space"></div></div></div><div class="relative z-20 h-full w-full items-start gap-8 lg:mt-0 lg:grid lg:grid-cols-12 lg:gap-12 xl:gap-20"><div class="hidden overflow-hidden rounded-[12px] lg:col-span-4 lg:block"><span style="box-sizing:border-box;display:block;overflow:hidden;width:initial;height:initial;background:none;opacity:1;border:0;margin:0;padding:0;position:relative"><span style="box-sizing:border-box;display:block;width:initial;height:initial;background:none;opacity:1;border:0;margin:0;padding:0;padding-top:117.3076923076923%"></span><img alt="Nick Schrock" src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" decoding="async" data-nimg="responsive" style="opacity:0;transition:opacity 0.2s;position:absolute;top:0;left:0;bottom:0;right:0;box-sizing:border-box;padding:0;border:none;margin:auto;display:block;width:0;height:0;min-width:100%;max-width:100%;min-height:100%;max-height:100%"/><noscript><img alt="Nick Schrock" loading="lazy" decoding="async" data-nimg="responsive" style="opacity:0;transition:opacity 0.2s;position:absolute;top:0;left:0;bottom:0;right:0;box-sizing:border-box;padding:0;border:none;margin:auto;display:block;width:0;height:0;min-width:100%;max-width:100%;min-height:100%;max-height:100%" sizes="100vw" srcSet="/_next/image?url=%2Fstatic%2Fmedia%2F2023-03-92c37926-nick-shrock.jpg&w=640&q=75 640w, /_next/image?url=%2Fstatic%2Fmedia%2F2023-03-92c37926-nick-shrock.jpg&w=750&q=75 750w, /_next/image?url=%2Fstatic%2Fmedia%2F2023-03-92c37926-nick-shrock.jpg&w=828&q=75 828w, /_next/image?url=%2Fstatic%2Fmedia%2F2023-03-92c37926-nick-shrock.jpg&w=1080&q=75 1080w, /_next/image?url=%2Fstatic%2Fmedia%2F2023-03-92c37926-nick-shrock.jpg&w=1200&q=75 1200w, /_next/image?url=%2Fstatic%2Fmedia%2F2023-03-92c37926-nick-shrock.jpg&w=1920&q=75 1920w, /_next/image?url=%2Fstatic%2Fmedia%2F2023-03-92c37926-nick-shrock.jpg&w=2048&q=75 2048w, /_next/image?url=%2Fstatic%2Fmedia%2F2023-03-92c37926-nick-shrock.jpg&w=3840&q=75 3840w" src="/_next/image?url=%2Fstatic%2Fmedia%2F2023-03-92c37926-nick-shrock.jpg&w=3840&q=75"/></noscript></span></div><div class="flex h-full w-full flex-col justify-between space-y-8 lg:col-span-8 lg:w-auto"><p class="w-11/12 whitespace-normal text-base leading-snug lg:text-[30px] lg:leading-[140%]">Why is Ruff a gamechanger? Primarily because itâs nearly 1000x faster. Literally. Not a typo.</p><div class="flex items-center space-x-4 lg:space-x-0"><div class="h-12 w-12 flex-shrink-0 overflow-hidden rounded-lg lg:hidden"><span style="box-sizing:border-box;display:block;overflow:hidden;width:initial;height:initial;background:none;opacity:1;border:0;margin:0;padding:0;position:relative"><span style="box-sizing:border-box;display:block;width:initial;height:initial;background:none;opacity:1;border:0;margin:0;padding:0;padding-top:117.3076923076923%"></span><img alt="Nick Schrock" src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" decoding="async" data-nimg="responsive" style="opacity:0;transition:opacity 0.2s;position:absolute;top:0;left:0;bottom:0;right:0;box-sizing:border-box;padding:0;border:none;margin:auto;display:block;width:0;height:0;min-width:100%;max-width:100%;min-height:100%;max-height:100%"/><noscript><img alt="Nick Schrock" loading="lazy" decoding="async" data-nimg="responsive" style="opacity:0;transition:opacity 0.2s;position:absolute;top:0;left:0;bottom:0;right:0;box-sizing:border-box;padding:0;border:none;margin:auto;display:block;width:0;height:0;min-width:100%;max-width:100%;min-height:100%;max-height:100%" sizes="100vw" srcSet="/_next/image?url=%2Fstatic%2Fmedia%2F2023-03-92c37926-nick-shrock.jpg&w=640&q=75 640w, /_next/image?url=%2Fstatic%2Fmedia%2F2023-03-92c37926-nick-shrock.jpg&w=750&q=75 750w, /_next/image?url=%2Fstatic%2Fmedia%2F2023-03-92c37926-nick-shrock.jpg&w=828&q=75 828w, /_next/image?url=%2Fstatic%2Fmedia%2F2023-03-92c37926-nick-shrock.jpg&w=1080&q=75 1080w, /_next/image?url=%2Fstatic%2Fmedia%2F2023-03-92c37926-nick-shrock.jpg&w=1200&q=75 1200w, /_next/image?url=%2Fstatic%2Fmedia%2F2023-03-92c37926-nick-shrock.jpg&w=1920&q=75 1920w, /_next/image?url=%2Fstatic%2Fmedia%2F2023-03-92c37926-nick-shrock.jpg&w=2048&q=75 2048w, /_next/image?url=%2Fstatic%2Fmedia%2F2023-03-92c37926-nick-shrock.jpg&w=3840&q=75 3840w" src="/_next/image?url=%2Fstatic%2Fmedia%2F2023-03-92c37926-nick-shrock.jpg&w=3840&q=75"/></noscript></span></div><div class="space-y-2"><cite class="text-xs font-medium uppercase not-italic tracking-wider lg:text-base">Nick Schrock</cite><p class="body-s !leading-none text-nebula">Founder of Elementl, co-creator of GraphQL</p></div></div></div></div></blockquote></div><div class="swiper-slide w-full max-w-[300px] sm:max-w-[500px] md:max-w-[740px] lg:max-w-[920px] xl:max-w-[1060px]"><blockquote class="relative h-full w-full flex-shrink-0 rounded-[12px] p-6 lg:p-20 bg-space dark:bg-space"><div class="absolute right-0 top-0 flex h-10 w-10 items-center justify-center rounded-bl-[12px] bg-black dark:bg-galaxy text-radiate p-2 lg:h-20 lg:w-20 lg:p-4">
14<svg width="52" height="25" viewBox="0 0 52 25" fill="none" xmlns="http://www.w3.org/2000/svg"><path fill-rule="evenodd" clip-rule="evenodd" d="M1.25 0C0.559644 0 0 0.559644 0 1.25V15.5V17.5V23.75C0 24.4404 0.559644 25 1.25 25H23.75C24.4404 25 25 24.4404 25 23.75V5.25C25 4.55964 24.4404 4 23.75 4H11.5V0H1.25ZM28.25 0C27.5596 0 27 0.559644 27 1.25V15.5V17.5V23.75C27 24.4404 27.5596 25 28.25 25H50.75C51.4404 25 52 24.4404 52 23.75V5.25C52 4.55964 51.4404 4 50.75 4H38.5V0H28.25Z" fill="currentColor"></path></svg><div class="absolute -left-8 top-0 h-8 w-8 bg-black dark:bg-galaxy text-radiate"><div class="absolute inset-0 rounded-tr-[12px] bg-space dark:bg-space"></div></div><div class="absolute -bottom-8 right-0 h-8 w-full bg-black dark:bg-galaxy text-radiate"><div class="absolute inset-0 rounded-tr-[12px] bg-space dark:bg-space"></div></div></div><div class="relative z-20 h-full w-full items-start gap-8 lg:mt-0 lg:grid lg:grid-cols-12 lg:gap-12 xl:gap-20"><div class="hidden overflow-hidden rounded-[12px] lg:col-span-4 lg:block"><span style="box-sizing:border-box;display:block;overflow:hidden;width:initial;height:initial;background:none;opacity:1;border:0;margin:0;padding:0;position:relative"><span style="box-sizing:border-box;display:block;width:initial;height:initial;background:none;opacity:1;border:0;margin:0;padding:0;padding-top:117.3076923076923%"></span><img alt="Timothy Crosley" src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" decoding="async" data-nimg="responsive" style="opacity:0;transition:opacity 0.2s;position:absolute;top:0;left:0;bottom:0;right:0;box-sizing:border-box;padding:0;border:none;margin:auto;display:block;width:0;height:0;min-width:100%;max-width:100%;min-height:100%;max-height:100%"/><noscript><img alt="Timothy Crosley" loading="lazy" decoding="async" data-nimg="responsive" style="opacity:0;transition:opacity 0.2s;position:absolute;top:0;left:0;bottom:0;right:0;box-sizing:border-box;padding:0;border:none;margin:auto;display:block;width:0;height:0;min-width:100%;max-width:100%;min-height:100%;max-height:100%" sizes="100vw" srcSet="/_next/image?url=%2Fstatic%2Fmedia%2F2023-03-aec0867d-timothy-crosley.jpg&w=640&q=75 640w, /_next/image?url=%2Fstatic%2Fmedia%2F2023-03-aec0867d-timothy-crosley.jpg&w=750&q=75 750w, /_next/image?url=%2Fstatic%2Fmedia%2F2023-03-aec0867d-timothy-crosley.jpg&w=828&q=75 828w, /_next/image?url=%2Fstatic%2Fmedia%2F2023-03-aec0867d-timothy-crosley.jpg&w=1080&q=75 1080w, /_next/image?url=%2Fstatic%2Fmedia%2F2023-03-aec0867d-timothy-crosley.jpg&w=1200&q=75 1200w, /_next/image?url=%2Fstatic%2Fmedia%2F2023-03-aec0867d-timothy-crosley.jpg&w=1920&q=75 1920w, /_next/image?url=%2Fstatic%2Fmedia%2F2023-03-aec0867d-timothy-crosley.jpg&w=2048&q=75 2048w, /_next/image?url=%2Fstatic%2Fmedia%2F2023-03-aec0867d-timothy-crosley.jpg&w=3840&q=75 3840w" src="/_next/image?url=%2Fstatic%2Fmedia%2F2023-03-aec0867d-timothy-crosley.jpg&w=3840&q=75"/></noscript></span></div><div class="flex h-full w-full flex-col justify-between space-y-8 lg:col-span-8 lg:w-auto"><p class="w-11/12 whitespace-normal text-base leading-snug lg:text-[30px] lg:leading-[140%]">Just switched my first project to Ruff. Only one downside so far: it's so fast I couldn't believe it was working until I intentionally introduced some errors.</p><div class="flex items-center space-x-4 lg:space-x-0"><div class="h-12 w-12 flex-shrink-0 overflow-hidden rounded-lg lg:hidden"><span style="box-sizing:border-box;display:block;overflow:hidden;width:initial;height:initial;background:none;opacity:1;border:0;margin:0;padding:0;position:relative"><span style="box-sizing:border-box;display:block;width:initial;height:initial;background:none;opacity:1;border:0;margin:0;padding:0;padding-top:117.3076923076923%"></span><img alt="Timothy Crosley" src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" decoding="async" data-nimg="responsive" style="opacity:0;transition:opacity 0.2s;position:absolute;top:0;left:0;bottom:0;right:0;box-sizing:border-box;padding:0;border:none;margin:auto;display:block;width:0;height:0;min-width:100%;max-width:100%;min-height:100%;max-height:100%"/><noscript><img alt="Timothy Crosley" loading="lazy" decoding="async" data-nimg="responsive" style="opacity:0;transition:opacity 0.2s;position:absolute;top:0;left:0;bottom:0;right:0;box-sizing:border-box;padding:0;border:none;margin:auto;display:block;width:0;height:0;min-width:100%;max-width:100%;min-height:100%;max-height:100%" sizes="100vw" srcSet="/_next/image?url=%2Fstatic%2Fmedia%2F2023-03-aec0867d-timothy-crosley.jpg&w=640&q=75 640w, /_next/image?url=%2Fstatic%2Fmedia%2F2023-03-aec0867d-timothy-crosley.jpg&w=750&q=75 750w, /_next/image?url=%2Fstatic%2Fmedia%2F2023-03-aec0867d-timothy-crosley.jpg&w=828&q=75 828w, /_next/image?url=%2Fstatic%2Fmedia%2F2023-03-aec0867d-timothy-crosley.jpg&w=1080&q=75 1080w, /_next/image?url=%2Fstatic%2Fmedia%2F2023-03-aec0867d-timothy-crosley.jpg&w=1200&q=75 1200w, /_next/image?url=%2Fstatic%2Fmedia%2F2023-03-aec0867d-timothy-crosley.jpg&w=1920&q=75 1920w, /_next/image?url=%2Fstatic%2Fmedia%2F2023-03-aec0867d-timothy-crosley.jpg&w=2048&q=75 2048w, /_next/image?url=%2Fstatic%2Fmedia%2F2023-03-aec0867d-timothy-crosley.jpg&w=3840&q=75 3840w" src="/_next/image?url=%2Fstatic%2Fmedia%2F2023-03-aec0867d-timothy-crosley.jpg&w=3840&q=75"/></noscript></span></div><div class="space-y-2"><cite class="text-xs font-medium uppercase not-italic tracking-wider lg:text-base">Timothy Crosley</cite><p class="body-s !leading-none text-nebula">Software Engineer at Stripe, Creator of isort</p></div></div></div></div></blockquote></div><div class="swiper-slide w-full max-w-[300px] sm:max-w-[500px] md:max-w-[740px] lg:max-w-[920px] xl:max-w-[1060px]"><blockquote class="relative h-full w-full flex-shrink-0 rounded-[12px] p-6 lg:p-20 bg-space dark:bg-space"><div class="absolute right-0 top-0 flex h-10 w-10 items-center justify-center rounded-bl-[12px] bg-black dark:bg-galaxy text-radiate p-2 lg:h-20 lg:w-20 lg:p-4">
14<svg width="52" height="25" viewBox="0 0 52 25" fill="none" xmlns="http://www.w3.org/2000/svg"><path fill-rule="evenodd" clip-rule="evenodd" d="M1.25 0C0.559644 0 0 0.559644 0 1.25V15.5V17.5V23.75C0 24.4404 0.559644 25 1.25 25H23.75C24.4404 25 25 24.4404 25 23.75V5.25C25 4.55964 24.4404 4 23.75 4H11.5V0H1.25ZM28.25 0C27.5596 0 27 0.559644 27 1.25V15.5V17.5V23.75C27 24.4404 27.5596 25 28.25 25H50.75C51.4404 25 52 24.4404 52 23.75V5.25C52 4.55964 51.4404 4 50.75 4H38.5V0H28.25Z" fill="currentColor"></path></svg><div class="absolute -left-8 top-0 h-8 w-8 bg-black dark:bg-galaxy text-radiate"><div class="absolute inset-0 rounded-tr-[12px] bg-space dark:bg-space"></div></div><div class="absolute -bottom-8 right-0 h-8 w-full bg-black dark:bg-galaxy text-radiate"><div class="absolute inset-0 rounded-tr-[12px] bg-space dark:bg-space"></div></div></div><div class="relative z-20 h-full w-full items-start gap-8 lg:mt-0 lg:grid lg:grid-cols-12 lg:gap-12 xl:gap-20"><div class="hidden overflow-hidden rounded-[12px] lg:col-span-4 lg:block"><span style="box-sizing:border-box;display:block;overflow:hidden;width:initial;height:initial;background:none;opacity:1;border:0;margin:0;padding:0;position:relative"><span style="box-sizing:border-box;display:block;width:initial;height:initial;background:none;opacity:1;border:0;margin:0;padding:0;padding-top:117.3076923076923%"></span><img alt="Sebastián RamÃrez" src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" decoding="async" data-nimg="responsive" style="opacity:0;transition:opacity 0.2s;position:absolute;top:0;left:0;bottom:0;right:0;box-sizing:border-box;padding:0;border:none;margin:auto;display:block;width:0;height:0;min-width:100%;max-width:100%;min-height:100%;max-height:100%"/><noscript><img alt="Sebastián RamÃrez" loading="lazy" decoding="async" data-nimg="responsive" style="opacity:0;transition:opacity 0.2s;position:absolute;top:0;left:0;bottom:0;right:0;box-sizing:border-box;padding:0;border:none;margin:auto;display:block;width:0;height:0;min-width:100%;max-width:100%;min-height:100%;max-height:100%" sizes="100vw" srcSet="/_next/image?url=%2Fstatic%2Fmedia%2F2023-03-32cd25da-sebastian-ramirez.jpg&w=640&q=75 640w, /_next/image?url=%2Fstatic%2Fmedia%2F2023-03-32cd25da-sebastian-ramirez.jpg&w=750&q=75 750w, /_next/image?url=%2Fstatic%2Fmedia%2F2023-03-32cd25da-sebastian-ramirez.jpg&w=828&q=75 828w, /_next/image?url=%2Fstatic%2Fmedia%2F2023-03-32cd25da-sebastian-ramirez.jpg&w=1080&q=75 1080w, /_next/image?url=%2Fstatic%2Fmedia%2F2023-03-32cd25da-sebastian-ramirez.jpg&w=1200&q=75 1200w, /_next/image?url=%2Fstatic%2Fmedia%2F2023-03-32cd25da-sebastian-ramirez.jpg&w=1920&q=75 1920w, /_next/image?url=%2Fstatic%2Fmedia%2F2023-03-32cd25da-sebastian-ramirez.jpg&w=2048&q=75 2048w, /_next/image?url=%2Fstatic%2Fmedia%2F2023-03-32cd25da-sebastian-ramirez.jpg&w=3840&q=75 3840w" src="/_next/image?url=%2Fstatic%2Fmedia%2F2023-03-32cd25da-sebastian-ramirez.jpg&w=3840&q=75"/></noscript></span></div><div class="flex h-full w-full flex-col justify-between space-y-8 lg:col-span-8 lg:w-auto"><p class="w-11/12 whitespace-normal text-base leading-snug lg:text-[30px] lg:leading-[140%]">Ruff is so fast that sometimes I add an intentional bug in the code just to confirm it's actually running.</p><div class="flex items-center space-x-4 lg:space-x-0"><div class="h-12 w-12 flex-shrink-0 overflow-hidden rounded-lg lg:hidden"><span style="box-sizing:border-box;display:block;overflow:hidden;width:initial;height:initial;background:none;opacity:1;border:0;margin:0;padding:0;position:relative"><span style="box-sizing:border-box;display:block;width:initial;height:initial;background:none;opacity:1;border:0;margin:0;padding:0;padding-top:117.3076923076923%"></span><img alt="Sebastián RamÃrez" src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" decoding="async" data-nimg="responsive" style="opacity:0;transition:opacity 0.2s;position:absolute;top:0;left:0;bottom:0;right:0;box-sizing:border-box;padding:0;border:none;margin:auto;display:block;width:0;height:0;min-width:100%;max-width:100%;min-height:100%;max-height:100%"/><noscript><img alt="Sebastián RamÃrez" loading="lazy" decoding="async" data-nimg="responsive" style="opacity:0;transition:opacity 0.2s;position:absolute;top:0;left:0;bottom:0;right:0;box-sizing:border-box;padding:0;border:none;margin:auto;display:block;width:0;height:0;min-width:100%;max-width:100%;min-height:100%;max-height:100%" sizes="100vw" srcSet="/_next/image?url=%2Fstatic%2Fmedia%2F2023-03-32cd25da-sebastian-ramirez.jpg&w=640&q=75 640w, /_next/image?url=%2Fstatic%2Fmedia%2F2023-03-32cd25da-sebastian-ramirez.jpg&w=750&q=75 750w, /_next/image?url=%2Fstatic%2Fmedia%2F2023-03-32cd25da-sebastian-ramirez.jpg&w=828&q=75 828w, /_next/image?url=%2Fstatic%2Fmedia%2F2023-03-32cd25da-sebastian-ramirez.jpg&w=1080&q=75 1080w, /_next/image?url=%2Fstatic%2Fmedia%2F2023-03-32cd25da-sebastian-ramirez.jpg&w=1200&q=75 1200w, /_next/image?url=%2Fstatic%2Fmedia%2F2023-03-32cd25da-sebastian-ramirez.jpg&w=1920&q=75 1920w, /_next/image?url=%2Fstatic%2Fmedia%2F2023-03-32cd25da-sebastian-ramirez.jpg&w=2048&q=75 2048w, /_next/image?url=%2Fstatic%2Fmedia%2F2023-03-32cd25da-sebastian-ramirez.jpg&w=3840&q=75 3840w" src="/_next/image?url=%2Fstatic%2Fmedia%2F2023-03-32cd25da-sebastian-ramirez.jpg&w=3840&q=75"/></noscript></span></div><div class="space-y-2"><cite class="text-xs font-medium uppercase not-italic tracking-wider lg:text-base">Sebastián RamÃrez</cite><p class="body-s !leading-none text-nebula">Creator of FastAPI</p></div></div></div></div></blockquote></div><div class="swiper-slide w-full max-w-[300px] sm:max-w-[500px] md:max-w-[740px] lg:max-w-[920px] xl:max-w-[1060px]"><blockquote class="relative h-full w-full flex-shrink-0 rounded-[12px] p-6 lg:p-20 bg-space dark:bg-space"><div class="absolute right-0 top-0 flex h-10 w-10 items-center justify-center rounded-bl-[12px] bg-black dark:bg-galaxy text-radiate p-2 lg:h-20 lg:w-20 lg:p-4">
14<svg width="52" height="25" viewBox="0 0 52 25" fill="none" xmlns="http://www.w3.org/2000/svg"><path fill-rule="evenodd" clip-rule="evenodd" d="M1.25 0C0.559644 0 0 0.559644 0 1.25V15.5V17.5V23.75C0 24.4404 0.559644 25 1.25 25H23.75C24.4404 25 25 24.4404 25 23.75V5.25C25 4.55964 24.4404 4 23.75 4H11.5V0H1.25ZM28.25 0C27.5596 0 27 0.559644 27 1.25V15.5V17.5V23.75C27 24.4404 27.5596 25 28.25 25H50.75C51.4404 25 52 24.4404 52 23.75V5.25C52 4.55964 51.4404 4 50.75 4H38.5V0H28.25Z" fill="currentColor"></path></svg><div class="absolute -left-8 top-0 h-8 w-8 bg-black dark:bg-galaxy text-radiate"><div class="absolute inset-0 rounded-tr-[12px] bg-space dark:bg-space"></div></div><div class="absolute -bottom-8 right-0 h-8 w-full bg-black dark:bg-galaxy text-radiate"><div class="absolute inset-0 rounded-tr-[12px] bg-space dark:bg-space"></div></div></div><div class="relative z-20 h-full w-full items-start gap-8 lg:mt-0 lg:grid lg:grid-cols-12 lg:gap-12 xl:gap-20"><div class="hidden overflow-hidden rounded-[12px] lg:col-span-4 lg:block"><span style="box-sizing:border-box;display:block;overflow:hidden;width:initial;height:initial;background:none;opacity:1;border:0;margin:0;padding:0;position:relative"><span style="box-sizing:border-box;display:block;width:initial;height:initial;background:none;opacity:1;border:0;margin:0;padding:0;padding-top:117.3076923076923%"></span><img alt="Nick Schrock" src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" decoding="async" data-nimg="responsive" style="opacity:0;transition:opacity 0.2s;position:absolute;top:0;left:0;bottom:0;right:0;box-sizing:border-box;padding:0;border:none;margin:auto;display:block;width:0;height:0;min-width:100%;max-width:100%;min-height:100%;max-height:100%"/><noscript><img alt="Nick Schrock" loading="lazy" decoding="async" data-nimg="responsive" style="opacity:0;transition:opacity 0.2s;position:absolute;top:0;left:0;bottom:0;right:0;box-sizing:border-box;padding:0;border:none;margin:auto;display:block;width:0;height:0;min-width:100%;max-width:100%;min-height:100%;max-height:100%" sizes="100vw" srcSet="/_next/image?url=%2Fstatic%2Fmedia%2F2023-03-92c37926-nick-shrock.jpg&w=640&q=75 640w, /_next/image?url=%2Fstatic%2Fmedia%2F2023-03-92c37926-nick-shrock.jpg&w=750&q=75 750w, /_next/image?url=%2Fstatic%2Fmedia%2F2023-03-92c37926-nick-shrock.jpg&w=828&q=75 828w, /_next/image?url=%2Fstatic%2Fmedia%2F2023-03-92c37926-nick-shrock.jpg&w=1080&q=75 1080w, /_next/image?url=%2Fstatic%2Fmedia%2F2023-03-92c37926-nick-shrock.jpg&w=1200&q=75 1200w, /_next/image?url=%2Fstatic%2Fmedia%2F2023-03-92c37926-nick-shrock.jpg&w=1920&q=75 1920w, /_next/image?url=%2Fstatic%2Fmedia%2F2023-03-92c37926-nick-shrock.jpg&w=2048&q=75 2048w, /_next/image?url=%2Fstatic%2Fmedia%2F2023-03-92c37926-nick-shrock.jpg&w=3840&q=75 3840w" src="/_next/image?url=%2Fstatic%2Fmedia%2F2023-03-92c37926-nick-shrock.jpg&w=3840&q=75"/></noscript></span></div><div class="flex h-full w-full flex-col justify-between space-y-8 lg:col-span-8 lg:w-auto"><p class="w-11/12 whitespace-normal text-base leading-snug lg:text-[30px] lg:leading-[140%]">Why is Ruff a gamechanger? Primarily because itâs nearly 1000x faster. Literally. Not a typo.</p><div class="flex items-center space-x-4 lg:space-x-0"><div class="h-12 w-12 flex-shrink-0 overflow-hidden rounded-lg lg:hidden"><span style="box-sizing:border-box;display:block;overflow:hidden;width:initial;height:initial;background:none;opacity:1;border:0;margin:0;padding:0;position:relative"><span style="box-sizing:border-box;display:block;width:initial;height:initial;background:none;opacity:1;border:0;margin:0;padding:0;padding-top:117.3076923076923%"></span><img alt="Nick Schrock" src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" decoding="async" data-nimg="responsive" style="opacity:0;transition:opacity 0.2s;position:absolute;top:0;left:0;bottom:0;right:0;box-sizing:border-box;padding:0;border:none;margin:auto;display:block;width:0;height:0;min-width:100%;max-width:100%;min-height:100%;max-height:100%"/><noscript><img alt="Nick Schrock" loading="lazy" decoding="async" data-nimg="responsive" style="opacity:0;transition:opacity 0.2s;position:absolute;top:0;left:0;bottom:0;right:0;box-sizing:border-box;padding:0;border:none;margin:auto;display:block;width:0;height:0;min-width:100%;max-width:100%;min-height:100%;max-height:100%" sizes="100vw" srcSet="/_next/image?url=%2Fstatic%2Fmedia%2F2023-03-92c37926-nick-shrock.jpg&w=640&q=75 640w, /_next/image?url=%2Fstatic%2Fmedia%2F2023-03-92c37926-nick-shrock.jpg&w=750&q=75 750w, /_next/image?url=%2Fstatic%2Fmedia%2F2023-03-92c37926-nick-shrock.jpg&w=828&q=75 828w, /_next/image?url=%2Fstatic%2Fmedia%2F2023-03-92c37926-nick-shrock.jpg&w=1080&q=75 1080w, /_next/image?url=%2Fstatic%2Fmedia%2F2023-03-92c37926-nick-shrock.jpg&w=1200&q=75 1200w, /_next/image?url=%2Fstatic%2Fmedia%2F2023-03-92c37926-nick-shrock.jpg&w=1920&q=75 1920w, /_next/image?url=%2Fstatic%2Fmedia%2F2023-03-92c37926-nick-shrock.jpg&w=2048&q=75 2048w, /_next/image?url=%2Fstatic%2Fmedia%2F2023-03-92c37926-nick-shrock.jpg&w=3840&q=75 3840w" src="/_next/image?url=%2Fstatic%2Fmedia%2F2023-03-92c37926-nick-shrock.jpg&w=3840&q=75"/></noscript></span></div><div class="space-y-2"><cite class="text-xs font-medium uppercase not-italic tracking-wider lg:text-base">Nick Schrock</cite><p class="body-s !leading-none text-nebula">Founder of Elementl, co-creator of GraphQL</p></div></div></div></div></blockquote></div><div class="swiper-slide w-full max-w-[300px] sm:max-w-[500px] md:max-w-[740px] lg:max-w-[920px] xl:max-w-[1060px]"><blockquote class="relative h-full w-full flex-shrink-0 rounded-[12px] p-6 lg:p-20 bg-space dark:bg-space"><div class="absolute right-0 top-0 flex h-10 w-10 items-center justify-center rounded-bl-[12px] bg-black dark:bg-galaxy text-radiate p-2 lg:h-20 lg:w-20 lg:p-4">
14<svg width="52" height="25" viewBox="0 0 52 25" fill="none" xmlns="http://www.w3.org/2000/svg"><path fill-rule="evenodd" clip-rule="evenodd" d="M1.25 0C0.559644 0 0 0.559644 0 1.25V15.5V17.5V23.75C0 24.4404 0.559644 25 1.25 25H23.75C24.4404 25 25 24.4404 25 23.75V5.25C25 4.55964 24.4404 4 23.75 4H11.5V0H1.25ZM28.25 0C27.5596 0 27 0.559644 27 1.25V15.5V17.5V23.75C27 24.4404 27.5596 25 28.25 25H50.75C51.4404 25 52 24.4404 52 23.75V5.25C52 4.55964 51.4404 4 50.75 4H38.5V0H28.25Z" fill="currentColor"></path></svg><div class="absolute -left-8 top-0 h-8 w-8 bg-black dark:bg-galaxy text-radiate"><div class="absolute inset-0 rounded-tr-[12px] bg-space dark:bg-space"></div></div><div class="absolute -bottom-8 right-0 h-8 w-full bg-black dark:bg-galaxy text-radiate"><div class="absolute inset-0 rounded-tr-[12px] bg-space dark:bg-space"></div></div></div><div class="relative z-20 h-full w-full items-start gap-8 lg:mt-0 lg:grid lg:grid-cols-12 lg:gap-12 xl:gap-20"><div class="hidden overflow-hidden rounded-[12px] lg:col-span-4 lg:block"><span style="box-sizing:border-box;display:block;overflow:hidden;width:initial;height:initial;background:none;opacity:1;border:0;margin:0;padding:0;position:relative"><span style="box-sizing:border-box;display:block;width:initial;height:initial;background:none;opacity:1;border:0;margin:0;padding:0;padding-top:117.3076923076923%"></span><img alt="Timothy Crosley" src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" decoding="async" data-nimg="responsive" style="opacity:0;transition:opacity 0.2s;position:absolute;top:0;left:0;bottom:0;right:0;box-sizing:border-box;padding:0;border:none;margin:auto;display:block;width:0;height:0;min-width:100%;max-width:100%;min-height:100%;max-height:100%"/><noscript><img alt="Timothy Crosley" loading="lazy" decoding="async" data-nimg="responsive" style="opacity:0;transition:opacity 0.2s;position:absolute;top:0;left:0;bottom:0;right:0;box-sizing:border-box;padding:0;border:none;margin:auto;display:block;width:0;height:0;min-width:100%;max-width:100%;min-height:100%;max-height:100%" sizes="100vw" srcSet="/_next/image?url=%2Fstatic%2Fmedia%2F2023-03-aec0867d-timothy-crosley.jpg&w=640&q=75 640w, /_next/image?url=%2Fstatic%2Fmedia%2F2023-03-aec0867d-timothy-crosley.jpg&w=750&q=75 750w, /_next/image?url=%2Fstatic%2Fmedia%2F2023-03-aec0867d-timothy-crosley.jpg&w=828&q=75 828w, /_next/image?url=%2Fstatic%2Fmedia%2F2023-03-aec0867d-timothy-crosley.jpg&w=1080&q=75 1080w, /_next/image?url=%2Fstatic%2Fmedia%2F2023-03-aec0867d-timothy-crosley.jpg&w=1200&q=75 1200w, /_next/image?url=%2Fstatic%2Fmedia%2F2023-03-aec0867d-timothy-crosley.jpg&w=1920&q=75 1920w, /_next/image?url=%2Fstatic%2Fmedia%2F2023-03-aec0867d-timothy-crosley.jpg&w=2048&q=75 2048w, /_next/image?url=%2Fstatic%2Fmedia%2F2023-03-aec0867d-timothy-crosley.jpg&w=3840&q=75 3840w" src="/_next/image?url=%2Fstatic%2Fmedia%2F2023-03-aec0867d-timothy-crosley.jpg&w=3840&q=75"/></noscript></span></div><div class="flex h-full w-full flex-col justify-between space-y-8 lg:col-span-8 lg:w-auto"><p class="w-11/12 whitespace-normal text-base leading-snug lg:text-[30px] lg:leading-[140%]">Just switched my first project to Ruff. Only one downside so far: it's so fast I couldn't believe it was working until I intentionally introduced some errors.</p><div class="flex items-center space-x-4 lg:space-x-0"><div class="h-12 w-12 flex-shrink-0 overflow-hidden rounded-lg lg:hidden"><span style="box-sizing:border-box;display:block;overflow:hidden;width:initial;height:initial;background:none;opacity:1;border:0;margin:0;padding:0;position:relative"><span style="box-sizing:border-box;display:block;width:initial;height:initial;background:none;opacity:1;border:0;margin:0;padding:0;padding-top:117.3076923076923%"></span><img alt="Timothy Crosley" src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" decoding="async" data-nimg="responsive" style="opacity:0;transition:opacity 0.2s;position:absolute;top:0;left:0;bottom:0;right:0;box-sizing:border-box;padding:0;border:none;margin:auto;display:block;width:0;height:0;min-width:100%;max-width:100%;min-height:100%;max-height:100%"/><noscript><img alt="Timothy Crosley" loading="lazy" decoding="async" data-nimg="responsive" style="opacity:0;transition:opacity 0.2s;position:absolute;top:0;left:0;bottom:0;right:0;box-sizing:border-box;padding:0;border:none;margin:auto;display:block;width:0;height:0;min-width:100%;max-width:100%;min-height:100%;max-height:100%" sizes="100vw" srcSet="/_next/image?url=%2Fstatic%2Fmedia%2F2023-03-aec0867d-timothy-crosley.jpg&w=640&q=75 640w, /_next/image?url=%2Fstatic%2Fmedia%2F2023-03-aec0867d-timothy-crosley.jpg&w=750&q=75 750w, /_next/image?url=%2Fstatic%2Fmedia%2F2023-03-aec0867d-timothy-crosley.jpg&w=828&q=75 828w, /_next/image?url=%2Fstatic%2Fmedia%2F2023-03-aec0867d-timothy-crosley.jpg&w=1080&q=75 1080w, /_next/image?url=%2Fstatic%2Fmedia%2F2023-03-aec0867d-timothy-crosley.jpg&w=1200&q=75 1200w, /_next/image?url=%2Fstatic%2Fmedia%2F2023-03-aec0867d-timothy-crosley.jpg&w=1920&q=75 1920w, /_next/image?url=%2Fstatic%2Fmedia%2F2023-03-aec0867d-timothy-crosley.jpg&w=2048&q=75 2048w, /_next/image?url=%2Fstatic%2Fmedia%2F2023-03-aec0867d-timothy-crosley.jpg&w=3840&q=75 3840w" src="/_next/image?url=%2Fstatic%2Fmedia%2F2023-03-aec0867d-timothy-crosley.jpg&w=3840&q=75"/></noscript></span></div><div class="space-y-2"><cite class="text-xs font-medium uppercase not-italic tracking-wider lg:text-base">Timothy Crosley</cite><p class="body-s !leading-none text-nebula">Software Engineer at Stripe, Creator of isort</p></div></div></div></div></blockquote></div><div class="swiper-slide w-full max-w-[300px] sm:max-w-[500px] md:max-w-[740px] lg:max-w-[920px] xl:max-w-[1060px]"><blockquote class="relative h-full w-full flex-shrink-0 rounded-[12px] p-6 lg:p-20 bg-space dark:bg-space"><div class="absolute right-0 top-0 flex h-10 w-10 items-center justify-center rounded-bl-[12px] bg-black dark:bg-galaxy text-radiate p-2 lg:h-20 lg:w-20 lg:p-4">
14<svg width="52" height="25" viewBox="0 0 52 25" fill="none" xmlns="http://www.w3.org/2000/svg"><path fill-rule="evenodd" clip-rule="evenodd" d="M1.25 0C0.559644 0 0 0.559644 0 1.25V15.5V17.5V23.75C0 24.4404 0.559644 25 1.25 25H23.75C24.4404 25 25 24.4404 25 23.75V5.25C25 4.55964 24.4404 4 23.75 4H11.5V0H1.25ZM28.25 0C27.5596 0 27 0.559644 27 1.25V15.5V17.5V23.75C27 24.4404 27.5596 25 28.25 25H50.75C51.4404 25 52 24.4404 52 23.75V5.25C52 4.55964 51.4404 4 50.75 4H38.5V0H28.25Z" fill="currentColor"></path></svg><div class="absolute -left-8 top-0 h-8 w-8 bg-black dark:bg-galaxy text-radiate"><div class="absolute inset-0 rounded-tr-[12px] bg-space dark:bg-space"></div></div><div class="absolute -bottom-8 right-0 h-8 w-full bg-black dark:bg-galaxy text-radiate"><div class="absolute inset-0 rounded-tr-[12px] bg-space dark:bg-space"></div></div></div><div class="relative z-20 h-full w-full items-start gap-8 lg:mt-0 lg:grid lg:grid-cols-12 lg:gap-12 xl:gap-20"><div class="hidden overflow-hidden rounded-[12px] lg:col-span-4 lg:block"><span style="box-sizing:border-box;display:block;overflow:hidden;width:initial;height:initial;background:none;opacity:1;border:0;margin:0;padding:0;position:relative"><span style="box-sizing:border-box;display:block;width:initial;height:initial;background:none;opacity:1;border:0;margin:0;padding:0;padding-top:117.3076923076923%"></span><img alt="Sebastián RamÃrez" src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" decoding="async" data-nimg="responsive" style="opacity:0;transition:opacity 0.2s;position:absolute;top:0;left:0;bottom:0;right:0;box-sizing:border-box;padding:0;border:none;margin:auto;display:block;width:0;height:0;min-width:100%;max-width:100%;min-height:100%;max-height:100%"/><noscript><img alt="Sebastián RamÃrez" loading="lazy" decoding="async" data-nimg="responsive" style="opacity:0;transition:opacity 0.2s;position:absolute;top:0;left:0;bottom:0;right:0;box-sizing:border-box;padding:0;border:none;margin:auto;display:block;width:0;height:0;min-width:100%;max-width:100%;min-height:100%;max-height:100%" sizes="100vw" srcSet="/_next/image?url=%2Fstatic%2Fmedia%2F2023-03-32cd25da-sebastian-ramirez.jpg&w=640&q=75 640w, /_next/image?url=%2Fstatic%2Fmedia%2F2023-03-32cd25da-sebastian-ramirez.jpg&w=750&q=75 750w, /_next/image?url=%2Fstatic%2Fmedia%2F2023-03-32cd25da-sebastian-ramirez.jpg&w=828&q=75 828w, /_next/image?url=%2Fstatic%2Fmedia%2F2023-03-32cd25da-sebastian-ramirez.jpg&w=1080&q=75 1080w, /_next/image?url=%2Fstatic%2Fmedia%2F2023-03-32cd25da-sebastian-ramirez.jpg&w=1200&q=75 1200w, /_next/image?url=%2Fstatic%2Fmedia%2F2023-03-32cd25da-sebastian-ramirez.jpg&w=1920&q=75 1920w, /_next/image?url=%2Fstatic%2Fmedia%2F2023-03-32cd25da-sebastian-ramirez.jpg&w=2048&q=75 2048w, /_next/image?url=%2Fstatic%2Fmedia%2F2023-03-32cd25da-sebastian-ramirez.jpg&w=3840&q=75 3840w" src="/_next/image?url=%2Fstatic%2Fmedia%2F2023-03-32cd25da-sebastian-ramirez.jpg&w=3840&q=75"/></noscript></span></div><div class="flex h-full w-full flex-col justify-between space-y-8 lg:col-span-8 lg:w-auto"><p class="w-11/12 whitespace-normal text-base leading-snug lg:text-[30px] lg:leading-[140%]">Ruff is so fast that sometimes I add an intentional bug in the code just to confirm it's actually running.</p><div class="flex items-center space-x-4 lg:space-x-0"><div class="h-12 w-12 flex-shrink-0 overflow-hidden rounded-lg lg:hidden"><span style="box-sizing:border-box;display:block;overflow:hidden;width:initial;height:initial;background:none;opacity:1;border:0;margin:0;padding:0;position:relative"><span style="box-sizing:border-box;display:block;width:initial;height:initial;background:none;opacity:1;border:0;margin:0;padding:0;padding-top:117.3076923076923%"></span><img alt="Sebastián RamÃrez" src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" decoding="async" data-nimg="responsive" style="opacity:0;transition:opacity 0.2s;position:absolute;top:0;left:0;bottom:0;right:0;box-sizing:border-box;padding:0;border:none;margin:auto;display:block;width:0;height:0;min-width:100%;max-width:100%;min-height:100%;max-height:100%"/><noscript><img alt="Sebastián RamÃrez" loading="lazy" decoding="async" data-nimg="responsive" style="opacity:0;transition:opacity 0.2s;position:absolute;top:0;left:0;bottom:0;right:0;box-sizing:border-box;padding:0;border:none;margin:auto;display:block;width:0;height:0;min-width:100%;max-width:100%;min-height:100%;max-height:100%" sizes="100vw" srcSet="/_next/image?url=%2Fstatic%2Fmedia%2F2023-03-32cd25da-sebastian-ramirez.jpg&w=640&q=75 640w, /_next/image?url=%2Fstatic%2Fmedia%2F2023-03-32cd25da-sebastian-ramirez.jpg&w=750&q=75 750w, /_next/image?url=%2Fstatic%2Fmedia%2F2023-03-32cd25da-sebastian-ramirez.jpg&w=828&q=75 828w, /_next/image?url=%2Fstatic%2Fmedia%2F2023-03-32cd25da-sebastian-ramirez.jpg&w=1080&q=75 1080w, /_next/image?url=%2Fstatic%2Fmedia%2F2023-03-32cd25da-sebastian-ramirez.jpg&w=1200&q=75 1200w, /_next/image?url=%2Fstatic%2Fmedia%2F2023-03-32cd25da-sebastian-ramirez.jpg&w=1920&q=75 1920w, /_next/image?url=%2Fstatic%2Fmedia%2F2023-03-32cd25da-sebastian-ramirez.jpg&w=2048&q=75 2048w, /_next/image?url=%2Fstatic%2Fmedia%2F2023-03-32cd25da-sebastian-ramirez.jpg&w=3840&q=75 3840w" src="/_next/image?url=%2Fstatic%2Fmedia%2F2023-03-32cd25da-sebastian-ramirez.jpg&w=3840&q=75"/></noscript></span></div><div class="space-y-2"><cite class="text-xs font-medium uppercase not-italic tracking-wider lg:text-base">Sebastián RamÃrez</cite><p class="body-s !leading-none text-nebula">Creator of FastAPI</p></div></div></div></div></blockquote></div><div class="swiper-slide w-full max-w-[300px] sm:max-w-[500px] md:max-w-[740px] lg:max-w-[920px] xl:max-w-[1060px]"><blockquote class="relative h-full w-full flex-shrink-0 rounded-[12px] p-6 lg:p-20 bg-space dark:bg-space"><div class="absolute right-0 top-0 flex h-10 w-10 items-center justify-center rounded-bl-[12px] bg-black dark:bg-galaxy text-radiate p-2 lg:h-20 lg:w-20 lg:p-4">
14<svg width="52" height="25" viewBox="0 0 52 25" fill="none" xmlns="http://www.w3.org/2000/svg"><path fill-rule="evenodd" clip-rule="evenodd" d="M1.25 0C0.559644 0 0 0.559644 0 1.25V15.5V17.5V23.75C0 24.4404 0.559644 25 1.25 25H23.75C24.4404 25 25 24.4404 25 23.75V5.25C25 4.55964 24.4404 4 23.75 4H11.5V0H1.25ZM28.25 0C27.5596 0 27 0.559644 27 1.25V15.5V17.5V23.75C27 24.4404 27.5596 25 28.25 25H50.75C51.4404 25 52 24.4404 52 23.75V5.25C52 4.55964 51.4404 4 50.75 4H38.5V0H28.25Z" fill="currentColor"></path></svg><div class="absolute -left-8 top-0 h-8 w-8 bg-black dark:bg-galaxy text-radiate"><div class="absolute inset-0 rounded-tr-[12px] bg-space dark:bg-space"></div></div><div class="absolute -bottom-8 right-0 h-8 w-full bg-black dark:bg-galaxy text-radiate"><div class="absolute inset-0 rounded-tr-[12px] bg-space dark:bg-space"></div></div></div><div class="relative z-20 h-full w-full items-start gap-8 lg:mt-0 lg:grid lg:grid-cols-12 lg:gap-12 xl:gap-20"><div class="hidden overflow-hidden rounded-[12px] lg:col-span-4 lg:block"><span style="box-sizing:border-box;display:block;overflow:hidden;width:initial;height:initial;background:none;opacity:1;border:0;margin:0;padding:0;position:relative"><span style="box-sizing:border-box;display:block;width:initial;height:initial;background:none;opacity:1;border:0;margin:0;padding:0;padding-top:117.3076923076923%"></span><img alt="Nick Schrock" src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" decoding="async" data-nimg="responsive" style="opacity:0;transition:opacity 0.2s;position:absolute;top:0;left:0;bottom:0;right:0;box-sizing:border-box;padding:0;border:none;margin:auto;display:block;width:0;height:0;min-width:100%;max-width:100%;min-height:100%;max-height:100%"/><noscript><img alt="Nick Schrock" loading="lazy" decoding="async" data-nimg="responsive" style="opacity:0;transition:opacity 0.2s;position:absolute;top:0;left:0;bottom:0;right:0;box-sizing:border-box;padding:0;border:none;margin:auto;display:block;width:0;height:0;min-width:100%;max-width:100%;min-height:100%;max-height:100%" sizes="100vw" srcSet="/_next/image?url=%2Fstatic%2Fmedia%2F2023-03-92c37926-nick-shrock.jpg&w=640&q=75 640w, /_next/image?url=%2Fstatic%2Fmedia%2F2023-03-92c37926-nick-shrock.jpg&w=750&q=75 750w, /_next/image?url=%2Fstatic%2Fmedia%2F2023-03-92c37926-nick-shrock.jpg&w=828&q=75 828w, /_next/image?url=%2Fstatic%2Fmedia%2F2023-03-92c37926-nick-shrock.jpg&w=1080&q=75 1080w, /_next/image?url=%2Fstatic%2Fmedia%2F2023-03-92c37926-nick-shrock.jpg&w=1200&q=75 1200w, /_next/image?url=%2Fstatic%2Fmedia%2F2023-03-92c37926-nick-shrock.jpg&w=1920&q=75 1920w, /_next/image?url=%2Fstatic%2Fmedia%2F2023-03-92c37926-nick-shrock.jpg&w=2048&q=75 2048w, /_next/image?url=%2Fstatic%2Fmedia%2F2023-03-92c37926-nick-shrock.jpg&w=3840&q=75 3840w" src="/_next/image?url=%2Fstatic%2Fmedia%2F2023-03-92c37926-nick-shrock.jpg&w=3840&q=75"/></noscript></span></div><div class="flex h-full w-full flex-col justify-between space-y-8 lg:col-span-8 lg:w-auto"><p class="w-11/12 whitespace-normal text-base leading-snug lg:text-[30px] lg:leading-[140%]">Why is Ruff a gamechanger? Primarily because itâs nearly 1000x faster. Literally. Not a typo.</p><div class="flex items-center space-x-4 lg:space-x-0"><div class="h-12 w-12 flex-shrink-0 overflow-hidden rounded-lg lg:hidden"><span style="box-sizing:border-box;display:block;overflow:hidden;width:initial;height:initial;background:none;opacity:1;border:0;margin:0;padding:0;position:relative"><span style="box-sizing:border-box;display:block;width:initial;height:initial;background:none;opacity:1;border:0;margin:0;padding:0;padding-top:117.3076923076923%"></span><img alt="Nick Schrock" src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" decoding="async" data-nimg="responsive" style="opacity:0;transition:opacity 0.2s;position:absolute;top:0;left:0;bottom:0;right:0;box-sizing:border-box;padding:0;border:none;margin:auto;display:block;width:0;height:0;min-width:100%;max-width:100%;min-height:100%;max-height:100%"/><noscript><img alt="Nick Schrock" loading="lazy" decoding="async" data-nimg="responsive" style="opacity:0;transition:opacity 0.2s;position:absolute;top:0;left:0;bottom:0;right:0;box-sizing:border-box;padding:0;border:none;margin:auto;display:block;width:0;height:0;min-width:100%;max-width:100%;min-height:100%;max-height:100%" sizes="100vw" srcSet="/_next/image?url=%2Fstatic%2Fmedia%2F2023-03-92c37926-nick-shrock.jpg&w=640&q=75 640w, /_next/image?url=%2Fstatic%2Fmedia%2F2023-03-92c37926-nick-shrock.jpg&w=750&q=75 750w, /_next/image?url=%2Fstatic%2Fmedia%2F2023-03-92c37926-nick-shrock.jpg&w=828&q=75 828w, /_next/image?url=%2Fstatic%2Fmedia%2F2023-03-92c37926-nick-shrock.jpg&w=1080&q=75 1080w, /_next/image?url=%2Fstatic%2Fmedia%2F2023-03-92c37926-nick-shrock.jpg&w=1200&q=75 1200w, /_next/image?url=%2Fstatic%2Fmedia%2F2023-03-92c37926-nick-shrock.jpg&w=1920&q=75 1920w, /_next/image?url=%2Fstatic%2Fmedia%2F2023-03-92c37926-nick-shrock.jpg&w=2048&q=75 2048w, /_next/image?url=%2Fstatic%2Fmedia%2F2023-03-92c37926-nick-shrock.jpg&w=3840&q=75 3840w" src="/_next/image?url=%2Fstatic%2Fmedia%2F2023-03-92c37926-nick-shrock.jpg&w=3840&q=75"/></noscript></span></div><div class="space-y-2"><cite class="text-xs font-medium uppercase not-italic tracking-wider lg:text-base">Nick Schrock</cite><p class="body-s !leading-none text-nebula">Founder of Elementl, co-creator of GraphQL</p></div></div></div></div></blockquote></div><div class="swiper-slide w-full max-w-[300px] sm:max-w-[500px] md:max-w-[740px] lg:max-w-[920px] xl:max-w-[1060px]"><blockquote class="relative h-full w-full flex-shrink-0 rounded-[12px] p-6 lg:p-20 bg-space dark:bg-space"><div class="absolute right-0 top-0 flex h-10 w-10 items-center justify-center rounded-bl-[12px] bg-black dark:bg-galaxy text-radiate p-2 lg:h-20 lg:w-20 lg:p-4">
14<svg width="52" height="25" viewBox="0 0 52 25" fill="none" xmlns="http://www.w3.org/2000/svg"><path fill-rule="evenodd" clip-rule="evenodd" d="M1.25 0C0.559644 0 0 0.559644 0 1.25V15.5V17.5V23.75C0 24.4404 0.559644 25 1.25 25H23.75C24.4404 25 25 24.4404 25 23.75V5.25C25 4.55964 24.4404 4 23.75 4H11.5V0H1.25ZM28.25 0C27.5596 0 27 0.559644 27 1.25V15.5V17.5V23.75C27 24.4404 27.5596 25 28.25 25H50.75C51.4404 25 52 24.4404 52 23.75V5.25C52 4.55964 51.4404 4 50.75 4H38.5V0H28.25Z" fill="currentColor"></path></svg><div class="absolute -left-8 top-0 h-8 w-8 bg-black dark:bg-galaxy text-radiate"><div class="absolute inset-0 rounded-tr-[12px] bg-space dark:bg-space"></div></div><div class="absolute -bottom-8 right-0 h-8 w-full bg-black dark:bg-galaxy text-radiate"><div class="absolute inset-0 rounded-tr-[12px] bg-space dark:bg-space"></div></div></div><div class="relative z-20 h-full w-full items-start gap-8 lg:mt-0 lg:grid lg:grid-cols-12 lg:gap-12 xl:gap-20"><div class="hidden overflow-hidden rounded-[12px] lg:col-span-4 lg:block"><span style="box-sizing:border-box;display:block;overflow:hidden;width:initial;height:initial;background:none;opacity:1;border:0;margin:0;padding:0;position:relative"><span style="box-sizing:border-box;display:block;width:initial;height:initial;background:none;opacity:1;border:0;margin:0;padding:0;padding-top:117.3076923076923%"></span><img alt="Timothy Crosley" src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" decoding="async" data-nimg="responsive" style="opacity:0;transition:opacity 0.2s;position:absolute;top:0;left:0;bottom:0;right:0;box-sizing:border-box;padding:0;border:none;margin:auto;display:block;width:0;height:0;min-width:100%;max-width:100%;min-height:100%;max-height:100%"/><noscript><img alt="Timothy Crosley" loading="lazy" decoding="async" data-nimg="responsive" style="opacity:0;transition:opacity 0.2s;position:absolute;top:0;left:0;bottom:0;right:0;box-sizing:border-box;padding:0;border:none;margin:auto;display:block;width:0;height:0;min-width:100%;max-width:100%;min-height:100%;max-height:100%" sizes="100vw" srcSet="/_next/image?url=%2Fstatic%2Fmedia%2F2023-03-aec0867d-timothy-crosley.jpg&w=640&q=75 640w, /_next/image?url=%2Fstatic%2Fmedia%2F2023-03-aec0867d-timothy-crosley.jpg&w=750&q=75 750w, /_next/image?url=%2Fstatic%2Fmedia%2F2023-03-aec0867d-timothy-crosley.jpg&w=828&q=75 828w, /_next/image?url=%2Fstatic%2Fmedia%2F2023-03-aec0867d-timothy-crosley.jpg&w=1080&q=75 1080w, /_next/image?url=%2Fstatic%2Fmedia%2F2023-03-aec0867d-timothy-crosley.jpg&w=1200&q=75 1200w, /_next/image?url=%2Fstatic%2Fmedia%2F2023-03-aec0867d-timothy-crosley.jpg&w=1920&q=75 1920w, /_next/image?url=%2Fstatic%2Fmedia%2F2023-03-aec0867d-timothy-crosley.jpg&w=2048&q=75 2048w, /_next/image?url=%2Fstatic%2Fmedia%2F2023-03-aec0867d-timothy-crosley.jpg&w=3840&q=75 3840w" src="/_next/image?url=%2Fstatic%2Fmedia%2F2023-03-aec0867d-timothy-crosley.jpg&w=3840&q=75"/></noscript></span></div><div class="flex h-full w-full flex-col justify-between space-y-8 lg:col-span-8 lg:w-auto"><p class="w-11/12 whitespace-normal text-base leading-snug lg:text-[30px] lg:leading-[140%]">Just switched my first project to Ruff. Only one downside so far: it's so fast I couldn't believe it was working until I intentionally introduced some errors.</p><div class="flex items-center space-x-4 lg:space-x-0"><div class="h-12 w-12 flex-shrink-0 overflow-hidden rounded-lg lg:hidden"><span style="box-sizing:border-box;display:block;overflow:hidden;width:initial;height:initial;background:none;opacity:1;border:0;margin:0;padding:0;position:relative"><span style="box-sizing:border-box;display:block;width:initial;height:initial;background:none;opacity:1;border:0;margin:0;padding:0;padding-top:117.3076923076923%"></span><img alt="Timothy Crosley" src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" decoding="async" data-nimg="responsive" style="opacity:0;transition:opacity 0.2s;position:absolute;top:0;left:0;bottom:0;right:0;box-sizing:border-box;padding:0;border:none;margin:auto;display:block;width:0;height:0;min-width:100%;max-width:100%;min-height:100%;max-height:100%"/><noscript><img alt="Timothy Crosley" loading="lazy" decoding="async" data-nimg="responsive" style="opacity:0;transition:opacity 0.2s;position:absolute;top:0;left:0;bottom:0;right:0;box-sizing:border-box;padding:0;border:none;margin:auto;display:block;width:0;height:0;min-width:100%;max-width:100%;min-height:100%;max-height:100%" sizes="100vw" srcSet="/_next/image?url=%2Fstatic%2Fmedia%2F2023-03-aec0867d-timothy-crosley.jpg&w=640&q=75 640w, /_next/image?url=%2Fstatic%2Fmedia%2F2023-03-aec0867d-timothy-crosley.jpg&w=750&q=75 750w, /_next/image?url=%2Fstatic%2Fmedia%2F2023-03-aec0867d-timothy-crosley.jpg&w=828&q=75 828w, /_next/image?url=%2Fstatic%2Fmedia%2F2023-03-aec0867d-timothy-crosley.jpg&w=1080&q=75 1080w, /_next/image?url=%2Fstatic%2Fmedia%2F2023-03-aec0867d-timothy-crosley.jpg&w=1200&q=75 1200w, /_next/image?url=%2Fstatic%2Fmedia%2F2023-03-aec0867d-timothy-crosley.jpg&w=1920&q=75 1920w, /_next/image?url=%2Fstatic%2Fmedia%2F2023-03-aec0867d-timothy-crosley.jpg&w=2048&q=75 2048w, /_next/image?url=%2Fstatic%2Fmedia%2F2023-03-aec0867d-timothy-crosley.jpg&w=3840&q=75 3840w" src="/_next/image?url=%2Fstatic%2Fmedia%2F2023-03-aec0867d-timothy-crosley.jpg&w=3840&q=75"/></noscript></span></div><div class="space-y-2"><cite class="text-xs font-medium uppercase not-italic tracking-wider lg:text-base">Timothy Crosley</cite><p class="body-s !leading-none text-nebula">Software Engineer at Stripe, Creator of isort</p></div></div></div></div></blockquote></div><div class="swiper-slide w-full max-w-[300px] sm:max-w-[500px] md:max-w-[740px] lg:max-w-[920px] xl:max-w-[1060px]"><blockquote class="relative h-full w-full flex-shrink-0 rounded-[12px] p-6 lg:p-20 bg-space dark:bg-space"><div class="absolute right-0 top-0 flex h-10 w-10 items-center justify-center rounded-bl-[12px] bg-black dark:bg-galaxy text-radiate p-2 lg:h-20 lg:w-20 lg:p-4">
14<svg width="52" height="25" viewBox="0 0 52 25" fill="none" xmlns="http://www.w3.org/2000/svg"><path fill-rule="evenodd" clip-rule="evenodd" d="M1.25 0C0.559644 0 0 0.559644 0 1.25V15.5V17.5V23.75C0 24.4404 0.559644 25 1.25 25H23.75C24.4404 25 25 24.4404 25 23.75V5.25C25 4.55964 24.4404 4 23.75 4H11.5V0H1.25ZM28.25 0C27.5596 0 27 0.559644 27 1.25V15.5V17.5V23.75C27 24.4404 27.5596 25 28.25 25H50.75C51.4404 25 52 24.4404 52 23.75V5.25C52 4.55964 51.4404 4 50.75 4H38.5V0H28.25Z" fill="currentColor"></path></svg><div class="absolute -left-8 top-0 h-8 w-8 bg-black dark:bg-galaxy text-radiate"><div class="absolute inset-0 rounded-tr-[12px] bg-space dark:bg-space"></div></div><div class="absolute -bottom-8 right-0 h-8 w-full bg-black dark:bg-galaxy text-radiate"><div class="absolute inset-0 rounded-tr-[12px] bg-space dark:bg-space"></div></div></div><div class="relative z-20 h-full w-full items-start gap-8 lg:mt-0 lg:grid lg:grid-cols-12 lg:gap-12 xl:gap-20"><div class="hidden overflow-hidden rounded-[12px] lg:col-span-4 lg:block"><span style="box-sizing:border-box;display:block;overflow:hidden;width:initial;height:initial;background:none;opacity:1;border:0;margin:0;padding:0;position:relative"><span style="box-sizing:border-box;display:block;width:initial;height:initial;background:none;opacity:1;border:0;margin:0;padding:0;padding-top:117.3076923076923%"></span><img alt="Sebastián RamÃrez" src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" decoding="async" data-nimg="responsive" style="opacity:0;transition:opacity 0.2s;position:absolute;top:0;left:0;bottom:0;right:0;box-sizing:border-box;padding:0;border:none;margin:auto;display:block;width:0;height:0;min-width:100%;max-width:100%;min-height:100%;max-height:100%"/><noscript><img alt="Sebastián RamÃrez" loading="lazy" decoding="async" data-nimg="responsive" style="opacity:0;transition:opacity 0.2s;position:absolute;top:0;left:0;bottom:0;right:0;box-sizing:border-box;padding:0;border:none;margin:auto;display:block;width:0;height:0;min-width:100%;max-width:100%;min-height:100%;max-height:100%" sizes="100vw" srcSet="/_next/image?url=%2Fstatic%2Fmedia%2F2023-03-32cd25da-sebastian-ramirez.jpg&w=640&q=75 640w, /_next/image?url=%2Fstatic%2Fmedia%2F2023-03-32cd25da-sebastian-ramirez.jpg&w=750&q=75 750w, /_next/image?url=%2Fstatic%2Fmedia%2F2023-03-32cd25da-sebastian-ramirez.jpg&w=828&q=75 828w, /_next/image?url=%2Fstatic%2Fmedia%2F2023-03-32cd25da-sebastian-ramirez.jpg&w=1080&q=75 1080w, /_next/image?url=%2Fstatic%2Fmedia%2F2023-03-32cd25da-sebastian-ramirez.jpg&w=1200&q=75 1200w, /_next/image?url=%2Fstatic%2Fmedia%2F2023-03-32cd25da-sebastian-ramirez.jpg&w=1920&q=75 1920w, /_next/image?url=%2Fstatic%2Fmedia%2F2023-03-32cd25da-sebastian-ramirez.jpg&w=2048&q=75 2048w, /_next/image?url=%2Fstatic%2Fmedia%2F2023-03-32cd25da-sebastian-ramirez.jpg&w=3840&q=75 3840w" src="/_next/image?url=%2Fstatic%2Fmedia%2F2023-03-32cd25da-sebastian-ramirez.jpg&w=3840&q=75"/></noscript></span></div><div class="flex h-full w-full flex-col justify-between space-y-8 lg:col-span-8 lg:w-auto"><p class="w-11/12 whitespace-normal text-base leading-snug lg:text-[30px] lg:leading-[140%]">Ruff is so fast that sometimes I add an intentional bug in the code just to confirm it's actually running.</p><div class="flex items-center space-x-4 lg:space-x-0"><div class="h-12 w-12 flex-shrink-0 overflow-hidden rounded-lg lg:hidden"><span style="box-sizing:border-box;display:block;overflow:hidden;width:initial;height:initial;background:none;opacity:1;border:0;margin:0;padding:0;position:relative"><span style="box-sizing:border-box;display:block;width:initial;height:initial;background:none;opacity:1;border:0;margin:0;padding:0;padding-top:117.3076923076923%"></span><img alt="Sebastián RamÃrez" src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" decoding="async" data-nimg="responsive" style="opacity:0;transition:opacity 0.2s;position:absolute;top:0;left:0;bottom:0;right:0;box-sizing:border-box;padding:0;border:none;margin:auto;display:block;width:0;height:0;min-width:100%;max-width:100%;min-height:100%;max-height:100%"/><noscript><img alt="Sebastián RamÃrez" loading="lazy" decoding="async" data-nimg="responsive" style="opacity:0;transition:opacity 0.2s;position:absolute;top:0;left:0;bottom:0;right:0;box-sizing:border-box;padding:0;border:none;margin:auto;display:block;width:0;height:0;min-width:100%;max-width:100%;min-height:100%;max-height:100%" sizes="100vw" srcSet="/_next/image?url=%2Fstatic%2Fmedia%2F2023-03-32cd25da-sebastian-ramirez.jpg&w=640&q=75 640w, /_next/image?url=%2Fstatic%2Fmedia%2F2023-03-32cd25da-sebastian-ramirez.jpg&w=750&q=75 750w, /_next/image?url=%2Fstatic%2Fmedia%2F2023-03-32cd25da-sebastian-ramirez.jpg&w=828&q=75 828w, /_next/image?url=%2Fstatic%2Fmedia%2F2023-03-32cd25da-sebastian-ramirez.jpg&w=1080&q=75 1080w, /_next/image?url=%2Fstatic%2Fmedia%2F2023-03-32cd25da-sebastian-ramirez.jpg&w=1200&q=75 1200w, /_next/image?url=%2Fstatic%2Fmedia%2F2023-03-32cd25da-sebastian-ramirez.jpg&w=1920&q=75 1920w, /_next/image?url=%2Fstatic%2Fmedia%2F2023-03-32cd25da-sebastian-ramirez.jpg&w=2048&q=75 2048w, /_next/image?url=%2Fstatic%2Fmedia%2F2023-03-32cd25da-sebastian-ramirez.jpg&w=3840&q=75 3840w" src="/_next/image?url=%2Fstatic%2Fmedia%2F2023-03-32cd25da-sebastian-ramirez.jpg&w=3840&q=75"/></noscript></span></div><div class="space-y-2"><cite class="text-xs font-medium uppercase not-italic tracking-wider lg:text-base">Sebastián RamÃrez</cite><p class="body-s !leading-none text-nebula">Creator of FastAPI</p></div></div></div></div></blockquote></div><div class="swiper-slide w-full max-w-[300px] sm:max-w-[500px] md:max-w-[740px] lg:max-w-[920px] xl:max-w-[1060px]"><blockquote class="relative h-full w-full flex-shrink-0 rounded-[12px] p-6 lg:p-20 bg-space dark:bg-space"><div class="absolute right-0 top-0 flex h-10 w-10 items-center justify-center rounded-bl-[12px] bg-black dark:bg-galaxy text-radiate p-2 lg:h-20 lg:w-20 lg:p-4">
14<svg width="52" height="25" viewBox="0 0 52 25" fill="none" xmlns="http://www.w3.org/2000/svg"><path fill-rule="evenodd" clip-rule="evenodd" d="M1.25 0C0.559644 0 0 0.559644 0 1.25V15.5V17.5V23.75C0 24.4404 0.559644 25 1.25 25H23.75C24.4404 25 25 24.4404 25 23.75V5.25C25 4.55964 24.4404 4 23.75 4H11.5V0H1.25ZM28.25 0C27.5596 0 27 0.559644 27 1.25V15.5V17.5V23.75C27 24.4404 27.5596 25 28.25 25H50.75C51.4404 25 52 24.4404 52 23.75V5.25C52 4.55964 51.4404 4 50.75 4H38.5V0H28.25Z" fill="currentColor"></path></svg><div class="absolute -left-8 top-0 h-8 w-8 bg-black dark:bg-galaxy text-radiate"><div class="absolute inset-0 rounded-tr-[12px] bg-space dark:bg-space"></div></div><div class="absolute -bottom-8 right-0 h-8 w-full bg-black dark:bg-galaxy text-radiate"><div class="absolute inset-0 rounded-tr-[12px] bg-space dark:bg-space"></div></div></div><div class="relative z-20 h-full w-full items-start gap-8 lg:mt-0 lg:grid lg:grid-cols-12 lg:gap-12 xl:gap-20"><div class="hidden overflow-hidden rounded-[12px] lg:col-span-4 lg:block"><span style="box-sizing:border-box;display:block;overflow:hidden;width:initial;height:initial;background:none;opacity:1;border:0;margin:0;padding:0;position:relative"><span style="box-sizing:border-box;display:block;width:initial;height:initial;background:none;opacity:1;border:0;margin:0;padding:0;padding-top:117.3076923076923%"></span><img alt="Nick Schrock" src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" decoding="async" data-nimg="responsive" style="opacity:0;transition:opacity 0.2s;position:absolute;top:0;left:0;bottom:0;right:0;box-sizing:border-box;padding:0;border:none;margin:auto;display:block;width:0;height:0;min-width:100%;max-width:100%;min-height:100%;max-height:100%"/><noscript><img alt="Nick Schrock" loading="lazy" decoding="async" data-nimg="responsive" style="opacity:0;transition:opacity 0.2s;position:absolute;top:0;left:0;bottom:0;right:0;box-sizing:border-box;padding:0;border:none;margin:auto;display:block;width:0;height:0;min-width:100%;max-width:100%;min-height:100%;max-height:100%" sizes="100vw" srcSet="/_next/image?url=%2Fstatic%2Fmedia%2F2023-03-92c37926-nick-shrock.jpg&w=640&q=75 640w, /_next/image?url=%2Fstatic%2Fmedia%2F2023-03-92c37926-nick-shrock.jpg&w=750&q=75 750w, /_next/image?url=%2Fstatic%2Fmedia%2F2023-03-92c37926-nick-shrock.jpg&w=828&q=75 828w, /_next/image?url=%2Fstatic%2Fmedia%2F2023-03-92c37926-nick-shrock.jpg&w=1080&q=75 1080w, /_next/image?url=%2Fstatic%2Fmedia%2F2023-03-92c37926-nick-shrock.jpg&w=1200&q=75 1200w, /_next/image?url=%2Fstatic%2Fmedia%2F2023-03-92c37926-nick-shrock.jpg&w=1920&q=75 1920w, /_next/image?url=%2Fstatic%2Fmedia%2F2023-03-92c37926-nick-shrock.jpg&w=2048&q=75 2048w, /_next/image?url=%2Fstatic%2Fmedia%2F2023-03-92c37926-nick-shrock.jpg&w=3840&q=75 3840w" src="/_next/image?url=%2Fstatic%2Fmedia%2F2023-03-92c37926-nick-shrock.jpg&w=3840&q=75"/></noscript></span></div><div class="flex h-full w-full flex-col justify-between space-y-8 lg:col-span-8 lg:w-auto"><p class="w-11/12 whitespace-normal text-base leading-snug lg:text-[30px] lg:leading-[140%]">Why is Ruff a gamechanger? Primarily because itâs nearly 1000x faster. Literally. Not a typo.</p><div class="flex items-center space-x-4 lg:space-x-0"><div class="h-12 w-12 flex-shrink-0 overflow-hidden rounded-lg lg:hidden"><span style="box-sizing:border-box;display:block;overflow:hidden;width:initial;height:initial;background:none;opacity:1;border:0;margin:0;padding:0;position:relative"><span style="box-sizing:border-box;display:block;width:initial;height:initial;background:none;opacity:1;border:0;margin:0;padding:0;padding-top:117.3076923076923%"></span><img alt="Nick Schrock" src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" decoding="async" data-nimg="responsive" style="opacity:0;transition:opacity 0.2s;position:absolute;top:0;left:0;bottom:0;right:0;box-sizing:border-box;padding:0;border:none;margin:auto;display:block;width:0;height:0;min-width:100%;max-width:100%;min-height:100%;max-height:100%"/><noscript><img alt="Nick Schrock" loading="lazy" decoding="async" data-nimg="responsive" style="opacity:0;transition:opacity 0.2s;position:absolute;top:0;left:0;bottom:0;right:0;box-sizing:border-box;padding:0;border:none;margin:auto;display:block;width:0;height:0;min-width:100%;max-width:100%;min-height:100%;max-height:100%" sizes="100vw" srcSet="/_next/image?url=%2Fstatic%2Fmedia%2F2023-03-92c37926-nick-shrock.jpg&w=640&q=75 640w, /_next/image?url=%2Fstatic%2Fmedia%2F2023-03-92c37926-nick-shrock.jpg&w=750&q=75 750w, /_next/image?url=%2Fstatic%2Fmedia%2F2023-03-92c37926-nick-shrock.jpg&w=828&q=75 828w, /_next/image?url=%2Fstatic%2Fmedia%2F2023-03-92c37926-nick-shrock.jpg&w=1080&q=75 1080w, /_next/image?url=%2Fstatic%2Fmedia%2F2023-03-92c37926-nick-shrock.jpg&w=1200&q=75 1200w, /_next/image?url=%2Fstatic%2Fmedia%2F2023-03-92c37926-nick-shrock.jpg&w=1920&q=75 1920w, /_next/image?url=%2Fstatic%2Fmedia%2F2023-03-92c37926-nick-shrock.jpg&w=2048&q=75 2048w, /_next/image?url=%2Fstatic%2Fmedia%2F2023-03-92c37926-nick-shrock.jpg&w=3840&q=75 3840w" src="/_next/image?url=%2Fstatic%2Fmedia%2F2023-03-92c37926-nick-shrock.jpg&w=3840&q=75"/></noscript></span></div><div class="space-y-2"><cite class="text-xs font-medium uppercase not-italic tracking-wider lg:text-base">Nick Schrock</cite><p class="body-s !leading-none text-nebula">Founder of Elementl, co-creator of GraphQL</p></div></div></div></div></blockquote></div><div class="swiper-slide w-full max-w-[300px] sm:max-w-[500px] md:max-w-[740px] lg:max-w-[920px] xl:max-w-[1060px]"><blockquote class="relative h-full w-full flex-shrink-0 rounded-[12px] p-6 lg:p-20 bg-space dark:bg-space"><div class="absolute right-0 top-0 flex h-10 w-10 items-center justify-center rounded-bl-[12px] bg-black dark:bg-galaxy text-radiate p-2 lg:h-20 lg:w-20 lg:p-4">
14<svg width="52" height="25" viewBox="0 0 52 25" fill="none" xmlns="http://www.w3.org/2000/svg"><path fill-rule="evenodd" clip-rule="evenodd" d="M1.25 0C0.559644 0 0 0.559644 0 1.25V15.5V17.5V23.75C0 24.4404 0.559644 25 1.25 25H23.75C24.4404 25 25 24.4404 25 23.75V5.25C25 4.55964 24.4404 4 23.75 4H11.5V0H1.25ZM28.25 0C27.5596 0 27 0.559644 27 1.25V15.5V17.5V23.75C27 24.4404 27.5596 25 28.25 25H50.75C51.4404 25 52 24.4404 52 23.75V5.25C52 4.55964 51.4404 4 50.75 4H38.5V0H28.25Z" fill="currentColor"></path></svg><div class="absolute -left-8 top-0 h-8 w-8 bg-black dark:bg-galaxy text-radiate"><div class="absolute inset-0 rounded-tr-[12px] bg-space dark:bg-space"></div></div><div class="absolute -bottom-8 right-0 h-8 w-full bg-black dark:bg-galaxy text-radiate"><div class="absolute inset-0 rounded-tr-[12px] bg-space dark:bg-space"></div></div></div><div class="relative z-20 h-full w-full items-start gap-8 lg:mt-0 lg:grid lg:grid-cols-12 lg:gap-12 xl:gap-20"><div class="hidden overflow-hidden rounded-[12px] lg:col-span-4 lg:block"><span style="box-sizing:border-box;display:block;overflow:hidden;width:initial;height:initial;background:none;opacity:1;border:0;margin:0;padding:0;position:relative"><span style="box-sizing:border-box;display:block;width:initial;height:initial;background:none;opacity:1;border:0;margin:0;padding:0;padding-top:117.3076923076923%"></span><img alt="Timothy Crosley" src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" decoding="async" data-nimg="responsive" style="opacity:0;transition:opacity 0.2s;position:absolute;top:0;left:0;bottom:0;right:0;box-sizing:border-box;padding:0;border:none;margin:auto;display:block;width:0;height:0;min-width:100%;max-width:100%;min-height:100%;max-height:100%"/><noscript><img alt="Timothy Crosley" loading="lazy" decoding="async" data-nimg="responsive" style="opacity:0;transition:opacity 0.2s;position:absolute;top:0;left:0;bottom:0;right:0;box-sizing:border-box;padding:0;border:none;margin:auto;display:block;width:0;height:0;min-width:100%;max-width:100%;min-height:100%;max-height:100%" sizes="100vw" srcSet="/_next/image?url=%2Fstatic%2Fmedia%2F2023-03-aec0867d-timothy-crosley.jpg&w=640&q=75 640w, /_next/image?url=%2Fstatic%2Fmedia%2F2023-03-aec0867d-timothy-crosley.jpg&w=750&q=75 750w, /_next/image?url=%2Fstatic%2Fmedia%2F2023-03-aec0867d-timothy-crosley.jpg&w=828&q=75 828w, /_next/image?url=%2Fstatic%2Fmedia%2F2023-03-aec0867d-timothy-crosley.jpg&w=1080&q=75 1080w, /_next/image?url=%2Fstatic%2Fmedia%2F2023-03-aec0867d-timothy-crosley.jpg&w=1200&q=75 1200w, /_next/image?url=%2Fstatic%2Fmedia%2F2023-03-aec0867d-timothy-crosley.jpg&w=1920&q=75 1920w, /_next/image?url=%2Fstatic%2Fmedia%2F2023-03-aec0867d-timothy-crosley.jpg&w=2048&q=75 2048w, /_next/image?url=%2Fstatic%2Fmedia%2F2023-03-aec0867d-timothy-crosley.jpg&w=3840&q=75 3840w" src="/_next/image?url=%2Fstatic%2Fmedia%2F2023-03-aec0867d-timothy-crosley.jpg&w=3840&q=75"/></noscript></span></div><div class="flex h-full w-full flex-col justify-between space-y-8 lg:col-span-8 lg:w-auto"><p class="w-11/12 whitespace-normal text-base leading-snug lg:text-[30px] lg:leading-[140%]">Just switched my first project to Ruff. Only one downside so far: it's so fast I couldn't believe it was working until I intentionally introduced some errors.</p><div class="flex items-center space-x-4 lg:space-x-0"><div class="h-12 w-12 flex-shrink-0 overflow-hidden rounded-lg lg:hidden"><span style="box-sizing:border-box;display:block;overflow:hidden;width:initial;height:initial;background:none;opacity:1;border:0;margin:0;padding:0;position:relative"><span style="box-sizing:border-box;display:block;width:initial;height:initial;background:none;opacity:1;border:0;margin:0;padding:0;padding-top:117.3076923076923%"></span><img alt="Timothy Crosley" src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" decoding="async" data-nimg="responsive" style="opacity:0;transition:opacity 0.2s;position:absolute;top:0;left:0;bottom:0;right:0;box-sizing:border-box;padding:0;border:none;margin:auto;display:block;width:0;height:0;min-width:100%;max-width:100%;min-height:100%;max-height:100%"/><noscript><img alt="Timothy Crosley" loading="lazy" decoding="async" data-nimg="responsive" style="opacity:0;transition:opacity 0.2s;position:absolute;top:0;left:0;bottom:0;right:0;box-sizing:border-box;padding:0;border:none;margin:auto;display:block;width:0;height:0;min-width:100%;max-width:100%;min-height:100%;max-height:100%" sizes="100vw" srcSet="/_next/image?url=%2Fstatic%2Fmedia%2F2023-03-aec0867d-timothy-crosley.jpg&w=640&q=75 640w, /_next/image?url=%2Fstatic%2Fmedia%2F2023-03-aec0867d-timothy-crosley.jpg&w=750&q=75 750w, /_next/image?url=%2Fstatic%2Fmedia%2F2023-03-aec0867d-timothy-crosley.jpg&w=828&q=75 828w, /_next/image?url=%2Fstatic%2Fmedia%2F2023-03-aec0867d-timothy-crosley.jpg&w=1080&q=75 1080w, /_next/image?url=%2Fstatic%2Fmedia%2F2023-03-aec0867d-timothy-crosley.jpg&w=1200&q=75 1200w, /_next/image?url=%2Fstatic%2Fmedia%2F2023-03-aec0867d-timothy-crosley.jpg&w=1920&q=75 1920w, /_next/image?url=%2Fstatic%2Fmedia%2F2023-03-aec0867d-timothy-crosley.jpg&w=2048&q=75 2048w, /_next/image?url=%2Fstatic%2Fmedia%2F2023-03-aec0867d-timothy-crosley.jpg&w=3840&q=75 3840w" src="/_next/image?url=%2Fstatic%2Fmedia%2F2023-03-aec0867d-timothy-crosley.jpg&w=3840&q=75"/></noscript></span></div><div class="space-y-2"><cite class="text-xs font-medium uppercase not-italic tracking-wider lg:text-base">Timothy Crosley</cite><p class="body-s !leading-none text-nebula">Software Engineer at Stripe, Creator of isort</p></div></div></div></div></blockquote></div></div></div></div></div></div></div></section><section id="" class="overflow-visible dark:bg-black text-black dark:text-white pt-0 pb-0 margin-t margin-b"><div class="container"><div><div class="items-center justify-between text-center lg:flex lg:space-y-0 lg:text-left"><h3 class="text-h2">Space to think</h3></div><div class="mt-12 grid gap-8 lg:grid-cols-12 lg:gap-20"><div class="lg:col-span-8"><div class="lg:sticky lg:top-[90px]"><a class="group relative flex cursor-pointer flex-col overflow-hidden rounded-[12px] lg:p-3" href="https://astral.sh/blog/openai"><div class="absolute inset-0 z-0 scale-95 transform transition-all duration-200 ease-in-out group-hover:scale-100 group-hover:bg-starlight dark:group-hover:bg-space"></div><div class="relative flex h-[200px] rounded-[12px] rounded-bl-none lg:h-[450px]"><span style="box-sizing:border-box;display:block;overflow:hidden;width:initial;height:initial;background:none;opacity:1;border:0;margin:0;padding:0;position:absolute;top:0;left:0;bottom:0;right:0"><img alt="Astral" src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" decoding="async" data-nimg="fill" class="overflow-hidden rounded-[12px] object-cover" style="position:absolute;top:0;left:0;bottom:0;right:0;box-sizing:border-box;padding:0;border:none;margin:auto;display:block;width:0;height:0;min-width:100%;max-width:100%;min-height:100%;max-height:100%"/><noscript><img alt="Astral" loading="lazy" decoding="async" data-nimg="fill" style="position:absolute;top:0;left:0;bottom:0;right:0;box-sizing:border-box;padding:0;border:none;margin:auto;display:block;width:0;height:0;min-width:100%;max-width:100%;min-height:100%;max-height:100%" class="overflow-hidden rounded-[12px] object-cover" sizes="100vw" srcSet="/_next/image?url=%2Fstatic%2FPNG%2FAstral.png&w=640&q=75 640w, /_next/image?url=%2Fstatic%2FPNG%2FAstral.png&w=750&q=75 750w, /_next/image?url=%2Fstatic%2FPNG%2FAstral.png&w=828&q=75 828w, /_next/image?url=%2Fstatic%2FPNG%2FAstral.png&w=1080&q=75 1080w, /_next/image?url=%2Fstatic%2FPNG%2FAstral.png&w=1200&q=75 1200w, /_next/image?url=%2Fstatic%2FPNG%2FAstral.png&w=1920&q=75 1920w, /_next/image?url=%2Fstatic%2FPNG%2FAstral.png&w=2048&q=75 2048w, /_next/image?url=%2Fstatic%2FPNG%2FAstral.png&w=3840&q=75 3840w" src="/_next/image?url=%2Fstatic%2FPNG%2FAstral.png&w=3840&q=75"/></noscript></span><div class="subtitle absolute -bottom-[1px] -left-[1px] rounded-tr-[12px] bg-white px-6 pb-1 pt-2 text-comet transition-colors duration-200 ease-in-out group-hover:bg-starlight dark:bg-black dark:group-hover:bg-space">Announcements<div class="text-white transition-colors duration-200 ease-in-out group-hover:text-starlight dark:text-black dark:group-hover:text-space"><div class="absolute -right-[22px] bottom-0 flex h-full w-6 items-end"><svg width="13" height="48" viewBox="0 0 13 48" fill="none" xmlns="http://www.w3.org/2000/svg"><g clip-path="url(#clip0_149_2180)"><path fill-rule="evenodd" clip-rule="evenodd" d="M-207 -424H-219V-412C-219 -418.627 -213.627 -424 -207 -424ZM525 -424C531.627 -424 537 -418.627 537 -412V-424H525ZM537 35.5885C537 42.2159 531.627 47.5885 525 47.5885H12C5.37256 47.5885 0 42.2159 0 35.5885V12C0 5.37256 -5.37256 0 -12 0H-207C-213.627 0 -219 -5.37256 -219 -12V48H537V35.5885Z" fill="currentColor"></path></g><defs><clipPath id="clip0_149_2180"><rect width="13" height="48" fill="white"></rect></clipPath></defs></svg></div><div class="absolute -top-[22px] left-0 flex h-6 w-full items-end"><svg width="13" height="48" viewBox="0 0 13 48" fill="none" xmlns="http://www.w3.org/2000/svg"><g clip-path="url(#clip0_149_2180)"><path fill-rule="evenodd" clip-rule="evenodd" d="M-207 -424H-219V-412C-219 -418.627 -213.627 -424 -207 -424ZM525 -424C531.627 -424 537 -418.627 537 -412V-424H525ZM537 35.5885C537 42.2159 531.627 47.5885 525 47.5885H12C5.37256 47.5885 0 42.2159 0 35.5885V12C0 5.37256 -5.37256 0 -12 0H-207C-213.627 0 -219 -5.37256 -219 -12V48H537V35.5885Z" fill="currentColor"></path></g><defs><clipPath id="clip0_149_2180"><rect width="13" height="48" fill="white"></rect></clipPath></defs></svg></div></div></div></div><div class="relative z-10 mt-4 max-w-[600px] space-y-4 p-6 lg:mt-8"><p class="subtitle text-comet"> 15 March 16 19, 17 2026</p><h3 class="text-h5">Astral to join OpenAI</h3><p class="body-m text-comet">Astral has entered into an agreement to join OpenAI as part of the Codex team.</p></div></a></div></div><div class="space-y-10 lg:col-span-4"><a class="group relative flex cursor-pointer flex-col overflow-hidden rounded-[12px] lg:p-3" href="https://astral.sh/blog/ty"><div class="absolute inset-0 z-0 scale-95 transform transition-all duration-200 ease-in-out group-hover:scale-100 group-hover:bg-starlight dark:group-hover:bg-space"></div><div class="relative flex h-[200px] rounded-[12px] rounded-bl-none lg:h-[300px]"><span style="box-sizing:border-box;display:block;overflow:hidden;width:initial;height:initial;background:none;opacity:1;border:0;margin:0;padding:0;position:absolute;top:0;left:0;bottom:0;right:0"><img alt="ty" src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" decoding="async" data-nimg="fill" class="overflow-hidden rounded-[12px] object-cover" style="position:absolute;top:0;left:0;bottom:0;right:0;box-sizing:border-box;padding:0;border:none;margin:auto;display:block;width:0;height:0;min-width:100%;max-width:100%;min-height:100%;max-height:100%"/><noscript><img alt="ty" loading="lazy" decoding="async" data-nimg="fill" style="position:absolute;top:0;left:0;bottom:0;right:0;box-sizing:border-box;padding:0;border:none;margin:auto;display:block;width:0;height:0;min-width:100%;max-width:100%;min-height:100%;max-height:100%" class="overflow-hidden rounded-[12px] object-cover" sizes="100vw" srcSet="/_next/image?url=%2Fstatic%2FOpenGraph%2Fty.png&w=640&q=75 640w, /_next/image?url=%2Fstatic%2FOpenGraph%2Fty.png&w=750&q=75 750w, /_next/image?url=%2Fstatic%2FOpenGraph%2Fty.png&w=828&q=75 828w, /_next/image?url=%2Fstatic%2FOpenGraph%2Fty.png&w=1080&q=75 1080w, /_next/image?url=%2Fstatic%2FOpenGraph%2Fty.png&w=1200&q=75 1200w, /_next/image?url=%2Fstatic%2FOpenGraph%2Fty.png&w=1920&q=75 1920w, /_next/image?url=%2Fstatic%2FOpenGraph%2Fty.png&w=2048&q=75 2048w, /_next/image?url=%2Fstatic%2FOpenGraph%2Fty.png&w=3840&q=75 3840w" src="/_next/image?url=%2Fstatic%2FOpenGraph%2Fty.png&w=3840&q=75"/></noscript></span><div class="subtitle absolute -bottom-[1px] -left-[1px] rounded-tr-[12px] bg-white px-6 pb-1 pt-2 text-comet transition-colors duration-200 ease-in-out group-hover:bg-starlight dark:bg-black dark:group-hover:bg-space">Announcements<div class="text-white transition-colors duration-200 ease-in-out group-hover:text-starlight dark:text-black dark:group-hover:text-space"><div class="absolute -right-[22px] bottom-0 flex h-full w-6 items-end"><svg width="13" height="48" viewBox="0 0 13 48" fill="none" xmlns="http://www.w3.org/2000/svg"><g clip-path="url(#clip0_149_2180)"><path fill-rule="evenodd" clip-rule="evenodd" d="M-207 -424H-219V-412C-219 -418.627 -213.627 -424 -207 -424ZM525 -424C531.627 -424 537 -418.627 537 -412V-424H525ZM537 35.5885C537 42.2159 531.627 47.5885 525 47.5885H12C5.37256 47.5885 0 42.2159 0 35.5885V12C0 5.37256 -5.37256 0 -12 0H-207C-213.627 0 -219 -5.37256 -219 -12V48H537V35.5885Z" fill="currentColor"></path></g><defs><clipPath id="clip0_149_2180"><rect width="13" height="48" fill="white"></rect></clipPath></defs></svg></div><div class="absolute -top-[22px] left-0 flex h-6 w-full items-end"><svg width="13" height="48" viewBox="0 0 13 48" fill="none" xmlns="http://www.w3.org/2000/svg"><g clip-path="url(#clip0_149_2180)"><path fill-rule="evenodd" clip-rule="evenodd" d="M-207 -424H-219V-412C-219 -418.627 -213.627 -424 -207 -424ZM525 -424C531.627 -424 537 -418.627 537 -412V-424H525ZM537 35.5885C537 42.2159 531.627 47.5885 525 47.5885H12C5.37256 47.5885 0 42.2159 0 35.5885V12C0 5.37256 -5.37256 0 -12 0H-207C-213.627 0 -219 -5.37256 -219 -12V48H537V35.5885Z" fill="currentColor"></path></g><defs><clipPath id="clip0_149_2180"><rect width="13" height="48" fill="white"></rect></clipPath></defs></svg></div></div></div></div><div class="relative z-10 mt-4 max-w-[600px] space-y-4 p-6 lg:mt-8"><p class="subtitle text-comet"> 18 December 19 16, 20 2025</p><h3 class="text-h5">ty: An extremely fast Python type checker and language server</h3><p class="body-m text-comet">ty is an extremely fast Python type checker and language server, written in Rust, and designed as an alternative to mypy, Pyright, and Pylance.</p></div></a></div></div></div></div></section></main><div class="container"><div class="relative items-center justify-center overflow-hidden rounded-[12px] lg:justify-start lg:p-0"><div class="-mb-3 flex w-full"><div class="hidden dark:block"><span style="box-sizing:border-box;display:inline-block;overflow:hidden;width:initial;height:initial;background:none;opacity:1;border:0;margin:0;padding:0;position:relative;max-width:100%"><span style="box-sizing:border-box;display:block;width:initial;height:initial;background:none;opacity:1;border:0;margin:0;padding:0;max-width:100%"><img style="display:block;max-width:100%;width:initial;height:initial;background:none;opacity:1;border:0;margin:0;padding:0" alt="" aria-hidden="true" src="data:image/svg+xml,%3csvg%20xmlns=%27http://www.w3.org/2000/svg%27%20version=%271.1%27%20width=%272560%27%20height=%27302%27/%3e"/></span>
20<img alt="Background pattern" src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" decoding="async" data-nimg="intrinsic" style="position:absolute;top:0;left:0;bottom:0;right:0;box-sizing:border-box;padding:0;border:none;margin:auto;display:block;width:0;height:0;min-width:100%;max-width:100%;min-height:100%;max-height:100%"/><noscript><img alt="Background pattern" loading="lazy" decoding="async" data-nimg="intrinsic" style="position:absolute;top:0;left:0;bottom:0;right:0;box-sizing:border-box;padding:0;border:none;margin:auto;display:block;width:0;height:0;min-width:100%;max-width:100%;min-height:100%;max-height:100%" src="/_next/static/media/cta-top.0wtpid9kacspr.png"/></noscript></span></div><div class="block dark:hidden"><span style="box-sizing:border-box;display:inline-block;overflow:hidden;width:initial;height:initial;background:none;opacity:1;border:0;margin:0;padding:0;position:relative;max-width:100%"><span style="box-sizing:border-box;display:block;width:initial;height:initial;background:none;opacity:1;border:0;margin:0;padding:0;max-width:100%"><img style="display:block;max-width:100%;width:initial;height:initial;background:none;opacity:1;border:0;margin:0;padding:0" alt="" aria-hidden="true" src="data:image/svg+xml,%3csvg%20xmlns=%27http://www.w3.org/2000/svg%27%20version=%271.1%27%20width=%272560%27%20height=%27302%27/%3e"/></span><img alt="Background pattern" src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" decoding="async" data-nimg="intrinsic" style="position:absolute;top:0;left:0;bottom:0;right:0;box-sizing:border-box;padding:0;border:none;margin:auto;display:block;width:0;height:0;min-width:100%;max-width:100%;min-height:100%;max-height:100%"/><noscript><img alt="Background pattern" loading="lazy" decoding="async" data-nimg="intrinsic" style="position:absolute;top:0;left:0;bottom:0;right:0;box-sizing:border-box;padding:0;border:none;margin:auto;display:block;width:0;height:0;min-width:100%;max-width:100%;min-height:100%;max-height:100%" src="/_next/static/media/cta-top-light.12araj5.huk2r.png"/></noscript></span></div></div><div class="relative z-10 w-full space-y-10 bg-galaxy px-6 pb-10 pt-20 text-center dark:bg-space"><h2 class="text-h1 mx-auto max-w-3xl text-white">Supercharge your Python tooling</h2><div class="justify-center space-y-4 md:space-x-4 lg:flex lg:justify-center lg:space-x-6 lg:space-y-0"><a target="_blank" class="inline-block w-full md:w-auto" href="https://github.com/astral-sh"><div class="btn btn--default btn--white w-full lg:w-auto "><div class="relative overflow-hidden">Get Started</div></div></a><a target="_blank" class="inline-block w-full md:w-auto" href="https://docs.astral.sh"><div class="btn btn--outline btn--white w-full lg:w-auto "><div class="relative overflow-hidden">Browse Docs</div></div></a></div></div><div class="-mt-1 flex w-full"><div class="hidden dark:flex"><span style="box-sizing:border-box;display:inline-block;overflow:hidden;width:initial;height:initial;background:none;opacity:1;border:0;margin:0;padding:0;position:relative;max-width:100%"><span style="box-sizing:border-box;display:block;width:initial;height:initial;background:none;opacity:1;border:0;margin:0;padding:0;max-width:100%"><img style="display:block;max-width:100%;width:initial;height:initial;background:none;opacity:1;border:0;margin:0;padding:0" alt="" aria-hidden="true" src="data:image/svg+xml,%3csvg%20xmlns=%27http://www.w3.org/2000/svg%27%20version=%271.1%27%20width=%272560%27%20height=%27334%27/%3e"/></span><img alt="Background pattern" src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" decoding="async" data-nimg="intrinsic" style="position:absolute;top:0;left:0;bottom:0;right:0;box-sizing:border-box;padding:0;border:none;margin:auto;display:block;width:0;height:0;min-width:100%;max-width:100%;min-height:100%;max-height:100%"/><noscript><img alt="Background pattern" loading="lazy" decoding="async" data-nimg="intrinsic" style="position:absolute;top:0;left:0;bottom:0;right:0;box-sizing:border-box;padding:0;border:none;margin:auto;display:block;width:0;height:0;min-width:100%;max-width:100%;min-height:100%;max-height:100%" src="/_next/static/media/cta-bottom.0k0vqmxhf4j8e.png"/></noscript></span></div><div class="flex dark:hidden"><span style="box-sizing:border-box;display:inline-block;overflow:hidden;width:initial;height:initial;background:none;opacity:1;border:0;margin:0;padding:0;position:relative;max-width:100%"><span style="box-sizing:border-box;display:block;width:initial;height:initial;background:none;opacity:1;border:0;margin:0;padding:0;max-width:100%"><img style="display:block;max-width:100%;width:initial;height:initial;background:none;opacity:1;border:0;margin:0;padding:0" alt="" aria-hidden="true" src="data:image/svg+xml,%3csvg%20xmlns=%27http://www.w3.org/2000/svg%27%20version=%271.1%27%20width=%272560%27%20height=%27334%27/%3e"/></span>
20<img alt="Background pattern" src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" decoding="async" data-nimg="intrinsic" style="position:absolute;top:0;left:0;bottom:0;right:0;box-sizing:border-box;padding:0;border:none;margin:auto;display:block;width:0;height:0;min-width:100%;max-width:100%;min-height:100%;max-height:100%"/><noscript><img alt="Background pattern" loading="lazy" decoding="async" data-nimg="intrinsic" style="position:absolute;top:0;left:0;bottom:0;right:0;box-sizing:border-box;padding:0;border:none;margin:auto;display:block;width:0;height:0;min-width:100%;max-width:100%;min-height:100%;max-height:100%" src="/_next/static/media/cta-bottom-light.16aqbcmycsytg.png"/></noscript></span></div></div></div></div><div class="mb-8 mt-16 lg:mt-32"><div class="container"><div class="mb-8 grid grid-cols-2 items-start gap-0"><ul class="grid gap-6 lg:grid-flow-col-dense lg:grid-cols-2 lg:grid-rows-3"><li><a href="https://docs.astral.sh/ruff/" target="_blank" class="inline-flex items-center font-heading text-[20px] font-medium tracking-wider text-space transition-opacity duration-200 ease-in-out hover:opacity-60 dark:text-white"><span class="uppercase">Ruff</span></a></li><li><a href="https://docs.astral.sh/uv/" target="_blank" class="inline-flex items-center font-heading text-[20px] font-medium tracking-wider text-space transition-opacity duration-200 ease-in-out hover:opacity-60 dark:text-white"><span class="uppercase">uv</span></a></li><li><a href="https://docs.astral.sh/ty/" target="_blank" class="inline-flex items-center font-heading text-[20px] font-medium tracking-wider text-space transition-opacity duration-200 ease-in-out hover:opacity-60 dark:text-white"><span class="uppercase">ty</span></a></li><li><a href="https://github.com/astral-sh" target="_blank" class="inline-flex items-center font-heading text-[20px] font-medium tracking-wider text-space transition-opacity duration-200 ease-in-out hover:opacity-60 dark:text-white"><span class="uppercase">GitHub</span></a></li><li><a href="/about" target="" class="inline-flex items-center font-heading text-[20px] font-medium tracking-wider text-space transition-opacity duration-200 ease-in-out hover:opacity-60 dark:text-white"><span class="uppercase">Company</span></a></li><li><a href="/blog" target="" class="inline-flex items-center font-heading text-[20px] font-medium tracking-wider text-space transition-opacity duration-200 ease-in-out hover:opacity-60 dark:text-white"><span class="uppercase">Blog</span></a></li></ul><div class="space-y-3 text-center lg:text-right"><div class="ml-auto max-w-[220px] dark:brightness-0 dark:invert"><div style="transform:translateZ(0px)" class="flex h-full w-full items-center justify-center"><div class="h-[50px] w-[50px]"><svg version="1.1" id="L3" xmlns="http://www.w3.org/2000/svg" x="0px" y="0px" viewBox="0 0 100 100" enable-background="new 0 0 0 0"><circle fill="none" stroke="#fff" stroke-width="4" cx="50" cy="50" r="44" opacity="0.5"></circle><circle fill="#fff" stroke="#8655FF" stroke-width="3" cx="8" cy="54" r="6"><animateTransform attributeName="transform" dur="2s" type="rotate" from="0 50 48" to="360 50 52" repeatCount="indefinite"></animateTransform></circle></svg></div></div></div></div></div><div class="flex flex-col items-center justify-between space-y-6 lg:flex-row lg:space-y-0"><a class="text-[13px] font-medium uppercase tracking-wide text-comet underline transition-opacity duration-200 ease-in-out hover:opacity-60" href="/legal/privacy">Privacy Policy</a><p class="text-[13px] font-medium uppercase tracking-wide text-comet">© <!-- -->2026<!-- --> Astral Software Inc.</p><div class="flex items-center lg:space-x-8"><ul class="flex list-none items-center space-x-2"><li><a href="https://discord.com/invite/c9MhzV8aU5" target="_blank" class="inline-flex h-7 w-7 items-center justify-center rounded-[4px] border border-comet border-opacity-30 p-1.5 transition-all duration-200 ease-in-out hover:border-opacity-100" aria-label="Discord" rel="noreferrer"><span style="box-sizing:border-box;display:inline-block;overflow:hidden;width:initial;height:initial;background:none;opacity:1;border:0;margin:0;padding:0;position:relative;max-width:100%"><span style="box-sizing:border-box;display:block;width:initial;height:initial;background:none;opacity:1;border:0;margin:0;padding:0;max-width:100%"><img style="display:block;max-width:100%;width:initial;height:initial;background:none;opacity:1;border:0;margin:0;padding:0" alt="" aria-hidden="true" src="data:image/svg+xml,%3csvg%20xmlns=%27http://www.w3.org/2000/svg%27%20version=%271.1%27%20width=%2720%27%20height=%2714%27/%3e"/></span><img alt="" src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" decoding="async" data-nimg="intrinsic" style="opacity:0;transition:opacity 0.2s;position:absolute;top:0;left:0;bottom:0;right:0;box-sizing:border-box;padding:0;border:none;margin:auto;display:block;width:0;height:0;min-width:100%;max-width:100%;min-height:100%;max-height:100%"/><noscript><img alt="" loading="lazy" decoding="async" data-nimg="intrinsic" style="opacity:0;transition:opacity 0.2s;position:absolute;top:0;left:0;bottom:0;right:0;box-sizing:border-box;padding:0;border:none;margin:auto;display:block;width:0;height:0;min-width:100%;max-width:100%;min-height:100%;max-height:100%" srcSet="/static/media/2023-03-691f61a9-discord.svg 1x, /static/media/2023-03-691f61a9-discord.svg 2x" src="/static/media/2023-03-691f61a9-discord.svg"/></noscript></span></a></li><li><a href="https://x.com/astral_sh" target="_blank" class="inline-flex h-7 w-7 items-center justify-center rounded-[4px] border border-comet border-opacity-30 p-1.5 transition-all duration-200 ease-in-out hover:border-opacity-100" aria-label="X" rel="noreferrer"><span style="box-sizing:border-box;display:inline-block;overflow:hidden;width:initial;height:initial;background:none;opacity:1;border:0;margin:0;padding:0;position:relative;max-width:100%"><span style="box-sizing:border-box;display:block;width:initial;height:initial;background:none;opacity:1;border:0;margin:0;padding:0;max-width:100%"><img style="display:block;max-width:100%;width:initial;height:initial;background:none;opacity:1;border:0;margin:0;padding:0" alt="" aria-hidden="true" src="data:image/svg+xml,%3csvg%20xmlns=%27http://www.w3.org/2000/svg%27%20version=%271.1%27%20width=%2716%27%20height=%2716%27/%3e"/></span><img alt="" src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" decoding="async" data-nimg="intrinsic" style="opacity:0;transition:opacity 0.2s;position:absolute;top:0;left:0;bottom:0;right:0;box-sizing:border-box;padding:0;border:none;margin:auto;display:block;width:0;height:0;min-width:100%;max-width:100%;min-height:100%;max-height:100%"/><noscript><img alt="" loading="lazy" decoding="async" data-nimg="intrinsic" style="opacity:0;transition:opacity 0.2s;position:absolute;top:0;left:0;bottom:0;right:0;box-sizing:border-box;padding:0;border:none;margin:auto;display:block;width:0;height:0;min-width:100%;max-width:100%;min-height:100%;max-height:100%" srcSet="/static/media/2025-08-46d2ba2a-X-2.svg 1x" src="/static/media/2025-08-46d2ba2a-X-2.svg"/></noscript></span></a></li><li><a href="https://github.com/astral-sh" target="_blank" class="inline-flex h-7 w-7 items-center justify-center rounded-[4px] border border-comet border-opacity-30 p-1.5 transition-all duration-200 ease-in-out hover:border-opacity-100" aria-label="GitHub" rel="noreferrer"><span style="box-sizing:border-box;display:inline-block;overflow:hidden;width:initial;height:initial;background:none;opacity:1;border:0;margin:0;padding:0;position:relative;max-width:100%"><span style="box-sizing:border-box;display:block;width:initial;height:initial;background:none;opacity:1;border:0;margin:0;padding:0;max-width:100%"><img style="display:block;max-width:100%;width:initial;height:initial;background:none;opacity:1;border:0;margin:0;padding:0" alt="" aria-hidden="true" src="data:image/svg+xml,%3csvg%20xmlns=%27http://www.w3.org/2000/svg%27%20version=%271.1%27%20width=%2718%27%20height=%2717%27/%3e"/></span><img alt="" src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" decoding="async" data-nimg="intrinsic" style="opacity:0;transition:opacity 0.2s;position:absolute;top:0;left:0;bottom:0;right:0;box-sizing:border-box;padding:0;border:none;margin:auto;display:block;width:0;height:0;min-width:100%;max-width:100%;min-height:100%;max-height:100%"/><noscript><img alt="" loading="lazy" decoding="async" data-nimg="intrinsic" style="opacity:0;transition:opacity 0.2s;position:absolute;top:0;left:0;bottom:0;right:0;box-sizing:border-box;padding:0;border:none;margin:auto;display:block;width:0;height:0;min-width:100%;max-width:100%;min-height:100%;max-height:100%" srcSet="/static/media/2023-03-533ca0fa-github.svg 1x, /static/media/2023-03-533ca0fa-github.svg 2x" src="/static/media/2023-03-533ca0fa-github.svg"/></noscript></span></a></li></ul></div></div></div></div></div>
20<section aria-label="Notifications alt+T" tabindex="-1" aria-live="polite" aria-relevant="additions text" aria-atomic="false"></section></div>
20<script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{"page":{"url":"https://astral.sh/ruff","seo":{"title":"Ruff, an extremely fast Python linter | Astral","description":"A high-performance Python linter and code formatter, written in Rust. Ruff can replace dozens of static analysis tools, all while executing 10-100x faster.","image":"/static/OpenGraph/Ruff.png"},"sections":[{"type":"section","components":[{"type":"project_masthead","icon":{"url":"/static/media/2023-03-bac873c3-Ruff-Logo.svg","alt":"Ruff logo","width":100,"height":100},"text_card":{"subheading":"Ruff","heading":"Lint at lightspeed","content":"\u003cp\u003eAn extremely fast Python linter, written in Rust.\u003c/p\u003e\n","links":[{"link":{"link":{"title":"Get started","url":"https://github.com/astral-sh/ruff","target":"_blank"},"button":{"type":"default","desktop_width":"auto","background_color":"black","mobile_width":"full"}}},{"link":{"link":{"title":"Browse docs","url":"https://docs.astral.sh/ruff/","target":"_blank"},"button":{"type":"outline","desktop_width":"auto","background_color":"black","mobile_width":"full"}}}],"options":{"text_alignment":"left","has_mobile_text_alignment":true,"mobile_text_alignment":"center","subheading_classes":"subtitle","heading_tag":"h1","content_max_width":"max-w-2xl","content_classes":"body-xl"}}},{"type":"logo_strip","logos":[{"logo":{"title":"Pandas","url":"/static/media/2023-04-3c71d5b0-pandas-1.svg","alt":"Pandas","width":123,"height":65}},{"logo":{"title":"Hugging Face","url":"/static/media/2023-04-b6fac3fe-hugging-face-1.svg","alt":"Hugging Face","width":196,"height":65}},{"logo":{"title":"FastAPI","url":"/static/media/2023-03-773304b3-fastapi-1.png","alt":"FastAPI","width":294,"height":70}},{"logo":{"title":"Airflow","url":"/static/media/2023-04-37800ea6-airflow-1.svg","alt":"Airflow","width":120,"height":65}},{"logo":{"title":"Elementl","url":"/static/media/2023-03-e540c3f1-element.svg","alt":"Elementl","width":154,"height":33}},{"logo":{"title":"SciPy","url":"/static/media/2023-04-8552506b-scipy-1.svg","alt":"SciPy","width":110,"height":65}},{"logo":{"title":"Mozilla","url":"/static/media/2023-04-f9196d4d-mozilla-1.svg","alt":"Mozilla","width":120,"height":60}},{"logo":{"title":"Snowflake","url":"/static/media/2023-03-1e0ab03c-snowflake.svg","alt":"Snowflake","width":171,"height":41}}]}],"classnames":"inner-margin-t inner-margin-b","padding_top":"none","padding_bottom":"none","background":{"background_color":"white"}},{"type":"section","components":[{"type":"text_card","text_card":{"heading":"An ambitious tool for ambitious projects","content":"\u003cp\u003eRuff is a high-performance Python linter that lets you ship faster. Replace dozens of dependencies with a single tool â that runs in a fraction of the time.\u003c/p\u003e\n","options":{"section_alignment":"center","text_alignment":"center","heading_max_width":"max-w-2xl","content_max_width":"max-w-2xl","content_classes":"body-l"}}},{"type":"feature_slider","feature_slider":[{"text_card":{"heading":"\"Shockingly fast\"","content":"\u003cp\u003eRuff is 10-100x faster than existing tools, enabling sub-second feedback loops on even the largest codebases.\u003c/p\u003e\n","options":{"text_alignment":"left","has_mobile_text_alignment":true,"mobile_text_alignment":"center","heading_font_size":"h4","content_classes":"body-l"}},"media":{"lottie":"excellent-products","lottie_description":"Ruff can lint the CPython codebase in around 200ms."}},{"text_card":{"heading":"All-in-one","content":"\u003cp\u003eReplace dozens of tools with a single, unified interface. Ruff supports over 500 rules and maintains drop-in compatibility with Flake8, isort, and more.\u003c/p\u003e\n","options":{"text_alignment":"left","has_mobile_text_alignment":true,"mobile_text_alignment":"center","heading_font_size":"h4","content_classes":"body-l"}},"media":{"lottie":"all-one","lottie_description":"Ruff can be configured to enforce rules from dozens of other linters through a single pip-installable package."}},{"text_card":{"heading":"Automated","content":"\u003cp\u003eAutomatically upgrade to newer Python syntax, organize imports, remove unused variables, and more with Ruffâs powerful autofix model.\u003c/p\u003e\n","options":{"text_alignment":"left","has_mobile_text_alignment":true,"mobile_text_alignment":"center","heading_font_size":"h4","content_classes":"body-l"}},"media":{"lottie":"automated","lottie_description":"Ruff can automatically fix a wide range of lint violations."}}]}],"classnames":"padding-t padding-b","padding_top":"none","padding_bottom":"none","has_edging":true,"background":{"background_color":"grey"}},{"type":"section","components":[{"type":"testimonial_slider","heading":"\u003cdiv class=\"font-semibold\"\u003eTried and tested.\u003c/div\u003ePowering impactful projects across open source.","slider":[{"quote":"Ruff is so fast that sometimes I add an intentional bug in the code just to confirm it's actually running.","author":"Sebastián RamÃrez","author_description":"Creator of FastAPI","media":{"image":{"url":"/static/media/2023-03-32cd25da-sebastian-ramirez.jpg","alt":"Sebastián RamÃrez","width":520,"height":610}}},{"quote":"Why is Ruff a gamechanger? Primarily because itâs nearly 1000x faster. Literally. Not a typo.","author":"Nick Schrock","author_description":"Founder of Elementl, co-creator of GraphQL","media":{"image":{"url":"/static/media/2023-03-92c37926-nick-shrock.jpg","alt":"Nick Schrock","width":520,"height":610}}},{"quote":"Just switched my first project to Ruff. Only one downside so far: it's so fast I couldn't believe it was working until I intentionally introduced some errors.","author":"Timothy Crosley","author_description":"Software Engineer at Stripe, Creator of isort","media":{"image":{"url":"/static/media/2023-03-aec0867d-timothy-crosley.jpg","alt":"Timothy Crosley","width":520,"height":610}}}],"slider_colour":"galaxy"}],"classnames":"padding-t padding-b","padding_top":"none","padding_bottom":"none","has_container":false,"background":{"background_color":"galaxy"}},{"type":"section","components":[{"type":"featured_posts","heading":"Space to think"}],"classnames":"margin-t margin-b","padding_top":"none","padding_bottom":"none","background":{"background_color":"white"}}]},"posts":[{"slug":"openai","frontmatter":{"title":"Astral to join OpenAI","author":"Charlie Marsh","date":"2026-03-19","category":"Announcements","meta":{"title":"Astral to join OpenAI","description":"Astral has entered into an agreement to join OpenAI as part of the Codex team.","image":"/static/OpenGraph/Astral.jpg"},"index":{"title":"Astral to join OpenAI","description":"Astral has entered into an agreement to join OpenAI as part of the Codex team.","image":{"src":"/static/PNG/Astral.png","alt":"Astral","width":2240,"height":1256}}}},{"slug":"ty","frontmatter":{"title":"ty: An extremely fast Python type checker and LSP","author":"Charlie Marsh","date":"2025-12-16","category":"Announcements","meta":{"title":"ty: An extremely fast Python type checker and language server","description":"t
20y is an extremely fast Python type checker and language server, written in Rust, and designed as an alternative to mypy, Pyright, and Pylance.","image":"/static/OpenGraph/Astral.jpg"},"index":{"title":"ty: An extremely fast Python type checker and language server","description":"ty is an extremely fast Python type checker and language server, written in Rust, and designed as an alternative to mypy, Pyright, and Pylance.","image":{"src":"/static/OpenGraph/ty.png","alt":"ty","width":760,"height":460}}}}]},"__N_SSG":true},"page":"/[...slug]","query":{"slug":["ruff"]},"buildId":"cxj-dXkcuNcieMR3VeEHa","isFallback":false,"gsp":true,"scriptLoader":[]}</script>
20</body></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.