<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="https://www.w3.org/1999/xhtml"
  xml:lang="en" lang="en">
  <head>
    <title>Apache Traffic Server Downloads</title>
    <!-- Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements.  See the NOTICE file distributed with this work for additional information regarding copyright ownership.  The ASF licenses this file to you under the Apache License, Version 2.0 (the &quot;License&quot;); you may not use this file except in compliance with the License.  You may obtain a copy of the License at . https://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an &quot;AS IS&quot; BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  See the License for the specific language governing permissions and limitations under the License. -->
    
    <!-- The 1140px Grid - https://cssgrid.net/ -->
    <!-- page_base =  -->
    <link rel="stylesheet" type="text/css" href="styles/1140.css" media="screen" />
    <link rel="stylesheet" type="text/css" href="styles/pygments_style.css" />
    <link rel="stylesheet" type="text/css" href="styles/styles.css" />
    <link rel="stylesheet" type="text/css" href="https://fonts.googleapis.com/css?family=Droid+Serif:regular,italic,bold" />
    <style type="text/css">
        .headerlink, .elementid-permalink {
            visibility: hidden;
          }
    </style>
    <!--css3-mediaqueries-js - https://code.google.com/p/css3-mediaqueries-js/ - Enables media queries in some unsupported browsers-->
    <script type="text/javascript" src="js/css3-mediaqueries.js"></script>
  </head>

  <body class="container">
    <!-- Header -->
    <div class="row" id="header">
      <div class="fourcol">
        <a href="/"><img class="logo" alt="Apache Traffic Server" src="/images/press/ts_logo_tm_380x73.png" /></a>
      </div>
      <div class="threecol">
        <a href="https://www.apache.org/"><img alt="The Apache Software Foundation" src="https://www.apache.org/images/feather-small.png" /></a>
      </div>
      <div class="fivecol right last" id="searchbox">
        
        <div id="header-sub">Apache Traffic Server Downloads </div>
      </div>
    </div>

    <!-- Navigation (next, previous, up, languages) -->
    <div class="row nav">
      
      <div class="ninecol">
        <a href="https://trafficserver.apache.org/">Home</a>
        <a href="/downloads">Downloads</a>
        <a href="https://docs.trafficserver.apache.org/en/latest/index.html">Documentation</a>
        <a href="https://cwiki.apache.org/confluence/display/TS/Apache+Traffic+Server">Wiki</a>
        <a href="https://github.com/apache/trafficserver/issues">Issues</a>
        <a href="/users.html">Customers</a>
        <a href="/acknowledgements.html">Acknowledgements</a>
        <a href="/press.html">Press kit</a>
        <a href="/assistance.html">Assistance</a>
      </div>
      <div class="threecol last right">
        <a href="https://apache.org/security/">Security</a>
        <a href="https://www.apache.org/foundation/sponsorship.html">Donate</a>
        <a href="https://www.apache.org/foundation/thanks.html">Thanks</a>
      </div>
      
    </div>

    <div class="row content">
      <div class="twelvecol">
        <div id="content">
          <p>The latest stable release of Apache Traffic Server is v9.2.0, released on 2023-01-23.
In addition, we continue to support the v8.1.x LTS release train, currently v8.1.6,
which was released on 2022-12-15. We follow the <a href="http://semver.org">Semantic Versioning</a>
scheme. The goal is to release patch releases frequently, and minor releases as needed.
Within the major versions, all such patch and minor releases are all compatible.</p>
<p>When downloading from a mirror, please be sure to <a href="https://www.apache.org/info/verification.html">verify the hash and OpenPGP
compatible signature</a>.  To validate
the PGP signatures the <a href="https://www.apache.org/dist/trafficserver/KEYS">public keys from the release manager</a>
will be needed.  You can also
<a href="https://archive.apache.org/dist/trafficserver/">browse through all releases</a>
and hash signatures.</p>
<h1 id='current-v9x-release-920-920'>Current v9.x Release -- 9.2.0 <a href='#current-v9x-release-920-920' title='Permanent link to this' class='headerlink'>&para;</a></h1>
<p>Apache Traffic Server v9.2.0 was released on January 23rd, 2023.
 [<a href="https://www.apache.org/dist/trafficserver/trafficserver-9.2.0.tar.bz2.asc"><code>PGP</code></a>]
 [<a href="https://www.apache.org/dist/trafficserver/trafficserver-9.2.0.tar.bz2.sha512"><code>SHA512</code></a>]</p>
<p><a href="https://www.apache.org/dyn/closer.cgi/trafficserver/trafficserver-9.2.0.tar.bz2"
 class="download_ts">Traffic Server 9.2.0</a></p>
<p>v9.2.0 is our latest stable release. Additional details for this release are in the
<a href="https://raw.githubusercontent.com/apache/trafficserver/9.2.x/CHANGELOG-9.2.0">CHANGELOG</a>
and the the related <a href="https://github.com/apache/trafficserver/pulls?q=is:closed+is:pr+milestone:9.2.0">Github Issues and PRs</a>.</p>
<p>For details on the v9.x release, please see
<a href="https://docs.trafficserver.apache.org/en/9.2.x/release-notes/whats-new.en.html">9.2.x
  News</a> (there's a section specific to v9.2.x as well). There are also
details about <a href="https://docs.trafficserver.apache.org/en/9.2.x/release-notes/upgrading.en.html">upgrading to 9.x</a>.</p>
<h1 id='current-v8x-release-816-816'>Current v8.x Release -- 8.1.6 <a href='#current-v8x-release-816-816' title='Permanent link to this' class='headerlink'>&para;</a></h1>
<p>Apache Traffic Server v8.1.6 was released on December 15th, 2022.
 [<a href="https://www.apache.org/dist/trafficserver/trafficserver-8.1.6.tar.bz2.asc"><code>PGP</code></a>]
 [<a href="https://www.apache.org/dist/trafficserver/trafficserver-8.1.6.tar.bz2.sha512"><code>SHA512</code></a>]</p>
<p><a href="https://www.apache.org/dyn/closer.cgi/trafficserver/trafficserver-8.1.6.tar.bz2"
 class="download_ts">Traffic Server 8.1.6</a></p>
<p>v8.1.6 is our latest stable release for the 8.x release. Additional details for this release are in the
<a href="https://raw.githubusercontent.com/apache/trafficserver/8.1.x/CHANGELOG-8.1.6">CHANGELOG</a>
and the the related <a href="https://github.com/apache/trafficserver/pulls?q=is:closed+is:pr+milestone:8.1.6">Github Issues and PRs</a>.</p>
<h1 id='archived-releases'>Archived Releases<a href='#archived-releases' title='Permanent link to this' class='headerlink'>&para;</a></h1>
<h2 id='apache-traffic-server-archive'><a href="https://archive.apache.org/dist/trafficserver/">Apache Traffic Server Archive</a><a href='#apache-traffic-server-archive' title='Permanent link to this' class='headerlink'>&para;</a></h2>
<!-- test -->
        </div>
      </div>
      <div class="fourcol last">
        
        
      </div>
    </div>

    <div id="footer" class="row">
    <div class="tencol">
      Copyright  &copy; 2019
      <a href="https://www.apache.org/">The Apache Software Foundation</a>.
      Licensed under
      the <a href="https://www.apache.org/licenses/">Apache License</a>,
      Version 2.0. Apache Traffic Server, Apache,
      the Apache Traffic Server logo, and the Apache feather logo are
      trademarks of The Apache Software Foundation.
      </div>
      <div class="twocol right last">
      <span id="apache_logo">
        <a href="https://www.apache.org/"><img alt="The Apache Software Foundation" src="https://www.apache.org/images/feather-small.png" /></a>
      </span>
      </div>
    </div>

  </body>
</html>
