<!DOCTYPE html>

<html lang="en">
<head>
    <title>Apache MINA - Special Thanks &mdash; Apache MINA</title>

    <link href="/assets/css/common.css" rel="stylesheet" type="text/css"/>
    <link href="/assets/css/mina.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<script src="https://www.apachecon.com/event-images/snippet.js"></script>
<div id="container">
    <div id="header">
    <div id="subProjectsNavBar">
        <a href="/">
            
                <strong>Apache MINA Project</strong>
            
        </a>
        &nbsp;|&nbsp;
        <a href="/mina-project/">
            
                MINA
            
        </a>
        &nbsp;|&nbsp;
        <a href="/asyncweb-project/">
            
                AsyncWeb
            
        </a>
        &nbsp;|&nbsp;
        <a href="/ftpserver-project/">
            
                FtpServer
            
        </a>
        &nbsp;|&nbsp;
        <a href="/sshd-project/">
            
                SSHD
            
        </a>
        &nbsp;|&nbsp;
        <a href="/vysper-project/">
            
                Vysper
            
        </a>
    </div>
</div>


    <div id="content">
        <div id="leftColumn">
            <div id="navigation">
                <a class="acevent" data-format="wide" data-width="170"></a>
                <h5>Social Networks</h5>
                <ul>
                    <li><a href="https://fosstodon.org/@apachemina">Apache MINA Mastodon</a></li>
                </ul>
                <h5>Latest Downloads</h5>
                <ul>
                    <li><a href="/downloads-mina_2_0.html">Mina 2.0.25</a></li>
                    <li><a href="/downloads-mina_2_1.html">Mina 2.1.8</a></li>
                    <li><a href="/downloads-mina_2_2.html">Mina 2.2.3</a></li>
                    <li><a href="/downloads-ftpserver_1_1.html">FtpServer 1.1.4</a></li>
                    <li><a href="/downloads-ftpserver_1_2.html">FtpServer 1.2.0</a></li>
                    <li><a href="/downloads-sshd.html">SSHD 2.12.1</a></li>
                    <li><a href="/downloads-vysper.html">Vysper 0.7</a></li>
                </ul>
                <h5>Projects</h5>
                <ul>
                    <li><a href="/mina-project/index.html">MINA</a></li>
                    <li><a href="/asyncweb-project/index.html">AsyncWeb</a></li>
                    <li><a href="/ftpserver-project/index.html">FtpServer</a></li>
                    <li><a href="/sshd-project/index.html">SSHD</a></li>
                    <li><a href="/vysper-project/index.html">Vysper</a></li>
                </ul>

                <h5>Community</h5>
                <ul>
                    <li><a href="/contributors.html" class="external-link" rel="nofollow">Team</a></li>
                    <li><a href="https://www.apache.org/licenses/" class="external-link" rel="nofollow">License</a></li>
                    <li><a href="https://www.apache.org/foundation/contributing.html" class="external-link" rel="nofollow">Contributing</a></li>
                    <li><a href="https://www.apache.org/" title="Apache Software Foundation" class="external-link" rel="nofollow">ASF main site</a></li>
                    <li><a href="https://www.apache.org/foundation/thanks.html" class="external-link" rel="nofollow">Thanks</a></li>
                    <li><a href="https://www.apache.org/foundation/sponsorship.html" title="The ASF sponsorship program" class="external-link" rel="nofollow">Sponsorship program</a></li>
                    <li><a href="https://www.apache.org/security/" class="external-link" rel="nofollow">Security</a></li>
                </ul>

                <h3><a name="Navigation-Upcoming"></a>Upcoming</h3>
            </div>
        </div>
        <div id="rightColumn">
            

            
	<h1 id="special-thanks">Special Thanks</h1>
<h2 id="general-apache-sponsors">General Apache sponsors</h2>
<p>Without those sponsors, the ASF would simply not exist or sustain its activities :</p>
<ul>
<li><a href="https://www.apache.org/foundation/thanks.html">https://www.apache.org/foundation/thanks.html</a></li>
</ul>
<p>For those who want to know more about the Apache Sponsorship Program, please check :</p>
<ul>
<li><a href="https://www.apache.org/foundation/sponsorship.html">https://www.apache.org/foundation/sponsorship.html</a></li>
</ul>
<p>Thanks !</p>
<h2 id="organizations-who-helped-our-project-">Organizations who helped our project &hellip;</h2>
<p>We would also like to thank the organizations who provided some tools and images for free :</p>
<table>
<thead>
<tr>
<th>Company/Organization</th>
<th>Donation type</th>
<th>Organization contact</th>
<th>Apache contact</th>
</tr>
</thead>
<tbody>
<tr>
<td><img src="assets/img/YourKit_logo.png" alt="http://www.yourkit.com/"></td>
<td>Licenses for YourKit</td>
<td>Vladimir Kondratyev <br> (sales at yourkit.com)</td>
<td>Emmanuel L&eacute;charny</td>
</tr>
<tr>
<td><img src="assets/img/FAMFAMFAM_logo.png" alt="http://www.famfamfam.com/lab/icons/silk/"></td>
<td><a href="http://creativecommons.org/licenses/by/2.5/">http://creativecommons.org/licenses/by/2.5/</a></td>
<td>Mark James</td>
<td>Emmanuel L&eacute;charny</td>
</tr>
</tbody>
</table>


            

        </div>
        <div id="endContent"></div>
    </div>

    <div id="footer">
    &copy; 2003-2024, <a href="https://www.apache.org">The Apache Software Foundation</a> - <a href="https://privacy.apache.org/policies/privacy-policy-public.html">Privacy Policy</a><br />
    Apache MINA, MINA, Apache Vysper, Vysper, Apache SSHd, SSHd, Apache FtpServer, FtpServer, Apache AsyncWeb, AsyncWeb,
    Apache, the Apache feather logo, and the Apache Mina project logos are trademarks of The Apache Software Foundation.
</div>

</div>

</body>

</html>
