Home

Awesome

Awesome Java

A curated list of awesome Java frameworks, libraries and software. Inspired by other awesome lists.

Build Tool

Tools which handle the buildcycle of an application.

Bytecode Manipulation

Libraries to manipulate Java bytecode programmatically.

Cluster Management

Frameworks which can dynamically manage applications inside of a cluster.

Code Analysis

Tools that provide metrics and quality measurements.

Compiler-compiler

Frameworks that help to create parsers, interpreters or compilers.

Configuration

Libraries that provide external configuration.

Constraint Satisfaction Problem Solver

Libraries that help on implementing optimization and satisfiability problems.

Continuous Integration

Tools which support continuously building, testing and releasing applications.

CSV

Database

Everything which simplifies interactions with the database.

Data structures

Date and Time

Libraries related to handling date and time.

Dependency Injection

Libraries that help to realize the Inversion of Control paradigm.

Development

Augmentation of the development process at a fundamental level.

Distributed Applications

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

Distributed Databases

Databases in a distributed system that appear to applications as a single data source.

Distribution

Tools which handle the distribution of Java applications in native formats.

Document Processing

Libraries that assist with processing office document formats.

Functional Programming

Libraries that facilitate functional programming in Java.

Game Development

Frameworks that support the development of games.

GUI

Libraries to create modern graphical user interfaces.

High Performance

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

IDE

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

Imagery

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

JSON

Libraries that simplify JSON processing.

JVM and JDK

Current implementations of the JVM/JDK.

Logging

Libraries that log the behavior of an application.

Machine Learning

Tools that provide specific statistical algorithms which allow to learn from data.

Messaging

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

Miscellaneous

Everything else.

Monitoring

Tools that monitor applications in production.

Native

For working with platform-specific native libraries.

Natural Language Processing

Libraries that specialize on processing text.

Networking

Libraries for network programming.

ORM

APIs which handle the persistence of objects.

PDF

Everything that helps with the creation of PDF files.

Performance analysis

Tools for performance optimization and dynamic program analysis.

REST Frameworks

Frameworks specifically for creating RESTful services.

Science

Libraries for scientific computing and analysis.

Search

Engines which index documents for search and analysis.

Security

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

Serialization

Libraries that handle serialization with high efficiency.

Server

Servers which are specifically used to deploy applications.

Template Engine

Tools which substitute expressions in a template.

Testing

Tools that test from object to interface level including performance and other benchmarks.

Utility

Libraries which provide general utility functions.

Web Crawling

Libraries that analyze the content of websites.

Web Frameworks

Frameworks that handle the communication between the layers of an web application. h

Resources

Communities

Active discussions.

Influential Books

Books about Java that had a high impact and are still worth reading.

Podcasts

Something to listen to while programming.

Twitter

Active accounts to follow.

Websites

Sites to read.

Contributing

Contributions are very welcome!

Please have a look at CONTRIBUTING for guidelines.