Welcome to Apache Commons
Apache Commons is an Apache project focused on all aspects of
reusable Java components.
The Apache Commons project is composed of three parts:
You may also read our charter,
which spells out the goals of the project in greater detail.
The Apache Commons source code repositories are writable for all
ASF committers. While Apache Commons is a Commit-Then-Review community,
we would consider it polite and helpful for contributors to announce
their intentions and plans on the dev
mailing list before committing code.
All contributors should read our contributing
guidelines. We accept patches as SVN diff files uploaded to the
Apache bugtracker or as
pull request via our github mirrors.
Apache Commons Proper
Commons Proper is dedicated to one principal goal:
creating and maintaining reusable Java components. The
Commons Proper is a place for collaboration and sharing, where
developers from throughout the Apache community can work
together on projects to be shared by the Apache projects and
Apache users.
Commons developers will make an effort to ensure that their
components have minimal dependencies on other libraries, so that
these components can be deployed easily. In addition, Commons
components will keep their interfaces as stable as possible, so
that Apache users (including other Apache projects) can implement
these components without having to worry about changes in the
future.
This article
gives an overview of (some of) the components which can be found here.
We welcome participation from all that are interested, at all
skill levels. Coding, documentation and testing are all critical
parts of the software development process. If you are interested
in participating in any of these aspects, please join us!
Component |
Description |
Latest Maven Version |
Release Version |
Release Date |
BCEL |
Byte Code Engineering Library - analyze, create, and manipulate Java class files |
 |
6.10.0 |
2024-07-23 |
BeanUtils 1.X |
Easy-to-use wrappers around the Java reflection and introspection APIs. |
 |
1.10.1 |
2025-02-13 |
BeanUtils 2.X |
Easy-to-use wrappers around the Java reflection and introspection APIs. |
 |
2.0.0-M1 |
2025-01-07 |
BSF |
Bean Scripting Framework - interface to scripting languages, including JSR-223 |
 |
3.1 |
2010-06-24 |
CLI |
Command Line arguments parser. |
 |
1.9.0 |
2024-08-14 |
Codec |
General encoding/decoding algorithms (for example phonetic, base64, URL). |
 |
1.18.0 |
2025-01-27 |
Collections |
Extends or augments the Java Collections Framework. |
 |
4.5.0-M3 |
2024-12-18 |
Compress |
Defines an API for working with tar, zip and bzip2 files. |
 |
1.27.1 |
2024-08-20 |
Configuration |
Reading of configuration/preferences files in various formats. |
 |
2.11.0 |
2024-06-10 |
Crypto |
A cryptographic library optimized with AES-NI wrapping Openssl or JCE algorithm implementations. |
 |
1.2.0 |
2023-01-23 |
CSV |
Component for reading and writing comma separated value files. |
 |
1.14.0 |
2025-03-19 |
Daemon |
Alternative invocation mechanism for unix-daemon-like java code. |
 |
1.4.1 |
2025-01-14 |
DBCP |
Database connection pooling services. |
 |
2.13.0 |
2024-12-02 |
DbUtils |
JDBC helper library. |
 |
1.8.1 |
2023-09-14 |
Digester |
XML-to-Java-object mapping utility. |
 |
3.2 |
2011-12-13 |
Email |
Library for sending e-mail from Java. |
 |
2.0.0-M1 |
2024-06-27 |
Exec |
API for dealing with external process execution and environment management in Java. |
 |
1.4.0 |
2024-01-05 |
FileUpload |
File upload capability for your servlets and web applications. |
 |
1.5 |
2023-12-27 |
FileUpload2 |
File upload capability for your servlets and web applications. |
 |
2.0.0-M2 |
2023-12-28 |
Geometry |
Space and coordinates. |
 |
1.0 |
2021-08-21 |
Imaging (previously called Sanselan) |
A pure-Java image library. |
 |
1.0.0-alpha5 |
2024-04-18 |
IO |
Collection of I/O utilities. |
 |
2.18.0 |
2024-11-19 |
JCI |
Java Compiler Interface |
 |
1.1 |
2013-10-14 |
JCS |
Java Caching System |
 |
3.2.1 |
2024-05-27 |
Jelly |
XML based scripting and processing engine. |
 |
1.0.1 |
2017-09-25 |
Jexl |
Expression language which extends the Expression Language of the JSTL. |
 |
3.4.0 |
2024-06-05 |
JXPath |
Utilities for manipulating Java Beans using the XPath syntax. |
 |
1.3 |
2008-08-14 |
Lang |
Provides extra functionality for classes in java.lang. |
 |
3.17.0 |
2024-08-29 |
Logging |
Wrapper around a variety of logging API implementations. |
 |
1.3.5 |
2025-02-08 |
Math |
Lightweight, self-contained mathematics and statistics components. |
 |
4.0-beta1 |
2022-12-20 |
Net |
Collection of network utilities and protocol implementations. |
 |
3.11.1 |
2024-06-10 |
Numbers |
Number types (complex, quaternion, fraction) and utilities (arrays, combinatorics). |
 |
1.2 |
2024-08-12 |
Pool |
Generic object pooling component. |
 |
2.12.1 |
2025-01-27 |
RDF |
Common implementation of RDF 1.1 that could be implemented by systems on the JVM. |
 |
0.5.0 |
2017-12-23 |
RNG |
Implementations of random numbers generators. |
 |
1.6 |
2024-07-15 |
SCXML |
An implementation of the State Chart XML specification aimed at creating and maintaining a Java SCXML engine. It is capable of executing a state machine defined using a SCXML document, and abstracts out the environment interfaces. |
 |
0.9 |
2008-12-01 |
Statistics |
Statistics. |
 |
1.1 |
2024-08-20 |
Text |
Apache Commons Text is a library focused on algorithms working on strings. |
 |
1.13.0 |
2024-12-13 |
Validator |
Framework to define validators and validation rules in an xml file. |
 |
1.9.0 |
2024-05-28 |
VFS |
Virtual File System component for treating files, FTP, SMB, ZIP and such like as a single logical file system. |
 |
2.10.0 |
2025-02-14 |
Weaver |
Provides an easy way to enhance (weave) compiled bytecode. |
 |
2.0 |
2018-09-07 |
The Commons Sandbox
The Commons project also contains a workspace that is open to all
Apache committers. It's a place to try out new ideas and prepare
for inclusion into the Commons portion of the project or into
another Apache project. Users are free to experiment with the
components developed in the sandbox, but sandbox components will
not necessarily be maintained, particularly in their current
state.
See here for Sandbox components.
The Commons Dormant
These are Commons components that have been deemed
inactive since they have seen little recent development activity.
If you wish to use any of these components, you must build them
yourselves. It is best to assume that these components will not be
released in the near future.
See here for Dormant components.
Where do I get releases?
The individual components have independent releases. Some releases
for some components may be available only through the mirroring system.
Some releases for some components (typically the older ones) are not
available through the mirroring system.
See the individual websites listed above for the specific downloads, or use the
Releases
menu option.
How do I contribute, give feedback, fix bugs and so on?
The Commons project really needs and appreciates any contributions,
including documentation help, source code and feedback.
-
Discussion occurs on the
Commons mailing list.
-
Commons Proper components are all now maintained using individual
Git repositories.
The code can be accessed online using GitHub (please see the links in the above listing).
Or using a Git client (links as above).
-
Access to the SVN commons/sandbox repository is available both
online and with a
svn client.
-
Access to the SVN commons/dormant repository is available both
online and with a
svn client.
|