Apache Sling™ is a framework for RESTful web-applications based on an extensible content tree.
In a nutshell, Sling maps HTTP request URLs to content resources based on the request's path, extension and selectors. Using convention over configuration, requests are processed by scripts and servlets, dynamically selected based on the current resource. This fosters meaningful URLs and resource driven request processing, while the modular nature of Sling allows for specialized server instances that include only what is needed.
Sling serves as basis for a variety of applications ranging from blogging engines all the way to enterprise content management systems.
Our Documentation Overview page will help you get started.
Discussions about Sling happen on our mailing lists, see our Project Information page for more info.
Apache Sling is a modular project and has its source code stored in multiple individual Git repositories. Please see docs/modules.md for an overview or use the GitHub search for 'sling'.
For Sling developers - information about using the Sling Aggregator to check out all repositores or perform bulk operations is at docs/devel.md.