<?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>Companies using Apache Traffic Server</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">
          <h1 id='companies-using-apache-traffic-server'>Companies using Apache Traffic Server<a href='#companies-using-apache-traffic-server' title='Permanent link to this' class='headerlink'>&para;</a></h1>
<p>Apache Traffic Server is used world-wide by companies of many sizes, ranging from the 
small entrepreneurial starter companies to the large Internet conglomerates like Yahoo, 
Comcast and Akamai. Companies that use Apache Traffic Server include:</p>
<p>
<a rel="nofollow" href="http://www.comcast.com"><img alt="Comcast" src="/images/companies/comcast.png" title=""/></a>
<a rel="nofollow" href="http://www.yahoo.com"><img alt="Yahoo!" src="/images/companies/yahoo.png" title=""/></a>
<a rel="nofollow" href="http://www.linkedin.com/"><img alt="LinkedIn" src="/images/companies/linkedin.png" title=""/></a>
<a rel="nofollow" href="http://www.godaddy.com/"><img alt="Go Daddy" src="/images/companies/godaddy.png" title=""/></a>
<a rel="nofollow" href="http://www.yahoo.co.jp/"><img alt="Yahoo! Japan" src="/images/companies/yahoo_japan.png" title=""/></a>
</p>

<p>
<a rel="nofollow" href="http://www.akamai.com/"><img alt="Akamai" src="/images/companies/akamai.png" title=""/></a>
<a rel="nofollow" href="http://www.upyun.com/"><img alt="Upyun" src="/images/companies/upyunLogo.png" title=""/></a>
<a rel="nofollow" href="http://www.verycloud.cn/"><img alt="Verycloud! China" src="/images/companies/verycloud_logo.png" title=""/></a>
<a rel="nofollow" href="http://www.websense.com/"><img alt="Websense" src="/images/companies/websense.png" title=""/></a>
<a rel="nofollow" href="http://www.azion.com"><img alt="Azion Technologies" src="/images/companies/azion.png" title=""/></a>
</p>

<p>
<a rel="nofollow" href="http://www.4399.com/"><img alt="4399" src="/images/companies/4399_logo.gif" title=""/></a>
<a rel="nofollow" href="http://owmobility.com/"><img alt="Openwave Mobility" src="/images/companies/owmobility.png" title=""/></a>
<a rel="nofollow" href="https://torchbox.com/"><img alt="Torchbox" src="/images/companies/torchbox.png" title=""/></a>
<a rel="nofollow" href="http://www.iispeed.com/"><img alt="IISpeed" src="/images/companies/iispeed.png" title=""/></a>
<a rel="nofollow" href="http://www.omniti.com/"><img alt="OmniTI" src="/images/companies/omniti.png" title=""/></a>
</p>

<p>
<a rel="nofollow" href="http://www.betfair.com/"><img alt="Betfair" src="/images/companies/betfair.png" title=""/></a>
<a rel="nofollow" href="http://www.ip-only.com/link=ats"><img alt="IP Only" src="/images/companies/iponly.png" title=""/></a>
<a rel="nofollow" href="http://www.thelounge.net/"><img alt="The Lounge" src="/images/companies/tthelounge.png" title=""/></a>
<a rel="nofollow" href="http://www.internode.on.net/"><img alt="Internode" src="/images/companies/internode.png" title=""/></a>
<a rel="nofollow" href="http://www.sic-software.com/"><img alt="SiC Software" src="/images/companies/sic.png" title=""/></a>
</p>

<p>
<a rel="nofollow" href="http://www.devaus.net/"><img alt="Devaus" src="/images/companies/devaus.png" title=""/></a>
<a rel="nofollow" href="http://www.powerhttp.com/"><img alt="PowerHTTP" src="/images/companies/powerhttp.png" title=""/></a>
<a rel="nofollow" href="http://vng.com.vn/"><img alt="VNG" src="/images/companies/vng.png" title=""/></a>
<a rel="nofollow" href="http://www.tilauslentopalvelu.fi/"><img alt="Suomen Tilauslentopalvelu" src="/images/companies/suomen.png" title=""/></a>
<a rel="nofollow" href="http://www.guruve.com/"><img alt="Guruve" src="/images/companies/guruve.png" title=""/></a>
</p>

<p>
<a rel="nofollow" href="http://equalit.ie/"><img alt="eQualit.ie" src="/images/companies/equalit.ie.png" title=""/></a>
<a rel="nofollow" href="http://frisch-inspiriert.de/"><img alt="Frisch Inspiriert" src="/images/companies/frisch.png" title=""/></a>
<a rel="nofollow" href="http://www.brainswear.at/"><img alt="Brainswear" src="/images/companies/brainswear.png" title=""/></a>
<a rel="nofollow" href="http://www.eehu.com/"><img alt="eehu.com" src="/images/companies/eehu.png" title=""/></a>
<a rel="nofollow" href="http://www.titanbet.co.uk"><img alt="titanbet.co.uk" src="/images/companies/titanbet.png" title=""/></a>
</p>

<p>Please contact private@trafficserver.apache.org to be added.</p>
        </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>
