---
layout: default
title: Easy rules • The stupid Java™ rules engine.
overview: true
---
< section class = "intro" >
< div class = "grid" >
< div class = "unit whole" >
< p class = "first" > The stupid Java™ rules engine.< / p >
< / div >
< / div >
< / section >
< section class = "features" >
< div class = "grid" >
< div class = "unit one-third" >
< h2 > Lightweight< / h2 >
< p >
A tiny jar with no dependencies and a lot of features!
< / p >
< a href = "{{ site.url }}/about/getting-started.html" class = "" > Get started → < / a >
< / div >
< div class = "unit one-third" >
< h2 > POJO based< / h2 >
< p >
Turn your POJOs into business rules with a couple of annotations.
< / p >
< a href = "{{ site.url }}/about/overview.html" class = "" > Read documentation → < / a >
< / div >
< div class = "unit one-third" >
< h2 > Simple yet powerful< / h2 >
< p >
Easy rules provides a simple API to get you up and running quickly.
< / p >
< a href = "{{ site.url }}/tutorials/hello-world.html" class = "" > 2 minutes tutorial → < / a >
< / div >
< div class = "clear" > < / div >
< / div >
< / section >
< section class = "quickstart" >
< div class = "grid" >
< div class = "unit code" style = "width: 50%" >
< p class = "title" > Then, fire it!< / p >
< div class = "shell" >
< div class = "highlight" > < pre > < code class = "language-java" style = "font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;font-size: 16px" > < span class = "kd" > public class< / span > < span class = "nc" > Test< / span > < span class = "o" > {< / span >
< span class = "kd" > public static void< / span > < span class = "nf" > main< / span > < span class = "o" > (< / span > String< span class = "o" > []< / span > args< span class = "o" > )< / span > < span class = "o" > {< / span >
< span class = "c1" > // create a rules engine< / span >
RulesEngine rulesEngine < span class = "o" > =< / span >
aNewRulesEngine< span class = "o" > ()< / span > .build< span class = "o" > ();< / span >
< span class = "c1" > //register the rule< / span >
rulesEngine< span class = "o" > .< / span > < span class = "na" > registerRule< / span > < span class = "o" > (< / span > < span class = "k" > new< / span > MyRule< span class = "o" > ());< / span >
< span class = "c1" > //fire rules< / span >
rulesEngine< span class = "o" > .< / span > < span class = "na" > fireRules< / span > < span class = "o" > ();< / span >
< span class = "o" > }< / span >
< span class = "o" > }< / span > < / code > < / pre > < / div >
< / div >
< / div >
< div class = "unit code" style = "width: 50%" >
< p class = "title" > First, define your rule..< / p >
< div class = "shell" >
< div class = "highlight" > < pre > < code class = "language-java" style = "font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;font-size: 16px" > < span class = "nd" > @Rule< / span > < span class = "o" > (< / span > name < span class = "o" > =< / span > < span class = "s" > "my awesome rule"< / span > < span class = "o" > )< / span >
< span class = "kd" > public< / span > < span class = "kd" > class< / span > < span class = "nc" > MyRule< / span > < span class = "o" > {< / span >
< span class = "nd" > @Condition< / span >
< span class = "kd" > public boolean< / span > < span class = "nf" > when< / span > < span class = "o" > ()< / span > < span class = "o" > {< / span >
< span class = "k" > return< / span > true< span class = "o" > ;< / span >
< span class = "o" > }< / span >
< span class = "nd" > @Action< / span >
< span class = "kd" > public void< / span > < span class = "nf" > then< / span > < span class = "o" > ()< / span > < span class = "o" > {< / span >
System< span class = "o" > .< / span > < span class = "na" > out< / span > < span class = "o" > .< / span > < span class = "na" > println< / span > < span class = "o" > (< / span > < span class = "s" > "Easy Rules rocks!"< / span > < span class = "o" > );< / span >
< span class = "o" > }< / span >
< span class = "o" > }< / span > < / code > < / pre > < / div >
< / div >
< / div >
< div class = "clear" > < / div >
< / div >
< / section >
< section class = "free-hosting" >
< div class = "grid" >
< div class = "unit whole" >
< div class = "grid pane" >
< div class = "unit whole" >
< div class = "pane-content" >
< h2 > Latest news< / h2 >
< p > < strong > 28/06/2015:< / strong > Version 2.1 is out with < a href = "http://www.spring.io" target = "_blank" > Spring< / a > and < a href = "http://www.quartz-scheduler.org" target = "_blank" > Quartz< / a > support. Check what's new < a href = "./get-involved/release-notes.html" > here< / a > .< / p >
< p > < strong > 21/05/2015:< / strong > Version 2.0 is released! checkout what's new < a href = "./get-involved/release-notes.html" > here< / a > .< / p >
< / div >
< div class = "pane-content" >
< h2 > License< / h2 >
< p > Easy Rules is open source, hosted on < a target = "_blank" href = "https://github.com/benas/easy-rules" > GitHub< / a > and is released under the terms of the < a target = "_blank" href = "http://opensource.org/licenses/mit-license.php/" > MIT License< / a > .< / p >
< / div >
< div class = "pane-content align-center" >
< iframe src = "http://ghbtns.com/github-btn.html?user=benas&repo=easy-rules&type=watch&count=true"
allowtransparency="true" frameborder="0" scrolling="0" width="110" height="20">< / iframe >
< iframe src = "http://ghbtns.com/github-btn.html?user=benas&repo=easy-rules&type=fork&count=true"
allowtransparency="true" frameborder="0" scrolling="0" width="95" height="20">< / iframe >
< iframe src = "http://ghbtns.com/github-btn.html?user=benas&type=follow&count=true"
allowtransparency="true" frameborder="0" scrolling="0" width="165" height="20">< / iframe >
< / div >
< div class = "pane-content" >
< h2 > Credits< / h2 >
< div class = "grid" >
< div class = "unit four-fifths" >
< p > Many thanks to < a href = "https://www.yourkit.com/" target = "_blank" > YourKit, LLC< / a > for providing a free license of
< a href = "https://www.yourkit.com/java/profiler/index.jsp" target = "_blank" > YourKit Java Profiler< / a > to kindly support the development of Easy Rules.< / p >
< / div >
< div class = "unit one-fifth" >
< img class = "logo" src = "{{ site.url }}/img/yourkit.png" alt = "yourkit profiler" / >
< / div >
< / div >
< div class = "grid" >
< div class = "unit four-fifths" >
< p > Many thanks to < a href = "https://www.cloudbees.com/" target = "_blank" > CloudBees< / a > for providing a free
< a href = "http://jenkins-ci.org/" target = "_blank" > Jenkins< / a > service to support continuous integration for open source projects.< / p >
< / div >
< div class = "unit one-fifth" >
< img class = "logo" src = "{{ site.url }}/img/cloudbees.png" alt = "CloundBees" / >
< / div >
< / div >
< / div >
< / div >
< div class = "clear" > < / div >
< / div >
< / div >
< / div >
< / section >