mirror of
https://github.com/akullpp/awesome-java.git
synced 2021-12-06 00:34:19 +00:00
Added items to the science and data analysis topic. Note that I've only used JTransforms, Mines JTK and JUnit of the elements added. Colt and Parallel Colt have been passed down through word of mouth. Colt download link appears to be down, project may be abandoned (last update appears to be 2004). Unsure of Parallel Colt's status (2010).
251 lines
7.8 KiB
Markdown
251 lines
7.8 KiB
Markdown
# Awesome Java
|
|
|
|
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!
|
|
|
|
- [Awesome Java](#awesome-java)
|
|
- [Application Server](#application-server)
|
|
- [Build Tool](#build-tool)
|
|
- [Code Analysis](#code-analysis)
|
|
- [Continuous Integration](#continuous-integration)
|
|
- [Database Access](#database-access)
|
|
- [Date and Time](#date-and-time)
|
|
- [Dependency Injection](#dependency-injection)
|
|
- [GUI](#gui)
|
|
- [Game Development](#game-development)
|
|
- [IDE](#ide)
|
|
- [Logging](#logging)
|
|
- [Machine Learning](#machine-learning)
|
|
- [MapReduce](#mapreduce)
|
|
- [Messaging](#messaging)
|
|
- [Miscellaneous](#miscellaneous)
|
|
- [Natural Language Processing](#natural-language-processing)
|
|
- [ORM](#orm)
|
|
- [Permissions](#permissions)
|
|
- [Science and Data Analysis](#science-and-data-analysis)
|
|
- [Template Engine](#template-engine)
|
|
- [Testing](#testing)
|
|
- [Utility](#utility)
|
|
- [Web Crawling](#web-crawling)
|
|
- [Web Frameworks](#web-frameworks)
|
|
- [REST Frameworks](#rest-frameworks)
|
|
- [Resources](#resources)
|
|
- [Twitter](#twitter)
|
|
- [Websites](#websites)
|
|
- [Contributing](#contributing)
|
|
|
|
## Application Server
|
|
|
|
*Servers which are specifically used to deploy applications and provide extensive functionality for messaging and other Java specific features*
|
|
|
|
* [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
|
|
* [Jetty](http://www.eclipse.org/jetty/) - Part of the Eclipse Foundation
|
|
|
|
|
|
## 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
|
|
|
|
## Code Analysis
|
|
|
|
*Tools that provide metrics and quality measurements about static code*
|
|
|
|
* [SonarQube](http://www.sonarqube.org/)
|
|
* [FindBugs](http://findbugs.sourceforge.net/)
|
|
|
|
## Continuous Integration
|
|
|
|
*Tools which support continuously building, testing and releasing applications*
|
|
|
|
* [Jenkins](http://jenkins-ci.org/)
|
|
* [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
|
|
|
|
## Date and Time
|
|
|
|
*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)
|
|
* [Joda-Time](http://joda-time.sourceforge.net/)
|
|
|
|
## Dependency Injection
|
|
|
|
*Libraries that help to reliaze the [Inversion Of Control](http://en.wikipedia.org/wiki/Inversion_of_control) paradigma*
|
|
|
|
* [Google Guice](http://de.wikipedia.org/wiki/Google_Guice)
|
|
|
|
## GUI
|
|
|
|
*Libraries to create modern graphical user interfaces*
|
|
|
|
* [JavaFX](http://www.oracle.com/technetwork/java/javase/overview/javafx-overview-2158620.html)
|
|
|
|
## Game Development
|
|
|
|
*Frameworks that support the development of games*
|
|
|
|
* [LWJGL](http://lwjgl.org/)
|
|
* [libGDX](http://libgdx.badlogicgames.com/)
|
|
|
|
## IDE
|
|
|
|
*Integrated development environments that try to simplify several aspects of development*
|
|
|
|
* [NetBeans](https://netbeans.org/)
|
|
* [Eclipse](http://www.eclipse.org/)
|
|
* [IntelliJ](http://www.jetbrains.com/idea/)
|
|
|
|
## Logging
|
|
|
|
*Libraries that log the behavior of an application*
|
|
|
|
* [SLF4J](http://www.slf4j.org/) - An abstraction layer which is to be used with an implementation
|
|
* [Log4j](http://logging.apache.org/log4j/)
|
|
* [Logback](http://logback.qos.ch/)
|
|
|
|
## Machine Learning
|
|
|
|
*Tools that allow to learn from data via a set of specific algorithms*
|
|
|
|
* [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/)
|
|
|
|
## MapReduce
|
|
|
|
*Libraries that provide access to the MapReduce model*
|
|
|
|
* [Apache Hadoop](http://hadoop.apache.org/)
|
|
|
|
## Messaging
|
|
|
|
*Tools that help sending messages between clients to ensure protocol independency*
|
|
|
|
* [Apache ActiveMQ](http://activemq.apache.org/)
|
|
* [JBoss HornetQ](http://hornetq.jboss.org/)
|
|
|
|
## Miscellaneous
|
|
|
|
*Everything else*
|
|
|
|
* [Lombok](http://projectlombok.org/) - Code-generator which aims to reduce the verbosity of Java
|
|
|
|
## Natural Language Processing
|
|
|
|
*Libraries that are specialized on processing text*
|
|
|
|
* [Apache OpenNLP](https://opennlp.apache.org/)
|
|
* [LingPipe](http://alias-i.com/lingpipe/)
|
|
|
|
## ORM
|
|
|
|
*APIs which handle the persistence of objects*
|
|
|
|
* [EclipseLink](https://www.eclipse.org/eclipselink/)
|
|
* [Hibernate](http://hibernate.org/orm/)
|
|
|
|
## Permissions
|
|
|
|
*Libraries that handle role/rights with associated permissions*
|
|
|
|
* [Apache Shiro](http://shiro.apache.org/)
|
|
|
|
## Science and Data Analysis
|
|
|
|
*Libraries for scientific computing and analysis*
|
|
|
|
* [Colt](http://acs.lbl.gov/ACSoftware/colt/) - High performance scientific and technical computing
|
|
* [JTransforms](https://sites.google.com/site/piotrwendykier/software/jtransforms) - Multi-thread FFT library
|
|
* [JUnit](http://junit.org) - Framework for repeatable tests
|
|
* [Mines JTK](https://github.com/dhale/jtk) - Tools for scientists and engineers (digital signal processing, linear algebra, inversion, 2-D and 3-D graphics, etc.)
|
|
* [Parallel Colt](https://sites.google.com/site/piotrwendykier/software/parallelcolt) - Multi-thread high performance scientific and technical computing
|
|
|
|
## Template Engine
|
|
|
|
*Tools which substitute expressions in a template*
|
|
|
|
* JSP
|
|
* [Apache Tapestry](http://tapestry.apache.org/)
|
|
* [Apache Velocity](http://velocity.apache.org/)
|
|
* [Thymeleaf](http://www.thymeleaf.org/)
|
|
|
|
## Testing
|
|
|
|
*Tools that test from object to interface level*
|
|
|
|
* [Apache JMeter](http://jmeter.apache.org/) - Functional testing and performance measurements
|
|
* [Mockito](http://code.google.com/p/mockito/)
|
|
* [Arquillian](http://arquillian.org/)
|
|
* [Selenium](http://docs.seleniumhq.org/)
|
|
* [VisualVM](http://visualvm.java.net/)
|
|
* [Eclipse Memory Analyzer Tool](http://www.eclipse.org/mat/)
|
|
|
|
## Utility
|
|
|
|
*Libraries which provide unspecific functionality, e.g. optimized datastructures*
|
|
|
|
* [Apache Commons](http://commons.apache.org/)
|
|
* [Google Guava](http://code.google.com/p/guava-libraries/)
|
|
|
|
## Web Crawling
|
|
|
|
*Libraries that analyze the content of websites*
|
|
|
|
* [Apache Nutch](http://nutch.apache.org/)
|
|
* [Crawler4j](https://code.google.com/p/crawler4j/)
|
|
|
|
## Web Frameworks
|
|
|
|
*Frameworks that handle the communication between the layers of an web application*
|
|
|
|
* [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/)
|
|
* [PrimeFaces](http://primefaces.org/)
|
|
|
|
## REST Frameworks
|
|
|
|
*Frameworks specifically for creating RESTful services*
|
|
|
|
* [Dropwizard](https://dropwizard.github.io/dropwizard/)
|
|
* [Jersey](https://jersey.java.net/)
|
|
|
|
## Twitter
|
|
|
|
*People to follow*
|
|
|
|
* [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/)
|
|
|
|
## Websites
|
|
|
|
*Important websites*
|
|
|
|
* [Java.net](http://java.net/)
|
|
|
|
# Contributing
|
|
|
|
Contributions are very welcome. Just mind the general style.
|