General Information

What is Codea?
Codea stands for C++ Object-Oriented Development Environment for Apache. Codea allows developers to quickly and easily develop modules in C++ for Apache 2.0. Codea hides unnecessary details without taking any of the power or flexibility of Apache's architecture away from the user.

Why not mod_cpp?
Codea is not mod_cpp/mod_cplusplus because it is comprised primarily of header files that are used to create a module; it is not an independently loaded Apache module that other modules register with, like mod_perl. Codea differs from projects such as mod_perl in that Codea facilitates, but does not replace, the Apache module registration mechanism.
Ideally, Codea should serve as the foundation upon which a mod_cpp-like module would be built. Codea will be developed with this goal in mind.

Why should I use Codea?
In short:

  • Object-oriented support for mid-to-large application development on Apache
  • Full use of all C++ idioms and libraries, including the Standard Template Library
  • Easy to maintain state from one invocation to another
Codea is especially suited for those who wish to build server applications atop Apache. Codea is easy to use for simple Apache modules, and such implementations will gain some organizational and development benefit. But the real advantage of Codea comes when building complete applications on top of Apache. Codea allows you to use C++ natively without concerning yourself about Apache integration issues. Codea allows you to create robust and complete object hierarchies or to use existing C++ libraries to build powerful, object-oriented applications. Codea's object registry allows you to easily maintain state within Apache across callbacks or even from request to request.

How can I use Codea?
Codea is published under the terms of the Apache Software License. In essence, the Codea license indicates that you may download and use Codea for any purpose, whether personal, educational, or professional, and that you may modify the source code without telling anyone.
Since the intent of Codea is for use in building complete applications, I expect and hope that it will be used professionally, and therefore expect that many organizations will wish to modify the code to include their own intellectual property. Still, it will be great if you, the user of Codea, can contribute your enhancements of Codea to the project itself. See the Getting Involved page for details.
The current release of Codea is always available for download on the Download page or from SourceForge.

Project Direction

The goals of Codea are:

  • To provide a lightweight coding environment that automates the process of tying C++ code into Apache 2.0
  • To provide a foundation for the development of Apache modules using C++
  • To facilitate the development of object-oriented applications using Apache 2.0 as a foundation
High-level goals of the Codea Open Source Project include:
  • Solidify the Codea core code and port to all supported Apache 2.0 platforms
  • Extend Codea via class library development
  • Collaborate with others and encourage the use of Codea to create a complete C++-on-Apache solution
  • Become a part of the software suite supported by the Apache Software Foundation


The concept for Codea began with a C++-enabling suite of header files developed by Matt Ryan for Apache 1.3. These header files were developed while Matt was working for Volera as a designer of Volera's Content Accountant server. This application represented a complete product built entirely atop Apache 1.3. Zachary C. Miller's work on getting C++ to work on Apache was essential to this step.
As the product was developed, several key persons within Volera contributed to the development and refinement of this endeavor.
Within weeks of Content Accountant's public release, Matt was laid off from Volera. At this point Matt decided to recreate this concept for Apache 2.0. Starting completely over from scratch, Matt redesigned and rebuilt a new suite of C++-enabling code for Apache 2.0. This effort began in December 2001 and became what is now Codea.

The Codea Open Source Project is adminstered by Matt Ryan and John Robertson.

Current News

Jan 9, 2002 - CCL 0.2.1a released. This is the initial release of the Codea Class Library which is compatible with all Codea 0.2.x releases.
Jan 9, 2002 - Codea 0.2.1a released. This release of Codea includes the split of some parts of the code to the CCL.
Dec 19, 2001 - Codea 0.1.2a released. This release contains a bugfix to the Codea 0.1.1a release.
Dec 18, 2001 - Initial Codea website created
Dec 10, 2001 - Codea 0.1.1a released