<!DOCTYPE html>
<html lang="en">
  <head>
    <title>RubyGems.org | your community gem host</title>
    <meta charset="UTF-8">
    <meta content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=0" name="viewport">
    <meta name="google-site-verification" content="AuesbWQ9MCDMmC1lbDlw25RJzyqWOcDYpuaCjgPxEZY" />
    <link rel="apple-touch-icon" href="/apple-touch-icons/apple-touch-icon.png" />
      <link rel="apple-touch-icon" sizes="57x57" href="/apple-touch-icons/apple-touch-icon-57x57.png" />
      <link rel="apple-touch-icon" sizes="72x72" href="/apple-touch-icons/apple-touch-icon-72x72.png" />
      <link rel="apple-touch-icon" sizes="76x76" href="/apple-touch-icons/apple-touch-icon-76x76.png" />
      <link rel="apple-touch-icon" sizes="114x114" href="/apple-touch-icons/apple-touch-icon-114x114.png" />
      <link rel="apple-touch-icon" sizes="120x120" href="/apple-touch-icons/apple-touch-icon-120x120.png" />
      <link rel="apple-touch-icon" sizes="144x144" href="/apple-touch-icons/apple-touch-icon-144x144.png" />
      <link rel="apple-touch-icon" sizes="152x152" href="/apple-touch-icons/apple-touch-icon-152x152.png" />
      <link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icons/apple-touch-icon-180x180.png" />
    <link rel="mask-icon" href="/rubygems_logo.svg" color="#e9573f">
    <link rel="fluid-icon" href="/fluid-icon.png"/>
    <link rel="search" type="application/opensearchdescription+xml" title="RubyGems.org" href="/opensearch.xml">
    <link rel="shortcut icon" href="/favicon.ico" type="image/x-icon">
    <link rel="stylesheet" href="/assets/application-d3b659e2.css" />
    <link href="https://fonts.gstatic.com" rel="preconnect" crossorigin>
    <link href='https://fonts.googleapis.com/css?family=Roboto:100&amp;subset=greek,latin,cyrillic,latin-ext' rel='stylesheet' type='text/css'>
    
<link rel="alternate" type="application/atom+xml" href="https://feeds.feedburner.com/gemcutter-latest" title="RubyGems.org | Latest Gems">

    
    
    <script type="importmap" data-turbo-track="reload">{
  "imports": {
    "jquery": "/assets/jquery-15a62848.js",
    "@rails/ujs": "/assets/@rails--ujs-2089e246.js",
    "application": "/assets/application-ae34b86d.js",
    "@hotwired/turbo-rails": "/assets/turbo.min-9fd88cd5.js",
    "@hotwired/stimulus": "/assets/@hotwired--stimulus-132cbc23.js",
    "@hotwired/stimulus-loading": "/assets/stimulus-loading-1fc53fe7.js",
    "@stimulus-components/clipboard": "/assets/@stimulus-components--clipboard-d9c44ea9.js",
    "@stimulus-components/dialog": "/assets/@stimulus-components--dialog-74866932.js",
    "@stimulus-components/reveal": "/assets/@stimulus-components--reveal-77f6cb39.js",
    "@stimulus-components/checkbox-select-all": "/assets/@stimulus-components--checkbox-select-all-e7db6a97.js",
    "github-buttons": "/assets/github-buttons-3337d207.js",
    "webauthn-json": "/assets/webauthn-json-74adc0e8.js",
    "avo.custom": "/assets/avo.custom-4b185d31.js",
    "stimulus-rails-nested-form": "/assets/stimulus-rails-nested-form-3f712873.js",
    "local-time": "/assets/local-time-a331fc59.js",
    "src/oidc_api_key_role_form": "/assets/src/oidc_api_key_role_form-223a59d4.js",
    "src/pages": "/assets/src/pages-64095f36.js",
    "src/transitive_dependencies": "/assets/src/transitive_dependencies-9280dc42.js",
    "src/webauthn": "/assets/src/webauthn-92615f69.js",
    "controllers/application": "/assets/controllers/application-e33ffaa8.js",
    "controllers/autocomplete_controller": "/assets/controllers/autocomplete_controller-e9f78a76.js",
    "controllers/counter_controller": "/assets/controllers/counter_controller-b739ef1d.js",
    "controllers/dialog_controller": "/assets/controllers/dialog_controller-c788489b.js",
    "controllers/dropdown_controller": "/assets/controllers/dropdown_controller-baaf189b.js",
    "controllers/dump_controller": "/assets/controllers/dump_controller-5d671745.js",
    "controllers/exclusive_checkbox_controller": "/assets/controllers/exclusive_checkbox_controller-c624394a.js",
    "controllers/gem_scope_controller": "/assets/controllers/gem_scope_controller-9c330c45.js",
    "controllers": "/assets/controllers/index-236ab973.js",
    "controllers/nav_controller": "/assets/controllers/nav_controller-8f4ea870.js",
    "controllers/onboarding_name_controller": "/assets/controllers/onboarding_name_controller-a65c65ec.js",
    "controllers/password_strength_controller": "/assets/controllers/password_strength_controller-ccb00d57.js",
    "controllers/radio_reveal_controller": "/assets/controllers/radio_reveal_controller-41774e15.js",
    "controllers/recovery_controller": "/assets/controllers/recovery_controller-b051251b.js",
    "controllers/reveal_controller": "/assets/controllers/reveal_controller-a90af4d9.js",
    "controllers/reveal_search_controller": "/assets/controllers/reveal_search_controller-8dc44279.js",
    "controllers/scroll_controller": "/assets/controllers/scroll_controller-07f12b0d.js",
    "controllers/search_controller": "/assets/controllers/search_controller-79d09057.js",
    "controllers/stats_controller": "/assets/controllers/stats_controller-5bae7b7f.js"
  }
}</script>
<link rel="modulepreload" href="/assets/jquery-15a62848.js" nonce="PUuYDoh++Iz5U8SBnh1C0w==">
<link rel="modulepreload" href="/assets/@rails--ujs-2089e246.js" nonce="PUuYDoh++Iz5U8SBnh1C0w==">
<link rel="modulepreload" href="/assets/application-ae34b86d.js" nonce="PUuYDoh++Iz5U8SBnh1C0w==">
<link rel="modulepreload" href="/assets/turbo.min-9fd88cd5.js" nonce="PUuYDoh++Iz5U8SBnh1C0w==">
<link rel="modulepreload" href="/assets/@hotwired--stimulus-132cbc23.js" nonce="PUuYDoh++Iz5U8SBnh1C0w==">
<link rel="modulepreload" href="/assets/stimulus-loading-1fc53fe7.js" nonce="PUuYDoh++Iz5U8SBnh1C0w==">
<link rel="modulepreload" href="/assets/@stimulus-components--clipboard-d9c44ea9.js" nonce="PUuYDoh++Iz5U8SBnh1C0w==">
<link rel="modulepreload" href="/assets/@stimulus-components--dialog-74866932.js" nonce="PUuYDoh++Iz5U8SBnh1C0w==">
<link rel="modulepreload" href="/assets/@stimulus-components--reveal-77f6cb39.js" nonce="PUuYDoh++Iz5U8SBnh1C0w==">
<link rel="modulepreload" href="/assets/@stimulus-components--checkbox-select-all-e7db6a97.js" nonce="PUuYDoh++Iz5U8SBnh1C0w==">
<link rel="modulepreload" href="/assets/github-buttons-3337d207.js" nonce="PUuYDoh++Iz5U8SBnh1C0w==">
<link rel="modulepreload" href="/assets/webauthn-json-74adc0e8.js" nonce="PUuYDoh++Iz5U8SBnh1C0w==">
<link rel="modulepreload" href="/assets/local-time-a331fc59.js" nonce="PUuYDoh++Iz5U8SBnh1C0w==">
<link rel="modulepreload" href="/assets/src/oidc_api_key_role_form-223a59d4.js" nonce="PUuYDoh++Iz5U8SBnh1C0w==">
<link rel="modulepreload" href="/assets/src/pages-64095f36.js" nonce="PUuYDoh++Iz5U8SBnh1C0w==">
<link rel="modulepreload" href="/assets/src/transitive_dependencies-9280dc42.js" nonce="PUuYDoh++Iz5U8SBnh1C0w==">
<link rel="modulepreload" href="/assets/src/webauthn-92615f69.js" nonce="PUuYDoh++Iz5U8SBnh1C0w==">
<link rel="modulepreload" href="/assets/controllers/application-e33ffaa8.js" nonce="PUuYDoh++Iz5U8SBnh1C0w==">
<link rel="modulepreload" href="/assets/controllers/autocomplete_controller-e9f78a76.js" nonce="PUuYDoh++Iz5U8SBnh1C0w==">
<link rel="modulepreload" href="/assets/controllers/counter_controller-b739ef1d.js" nonce="PUuYDoh++Iz5U8SBnh1C0w==">
<link rel="modulepreload" href="/assets/controllers/dialog_controller-c788489b.js" nonce="PUuYDoh++Iz5U8SBnh1C0w==">
<link rel="modulepreload" href="/assets/controllers/dropdown_controller-baaf189b.js" nonce="PUuYDoh++Iz5U8SBnh1C0w==">
<link rel="modulepreload" href="/assets/controllers/dump_controller-5d671745.js" nonce="PUuYDoh++Iz5U8SBnh1C0w==">
<link rel="modulepreload" href="/assets/controllers/exclusive_checkbox_controller-c624394a.js" nonce="PUuYDoh++Iz5U8SBnh1C0w==">
<link rel="modulepreload" href="/assets/controllers/gem_scope_controller-9c330c45.js" nonce="PUuYDoh++Iz5U8SBnh1C0w==">
<link rel="modulepreload" href="/assets/controllers/index-236ab973.js" nonce="PUuYDoh++Iz5U8SBnh1C0w==">
<link rel="modulepreload" href="/assets/controllers/nav_controller-8f4ea870.js" nonce="PUuYDoh++Iz5U8SBnh1C0w==">
<link rel="modulepreload" href="/assets/controllers/onboarding_name_controller-a65c65ec.js" nonce="PUuYDoh++Iz5U8SBnh1C0w==">
<link rel="modulepreload" href="/assets/controllers/password_strength_controller-ccb00d57.js" nonce="PUuYDoh++Iz5U8SBnh1C0w==">
<link rel="modulepreload" href="/assets/controllers/radio_reveal_controller-41774e15.js" nonce="PUuYDoh++Iz5U8SBnh1C0w==">
<link rel="modulepreload" href="/assets/controllers/recovery_controller-b051251b.js" nonce="PUuYDoh++Iz5U8SBnh1C0w==">
<link rel="modulepreload" href="/assets/controllers/reveal_controller-a90af4d9.js" nonce="PUuYDoh++Iz5U8SBnh1C0w==">
<link rel="modulepreload" href="/assets/controllers/reveal_search_controller-8dc44279.js" nonce="PUuYDoh++Iz5U8SBnh1C0w==">
<link rel="modulepreload" href="/assets/controllers/scroll_controller-07f12b0d.js" nonce="PUuYDoh++Iz5U8SBnh1C0w==">
<link rel="modulepreload" href="/assets/controllers/search_controller-79d09057.js" nonce="PUuYDoh++Iz5U8SBnh1C0w==">
<link rel="modulepreload" href="/assets/controllers/stats_controller-5bae7b7f.js" nonce="PUuYDoh++Iz5U8SBnh1C0w==">
<script type="module" nonce="PUuYDoh++Iz5U8SBnh1C0w==">import "application"</script>
  </head>

  <body class="body--index" data-controller="nav" data-nav-expanded-class="mobile-nav-is-expanded">
    <!-- Top banner -->

    <!-- Policies acknowledgment banner -->
    

    <header class="header " data-nav-target="header collapse">
      <div class="l-wrap--header">
        <a title="RubyGems" class="header__logo-wrap" data-nav-target="logo" href="/">
          <span class="header__logo" data-icon="⬡">⬢</span>
          <span class="t-hidden">RubyGems</span>
</a>        <a class="header__club-sandwich" href="#" data-action="nav#toggle focusin->nav#focus mousedown->nav#mouseDown click@window->nav#hide">
          <span class="t-hidden">Navigation menu</span>
        </a>

        <div class="header__nav-links-wrap">
          

          <nav class="header__nav-links" data-controller="dropdown">

            <a class="header__nav-link " href="https://rubygems.org/releases">Releases</a>
            <a class="header__nav-link" href="https://blog.rubygems.org">Blog</a>

              <a class="header__nav-link" href="/gems">Gems</a>

            <a class="header__nav-link" href="https://guides.rubygems.org">Guides</a>

              <a class="header__nav-link " href="/sign_in">Sign in</a>
                <a class="header__nav-link " href="/sign_up">Sign up</a>
          </nav>
        </div>
      </div>
    </header>



    <main class="" data-nav-target="collapse">
        <div class="home__image-wrap">
  <div class="home__image"></div>
</div>
<h1 class="home__heading">Find, install, and publish RubyGems.</h1>
<div class="home__search-wrap" role="search">
  <form data-controller="autocomplete" data-autocomplete-selected-class="selected" action="/search" accept-charset="UTF-8" method="get">
    <input type="search" name="query" id="query" placeholder="Search Gems&hellip;" autofocus="autofocus" class="home__search" autocomplete="off" aria-autocomplete="list" data-autocomplete-target="query" data-action="autocomplete#suggest keydown.down-&gt;autocomplete#next keydown.up-&gt;autocomplete#prev keydown.esc-&gt;autocomplete#hide keydown.enter-&gt;autocomplete#clear click@window-&gt;autocomplete#hide focus-&gt;autocomplete#suggest blur-&gt;autocomplete#hide" />

    <ul class="suggest-list" role="listbox" data-autocomplete-target="suggestions"></ul>

    <template id="suggestion" data-autocomplete-target="template">
      <li class="menu-item" role="option" tabindex="-1" data-autocomplete-target="item" data-action="click->autocomplete#choose mouseover->autocomplete#highlight"></li>
    </template>

    <label id="querylabel" for="query">
      <span class="t-hidden">Search Gems&hellip;</span>
</label>
    <input type="submit" value="⌕" id="search_submit" class="home__search__icon" aria-labelledby="querylabel" data-disable-with="⌕" />

      <center>
        <a class="home__advanced__search t-link--has-arrow" href="/search/advanced">Advanced Search</a>
      </center>
</form></div>

<div class="home__cta-wrap">
    <h2 class="home__downloads">
      <p>245,052,953,634</p>
      <span class="home__downloads__desc">downloads &amp; counting</span>
    </h2>
  <a class="home__join " data-icon="&gt;" href="https://rubygems.org/pages/download">Install RubyGems</a>
</div>
<div class="home__links">
  <a class="home__link" data-icon="⌁" href="https://status.rubygems.org">Status</a>
  <a class="home__link" data-icon="⧖" href="https://uptime.rubygems.org">Uptime</a>
</div>

    </main>

    <footer class="footer" data-nav-target="collapse">
      <div class="l-wrap--footer">
        <div class="l-overflow">
          <div class="nav--v l-col--r--pad">
            <a class="nav--v__link--footer" href="https://status.rubygems.org">Status</a>
            <a class="nav--v__link--footer" href="https://uptime.rubygems.org">Uptime</a>
            <a class="nav--v__link--footer" href="https://github.com/rubygems/rubygems.org">Code</a>
            <a class="nav--v__link--footer" href="/pages/data">Data</a>
            <a class="nav--v__link--footer" href="/stats">Stats</a>
            <a class="nav--v__link--footer" href="https://guides.rubygems.org/contributing/">Contribute</a>
              <a class="nav--v__link--footer" href="/pages/about">About</a>
            <a class="nav--v__link--footer" href="mailto:support@rubygems.org">Help</a>
            <a class="nav--v__link--footer" href="https://guides.rubygems.org/rubygems-org-api">API</a>
            <a class="nav--v__link--footer" href="/policies">Policies</a>
            <a class="nav--v__link--footer" href="/pages/supporters">Support Us</a>
              <a class="nav--v__link--footer" href="/pages/security">Security</a>
          </div>
          <div class="l-colspan--l colspan--l--has-border">
            <div class="footer__about">
              <p>
                RubyGems.org is the Ruby community&rsquo;s gem hosting service. Instantly <a href="https://guides.rubygems.org/publishing/">publish your gems</a> and then <a href="https://guides.rubygems.org/command-reference/#gem-install">install them</a>. Use <a href="https://guides.rubygems.org/rubygems-org-api/">the API</a> to find out more about <a href="/gems">available gems</a>. <a href="https://guides.rubygems.org/contributing/">Become a contributor</a> and improve the site yourself.
              </p>
              <p>
                The RubyGems.org website and service are maintained and operated by Ruby Central’s <a href="https://rubycentral.org/open-source/">Open Source Program</a> and the RubyGems team. It is funded by the greater Ruby community through support from sponsors, members, and infrastructure donations. <b>If you build with Ruby and believe in our mission, you can join us in keeping RubyGems.org, RubyGems, and Bundler secure and sustainable for years to come by contributing <a href="/pages/supporters">here</a></b>.
              </p>
            </div>
          </div>
        </div>
      </div>
      <div class="footer__sponsors">
        <a class="footer__sponsor footer__sponsor__ruby_central" href="https://rubycentral.org/open-source/" target="_blank" rel="noopener">
          Operated by
          <span class="t-hidden">Ruby Central</span>
        </a>
        <a class="footer__sponsor footer__sponsor__dockyard" href="https://dockyard.com/ruby-on-rails-consulting" target="_blank" rel="noopener">
          Designed by
          <span class="t-hidden">DockYard</span>
        </a>
        <a class="footer__sponsor footer__sponsor__aws" href="https://aws.amazon.com/" target="_blank" rel="noopener">
          Hosted by
          <span class="t-hidden">AWS</span>
        </a>
        <a class="footer__sponsor footer__sponsor__dnsimple" href="https://dnsimple.link/resolving-rubygems" target="_blank" rel="noopener">
          Resolved with
          <span class="t-hidden">DNSimple</span>
        </a>
        <a class="footer__sponsor footer__sponsor__datadog" href="https://www.datadoghq.com/" target="_blank" rel="noopener">
          Monitored by
          <span class="t-hidden">Datadog</span>
        </a>
        <a class="footer__sponsor footer__sponsor__fastly" href="https://www.fastly.com/customers/ruby-central" target="_blank" rel="noopener">
          Gems served by
          <span class="t-hidden">Fastly</span>
        </a>
        <a class="footer__sponsor footer__sponsor__honeybadger" href="https://www.honeybadger.io/" target="_blank" rel="noopener">
          Monitored by
          <span class="t-hidden">Honeybadger</span>
        </a>
        <a class="footer__sponsor footer__sponsor__mend" href="https://mend.io/" target="_blank" rel="noopener">
          Secured by
          <span class="t-hidden">Mend.io</span>
        </a>
      </div>
    </footer>
    
    <script type="text/javascript" defer src="https://www.fastly-insights.com/insights.js?k=3e63c3cd-fc37-4b19-80b9-65ce64af060a"></script>
  </body>
</html>
