Cirrus is an infrastructure for Aspect-Oriented Programming (AOP) using the Elements compiler; it is available in all languages.
Cirrus extends the attributes system with full support for Aspect-Oriented Programming, allowing the developer to separate concerns such as logging, security or other functionality orthogonal to the regular class hierarchy into Aspects that can be attached to classes or their members as needed.
Functionality that otherwise would need to be reimplemented in various places across an application or framework can be encapsulated in reusable form and maintained in a single place. Elements allows developers both to reuse existing aspects written by third parties or included with the compiler’s standard aspect library, as well as to create their own Aspects.
You can read more about that in the Attributes and Aspects section under Language Concepts.
The Cirrus API is divided into these namespaces: