Title: Downloads


<h1>Apache Wink Downloads</h1>

<hr>

<div class="row">
    <div class="span10">
       <p>Apache Wink is distributed in several formats for your convenience.</p>
       <p>You will be prompted for a mirror - if the file is not found on yours, please be patient, as it may take 24 hours to reach all mirrors.</p>
       <p>Apache Wink is distributed under the <a href="http://maven.apache.org/license.html">Apache License, version 2.0</a>.</p>
    </div>
</div>

<hr>

<h2>Download Apache Wink 1.3.0</h2>


<div class="row">
    <div class="span10">
    	<table class="table table-hover">
    	<tr>
    	  <th><b>Name</b></th><th><b>Archive</b></th><th><b>MD5</b></th><th><b>SHA-1</b></th><th><b>Signature</b></th>
    	</tr>

    	<tr>
    		<td>Wink-1.3.0 (tar.gz)</td><td><a href="http://www.apache.org/dyn/closer.cgi/wink/1.3.0/apache-wink-1.3.0.tar.gz">tar.gz</a></td><td><a href="http://www.apache.org/dist/wink/1.3.0/apache-wink-1.3.0.tar.gz.md5">MD5</a> </td><td>  <a href="http://www.apache.org/dist/wink/1.3.0/apache-wink-1.3.0.tar.gz.sha1">SHA-1</a>  </td><td> <a href="http://www.apache.org/dist/wink/1.3.0/apache-wink-1.3.0.tar.gz.asc">ASC</a> </td>
    	</tr>

    	<tr>
    		<td> Wink-1.3.0 (zip) </td><td> <a href="http://www.apache.org/dyn/closer.cgi/wink/1.3.0/apache-wink-1.3.0.zip">zip</a> </td><td>  <a href="http://www.apache.org/dist/wink/1.3.0/apache-wink-1.3.0.zip.md5">MD5</a> </td><td>  <a href="http://www.apache.org/dist/wink/1.3.0/apache-wink-1.3.0.zip.sha1">SHA-1</a> </td><td> <a href="http://www.apache.org/dist/wink/1.3.0/apache-wink-1.3.0.zip.asc">ASC</a> </td>
    	</tr>

    	<tr>
    		<td> Wink-1.3.0 (Source tar.gz) </td><td> <a href="http://www.apache.org/dyn/closer.cgi/wink/1.3.0/apache-wink-1.3.0-src.tar.gz">tar.gz</a> </td><td>  <a href="http://www.apache.org/dist/wink/1.3.0/apache-wink-1.3.0-src.tar.gz.md5">MD5</a>  </td><td> <a href="http://www.apache.org/dist/wink/1.3.0/apache-wink-1.3.0-src.tar.gz.sha1">SHA-1</a> </td><td> <a href="http://www.apache.org/dist/wink/1.3.0/apache-wink-1.3.0-src.tar.gz.asc">ASC</a> </td>
    	</tr>

    	<tr>
    		<td> Wink-1.3.0 (Source zip) </td><td> <a href="http://www.apache.org/dyn/closer.cgi/wink/1.3.0/apache-wink-1.3.0-src.zip">zip</a> </td><td>  <a href="http://www.apache.org/dist/wink/1.3.0/apache-wink-1.3.0-src.zip.md5">MD5</a> </td><td>  <a href="http://www.apache.org/dist/wink/1.3.0/apache-wink-1.3.0-src.zip.sha1">SHA-1</a> </td><td> <a href="http://www.apache.org/dist/wink/1.3.0/apache-wink-1.3.0-src.zip.asc">ASC</a> </td>
    	</tr>

    	<tr>
    		<td> Release Notes </td><td> <a href="1.3.0/release_notes.html">1.3.0</a> </td><td> </td><td> </td><td> </td></tr><tr class="a"><td> KEYS </td><td> <a href="http://svn.apache.org/repos/asf/wink/tags/wink-1.3.0/KEYS">KEYS</a> </td><td> </td><td> </td><td> </td>
    	</tr>
    	</table>

		<p>Instructions for checking hashes and signatures is indicated on the <a href="http://www.apache.org/info/verification.html">Verifying Apache Software Foundation Releases</a> page.</p>
		<p>You can also retrieve the source files from our svn repository by typing :</p>

		<pre>svn co http://svn.apache.org/repos/asf/wink/tags/wink-1.3.0/</pre>

		<p>Instructions for checking hashes and signatures is indicated on the <a href="http://www.apache.org/info/verification.html">Verifying Apache Software Foundation Releases</a> page.</p>

		<p>You can also retrieve the source files from our svn repository by typing :</p>

		<pre>svn co http://svn.apache.org/repos/asf/wink/tags/wink-1.3.0/</pre>

        <h4> Using Maven </h4>

        <p>We strongly encourage our users to configure a Maven repository mirror closer to their location, please read <a href="http://maven.apache.org/guides/mini/guide-mirror-settings.html">How to Use Mirrors for Repositories</a>.

        <strong>Dependencies</strong>

        <p>Add the following dependencies to your Maven pom.xml to include the Apache Wink Client module or the Server module.</p>

        <strong>Server:</strong>
        <pre>&lt;dependency&gt;
    &lt;groupId&gt;org.apache.wink&lt;/groupId&gt;
    &lt;artifactId&gt;wink-server&lt;/artifactId&gt;
    &lt;version&gt;1.3.0&lt;/version&gt;
&lt;/dependency&gt;</pre>

        <strong>Client:</strong>
        <pre>&lt;dependency&gt;
    &lt;groupId&gt;org.apache.wink&lt;/groupId&gt;
    &lt;artifactId&gt;wink-client&lt;/artifactId&gt;
    &lt;version&gt;1.3.0&lt;/version&gt;
&lt;/dependency&gt;</pre>
    </div>
</div>


<h2>Previous Releases</h2>

<div class="row">
    <div class="span10">
        All previous releases of Apache Wink can be found in the <a href="http://archive.apache.org/dist/wink/">archives</a>.
    </div>
</div>