2014-07-09 09:35:42 -04:00
# Awesome Java
2014-07-09 06:12:44 -04:00
2014-07-10 06:28:58 -04:00
A curated list of awesome Java frameworks, libraries and software. Inspired by [awesome-python ](https://github.com/vinta/awesome-python ). Topics which have no libraries as of yet are located in README.tmp!
2014-07-09 09:35:42 -04:00
- [Awesome Java ](#awesome-java )
2014-07-10 04:13:02 -04:00
- [Application Server ](#application-server )
2014-07-10 06:10:22 -04:00
- [Build Tool ](#build-tool )
2014-07-10 04:31:54 -04:00
- [Code Analysis ](#code-analysis )
2014-07-10 04:13:02 -04:00
- [Continuous Integration ](#continuous-integration )
2014-07-10 08:12:40 -04:00
- [Database Access ](#database-access )
2014-07-09 09:35:42 -04:00
- [Date and Time ](#date-and-time )
2014-07-10 04:31:54 -04:00
- [Dependency Injection ](#dependency-injection )
2014-07-10 08:16:09 -04:00
- [GUI ](#gui )
2014-07-09 09:35:42 -04:00
- [Game Development ](#game-development )
2014-07-10 04:31:54 -04:00
- [IDE ](#ide )
2014-07-10 08:31:20 -04:00
- [JSON ](#json )
2014-07-09 09:35:42 -04:00
- [Logging ](#logging )
- [Machine Learning ](#machine-learning )
- [MapReduce ](#mapreduce )
- [Messaging ](#messaging )
- [Miscellaneous ](#miscellaneous )
- [Natural Language Processing ](#natural-language-processing )
2014-07-10 08:12:40 -04:00
- [ORM ](#orm )
2014-07-09 09:35:42 -04:00
- [Permissions ](#permissions )
- [Template Engine ](#template-engine )
- [Testing ](#testing )
- [Utility ](#utility )
- [Web Crawling ](#web-crawling )
- [Web Frameworks ](#web-frameworks )
2014-07-10 07:05:51 -04:00
- [REST Frameworks ](#rest-frameworks )
2014-07-09 09:35:42 -04:00
- [Resources ](#resources )
- [Twitter ](#twitter )
- [Websites ](#websites )
- [Contributing ](#contributing )
2014-07-10 04:13:02 -04:00
## Application Server
2014-07-10 06:10:22 -04:00
*Servers which are specifically used to deploy applications and provide extensive functionality for messaging and other Java specific features*
2014-07-10 04:13:02 -04:00
2014-07-10 06:10:22 -04:00
* [GlassFish ](https://glassfish.java.net/ ) - Open source reference implementation for Java EE sponsored by Oracle with a limited lifetime
* [WildFly ](http://www.wildfly.org/ ) - Formerly known as JBoss and developed by Red Hat
2014-07-10 08:12:40 -04:00
* [Jetty ](http://www.eclipse.org/jetty/ ) - Part of the Eclipse Foundation
2014-07-09 10:08:42 -04:00
2014-07-10 06:10:22 -04:00
## Build Tool
*Tools which handle the build lifecycle of an application*
* [Apache Ant ](http://ant.apache.org/ ) - Procedural build configuration via XML files
* [Apache Maven ](http://maven.apache.org/ ) - Declarative lifecycle and dependency managment which favors convention over configuration
* [Gradle ](http://www.gradle.org/ ) - Incremental build configuration which is programmed via Groovy
2014-07-09 10:08:42 -04:00
2014-07-10 04:31:54 -04:00
## Code Analysis
2014-07-10 04:13:02 -04:00
2014-07-10 06:10:22 -04:00
*Tools that provide metrics and quality measurements about static code*
2014-07-10 04:13:02 -04:00
* [SonarQube ](http://www.sonarqube.org/ )
2014-07-10 08:12:40 -04:00
* [FindBugs ](http://findbugs.sourceforge.net/ )
2014-07-10 04:13:02 -04:00
## Continuous Integration
2014-07-10 06:10:22 -04:00
*Tools which support continuously building, testing and releasing applications*
2014-07-10 04:13:02 -04:00
* [Jenkins ](http://jenkins-ci.org/ )
2014-07-10 08:12:40 -04:00
* [Hudson ](http://hudson-ci.org/ )
## Database Access
*Everything which simplifies the access to the database*
* [DBeaver ](http://dbeaver.jkiss.org/ ) - Graphical database manager
* [JDBI ](http://jdbi.org/ ) - Simplification of JDBC
* [jOOQ ](http://www.jooq.org/ ) - Generates typesafe code based on your SQL schema
2014-07-10 04:13:02 -04:00
2014-07-09 09:35:42 -04:00
## Date and Time
2014-07-09 10:08:42 -04:00
2014-07-10 04:13:02 -04:00
*Libraries related to date and time.*
* [Java 8 SE: Date and Time API ](http://www.oracle.com/technetwork/articles/java/jf14-date-time-2125367.html )
2014-07-09 10:08:42 -04:00
* [Joda-Time ](http://joda-time.sourceforge.net/ )
2014-07-10 04:13:02 -04:00
## Dependency Injection
2014-07-10 06:10:22 -04:00
*Libraries that help to reliaze the [Inversion Of Control ](http://en.wikipedia.org/wiki/Inversion_of_control ) paradigma*
2014-07-10 04:13:02 -04:00
* [Google Guice ](http://de.wikipedia.org/wiki/Google_Guice )
2014-07-10 08:16:09 -04:00
## GUI
*Libraries to create modern graphical user interfaces*
* [JavaFX ](http://www.oracle.com/technetwork/java/javase/overview/javafx-overview-2158620.html )
2014-07-09 09:35:42 -04:00
## Game Development
2014-07-09 10:08:42 -04:00
2014-07-10 06:10:22 -04:00
*Frameworks that support the development of games*
2014-07-09 10:08:42 -04:00
* [LWJGL ](http://lwjgl.org/ )
* [libGDX ](http://libgdx.badlogicgames.com/ )
2014-07-10 04:31:54 -04:00
## IDE
2014-07-09 16:56:32 -04:00
2014-07-10 06:10:22 -04:00
*Integrated development environments that try to simplify several aspects of development*
2014-07-09 16:56:32 -04:00
* [NetBeans ](https://netbeans.org/ )
* [Eclipse ](http://www.eclipse.org/ )
* [IntelliJ ](http://www.jetbrains.com/idea/ )
2014-07-10 08:31:20 -04:00
## JSON
*Libraries that simplify JSON processing*
* [Google Gson ](https://code.google.com/p/google-gson/ )
* [Jackson ](http://wiki.fasterxml.com/JacksonHome )
2014-07-09 09:35:42 -04:00
## Logging
2014-07-09 16:56:32 -04:00
2014-07-10 06:10:22 -04:00
*Libraries that log the behavior of an application*
2014-07-10 04:13:02 -04:00
* [SLF4J ](http://www.slf4j.org/ ) - An abstraction layer which is to be used with an implementation
2014-07-09 16:56:32 -04:00
* [Log4j ](http://logging.apache.org/log4j/ )
* [Logback ](http://logback.qos.ch/ )
2014-07-09 09:35:42 -04:00
## Machine Learning
2014-07-09 10:08:42 -04:00
2014-07-10 06:10:22 -04:00
*Tools that allow to learn from data via a set of specific algorithms*
2014-07-09 10:08:42 -04:00
* [Apache Mahout ](https://mahout.apache.org/ )
* [Apache Spark ](http://spark.apache.org/ )
* [Mallet ](http://mallet.cs.umass.edu/ )
* [Weka ](http://www.cs.waikato.ac.nz/ml/weka/ )
2014-07-09 09:35:42 -04:00
## MapReduce
2014-07-09 10:08:42 -04:00
2014-07-10 06:10:22 -04:00
*Libraries that provide access to the MapReduce model*
2014-07-09 10:08:42 -04:00
* [Apache Hadoop ](http://hadoop.apache.org/ )
2014-07-09 09:35:42 -04:00
## Messaging
2014-07-10 04:31:54 -04:00
2014-07-10 06:10:22 -04:00
*Tools that help sending messages between clients to ensure protocol independency*
2014-07-10 04:31:54 -04:00
* [Apache ActiveMQ ](http://activemq.apache.org/ )
2014-07-10 06:59:58 -04:00
* [JBoss HornetQ ](http://hornetq.jboss.org/ )
2014-07-10 04:31:54 -04:00
2014-07-09 09:35:42 -04:00
## Miscellaneous
2014-07-10 04:13:02 -04:00
2014-07-10 06:10:22 -04:00
*Everything else*
2014-07-10 08:43:56 -04:00
* [Jimfs ](https://github.com/google/jimfs ) - An in-memory file system
2014-07-10 04:13:02 -04:00
* [Lombok ](http://projectlombok.org/ ) - Code-generator which aims to reduce the verbosity of Java
2014-07-09 09:35:42 -04:00
## Natural Language Processing
2014-07-09 10:08:42 -04:00
2014-07-10 06:10:22 -04:00
*Libraries that are specialized on processing text*
2014-07-09 10:08:42 -04:00
* [Apache OpenNLP ](https://opennlp.apache.org/ )
* [LingPipe ](http://alias-i.com/lingpipe/ )
2014-07-10 08:12:40 -04:00
## ORM
*APIs which handle the persistence of objects*
* [EclipseLink ](https://www.eclipse.org/eclipselink/ )
* [Hibernate ](http://hibernate.org/orm/ )
2014-07-09 09:35:42 -04:00
## Permissions
2014-07-09 16:56:32 -04:00
2014-07-10 06:10:22 -04:00
*Libraries that handle role/rights with associated permissions*
2014-07-09 16:56:32 -04:00
* [Apache Shiro ](http://shiro.apache.org/ )
2014-07-09 09:35:42 -04:00
## Template Engine
2014-07-09 16:56:32 -04:00
2014-07-10 06:10:22 -04:00
*Tools which substitute expressions in a template*
* JSP
2014-07-09 16:56:32 -04:00
* [Apache Tapestry ](http://tapestry.apache.org/ )
* [Apache Velocity ](http://velocity.apache.org/ )
* [Thymeleaf ](http://www.thymeleaf.org/ )
2014-07-10 08:18:50 -04:00
* [Jtwig ](http://jtwig.org/ )
2014-07-09 16:56:32 -04:00
2014-07-09 09:35:42 -04:00
## Testing
2014-07-09 10:08:42 -04:00
2014-07-10 06:10:22 -04:00
*Tools that test from object to interface level*
2014-07-10 06:11:10 -04:00
* [Apache JMeter ](http://jmeter.apache.org/ ) - Functional testing and performance measurements
2014-07-09 10:08:42 -04:00
* [Mockito ](http://code.google.com/p/mockito/ )
2014-07-10 04:13:02 -04:00
* [Arquillian ](http://arquillian.org/ )
2014-07-10 08:43:56 -04:00
* [Selenium ](http://docs.seleniumhq.org/ ) - Frontend testing
2014-07-10 04:13:02 -04:00
* [VisualVM ](http://visualvm.java.net/ )
* [Eclipse Memory Analyzer Tool ](http://www.eclipse.org/mat/ )
2014-07-10 08:43:56 -04:00
* [Hamcrest ](http://hamcrest.org/JavaHamcrest/ ) - Framework for writing declarative assertion matchers
* [FEST ](https://code.google.com/p/fest/ ) - Collection of testing libraries
* [AssertJ ](http://joel-costigliola.github.io/assertj/ ) - Fluent assertions
* [Calipher ](https://code.google.com/p/caliper/ ) - Microbenchmarking framework
* [JMH ](http://openjdk.java.net/projects/code-tools/jmh/ ) - Microbenchmarking
2014-07-10 08:44:34 -04:00
* [TestNG ](http://testng.org/ ) - Testing framework
* [JUnit ](http://junit.org/ ) - Testing framework
2014-07-09 10:08:42 -04:00
2014-07-09 09:35:42 -04:00
## Utility
2014-07-10 04:13:02 -04:00
2014-07-10 06:10:22 -04:00
*Libraries which provide unspecific functionality, e.g. optimized datastructures*
2014-07-10 04:13:02 -04:00
* [Apache Commons ](http://commons.apache.org/ )
* [Google Guava ](http://code.google.com/p/guava-libraries/ )
2014-07-09 09:35:42 -04:00
## Web Crawling
2014-07-09 16:56:32 -04:00
2014-07-10 06:10:22 -04:00
*Libraries that analyze the content of websites*
2014-07-09 16:56:32 -04:00
* [Apache Nutch ](http://nutch.apache.org/ )
* [Crawler4j ](https://code.google.com/p/crawler4j/ )
2014-07-09 09:35:42 -04:00
## Web Frameworks
2014-07-09 10:08:42 -04:00
2014-07-10 06:10:22 -04:00
*Frameworks that handle the communication between the layers of an web application*
2014-07-09 10:08:42 -04:00
* [Spring ](http://spring.io/ )
* [Grails ](https://grails.org/ )
* [Vaadin ](https://vaadin.com/ )
* [GWT ](http://www.gwtproject.org/ )
* [Apache Wicket ](http://wicket.apache.org/ )
* [Play ](http://www.playframework.com/ )
* [Apache Struts ](http://struts.apache.org/ )
2014-07-09 16:56:32 -04:00
* [PrimeFaces ](http://primefaces.org/ )
2014-07-09 10:08:42 -04:00
2014-07-10 07:05:51 -04:00
## REST Frameworks
*Frameworks specifically for creating RESTful services*
* [Dropwizard ](https://dropwizard.github.io/dropwizard/ )
* [Jersey ](https://jersey.java.net/ )
2014-07-09 09:35:42 -04:00
## Twitter
2014-07-09 15:47:53 -04:00
2014-07-10 06:10:22 -04:00
*People to follow*
2014-07-09 15:47:53 -04:00
* [Adam Bien ](https://twitter.com/AdamBien/ )
* [Antonio Goncalves ](https://twitter.com/agoncal/ )
* [Arun Gupta ](https://twitter.com/arungupta/ )
* [Java ](https://twitter.com/java/ )
* [Java EE ](https://twitter.com/Java_EE/ )
* [Java.net ](https://twitter.com/javanetbuzz/ )
* [Joshua Bloch ](https://twitter.com/joshbloch/ )
* [Pete Muir ](https://twitter.com/plmuir/ )
2014-07-09 09:35:42 -04:00
## Websites
2014-07-09 15:47:53 -04:00
2014-07-10 06:10:22 -04:00
*Important websites*
2014-07-09 15:47:53 -04:00
* [Java.net ](http://java.net/ )
2014-07-09 09:35:42 -04:00
# Contributing
Contributions are very welcome. Just mind the general style.