Skip to content

graceframework/grace-framework

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Main branch build status Apache 2.0 license Latest version on Maven Central Grace on X

Java Version Groovy Version Spring Boot Version

Grace Framework

Grace is a fork of Grails 5 that started development in early 2022, it's a powerful and open-source One-Person web framework used to build enterprise-grade Spring Boot applications with the powerful Groovy programming language. The core framework is very extensible and there are numerous Plugins available that provide easy integration of add-on features.

Grace vs Spring Boot

Grace and Spring Boot frameworks are excellent for building web applications, but their use depends on what you want. Generally, Grace framework may be advantageous in full-stack and monolithic applications, but Spring Boot is preferred for developing complex and microservice applications. Grace has better developer productivity than Spring Boot. Because it follows the convention over the configuration principle, it minimizes code requirements. This enhances productivity and fosters faster app development. The framework creates faster and more functional prototypes than Spring Boot due to its simple code generation like scaffolding and CoC. Grace fully embraces Groovy to enable many features that would not be possible using Java alone, including a rich Plugin ecosystem and Dynamic Modules, many DSLs, AST Transformations, Trait-based solutions, and much more. Grace also allow you create many different types of applications using Application profiles and templates. The learning curve for Grace is moderate and more straightforward than Spring Boot due to its emphasis on convention and simplicity. Currently, Grace framework has a less active developer community and support than Spring Boot, and the IDE tools don't support Groovy and Grace as well as Java and Spring Boot.

You can learn more on the page Grace vs Spring Boot.

Getting Started

You need a Java Development Kit (JDK) installed, but it is not necessary to install Groovy because it's bundled with the Grace distribution.

To install Grace, visit https://github.com/graceframework/grace-framework/releases and download the version you would like to use. Set a GRACE_HOME environment variable to point to the root of the extracted download and add GRACE_HOME/bin to your executable PATH. Then in a shell, type the following:

$ grace create-app com.example.blog
$ cd blog
$ grace run-app

SDKMAN! (The Software Development Kit Manager) can be used for managing multiple versions of various binary SDKs, including Groovy, Gradle and the Grace. Get SDKMAN! from sdkman.io and install Grace by using the following commands:

$ sdk install grace

To build Grace, clone this GitHub repository and execute the install Gradle target:

$ git clone https://github.com/graceframework/grace-framework.git
$ cd grace-framework
$ ./gradlew pTML zipDist

If you encounter out of memory errors when trying to run the install target, try adjusting Gradle build settings. For example:

$ export GRADLE_OPTS="-Xmx2G -Xms2G -XX:NewSize=512m -XX:MaxNewSize=512m"

For installation instructions see INSTALL.txt.

Plugins

Grace is first and foremost a web application framework, but it is also a platform. Grace provide Plugin API to expose a number of extension points that let you extend anything from the command line interface to the runtime configuration engine.

Grace Framework repository contains core plugins and most commonly used plugins, which are provided by default when creating a project.

  • Grace Asset Pipeline Plugin is a plugin used for managing and processing static assets in Grace applications.
  • Grace Async and Events provides asynchronous, parallel programming, Events APIs, which integrate Grace with various asynchronous libraries and frameworks such as GPars and RxJava.
  • Grace Cache provides powerful and easy to use caching functionality to Grace applications and plugins.
  • Grace Data Hibernate provides a GORM implementation for Hibernate ORM.
  • Grace Data MongoDB provides a GORM implementation for the MongodB Document Database.
  • Grace Database Migration helps you manage database changes uses the Liquibase library.
  • Grace Scaffolding is a plugin to generate scaffolded controllers and views for your Grace application.
  • Grace Fields is a plugin allows you to customize the rendering of input fields for properties of domain objects, command beans and POGOs based on their type, name, etc.
  • Grace Geb provides the Geb dependencies and a create-functional-test command for generating Geb tests.
  • Grace Views includes JSON views powered by Groovy's JsonBuilder, also provides the basis for implementation other view types.

Grace Plugins repository contains several plugins to develop applications more easier and productive.

Profiles

Grace profile is a simple directory that contains a profile.yml file and directories containing the "commands", "skeleton" and "templates" defined by the profile.

Grace provides several profiles in the Grace Profiles repository,

  • base - a profile for other profiles to extend from
  • plugin - a profie to create a plugin
  • profile - a profie to create a custom profile
  • rest-api - a profie for REST API applications
  • starter - A profile for getting start to create anything you like
  • web-plugin - a profile for Web plugin that contains web resources css js images
  • web - default profile to creae a web app

Guides

Grace Guides repository contains several guides that show how to use Grace.

License

Grace framework is Open Source software released under the Apache License, Version 2.0.