<?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 trunk</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="source-repository.html">subversion repository</a> can be
<a href="http://svn.apache.org/viewvc/commons/proper/codec/trunk/">browsed</a>.
</p>
</section>
<!-- ================================================== -->
<section name="Releases">
<ul>
  <li><a href="http://commons.apache.org/codec/download_codec.cgi">Codec 1.12 (mirrors)</a> requires Java 1.7</li>
  <li><a href="http://archive.apache.org/dist/commons/codec/">Codec 1.11 (archives)</a> requires Java 1.6</li>
  <li><a href="http://archive.apache.org/dist/commons/codec/">Codec 1.10 (archives)</a> requires Java 1.6</li>
  <li><a href="http://archive.apache.org/dist/commons/codec/">Codec 1.9 (archives)</a> requires Java 1.6</li>
  <li><a href="http://archive.apache.org/dist/commons/codec/">Codec 1.8 (archives)</a> requires Java 1.6</li>
  <li><a href="http://archive.apache.org/dist/commons/codec/">Codec 1.7 (archives)</a> requires Java 1.6</li>
  <li><a href="http://archive.apache.org/dist/commons/codec/">Codec 1.6 (archives)</a> requires Java 1.5</li>
  <li><a href="http://archive.apache.org/dist/commons/codec/">Codec 1.5 (archives)</a> requires Java 1.4</li>
  <li><a href="http://archive.apache.org/dist/commons/codec/">Codec 1.4 (archives)</a> requires Java 1.4</li>
</ul>
<p>
See the
<a href="http://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="http://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>
