<?xml version="1.0"?>
<!--
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 "License"); you may not use this file except in compliance with
the License.  You may obtain a copy of the License at

     http://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 "AS IS" 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.
-->
<document>
 <properties>
  <title>Home</title>
  <author email="dev@commons.apache.org">Commons Documentation Team</author>
 </properties>
<body>
<!-- ================================================== -->
<section name="Apache Commons Codec">
<p>
Apache Commons Codec (TM) software provides implementations of common encoders and decoders
such as Base64, Hex, Phonetic and URLs.
<!--ul>
<li>Base64</li>
<li>Hex</li>
<li>Phonetic</li>
<li>URL</li>
</ul-->
</p>
</section>
<!-- ================================================== -->
<section name="Impetus">
<p>
Codec was formed as an attempt to focus development effort on one
definitive implementation of the Base64 encoder.  At the time of
Codec's proposal, there were approximately 34 different Java
classes that dealt with Base64 encoding spread over the
Foundation's CVS repository.  Developers in the Jakarta Tomcat
project had implemented an original version of the Base64 codec
which had been copied by the Commons HttpClient and Apache XML
project's XML-RPC subproject.  After almost one year, the two
forked versions of Base64 had significantly diverged from one
another.  XML-RPC had applied numerous fixes and patches which
were not applied to the Commons HttpClient Base64.  Different
subprojects had differing implementations at various levels
of compliance with the <a href="http://www.ietf.org/rfc/rfc2045.txt">
RFC 2045</a>.
</p>
<p>
Out of that confusing duplication of effort sprang this simple
attempt to encourage code reuse among various projects.  While
this package contains a abstract framework for the creation of
encoders and decoders, Codec itself is primarily focused on
providing functional utilities for working with common encodings.
</p>
</section>
<!-- ================================================== -->
<section name="Documentation">
<p>
An overview of the functionality is provided in the
<a href="userguide.html">user guide</a>.
Various <a href="project-reports.html">project reports</a> are also available.
</p>
<p>
The Javadoc API documents are available online:
</p>
<ul>
  <li><a href="apidocs/index.html">Javadoc current (git master)</a></li>
  <li><a href="archives/1.13/apidocs/index.html">Javadoc 1.14</a></li>
  <li><a href="archives/1.13/apidocs/index.html">Javadoc 1.13</a></li>
  <li><a href="archives/1.12/apidocs/index.html">Javadoc 1.12</a></li>
  <li><a href="archives/1.11/apidocs/index.html">Javadoc 1.11</a></li>
  <li><a href="archives/1.10/apidocs/index.html">Javadoc 1.10</a></li>
  <li><a href="archives/1.9/apidocs/index.html">Javadoc 1.9</a></li>
  <li><a href="archives/1.8/apidocs/index.html">Javadoc 1.8</a></li>
  <li><a href="archives/1.7/apidocs/index.html">Javadoc 1.7</a></li>
</ul>
<p>
The <a href="scm.html">subversion repository</a> can be
<a href="https://gitbox.apache.org/repos/asf?p=commons-codec.git">browsed</a>.
</p>
</section>
<!-- ================================================== -->
<section name="Releases">
<ul>
  <li><a href="https://commons.apache.org/codec/download_codec.cgi">Codec 1.14 (mirrors)</a> requires Java 7</li>
  <li><a href="https://archive.apache.org/dist/commons/codec/">Codec 1.13 (archives)</a> requires Java 7</li>
  <li><a href="https://archive.apache.org/dist/commons/codec/">Codec 1.12 (archives)</a> requires Java 7</li>
  <li><a href="https://archive.apache.org/dist/commons/codec/">Codec 1.11 (archives)</a> requires Java 6</li>
  <li><a href="https://archive.apache.org/dist/commons/codec/">Codec 1.10 (archives)</a> requires Java 6</li>
  <li><a href="https://archive.apache.org/dist/commons/codec/">Codec 1.9 (archives)</a> requires Java 6</li>
  <li><a href="https://archive.apache.org/dist/commons/codec/">Codec 1.8 (archives)</a> requires Java 6</li>
  <li><a href="https://archive.apache.org/dist/commons/codec/">Codec 1.7 (archives)</a> requires Java 6</li>
  <li><a href="https://archive.apache.org/dist/commons/codec/">Codec 1.6 (archives)</a> requires Java 5</li>
  <li><a href="https://archive.apache.org/dist/commons/codec/">Codec 1.5 (archives)</a> requires Java 1.4</li>
</ul>
<p>
See the
<a href="https://commons.apache.org/codec/download_codec.cgi">Download Page</a>
for the latest releases.<br />
</p>
<p>
<a href="changes-report.html">Change reports</a> are also available.
</p>
<p>
For previous releases, see the <a href="https://archive.apache.org/dist/commons/codec/">Apache Archive</a>
</p>
</section>
<!-- ================================================== -->
<section name="Support">
<p>
The <a href="mail-lists.html">commons mailing lists</a> act as the main support forum.
The user list is suitable for most library usage queries.
The dev list is intended for the development discussion.
Please remember that the lists are shared between all commons components,
so prefix your email by [codec].
</p>
<p>
Issues may be reported via <a href="issue-tracking.html">ASF JIRA</a>.
</p>
</section>
<!-- ================================================== -->
 </body>
</document>
