A decade ago, while working on custom enterprise applications, we have realized some features, such as registry administration, security, server-side and client-side validations, are common in each application. So we decided to create a framework based on Groovy, Grails, and ExtJS named G*Rich. Over the years, we used G*Rich extensively.
In 2020., we had an internal retrospective on G*Rich, our vision, and next steps with it. We realized a key component for wide usage is modularity. Even though G*Rich solved the right problems, it wasn’t modular. That’s why we created Nrich.
What is Nrich?
Nrich is an open-source Java library whose purpose is to make application development faster and easier. Based on Spring Framework, it also provides Spring Boot starters to simplify configuration. By design, it is modular, meaning you only use the modules you need. Moreover, NRich is easy to plug into existing projects, like any other library.
Core modules are:
- nrich-registry – API for administrating registries (create, read, update, delete, search), with automatic auditing/versioning
- nrich-search – simple API on top of Spring Data JPA, covering 80% of use cases
- nrich-form configuration – easy way to resolve server-side constraints on the client-side
- nrich-notification – standardized way to show client-side notifications from server-side
Other smaller modules include nrich-encrypt, nrich-jackson, nrich-security-csrf, nrich-validation, nrich-webmvc, and so on. A more detailed explanation of each module is available on Github, and we will dig into the details of these modules in future articles. Also, at the moment, Nrich is primarily focused on server-side modules – but we are planning on complementing them with client-side modules as well.
Photo by Mario Gogh on Unsplash.