Need advice about which tool to choose?Ask the StackShare community!

Dropwizard

309
363
+ 1
182
Quarkus

299
374
+ 1
79
Add tool

Dropwizard vs Quarkus: What are the differences?

Key Differences between Dropwizard and Quarkus

Introduction:

Dropwizard and Quarkus are both frameworks used for building Java applications, but they have key differences that set them apart. In this article, we will highlight six major differences between Dropwizard and Quarkus.

  1. Runtime Efficiency: Dropwizard is known for its lightweight and fast runtime. It allows developers to create production-ready services quickly, but it lacks ahead-of-time (AOT) compilation capabilities. On the other hand, Quarkus leverages AOT compilation and GraalVM to achieve impressive runtime efficiency. This feature enables Quarkus to start and consume less memory, making it ideal for serverless and cloud-native architectures.

  2. Microservices vs. Monolith: Dropwizard is designed for developing monolithic applications where all services are packaged together. It provides a comprehensive stack of libraries, including Jetty for web services and Jackson for JSON processing. In contrast, Quarkus embraces the microservices architecture. It offers a modular and lightweight runtime to support the development of microservices and cloud-native applications. Developers can choose the exact set of extensions they need, reducing the memory footprint and startup time.

  3. Build and Deployment: Dropwizard uses the Maven build system and creates fat JARs that contain all dependencies. Deploying a Dropwizard application is as simple as running the JAR file. Quarkus, on the other hand, employs its own build tool called Gradle. It creates native images using GraalVM, resulting in a significantly smaller container image size and faster startup time. Quarkus applications can be deployed as lightweight containers with a minimal footprint.

  4. Language Support: Dropwizard is primarily focused on Java, allowing developers to utilize the vast Java ecosystem and libraries. Quarkus, on the other hand, supports multiple languages, including Java, Kotlin, and Scala. This flexibility allows developers to choose the language they are most comfortable with and leverage the rich set of libraries available for each language.

  5. Development Mode: Dropwizard provides hot reloading by default, allowing developers to make changes to the code without restarting the application. However, due to its monolithic nature, the reloading process can be slower for larger applications. Quarkus excels in this area by offering fast and efficient hot reloading, even for large applications. Developers can rely on Quarkus's dev mode, which instantly applies code changes without the need for application restart.

  6. Community and Ecosystem: Dropwizard has been around since 2011 and has built a strong community around it. It has a large and mature ecosystem with various plugins and libraries readily available. Quarkus, although relatively new compared to Dropwizard, has gained significant traction recently. It has an active and growing community that provides continuous support and contributes new extensions and integrations to the ecosystem.

In summary, Dropwizard and Quarkus differ in terms of runtime efficiency, architectural approach, build and deployment processes, language support, development mode, and community/ecosystem. Choosing between the two depends on factors such as application requirements, project size, and individual developer preferences.

Get Advice from developers at your company using StackShare Enterprise. Sign up for StackShare Enterprise.
Learn More
Pros of Dropwizard
Pros of Quarkus
  • 27
    Quick and easy to get a new http service going
  • 23
    Health monitoring
  • 20
    Metrics integration
  • 20
    Easy setup
  • 18
    Good conventions
  • 14
    Good documentation
  • 14
    Lightweight
  • 13
    Java Powered
  • 10
    Good Testing frameworks
  • 7
    Java powered, lightweight
  • 5
    Simple
  • 4
    Scalable
  • 3
    Great performance, Good in prod
  • 2
    Open source
  • 2
    All in one-productive-production ready-makes life easy
  • 13
    Fast startup
  • 13
    Open source
  • 11
    Low memory footprint
  • 10
    Integrated with GraalVM
  • 10
    Produce native code
  • 9
    Hot Reload
  • 7
    AOT compilation
  • 6
    Reactive

Sign up to add or upvote prosMake informed product decisions

Cons of Dropwizard
Cons of Quarkus
  • 2
    Slightly more confusing dependencies
  • 1
    Not on ThoughtWorks radar since 2014
  • 2
    Boilerplate code when using Reflection

Sign up to add or upvote consMake informed product decisions

What is Dropwizard?

Dropwizard is a sneaky way of making fast Java web applications. Dropwizard pulls together stable, mature libraries from the Java ecosystem into a simple, light-weight package that lets you focus on getting things done.

What is Quarkus?

It tailors your application for GraalVM and HotSpot. Amazingly fast boot time, incredibly low RSS memory (not just heap size!) offering near instant scale up and high density memory utilization in container orchestration platforms like Kubernetes. We use a technique we call compile time boot.

Need advice about which tool to choose?Ask the StackShare community!

What companies use Dropwizard?
What companies use Quarkus?
See which teams inside your own company are using Dropwizard or Quarkus.
Sign up for StackShare EnterpriseLearn More

Sign up to get full access to all the companiesMake informed product decisions

What tools integrate with Dropwizard?
What tools integrate with Quarkus?

Sign up to get full access to all the tool integrationsMake informed product decisions

What are some alternatives to Dropwizard and Quarkus?
Spring Boot
Spring Boot makes it easy to create stand-alone, production-grade Spring based Applications that you can "just run". We take an opinionated view of the Spring platform and third-party libraries so you can get started with minimum fuss. Most Spring Boot applications need very little Spring configuration.
Play
Play Framework makes it easy to build web applications with Java & Scala. Play is based on a lightweight, stateless, web-friendly architecture. Built on Akka, Play provides predictable and minimal resource consumption (CPU, memory, threads) for highly-scalable applications.
Spring
A key element of Spring is infrastructural support at the application level: Spring focuses on the "plumbing" of enterprise applications so that teams can focus on application-level business logic, without unnecessary ties to specific deployment environments.
Dropwizard Metrics
It is a Java library which gives you insight into what your code does in production. It provides a powerful toolkit of ways to measure the behavior of critical components in your production environment. It provides you with full-stack visibility.
Jersey
It is open source, production quality, framework for developing RESTful Web Services in Java that provides support for JAX-RS APIs and serves as a JAX-RS (JSR 311 & JSR 339) Reference Implementation. It provides it’s own API that extend the JAX-RS toolkit with additional features and utilities to further simplify RESTful service and client development.
See all alternatives