blob: 6dc3bf23cf594b28e61d720620d2a42cdfa50f07 [file] [log] [blame]
<?xml version="1.0"?>
<!--
Copyright 2002-2005 The Apache Software Foundation.
Licensed 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>Commons Codec</title>
<author email="tobrien@apache.org">Tim O'Brien</author>
</properties>
<body>
<section name="Commons Codec">
<p>
Welcome. Commons Codec provides implementations of common
encoders and decoders such as Base64, Hex, various phonetic
encodings, and URLs.
</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="Releases">
<ul>
<li>Version 1.3 - 10 July 2004 (latest, from mirror)
<a href="http://jakarta.apache.org/site/binindex.cgi">binary</a> and
<a href="http://jakarta.apache.org/site/sourceindex.cgi">source</a>
</li>
<li>
Version <a href="http://www.apache.org/dist/jakarta/commons/codec/">1.2</a> - 24 Nov 2003
</li>
<li>
Version <a href="http://www.apache.org/dist/jakarta/commons/codec/">1.1</a> - 29 April 2003
</li>
<li>
Current <a href="http://cvs.apache.org/builds/jakarta-commons/nightly/commons-codec/"> nightly build</a>
</li>
<li>
All <a href="changes-report.html">Release Notes</a>
</li>
</ul>
</section>
<section name="Components">
<p>
Codec is currently comprised of a modest set of utilities and a
simple framework for encoding and decoding both textual and binary data.
</p>
<subsection name="Binary Encoders">
<table>
<tr>
<td width="150">
<a href="apidocs/org/apache/commons/codec/binary/Base64.html">
Base64</a>
</td>
<td>
Provides Base64 content-transfer-encoding as defined in
<a href="http://www.ietf.org/rfc/rfc2045.txt">RFC 2045</a>. This
encoder can optionally create 76 character chunked output
for strict adherence to RFC 2045.
</td>
</tr>
<tr>
<td>
<a href="apidocs/org/apache/commons/codec/binary/Hex.html">
Hex</a>
</td>
<td>
Converts an array of bytes into an array of characters representing the
hexadecimal values of each byte in order
</td>
</tr>
<tr>
<td width="150">
<a href="apidocs/org/apache/commons/codec/binary/BinaryCodec.html">
BinaryCodec</a>
</td>
<td>
Translates between byte arrays and strings of "0"s and "1"s.
</td>
</tr>
</table>
</subsection>
<subsection name="Language Encoders">
<table>
<tr>
<td width="150">
<a href="apidocs/org/apache/commons/codec/language/Soundex.html">
Soundex</a>
</td>
<td>
Implementation of the Soundex algorithm.
</td>
</tr>
<tr>
<td>
<a href="apidocs/org/apache/commons/codec/language/Metaphone.html">
Metaphone</a>
</td>
<td>
Implementation of the Metaphone algorithm.
</td>
</tr>
<tr>
<td>
<a href="apidocs/org/apache/commons/codec/language/RefinedSoundex.html">
Refined Soundex</a>
</td>
<td>
Alternative implementation of the Soundex algorithm.
</td>
</tr>
<tr>
<td>
<a href="apidocs/org/apache/commons/codec/language/DoubleMetaphone.html">
Double Metaphone</a>
</td>
<td>
Alternative implementation of the Metaphone algorithm.
</td>
</tr>
</table>
</subsection>
<subsection name="Digest Encoders">
<table>
<tr>
<td width="150">
<a href="apidocs/org/apache/commons/codec/digest/DigestUtils.html">
DigestUtils</a>
</td>
<td>
Provides simple static methods for creating a SHA or MD5 digest.
</td>
</tr>
</table>
</subsection>
<subsection name="Network Encoders">
<table>
<tr>
<td width="150">
<a href="apidocs/org/apache/commons/codec/net/URLCodec.html">
URLCodec</a>
</td>
<td>
Implements the <code>www-form-urlencoded</code> encoding scheme, also misleadingly known as URL encoding.
</td>
</tr>
<tr>
<td width="150">
<a href="apidocs/org/apache/commons/codec/net/QuotedPrintableCodec.html">
QuotedPrintableCodec</a>
</td>
<td>
Codec for RFC 1521 MIME (Multipurpose Internet Mail Extensions) Part One. Rules #3, #4, and #5 of the quoted-printable spec are not implemented yet
</td>
</tr>
<tr>
<td width="150">
<a href="apidocs/org/apache/commons/codec/net/BCodec.html">
BCodec</a>
</td>
<td>
Identical to the Base64 encoding defined by <a href="http://www.ietf.org/rfc/rfc1521.txt">RFC 1521</a> and allows a character set to be specified.
</td>
</tr>
<tr>
<td width="150">
<a href="apidocs/org/apache/commons/codec/net/QCodec.html">
QCodec</a>
</td>
<td>
Similar to the Quoted-Printable content-transfer-encoding defined in <a
href="http://www.ietf.org/rfc/rfc1521.txt">RFC 1521</a> and designed to allow text containing mostly ASCII
characters to be decipherable on an ASCII terminal without decoding.
</td>
</tr>
</table>
</subsection>
</section>
</body>
</document>