Title: Apache Projects
license: https://www.apache.org/licenses/LICENSE-2.0

THIS PAGE IS NO LONGER MAINTAINED



The Apache Software Foundation is a highly decentralized community of
developers. 

We are organized into more than one hundred separate community-led Apache projects, 
many containing sub-projects. 

A [flat listing of all Apache projects](/index.html#projects-list) and 
technologies is available; we also keep a [detailed and interactive listing of projects by category](http://projects.apache.org/) 
at our [projects.apache.org](http://projects.apache.org/) site.

More information on how the [ASF and Apache projects is governed](/foundation/governance/) is available. 
