# Proposal for Codec Package

#### January 24, 2002

### (0) Rationale

Many software projects have a need to use various formats of data, and to be able to switch between various formats. The codec package seeks to encapsulate some of the most popular encode/decode algorithms in one easy to use, well tested package. A base64 codec is the first candidate, with others to follow soon.

### (1) Scope of the Package

This proposal is to create a package of Java utility classes for the encoding/decoding of various types of data. A base64 codec will be the first implementation.

### (1.5) Interaction With Other Packages

Codec relies only on standard JDK 1.2 (or later) APIs for production deployment. It utilizes the JUnit unit testing framework for developing and executing unit tests, but this is of interest only to developers of the component. Codec will be a dependency for several existing components in the open source world.

No external configuration files are utilized.

### (2) Initial Source of the Package

The original Java classes (`Base64`, etc.) are splashed around various Apache subprojects. We intend to seek them out and integrate them.

The proposed package name for the new component is `org.apache.commons.codec`.

### (3) Required Jakarta-Commons Resources

- CVS Repository - New directory `codec` in the `jakarta-commons` CVS repository.
- Mailing List - Discussions will take place on the general dev@commons.apache.org mailing list. To help list subscribers identify messages of interest, it is suggested that the message subject of messages about this component be prefixed with [Codec].
- Bugzilla - New component "Codec" under the "Commons" product category, with appropriate version identifiers as needed.

### (4) Initial Committers

The initial committers on the Codec component shall be as follows:

- Scott Sanders
- Henri Yandell
- Rodney Waldhoff
- Daniel Rall
- Jon S. Stevens
- Tim O'Brien