8 Top Java RESTful Micro Frameworks of 2019 [Pros/Cons/Stats]

Written by on August 27, 2019

8 Top Java RESTful Micro Frameworks of 2019 [Pros/Cons/Stats]

Java has seen tremendous growth as a programming language in the past several years. A lot of that popularity can be associated to the evergrowing specter of popular frameworks and their ability to handle complex tasks in a comparatively easy fashion.

Compared to the olden “dark times” of JSP, these new frameworks offer a secure, easily maintainable and scalable environments.

Following thorough research, I presenting you the list of top eight Java RESTful frameworks of 2019 that can best facilitate and streamline the process of front-end and back-end web application development.

The original list was created four years ago and what you are currently reading is an updated and curated version. Please leave a comment below if there’s something you would like to discuss, or you have a recommendation for a framework worth checking.

Update: 18th June, 2019 - Removed Dropwizzard and included ActFramework.

8 Top Java RESTful Frameworks of 2019

Below is the list of frameworks we are going to analyze. I have used and extensively tested all of them in the past four years.

To make this list as objective as possible I’m arranging top eight frameworks in alphabetical order.

  1. ActFramework
  2. Light-rest-4j (also known as Light Java)
  3. Ninja Web Framework
  4. Play Framework
  5. RESTEasy
  6. Restlet
  7. Spark Framework
  8. Spring Boot

Introduction date: 2015

Rating: 4/5

ActFramework is created to make programming MVC application in Java easy and fun. In comparing with other Java MVC frameworks like Spring MVC, Struts, etc, Act focus more on expressiveness and simplicity.

While it is not micro in nature, it makes it up with modularity and speed. And when I say speed I mean speed. According to the speed benchmark by @networknt, ActFramework comes in the second place, close behind Light-4j (which is a story on its own).

ActFramework is not a servlet framework, and I like it for that. No web.xml and no container. You can boot it with the main function only.

View it as a smaller/faster brother to Spring/Spring Boot.

Links

Official Site
GitHub
Video Tutorials
Documentation

Pro

  • Very fast, second to Light-rest-4j
  • Excellent for fast prototyping
  • A wide support for different security mechanism
  • Small package size messuring in tens of megabytes
  • A small memory feet print which makes it perfect for cloud development
  • Support for Rythm templating engine
  • Support for Spring MVC/Jersey routing
  • Hot reload
  • Surprising CLI support

Con

  • Still missing some functionalities like service governance and messaging handling.
  • Small comunity so support is hard to find.
  • A documentation leaves a lot to be desired as it’s a foundation of any good framework.

Introduction date: Sep 19, 2016

Rating: 5/5

This framework is a RESTful API framework built on top of light-4j, which is on its own a fast, lightweight and cloud-native micro-service framework.

To my knowledge, at the time of this update, Light Java is also the fastest available Java micro-service. If you visit their website you will notice that developers are bragging about been 44 times faster than Spring Boot running in the embedded Tomcat.

Links

Official Site
GitHub
Examples
Documentation

Pro

  • Fastest available micro RESTful framework
  • Very low latency
  • Cutting edge
  • Small memory footprint which is important when working with Java
  • Plays nice with other libraries/frameworks
  • In-house dependency injection framework included so you have avoid using 3rd party solutions
  • Designed for scalability
  • Organized around plugins so you can make it as small as possible
  • Based around JavaSE so no need for J2E
  • Security first design – OAuth2 integration

Con

  • Such a fast framework has such a bad documentation, some sections are even missing.
  • While it’s growing in popularity it still has a rather small following

Author notes

While I’m currently working with Spring Boot I’m not planning to switch to Light-rest-4j anytime soon. While it’s much faster than Spring Boot it’s still not powerful enough to stand on its own feet. Let’s be honest, the best is usually not the right this to choose (for example VHS vs. Betamax).

Introduction date: 2012

Rating: 3.5/5 (I’m not impressed enough)

Ninja Web Framework is a full-stack web framework for Java. Stable, fast, reliable, and super productive.

It provides everything you need to develop, test, deploy, and maintain your RESTful web application (Servlets, Guice, JPA, Flyway migrations, Maven, etc.).

Just like DropWizzard, Ninja Web Framework is an integrated software stack. You don’t have to set up everything on your own, just generate a new project from using Maven archetype, import it into available IDE and start coding.

Links

Official Site
GitHub
Documentation

Pro

  • Fast
  • Quick project building and bootstrapping
  • Modularity
  • XML, HTML, JSON rendering
  • Other libraries are also supported, you may or may not use them (like Guice, Logback, Guava, etc.).
  • Good data persistence support and caching
  • Don’t like servlet container? Use any container you like.
  • Don’t want to use containers at all? Use it in stand-alone mode, as a self-executing jar package bundled with Jetty.

Con

  • Again, just like with DropWizzard, provided documentation is good but not good enough. It took me some time to get acquainted. Also, this framework relies on so many other libraries that sometimes it can become cumbersome to find needed information.
  • Not that famous, so expect a much smaller community. According to some rumors, this framework was built by/for Play users who didn’t like Play 2.X switching mainly to Scala. Please leave a comment below if you think this is not correct.

Author notes

It sounds like a great framework, but I will leave it on the side until it matures a little bit more.

Introduction date: 2011

Rating: 4/5

Play Framework makes it easy to create, build, and deploy web applications with Java & Scala. It is built on Akka, based on a lightweight and stateless architecture. It should be used for highly-scalable applications needing minimal CPU and memory resource consumption.

Links

Official Site
Download
GitHub
Documentation

Pro

  • Easy to develop.
  • Fast though not fast as some other frameworks here.
  • Built on Netty, so it supports non-blocking I/O. This makes it excellent for RESTful applications where you need to handle remote calls in parallel.
  • Probably largest community among frameworks reviewed here
  • Quick project building and bootstrapping
  • Modularity
  • MVC
  • REST, JSON/XML, Web Sockets, non-blocking I/O
  • Just refresh the browser to see the recent changes.
  • Async support
  • Available books

Con

  • Memory footprint – Way too much to call it micro
  • Version 2.0 is one of the most controversial Java frameworks. Switch to Scala made some Java developers outraged.
  • It does not offer backward compatibility; Play 2.X is a total rewrite of a Play 1.X.
  • For a lightweight framework (it’s marketed this way), it become somewhat bloated over time.
  • SBT. Intended as a Maven “killer”, never managed to outshine/replace it. It’s hard to understand and configure.
  • Not a servlet
  • Breaking changes across releases

Author notes

Haters gonna hate, but I still like and prefer this framework. Unfortunately, I can’t give it more than 4/5 stars, I still believe that JAX-RS based frameworks are better for RESTful web services.

Introduction date: 2009

Rating: 4/5

RESTEasy is a JBoss based implementation that integrates various frameworks to help you build RESTful Web and Java applications. It is a fully certified implementation of the JAX-RS 2.0 specification, a JCP specification that provides a Java API for RESTful Web Services over the HTTP protocol.

It’s one of the oldest available frameworks with a sizeable community.

Links

Official Site
GitHub
Documentation

Pro

  • Mature and stable product
  • Relatively fast and reliable
  • Built around JAX-RS 2.0 specification
  • Large community
  • Enterprise ready
  • Existing JBoss family environment
  • Spring MVC integration
  • EJB support
  • Excellent security support – OAuth 2.0

Con

  • So-so documentation
  • Does not provide a wide range of testing tools
  • It relies to much on Spring.

Author notes

Though extremely fast I don’t want to recommend this framework. Lack of documentation and almost non-existing support makes this a sub-par framework. I’m giving it 3/5 stars only on account of speed.

Introduction date: 2005

Rating: 4.5/5

Restlet is here to help Java developers build scalable and fast web APIs that following RESTful architecture pattern.

It offers powerful routing and filtering system, unified client/server Java API. It is available for all major platforms (Java SE/EE, Google AppEngine, OSGi, GWT, Android) and offers numerous extensions to fit the needs of all developers.

From my knowledge, it is the first RESTful web framework for Java. It’s also funny how so many companies are using this framework, but you’ll never know it. Like it’s almost ‘invisible’.

Links

Official Site
GitHub
Documentation

Pro

  • Powerfull
  • Enterprise framework
  • Available for Java SE, Java EE, Google Web Toolkit, Google AppEngine, Android, OSGi environments
  • vanilla JAX-RS supported (just like Jersey)
  • Offers most advanced RESTful support
  • HTTP, HTTPS, SMTP, XML, JSON, Atom, and WADL
  • Modularity
  • Other libraries are also supported
  • Still under active development
  • Smart url binding and full URI routing
  • Available books

Con

  • Very steep learning curve
  • Closed community, though openly active at StackOverflow
  • Not that popular these days, mostly thanks to Play Framework and Jersey

Author notes

Somehow this framework is still very popular, considering its age and current competition. I can’t give it 5/5 stars because of its complexity but if you have time give it a chance, especially if you need low-level RESTful access.

Continue to the next page

Categories

24 thoughts on “8 Top Java RESTful Micro Frameworks of 2019 [Pros/Cons/Stats]”

  1. Hi
    I use this framework in my last work. I pick over other for the benchmark. This is because the use of Jetty.
    I do not use the framework at 100%, the core and JDBI but the documentation is very terse = much StackOverflow.
    JodaTime is included what is interesting.

  2. Good article!

    Here is another micro framework: http://jooby.org (I’m the author)

    It runs on top of netty (default), jetty or undertow. It has a scripting programming model but also MVC.

    • I am pretty much considering your framework. However, It will be great if you can provide some video tutorials. Otherwise it is hard to gain confidence to get started for a project on which I will be stick to for next 4/5 years at least.

  3. My advice, go to the Ionic official forum. Sort answers by “number of replies”, and you’ll find your answer somewhere on the top. It’s a standard Ionic question.

  4. I don’t know why you claim Spark is not intended for beginners. I’m no expert on restful frameworks (Spark was the first I used) but I found the documentation to be adequate and it does exactly what I want with minimal fuss.

  5. Great article. Can you explain these two:

    “Most commonly used with AngularJS”
    – isn’t AngularJS alone enough to develop front-end and just call backend without use of Spark framework?

    “Can be used inside a container or without one”
    – you wanna tell it does not have to use Jetty at all.. it is configurable? I did not know that

  6. I am new to Java and am building a simple restful application. I am considering Dropwizard, Jersey, or Play2. still struggling on where i should put my faith on.
    Which one is the simplest to deploy on server?
    I am developing on windows and my server uses Linux.

    • Would recommend Spring Boot or Dropwizard. Not Play, it has too many issues.
      Dropwizard is easy to use. Spring Boot too, and Spring products are always of high quality and well documented.

    • It can be developed with Java, I’ve used it for a while (and I prefer type safe languages) so always used it with Java and in the same code use some Groovy (for array manipulation for instance)

  7. This is an AWESOME overview! Okay, I’m missing RESTEasy, which is one of the frameworks I’m considering. But the structure of your post is great, with a description, pro’s, con’s, author notes and the EXAMPLES! Small enough to not scare anyone away, but it gives an impression of the kind of code you’ll be writing. Thank you!

  8. Hey, maybe you want to checkout this new framework:
    http://actframework.org/

    Plus the performance comparison between ActFramework and many of the framework listed in your blog:
    http://tfb-insight.thinking.studio/#vs/actframework:spring:dropwizard:ninja-standalone:light-4j:play2:spark

    The data comes from the latest TechEmpower framework benchmark: https://www.techempower.com/benchmarks/previews/round15/

    I’ve also calculated lines of source code vs tests implemented and come up with an new benchmark item: code density, in order to measure how expressive a framework can be when creating the TechEmpower benchmark project.

    Link to test project source is provided in each framework’s detail page, e.g. http://tfb-insight.thinking.studio/#framework/dropwizard

  9. One big issue I have faced with some of this frameworks (Play, Spring Boot and Dropwizard) is their enormous memory footprint. This makes them not suitable for micro services.

  10. Yes… It’s another jvm Lang (groovy), but is based on spring-boot: Grails. A real awesome full stack web framework. And groovy is a powerful language, easy to learn for Java developer.

Leave a Reply