Awesome Java

这是Github上关于Java相关的工具,框架等等资源集合. 原文参考:。 @pdai

Bean Mapping

Frameworks that ease bean mapping.


Tools that handle the build cycle and dependencies of an application.

  • Apache Maven (opens new window) - Declarative build and dependency management that favors convention over configuration. It might be preferable to Apache Ant, which uses a rather procedural approach and can be difficult to maintain.
  • Bazel (opens new window) - Tool from Google that builds code quickly and reliably.
  • Buck (opens new window) - Encourages the creation of small, reusable modules consisting of code and resources.
  • Gradle (opens new window) - Incremental builds programmed via Groovy instead of declaring XML. Works well with Maven's dependency management.

Bytecode Manipulation

Libraries to manipulate bytecode programmatically.


Libraries that provide caching facilities.


Libraries for everything related to the CLI.

Cluster Management

Frameworks that can dynamically manage applications inside of a cluster.

Code Analysis

Tools that provide metrics and quality measurements.

Code Coverage

Frameworks and tools that enable code coverage metrics collection for test suites.

Code Generators

Tools that generate patterns for repetitive code in order to reduce verbosity and error-proneness.


Frameworks that help to create parsers, interpreters or compilers.


Libraries that provide external configuration.

Constraint Satisfaction Problem Solver

Libraries that help with implementing optimization and satisfiability problems.


Frameworks and libraries that simplify reading/writing CSV data.


Everything that simplifies interactions with the database.

Data Structures

Efficient and specific data structures.

Date and Time

Libraries related to handling date and time.

Dependency Injection

Libraries that help to realize the Inversion of Control (opens new window) paradigm.


Augmentation of the development process at a fundamental level.

Distributed Applications

Libraries and frameworks for writing distributed and fault-tolerant applications.

Distributed Transactions

Distributed transactions provide a mechanism for ensuring consistency of data updates in the presence of concurrent access and partial failures.


Tools that handle the distribution of applications in native formats.

Document Processing

Libraries that assist with processing office document formats.

Formal Verification

Formal-methods tools: proof assistants, model checking, symbolic execution, etc.

  • CATG (opens new window) - Concolic unit testing engine. Automatically generates unit tests using formal methods.
  • Checker Framework (opens new window) - Pluggable type systems. Includes nullness types, physical units, immutability types and more.
  • Daikon (opens new window) - Detects likely program invariants and generates JML specs based on those invariants.
  • Java Path Finder (JPF) (opens new window) - JVM formal verification tool containing a model checker and more. Created by NASA.
  • JMLOK 2.0 (opens new window) - Detects inconsistencies between code and JML specification through feedback-directed random tests generation, and suggests a likely cause for each nonconformance detected.
  • KeY (opens new window) - Formal software development tool that aims to integrate design, implementation, formal specification, and formal verification of object-oriented software as seamlessly as possible. Uses JML for specification and symbolic execution for verification.
  • OpenJML (opens new window) - Translates JML specifications into SMT-LIB format and passes the proof problems implied by the program to backend solvers.

Functional Programming

Libraries that facilitate functional programming.

Game Development

Frameworks that support the development of games.


Libraries for working with geospatial data and algorithms.


Libraries to create modern graphical user interfaces.

High Performance

Everything about high-performance computation, from collections to specific libraries.

HTTP Clients

Libraries that assist with creating HTTP requests and/or binding responses.

Hypermedia Types

Libraries that handle serialization to hypermedia types.


Integrated development environments that try to simplify several aspects of development.


Libraries that assist with the creation, evaluation or manipulation of graphical images.


Libraries for serializing and deserializing JSON to and from Java objects.

JSON Processing

Libraries for processing data in JSON format.


Current implementations of the JVM/JDK.


Libraries that log the behavior of an application.

Machine Learning

Tools that provide specific statistical algorithms for learning from data.


Tools that help send messages between clients to ensure protocol independency.


Everything else.


Tools for creating and managing microservices.


Tools that monitor applications in production.


For working with platform-specific native libraries.

Natural Language Processing

Libraries that specialize in processing text.


Libraries for building network servers.


APIs that handle the persistence of objects.


Java platform as a service.


Tools to help with PDF file creation.

Performance analysis

Tools for performance analysis, profiling and benchmarking.


Frameworks that are suites of multiple libraries encompassing several categories.

Apache Commons



Libraries that help the management of operating system processes.

Reactive libraries

Libraries for developing reactive applications.

REST Frameworks

Frameworks specifically for creating RESTful services.

  • Dropwizard (opens new window) - Opinionated framework for setting up modern web applications with Jetty, Jackson, Jersey and Metrics.
  • Jersey (opens new window) - JAX-RS reference implementation.
  • Microserver (opens new window) — A convenient, extensible microservices plugin system for Spring & Spring Boot. With more than 30 plugins and growing, it supports both micro-monolith and pure microservices styles.
  • Rapidoid (opens new window) - A simple, secure and extremely fast framework consisting of an embedded HTTP server, GUI components and dependency injection.
  • (opens new window) - Framework for building robust, scalable RESTful architectures using typesafe bindings and asynchronous, non-blocking IO with an end-to-end developer workflow that promotes clean practices, uniform interface design and consistent data modeling.
  • RESTEasy (opens new window) - Fully certified and portable implementation of the JAX-RS specification.
  • RestExpress (opens new window) - Thin wrapper on the JBoss Netty HTTP stack that provides scaling and performance.
  • Restlet Framework (opens new window) - Pioneering framework with powerful routing and filtering capabilities, and a unified client and server API.
  • Spark (opens new window) - Sinatra inspired framework.
  • Crnk (opens new window) - Implementation of the JSON API specification to build resource-oriented REST endpoints with sorting, filtering, paging, linking, object graphs, type-safety, bulk updates, integrations and more.
  • Swagger (opens new window) - Standard, language-agnostic interface to REST APIs.


Libraries for scientific computing, analysis and visualization.

Engines that index documents for search and analysis.


Libraries that handle security, authentication, authorization or session management.


Libraries that handle serialization with high efficiency.


Servers specifically used to deploy applications.

Template Engine

Tools that substitute expressions in a template.


Tools that test from model to the view.


Tools that simplify testing asynchronous services.


Testing for the software development process that emerged from TDD and was heavily influenced by DDD and OOAD.


Everything related to the creation and handling of random data.


Provide environments to run tests for a specific use case.


Libraries that provide custom matchers.


Other stuff related to testing.


Tools which mock collaborators to help testing single, isolated units.


Simplifies the writing of parameterized tests.


Libraries which provide general utility functions.

Version Managers

Utilities that help create the development shell environment and switch between different Java versions.

Web Crawling

Libraries that analyze the content of websites.

Web Frameworks

Frameworks that handle the communication between the layers of a web application.


Awesome Lists

Awesome lists related to the Java & JVM ecosystem.


Active discussions.


Websites that provide a frontend for this list. Please note, there won't be an official website. We don't associate with a particular website and everybody is allowed to create one.

Influential Books

Books that made a big impact and are still worth reading.

Podcasts and Screencasts

Something to look at or listen to while programming.


Active accounts to follow. Descriptions from Twitter.


Sites to read.


Contributions are very welcome!

Please have a look at the CONTRIBUTING (opens new window) guidelines.