> ## Documentation Index
> Fetch the complete documentation index at: https://codspeed.io/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Supported Languages

> Pick the language you want to benchmark.

export const JavaIcon = props => <svg xmlns="http://www.w3.org/2000/svg" className="h-6 w-6" width={64} height={64} viewBox="0 0 128 128" {...props}>
    <path fill="#0074BD" d="M47.617 98.12s-4.767 2.774 3.397 3.71c9.892 1.13 14.947.968 25.845-1.092 0 0 2.871 1.795 6.873 3.351-24.439 10.47-55.308-.607-36.115-5.969zm-2.988-13.665s-5.348 3.959 2.823 4.805c10.567 1.091 18.91 1.18 33.354-1.6 0 0 1.993 2.025 5.132 3.131-29.542 8.64-62.446.68-41.309-6.336z" />
    <path fill="#EA2D2E" d="M69.802 61.271c6.025 6.935-1.58 13.17-1.58 13.17s15.289-7.891 8.269-17.777c-6.559-9.215-11.587-13.792 15.635-29.58 0 .001-42.731 10.67-22.324 34.187z" />
    <path fill="#0074BD" d="M102.123 108.229s3.529 2.91-3.888 5.159c-14.102 4.272-58.706 5.56-71.094.171-4.451-1.938 3.899-4.625 6.526-5.192 2.739-.593 4.303-.485 4.303-.485-4.953-3.487-32.013 6.85-13.743 9.815 49.821 8.076 90.817-3.637 77.896-9.468zM49.912 70.294s-22.686 5.389-8.033 7.348c6.188.828 18.518.638 30.011-.326 9.39-.789 18.813-2.474 18.813-2.474s-3.308 1.419-5.704 3.053c-23.042 6.061-67.544 3.238-54.731-2.958 10.832-5.239 19.644-4.643 19.644-4.643zm40.697 22.747c23.421-12.167 12.591-23.86 5.032-22.285-1.848.385-2.677.72-2.677.72s.688-1.079 2-1.543c14.953-5.255 26.451 15.503-4.823 23.725 0-.002.359-.327.468-.617z" />
    <path fill="#EA2D2E" d="M76.491 1.587S89.459 14.563 64.188 34.51c-20.266 16.006-4.621 25.13-.007 35.559-11.831-10.673-20.509-20.07-14.688-28.815C58.041 28.42 81.722 22.195 76.491 1.587z" />
    <path fill="#0074BD" d="M52.214 126.021c22.476 1.437 57-.8 57.817-11.436 0 0-1.571 4.032-18.577 7.231-19.186 3.612-42.854 3.191-56.887.874 0 .001 2.875 2.381 17.647 3.331z" />
  </svg>;

export const GolangIcon = props => <svg xmlns="http://www.w3.org/2000/svg" className="h-6 w-6" width={256} height={96} fill="#00acd7" viewBox="0 0 256 95.643" {...props}>
    <path d="M19.32 28.96c-.5 0-.623-.25-.374-.623l2.617-3.365c.25-.374.872-.623 1.37-.623H67.43c.5 0 .623.374.374.748l-2.12 3.24c-.25.374-.872.748-1.246.748l-45.12-.125zM.5 40.427c-.5 0-.623-.25-.374-.623l2.617-3.365c.25-.374.872-.623 1.37-.623H60.95c.5 0 .748.374.623.748l-.997 2.99c-.125.5-.623.748-1.122.748L.5 40.427zm30.163 11.467c-.5 0-.623-.374-.374-.748l1.745-3.116c.25-.374.748-.748 1.246-.748h24.928c.5 0 .748.374.748.872l-.25 2.99c0 .5-.5.872-.872.872l-27.172-.125zm129.38-25.178L139.1 32.2c-1.87.5-1.994.623-3.615-1.246-1.87-2.12-3.24-3.5-5.858-4.736-7.852-3.864-15.456-2.742-22.56 1.87-8.476 5.484-12.838 13.586-12.714 23.682.125 9.97 6.98 18.198 16.827 19.57 8.476 1.122 15.58-1.87 21.19-8.226 1.122-1.37 2.12-2.867 3.365-4.612H111.68c-2.617 0-3.24-1.62-2.368-3.74 1.62-3.864 4.612-10.345 6.357-13.586.374-.748 1.246-1.994 3.116-1.994h45.37c-.25 3.365-.25 6.73-.748 10.096-1.37 8.974-4.736 17.2-10.22 24.43-8.974 11.84-20.69 19.195-35.523 21.19-12.215 1.62-23.557-.748-33.53-8.226C74.9 79.69 69.675 70.466 68.304 59c-1.62-13.586 2.368-25.8 10.595-36.52 8.85-11.592 20.566-18.946 34.9-21.563 11.716-2.12 22.934-.748 33.03 6.107 6.606 4.362 11.342 10.345 14.46 17.575.748 1.122.25 1.745-1.246 2.12z" />
    <path d="M201.297 95.643c-11.342-.25-21.688-3.5-30.413-10.97-7.354-6.357-11.966-14.46-13.46-24.056-2.244-14.085 1.62-26.55 10.096-37.642 9.1-11.966 20.067-18.198 34.9-20.815 12.714-2.244 24.68-.997 35.523 6.357 9.847 6.73 15.954 15.83 17.575 27.795 2.12 16.827-2.742 30.537-14.334 42.254-8.226 8.35-18.322 13.586-29.914 15.954-3.365.623-6.73.748-9.97 1.122zm29.665-50.355c-.125-1.62-.125-2.867-.374-4.113-2.244-12.34-13.586-19.32-25.427-16.577-11.592 2.617-19.07 9.97-21.812 21.688-2.244 9.722 2.493 19.57 11.467 23.557 6.855 2.99 13.71 2.617 20.317-.748 9.847-5.1 15.206-13.087 15.83-23.807z" />
  </svg>;

export const NodeJSIcon = props => <svg xmlns="http://www.w3.org/2000/svg" className="h-6 w-6" width={64} height={64} viewBox="0 0 32 32" fill="#8cc84b" preserveAspectRatio="xMidYMid" {...props}>
    <path d="M14.656.427c.8-.453 1.82-.455 2.6 0L29.2 7.16c.747.42 1.247 1.253 1.24 2.114v13.5c.005.897-.544 1.748-1.332 2.16l-11.88 6.702a2.6 2.6 0 0 1-2.639-.073l-3.565-2.06c-.243-.145-.516-.26-.688-.495.152-.204.422-.23.642-.32.496-.158.95-.4 1.406-.656.115-.08.256-.05.366.022l3.04 1.758c.217.125.437-.04.623-.145l11.665-6.583a.386.386 0 0 0 .212-.38V9.334a.417.417 0 0 0-.25-.417L16.19 2.244a.41.41 0 0 0-.465-.001L3.892 8.93a.413.413 0 0 0-.25.415v13.37a.375.375 0 0 0 .215.375l3.162 1.785c.594.32 1.323.5 1.977.265a1.5 1.5 0 0 0 .971-1.409l.003-13.29c-.014-.197.172-.36.363-.34h1.52c.2-.005.357.207.33.405L12.18 23.88c.001 1.188-.487 2.48-1.586 3.063-1.354.7-3.028.553-4.366-.12l-3.4-1.88a2.448 2.448 0 0 1-1.332-2.16v-13.5a2.46 2.46 0 0 1 1.282-2.141L14.656.427zM18.1 9.785c1.727-.1 3.576-.066 5.13.785 1.203.652 1.87 2.02 1.892 3.358-.034.18-.222.28-.394.267-.5-.001-1.002.007-1.504-.003-.213.008-.336-.188-.363-.376-.144-.64-.493-1.273-1.095-1.582-.924-.463-1.996-.44-3.004-.43-.736.04-1.527.103-2.15.535-.48.328-.624 1-.453 1.522.16.383.603.506.964.62 2.082.544 4.287.5 6.33 1.207.845.292 1.672.86 1.962 1.745.378 1.186.213 2.604-.63 3.556-.684.784-1.68 1.2-2.675 1.442-1.323.295-2.695.302-4.038.17-1.263-.144-2.577-.476-3.552-1.336-.834-.724-1.24-1.852-1.2-2.94.01-.184.193-.312.37-.297h1.5c.202-.014.35.16.36.35.093.6.322 1.25.854 1.6 1.026.662 2.313.616 3.487.635.973-.043 2.065-.056 2.86-.7.42-.367.543-.98.43-1.508-.123-.446-.6-.653-1-.8-2.055-.65-4.285-.414-6.32-1.15-.826-.292-1.625-.844-1.942-1.693-.443-1.2-.24-2.687.693-3.607.9-.915 2.22-1.268 3.47-1.394z" />
  </svg>;

export const PythonIcon = props => <svg xmlns="http://www.w3.org/2000/svg" className="h-6 w-6" viewBox="0 0 32 31" width={32} height={31} fill="none" {...props}>
    <g clipPath="url(#a)">
      <g clipPath="url(#b)">
        <path fill="url(#c)" d="M15.612.207a19.07 19.07 0 0 0-3.214.276C9.552.99 9.035 2.05 9.035 4.005v2.582h6.726v.86h-9.25c-1.955 0-3.666 1.184-4.202 3.435-.617 2.58-.645 4.19 0 6.885.479 2.006 1.62 3.435 3.575 3.435h2.313v-3.095c0-2.236 1.92-4.209 4.201-4.209h6.718c1.87 0 3.363-1.55 3.363-3.442V4.005c0-1.836-1.537-3.215-3.363-3.522a20.83 20.83 0 0 0-3.504-.276Zm-3.637 2.076c.695 0 1.262.581 1.262 1.295 0 .712-.567 1.287-1.262 1.287a1.274 1.274 0 0 1-1.262-1.287c0-.714.565-1.295 1.262-1.295Z" />
        <path fill="url(#d)" d="M23.318 7.447v3.009c0 2.332-1.963 4.295-4.202 4.295h-6.718c-1.84 0-3.363 1.586-3.363 3.443v6.45c0 1.837 1.585 2.917 3.363 3.443 2.13.63 4.17.745 6.718 0 1.693-.494 3.363-1.487 3.363-3.442v-2.582h-6.718v-.861h10.081c1.955 0 2.683-1.373 3.363-3.435.702-2.122.672-4.163 0-6.885-.483-1.96-1.406-3.435-3.363-3.435h-2.524Zm-3.779 16.337c.698 0 1.263.575 1.263 1.287 0 .714-.565 1.295-1.262 1.295-.695 0-1.263-.58-1.263-1.295 0-.712.568-1.287 1.262-1.287Z" />
      </g>
    </g>
    <defs>
      <linearGradient id="c" x1={1.836} x2={17.439} y1={0.207} y2={13.407} gradientUnits="userSpaceOnUse">
        <stop stopColor="#5A9FD4" />
        <stop offset={1} stopColor="#306998" />
      </linearGradient>
      <linearGradient id="d" x1={19.378} x2={13.76} y1={24.854} y2={17.039} gradientUnits="userSpaceOnUse">
        <stop stopColor="#FFD43B" />
        <stop offset={1} stopColor="#FFE873" />
      </linearGradient>
      <clipPath id="a">
        <path fill="#fff" d="M.89.207h30.272v30.27H.89z" />
      </clipPath>
      <clipPath id="b">
        <path fill="#fff" d="M1.836.207h28.379v29.8H1.835z" />
      </clipPath>
    </defs>
  </svg>;

export const CppIcon = props => <svg xmlns="http://www.w3.org/2000/svg" className="h-6 w-6" viewBox="0 0 31 31" width={31} height={31} fill="none" {...props}>
    <g clipPath="url(#a)">
      <path fill="#00599C" d="M27.994 22.981c.206-.356.333-.757.333-1.117V9.36c0-.36-.127-.76-.333-1.117l-12.764 7.37 12.764 7.368Z" />
      <path fill="#004482" d="m16.363 30.08 10.828-6.252c.312-.18.596-.49.801-.847l-12.764-7.369-12.763 7.37c.205.355.489.666.8.846l10.83 6.252c.623.36 1.644.36 2.268 0Z" />
      <path fill="#659AD2" d="M27.993 8.243c-.205-.356-.489-.667-.8-.847l-10.83-6.252c-.623-.36-1.644-.36-2.268 0L3.267 7.396c-.624.36-1.134 1.244-1.134 1.964v12.504c0 .36.127.761.333 1.117l12.764-7.369 12.763-7.369Z" />
      <path fill="#fff" d="M15.227 24.343c-4.814 0-8.73-3.916-8.73-8.73 0-4.815 3.916-8.732 8.73-8.732a8.762 8.762 0 0 1 7.561 4.363L19.01 13.43a4.384 4.384 0 0 0-3.783-2.184 4.37 4.37 0 0 0-4.365 4.366 4.37 4.37 0 0 0 4.365 4.366 4.384 4.384 0 0 0 3.783-2.184l3.779 2.186a8.763 8.763 0 0 1-7.562 4.363Z" />
      <path fill="#fff" d="M23.961 15.127h-.97v-.97h-.97v.97h-.97v.97h.97v.97h.97v-.97h.97v-.97ZM27.598 15.127h-.97v-.97h-.97v.97h-.97v.97h.97v.97h.97v-.97h.97v-.97Z" />
    </g>
    <defs>
      <clipPath id="a">
        <rect width={30.271} height={30.271} x={0.219} y={0.207} fill="#fff" rx={3.784} />
      </clipPath>
    </defs>
  </svg>;

export const RustIcon = props => <svg xmlns="http://www.w3.org/2000/svg" className="h-6 w-6" viewBox="0 0 46 46" width={46} height={46} fill="none" {...props}>
    <path fill="#E4E4E7" d="m44.98 22.453-1.87-1.158a26.12 26.12 0 0 0-.053-.545l1.607-1.5a.64.64 0 0 0-.213-1.074l-2.056-.769a23.292 23.292 0 0 0-.16-.53l1.282-1.782a.643.643 0 0 0-.418-1.013l-2.169-.352a16.396 16.396 0 0 0-.26-.487l.91-2a.641.641 0 0 0-.608-.91l-2.2.077c-.113-.142-.23-.283-.347-.421l.505-2.144a.642.642 0 0 0-.774-.774l-2.143.504c-.139-.117-.278-.232-.422-.348l.077-2.198a.64.64 0 0 0-.91-.609l-2 .911c-.161-.089-.324-.176-.487-.262l-.352-2.167a.644.644 0 0 0-1.012-.42l-1.783 1.282a19.93 19.93 0 0 0-.529-.16l-.769-2.056a.642.642 0 0 0-1.074-.214l-1.5 1.61c-.18-.02-.362-.039-.544-.053l-1.16-1.872a.644.644 0 0 0-1.094 0l-1.159 1.872c-.18.014-.363.033-.544.053l-1.5-1.609a.646.646 0 0 0-1.074.213l-.77 2.056c-.177.052-.354.106-.529.162l-1.782-1.283a.64.64 0 0 0-1.013.418l-.354 2.168c-.163.085-.324.173-.487.262l-1.998-.91a.64.64 0 0 0-.91.607l.076 2.2c-.142.115-.283.23-.422.349L7.846 7.07a.646.646 0 0 0-.776.774l.506 2.144c-.119.14-.234.278-.349.42l-2.199-.076a.644.644 0 0 0-.609.91l.911 2.001c-.087.16-.175.322-.26.488l-2.167.35a.645.645 0 0 0-.42 1.013l1.282 1.782c-.056.175-.109.352-.16.529l-2.056.77a.643.643 0 0 0-.213 1.074l1.608 1.5c-.02.181-.039.362-.054.545l-1.87 1.158a.644.644 0 0 0 0 1.095l1.87 1.158c.015.182.034.365.054.546l-1.608 1.5a.644.644 0 0 0 .213 1.074l2.056.769c.051.178.106.355.161.529l-1.283 1.783a.644.644 0 0 0 .42 1.01l2.167.353c.085.165.171.328.262.488l-.913 1.998a.643.643 0 0 0 .61.911l2.198-.076c.115.143.23.283.349.422l-.506 2.143a.64.64 0 0 0 .776.773l2.142-.504c.14.119.28.233.422.347l-.076 2.2a.641.641 0 0 0 .91.608l2-.91c.16.088.322.176.487.261l.352 2.166a.64.64 0 0 0 1.013.42l1.781-1.284c.176.056.353.112.53.162l.768 2.056a.641.641 0 0 0 1.074.213l1.502-1.609c.18.02.362.04.544.056l1.16 1.87a.645.645 0 0 0 1.094 0l1.157-1.872c.183-.015.365-.033.546-.054l1.5 1.609a.641.641 0 0 0 1.073-.213l.77-2.056c.177-.05.354-.106.53-.162l1.782 1.285a.645.645 0 0 0 1.012-.421l.353-2.167c.163-.084.325-.173.486-.26l2 .91a.64.64 0 0 0 .91-.609l-.077-2.2c.142-.112.283-.227.422-.346l2.143.505a.641.641 0 0 0 .774-.774l-.504-2.143c.117-.14.232-.279.347-.422l2.2.076a.64.64 0 0 0 .608-.91l-.911-2c.089-.16.175-.322.26-.487l2.167-.352a.64.64 0 0 0 .42-1.011l-1.282-1.783c.056-.176.11-.352.16-.53l2.056-.768a.642.642 0 0 0 .213-1.074l-1.608-1.5c.02-.181.037-.364.054-.546l1.87-1.158a.644.644 0 0 0 0-1.095ZM32.459 37.975a1.326 1.326 0 0 1 .555-2.592 1.326 1.326 0 0 1-.555 2.592Zm-.637-4.3a1.205 1.205 0 0 0-1.432.928l-.664 3.1A16.226 16.226 0 0 1 23 39.154c-2.451 0-4.777-.544-6.865-1.515l-.665-3.099a1.206 1.206 0 0 0-1.431-.929l-2.737.588a16.277 16.277 0 0 1-1.416-1.667h13.317c.15 0 .251-.028.251-.165v-4.71c0-.138-.1-.165-.25-.165h-3.895v-2.987h4.212c.384 0 2.056.11 2.59 2.246.168.657.535 2.794.786 3.478.251.768 1.27 2.301 2.357 2.301h6.635c.081 0 .162-.008.241-.023-.46.625-.965 1.217-1.508 1.769l-2.8-.6h-.001ZM13.403 37.91a1.326 1.326 0 0 1-.555-2.592 1.325 1.325 0 0 1 1.39 2.018 1.327 1.327 0 0 1-.836.575l.001-.001ZM8.351 17.425A1.323 1.323 0 1 1 5.933 18.5a1.323 1.323 0 0 1 2.418-1.074Zm-1.553 3.682 2.852-1.268a1.21 1.21 0 0 0 .612-1.595l-.586-1.327h2.31v10.41h-4.66a16.315 16.315 0 0 1-.528-6.22Zm12.512-1.012v-3.068h5.5c.284 0 2.005.329 2.005 1.616 0 1.068-1.32 1.452-2.407 1.452H19.31Zm19.986 2.762c0 .407-.015.81-.046 1.21H37.58c-.167 0-.234.11-.234.274v.767c0 1.808-1.02 2.201-1.912 2.301-.85.095-1.794-.356-1.91-.877-.501-2.82-1.337-3.424-2.658-4.466 1.639-1.039 3.343-2.574 3.343-4.628 0-2.219-1.52-3.616-2.557-4.301-1.454-.959-3.064-1.15-3.499-1.15h-17.29a16.274 16.274 0 0 1 9.116-5.146l2.037 2.138a1.205 1.205 0 0 0 1.707.04l2.281-2.182a16.311 16.311 0 0 1 11.155 7.945l-1.561 3.526a1.21 1.21 0 0 0 .613 1.595l3.007 1.335c.052.533.08 1.072.08 1.62ZM22.016 5.022a1.324 1.324 0 1 1 1.828 1.918 1.32 1.32 0 0 1-1.87-.045 1.327 1.327 0 0 1 .043-1.873ZM37.51 17.49a1.324 1.324 0 1 1 2.42 1.076 1.324 1.324 0 0 1-2.42-1.076Z" />
  </svg>;

<Columns cols={2}>
  <Card horizontal title="Rust" href="/benchmarks/rust" icon={<RustIcon />} />

  <Card horizontal title="C++" href="/benchmarks/cpp" icon={<CppIcon />} />

  <Card horizontal title="Python" href="/benchmarks/python" icon={<PythonIcon />} />

  <Card horizontal title="Node.js" href="/benchmarks/nodejs" icon={<NodeJSIcon />} />

  <Card horizontal title="Go" href="/benchmarks/go" icon={<GolangIcon />} />

  <Card horizontal title="Java" href="/benchmarks/java" icon={<JavaIcon />} />
</Columns>

<Tip>
  If you're calling foreign code, simply pick the root language calling the
  foreign functions.
</Tip>
