AZU is a set of tools that offers building blocks to create Crystal Applications requiring little to no boilerplate code making you more efficient and productive.

Azu was created by harvesting, it started by not trying to build a framework, but by building an application. While you build the application you don't try to develop generic code, but you do work hard to build a well-factored and well-designed application.


  • Plain Crystal, little to no DSL

  • Small DSL, Plain Old Crystal

  • No magic, no surprises

  • Type-safe definitions

  • Adopts to your architectural pattern

    • Model, View, Controller

    • Modular

    • Pipes and Filters

    • Event-Driven

    • Layered

With one application built you then build another application that has at least some similar needs to the first one. While doing we pay attention to any duplication between the second and first application. As you find duplication you factor out into a common area, this common area is Azu Toolkit


Azu helps you to have the clarity to separate and represent the Input and Output at every step of the design lifecycle. Azu does this by mapping objects' names to the actual technical names so you start to build a mental model on how the toolkit enables you, at the same time understand the design process.

Mental Model

All applications will have business-specific use cases for which the application has been built, a pattern that we recommend to follow for building any application.

  • Plain Old Crystal Objects (POCO) - Also known as Value Objects are used to pass immutable data around your domain.

  • Use Cases - expect simple request data structures, for its inputs and produces simple response data structures for its output.

Last updated