awesome-java
A curated list of awesome frameworks, libraries and software for the Java programming language.
https://github.com/eric-erki/awesome-java
Last synced: about 12 hours ago
JSON representation
-
Projects
-
Bean Mapping
- dOOv - Provides fluent API for typesafe domain model validation and mapping. It uses annotations, code generation and a type safe DSL to make bean validation and mapping fast and easy.
- Dozer - Mapper that copies data from one object to another using annotations and API or XML configuration.
- JMapper - Uses byte code manipulation for lightning-fast mapping. Supports annotations and API or XML configuration.
- MapStruct - Code generator that simplifies mappings between different bean types, based on a convention-over-configuration approach.
- ModelMapper - Intelligent object mapping library that automatically maps objects to each other.
- Orika - JavaBean-mapping framework that recursively copies (among other capabilities) data from one object to another.
- reMap - Lambda and method handle-based mapping which requires code and not annotations if objects have different names.
- Selma - Annotation processor-based bean mapper.
- dOOv - Provides fluent API for typesafe domain model validation and mapping. It uses annotations, code generation and a type safe DSL to make bean validation and mapping fast and easy.
- Selma - Annotation processor-based bean mapper.
-
Build
-
Bytecode Manipulation
- bytecode-viewer - Java 8 Jar & Android APK reverse engineering suite. (GPL-3.0-only)
- cglib - Bytecode generation library.
- Javassist - Tries to simplify bytecode editing.
- Mixin - Manipulate bytecode at runtime using real Java code.
- Perses - Dynamically injects failure/latency at the bytecode level according to principles of chaos engineering.
- ASM - All-purpose, low-level bytecode manipulation and analysis.
- Perses - Dynamically injects failure/latency at the bytecode level according to principles of chaos engineering.
-
Caching
-
CLI
- ASCII Table - Library to draw tables in ASCII.
- Airline - Annotation-based framework for parsing Git-like command-line arguments.
- args4j - Small library to parse command-line arguments.
- Jansi - ANSI escape codes to format console output.
- Java ASCII Render - Graphical primitives for the console.
- JCommander - Command-line argument-parsing framework with custom types and validation via implementing interfaces.
- args4j - Small library to parse command-line arguments.
- JLine - Includes features from modern shells like completion or history.
- JOpt Simple - Fluent parser that uses the POSIX#getopt and GNU#getopt_long syntaxes.
- Text-IO - Aids the creation of full console-based applications.
- Lanterna - Easy console text-GUI library, similar to curses. (LGPL-3.0-only)
- jbock - Typesafe, reflection-free, annotation based command-line parser.
- Jexer - Advanced console (and Swing) text user interface (TUI) library, with mouse-draggable windows, built-in terminal window manager, and sixel image support. Looks like [Turbo Vision](https://en.wikipedia.org/wiki/Turbo_Vision).
-
Cluster Management
- Singularity - Mesos framework that makes deployment and operations easy. It supports web services, background workers, scheduled jobs, and one-off tasks.
- Apache Aurora - Mesos framework for long-running services and cron jobs.
- Apache Mesos - Abstracts CPU, memory, storage, and other compute resources away from machines.
- Singularity - Mesos framework that makes deployment and operations easy. It supports web services, background workers, scheduled jobs, and one-off tasks.
-
Code Analysis
- NullAway - Eliminates NullPointerExceptions with low build-time overhead.
- PMD - Source code analysis for finding bad coding practices.
- Infer - Modern static analysis tool for verifying the correctness of code.
- Checkstyle - Static analysis of coding conventions and standards. (LGPL-2.1-or-later)
- Error Prone - Catches common programming mistakes as compile-time errors.
- SonarJava - Static analyzer for SonarQube & SonarLint. (LGPL-3.0-only)
- Spoon - Library for analyzing and transforming Java source code.
- Spotbugs - Static analysis of bytecode to find potential bugs. (LGPL-2.1-only)
- Sourcetrail - Visual source code navigator.
-
Configuration
- KAConf - Annotation-based configuration system for Java and Kotlin.
- owner - Reduces boilerplate of properties.
- owner - Reduces boilerplate of properties.
- centraldogma - Highly-available version-controlled service configuration repository based on Git, ZooKeeper and HTTP/2.
- cfg4j - Modern configuration library for distributed apps written in Java.
- config - Configuration library for JVM languages.
- dotenv - Twelve-factor configuration library which uses environment-specific files.
-
CSV
- uniVocity-parsers - One of the fastest and most feature-complete parsers. Also comes with parsers for TSV and fixed-width records.
- jackson-dataformat-csv - Jackson extension for reading and writing CSV.
- Super CSV - Powerful CSV parser with support for Dozer, Joda-Time and Java 8.
- opencsv - Simple CSV parser.
-
Data Structures
- Big Queue - Fast and persistent queue based on memory-mapped files.
- HyperMinHash-java - Probabilistic data structure for computing union, intersection, and set cardinality in loglog space.
- Persistent Collection - Persistent and immutable analogue of the Java Collections Framework.
- Protobuf - Google's data interchange format.
- Tape - Lightning-fast, transactional, file-based FIFO.
- Wire - Clean, lightweight protocol buffers.
- Apache Avro - Data interchange format with dynamic typing, untagged data, and absence of manually assigned IDs.
- Apache Orc - Fast and efficient columnar storage format for Hadoop-based workloads.
-
Database
- eXist - NoSQL document database and application platform. (LGPL-2.1-only)
- FlexyPool - Brings metrics and failover strategies to the most common connection pooling solutions.
- Flyway - Simple database migration tool.
- HikariCP - High-performance JDBC connection pool.
- jasync-sql - Async DB driver for MySQL and PostgreSQL.
- JDBI - Convenient abstraction of JDBC.
- Jest - Client for the Elasticsearch REST API.
- Realm - Mobile database to run directly inside phones, tablets or wearables.
- requery - Modern, lightweight but powerful object mapping and SQL generator. Easily map to or create databases, or perform queries and updates from any Java-using platform.
- Xodus - Highly concurrent transactional schema-less and ACID-compliant embedded database.
- Liquibase - Database-independent library for tracking, managing and applying database schema changes.
- Presto - Distributed SQL query engine for big data.
- Jedis - Small client for interaction with Redis, with methods for commands.
- AranoDB - ArangoDB Java driver.
- Chronicle Map - Efficient, in-memory (opt. persisted to disk), off-heap key-value store.
- jetcd - Client library for etcd.
- Jinq - Typesafe database queries via symbolic execution of Java 8 Lambdas (on top of JPA or jOOQ).
- Leaf - Distributed ID generate service.
- MariaDB4j - Launcher for MariaDB that requires no installation or external dependencies.
- Querydsl - Typesafe unified queries.
- Redisson - Allows for distributed and scalable data structures on top of a Redis server.
- Speedment - Database access library that utilizes Java 8's Stream API for querying.
- Apache Phoenix - High-performance relational database layer over HBase for low-latency applications.
- druid - High-performance, column-oriented, distributed data store.
- sql2o - Thin JDBC wrapper that simplifies database access and provides simple mapping of ResultSets to POJOs.
-
Dependency Injection
- Feather - Ultra-lightweight, JSR-330-compliant dependency injection library.
- Inversion of Control
- Dagger - Compile-time injection framework without reflection.
- Governator - Extensions and utilities that enhance Google Guice.
- Guice - Lightweight and opinionated framework that completes Dagger.
- HK2 - Lightweight and dynamic dependency injection framework.
- JayWire - Lightweight dependency injection framework. (LGPL-3.0-only)
- Apache DeltaSpike - CDI extension framework.
-
Distributed Applications
- JGroups - Toolkit for reliable messaging and cluster creation.
- Orbit - Virtual actors; adds another level of abstraction to traditional actors.
- Quasar - Lightweight threads and actors for the JVM.
- Atomix - Fault-tolerant distributed coordination framework.
- Failsafe - Simple failure handling with retries and circuit breakers.
- JGroups - Toolkit for reliable messaging and cluster creation.
- Dropwizard Circuit Breaker - Circuit breaker design pattern for Dropwizard. (GPL-2.0-only)
- resilience4j - Functional fault tolerance library.
- ScaleCube Services - Embeddable Cluster-Membership library based on SWIM and gossip protocol.
- Zuul - Gateway service that provides dynamic routing, monitoring, resiliency, security, and more.
- Hazelcast - Highly scalable in-memory datagrid with a free open-source version.
- Orbit - Virtual actors; adds another level of abstraction to traditional actors.
-
Distributed Transactions
- Bitronix - Simple but complete implementation of the JTA 1.1 API.
- Seata - Delivers high performance and easy to use distributed transaction services under a microservices architecture.
- Seata - Delivers high performance and easy to use distributed transaction services under a microservices architecture.
-
Distribution
- Capsule - Simple and powerful packaging and deployment. A fat JAR on steroids, or a "Docker for Java" that supports JVM-optimized containers.
- packr - Packs JARs, assets and the JVM for native distribution on Windows, Linux and macOS.
- really-executable-jars-maven-plugin - Maven plugin for making self-executing JARs.
- IzPack - Setup authoring tool for cross-platform deployments.
- Boxfuse .
-
Natural Language Processing
- Beagle - Stored full-text search query engine.
- CogCompNLP - Provides common annotators for plain text input. (Research and Academic Use License)
- Lingua - Natural language detection library, especially suited for short paragraphs of text.
- LingPipe - Toolkit for tasks ranging from POS tagging to sentiment analysis.
- CoreNLP - Provides a set of fundamental tools for tasks like tagging, named entity recognition, and sentiment analysis. (GPL-3.0-or-later)
- DKPro - Collection of reusable NLP tools for linguistic pre-processing, machine learning, lexical resources, etc.
-
Networking
- AkkaGRPC - Support for building streaming gRPC servers and clients on top of Akka Streams.
- Comsat - Integrates standard Java web-related APIs with Quasar fibers and actors.
- Finagle - Extensible RPC system for constructing high-concurrency servers. It implements uniform client and server APIs for several protocols, and is protocol-agnostic to simplify implementation of new protocols.
- gRPC - RPC framework based on protobuf and HTTP/2.
- KryoNet - Provides a clean and simple API for efficient TCP and UDP client/server network communication using NIO and Kryo.
- Nifty - Implementation of Thrift clients and servers on Netty.
- ServiceTalk - Framework built on Netty with APIs tailored to specific protocols and support for multiple programming paradigms.
- sshj - Programatically use SSH, SCP or SFTP.
- TLS Channel - Implements a ByteChannel interface over SSLEngine, enabling easy-to-use (socket-like) TLS.
- urnlib - Represent, parse and encode URNs, as in RFC 2141. (GPL-3.0-only)
- Dubbo - High-performance RPC framework.
- Grizzly - NIO framework. Used as a network layer in Glassfish.
- MINA - Abstract, event-driven async I/O API for network operations over TCP/IP and UDP/IP via Java NIO.
- Netty - Framework for building high-performance network applications.
- Nifty - Implementation of Thrift clients and servers on Netty.
- Undertow - Web server providing both blocking and non-blocking APIs based on NIO. Used as a network layer in WildFly. (LGPL-2.1-only)
-
PaaS
- Google Cloud  data models.
- ThreeTen-Extra - Additional date-time classes that complement those in JDK 8.
- Time4J - Advanced date and time library. (LGPL-2.1-only)
- Almanac Converter - Simple conversion between different calendar systems.
-
-
Resources
-
Twitter
- Aleksey Shipilëv - Performance geek, benchmarking czar, concurrency bug hunter.
- Antonio Goncalves - Java Champion, JUG Leader, Devoxx France, Java EE 6/7, JCP, Author.
- Ed Burns - Consulting Member of the Technical Staff at Oracle.
- Eugen Paraschiv - Author of the Spring Security Course.
- Aleksey Shipilëv - Performance geek, benchmarking czar, concurrency bug hunter.
- Brian Goetz - Java Language Architect at Oracle.
- Bruno Borges - Product Manager/Java Jock at Oracle.
- Chris Richardson - Software architect, consultant, and serial entrepreneur, Java Champion, JavaOne Rock Star, \*POJOs in Action- author.
- Ed Burns - Consulting Member of the Technical Staff at Oracle.
- Eugen Paraschiv - Author of the Spring Security Course.
- Heinz Kabutz - Java Champion, speaker, author of The Java Specialists' Newsletter, concurrency performance expert.
- Holly Cummins - Technical Lead of IBM London's Bluemix Garage, Java Champion, developer, author, JavaOne rockstar.
- James Weaver - Java/JavaFX/IoT developer, author and speaker.
- Java Magazine - Official Java Magazine account.
- Javin Paul - Well-known Java blogger.
- Josh Long - Spring Advocate at Pivotal, author of O'Reilly's Cloud Native Java- and Building Microservices with Spring Boot, JavaOne Rock Star.
- Lukas Eder - Java Champion, speaker, JUG.ch co-leader, Founder and CEO Data Geekery (jOOQ).
- Mario Fusco - RedHatter, JUG coordinator, frequent speaker and author.
- Mark Heckler - Pivotal Principal Technologist and Developer Advocate, conference speaker, published author, and Java Champion, focusing on Internet of Things and the cloud.
- Mark Reinhold - Chief Architect, Java Platform Group, Oracle.
- Markus Eisele - Java EE evangelist, Red Hat.
- Martijn Verburg - London JUG co-leader, speaker, author, Java Champion and much more.
- Martin Thompson - Pasty faced performance gangster.
- Monica Beckwith - Performance consultant, JavaOne Rock Star.
- OpenJDK - Official OpenJDK account.
- Peter Lawrey - Peter Lawrey, Java performance expert.
- Randy Shoup - Stitch Fix VP Engineering, speaker, JavaOne Rock Star.
- Reza Rahman - Java EE/GlassFish/WebLogic evangelist, author, speaker, open source hacker.
- Sander Mak - Java Champion, author.
- Simon Maple - Java Champion, VirtualJUG founder, LJC leader, RebelLabs author.
- Spencer Gibb - Software Engineer, Dad, Geek, Co-founder and Lead of Spring Cloud Core @pivotal.
- Stephen Colebourne - Java Champion, speaker.
- Trisha Gee - Java Champion and speaker.
- Venkat Subramaniam - Author, University of Houston professor, MicroSoft MVP award recipient, JavaOne Rock Star, Java Champion.
- Vlad Mihalcea - Java Champion working on Hypersistence Optimizer, database aficionado, author of High-Performance Java Persistence book.
- Bruno Borges - Product Manager/Java Jock at Oracle.
- Chris Richardson - Software architect, consultant, and serial entrepreneur, Java Champion, JavaOne Rock Star, \*POJOs in Action- author.
- Josh Long - Spring Advocate at Pivotal, author of O'Reilly's Cloud Native Java- and Building Microservices with Spring Boot, JavaOne Rock Star.
- Randy Shoup - Stitch Fix VP Engineering, speaker, JavaOne Rock Star.
- Java EE - Official Java EE Twitter account.
- Brian Goetz - Java Language Architect at Oracle.
- Heinz Kabutz - Java Champion, speaker, author of The Java Specialists' Newsletter, concurrency performance expert.
- James Weaver - Java/JavaFX/IoT developer, author and speaker.
- Lukas Eder - Java Champion, speaker, JUG.ch co-leader, Founder and CEO Data Geekery (jOOQ).
- Mark Heckler - Pivotal Principal Technologist and Developer Advocate, conference speaker, published author, and Java Champion, focusing on Internet of Things and the cloud.
- Mark Reinhold - Chief Architect, Java Platform Group, Oracle.
- Martijn Verburg - London JUG co-leader, speaker, author, Java Champion and much more.
- Peter Lawrey - Peter Lawrey, Java performance expert.
- Stephen Colebourne - Java Champion, speaker.
- Arun Gupta - Java Champion, JavaOne Rockstar, JUG Leader, Devoxx4Kids-er, VP of Developer Advocacy at Couchbase.
- Adam Bien - Freelance author, JavaOne Rockstar speaker, consultant, Java Champion.
- Holly Cummins - Technical Lead of IBM London's Bluemix Garage, Java Champion, developer, author, JavaOne rockstar.
- Java Magazine - Official Java Magazine account.
- Java - Official Java Twitter account.
- Javin Paul - Well-known Java blogger.
- Mario Fusco - RedHatter, JUG coordinator, frequent speaker and author.
- Markus Eisele - Java EE evangelist, Red Hat.
- Martin Thompson - Pasty faced performance gangster.
- Monica Beckwith - Performance consultant, JavaOne Rock Star.
- OpenJDK - Official OpenJDK account.
- Reza Rahman - Java EE/GlassFish/WebLogic evangelist, author, speaker, open source hacker.
- Sander Mak - Java Champion, author.
- Simon Maple - Java Champion, VirtualJUG founder, LJC leader, RebelLabs author.
- Spencer Gibb - Software Engineer, Dad, Geek, Co-founder and Lead of Spring Cloud Core @pivotal.
- Trisha Gee - Java Champion and speaker.
- Venkat Subramaniam - Author, University of Houston professor, MicroSoft MVP award recipient, JavaOne Rock Star, Java Champion.
- Vlad Mihalcea - Java Champion working on Hypersistence Optimizer, database aficionado, author of High-Performance Java Persistence book.
-
Communities
- r/java - Subreddit for the Java community.
- Stack Overflow - Question/answer platform.
- VirtualJUG - Virtual Java User Group.
-
Websites
-
Awesome Lists
-
Frontends
-
Podcasts and Screencasts
- The Java Posse - Discontinued as of 02/2015.
- The Java Council
- Java Off Heap
- Marco Behler's Screencasts - Screencasts about modern Java development.
-
Influential Books
-
-
Contributing
-
Websites
- CONTRIBUTING - java-validation).
-
Programming Languages
Categories
Sub Categories
Twitter
67
Testing
43
Miscellaneous
32
Platform
26
Database
25
REST Frameworks
24
JSON
19
Security
17
Networking
16
Monitoring
15
Websites
15
JVM and JDK
14
Web Frameworks
13
CLI
13
Utility
13
Distributed Applications
12
Messaging
12
Science
12
Awesome Lists
11
HTTP Clients
10
Machine Learning
10
PDF
10
Bean Mapping
10
Geospatial
10
Logging
9
Code Analysis
9
ORM
9
Dependency Injection
8
Functional Programming
8
Data Structures
8
Development
8
High Performance
8
Bytecode Manipulation
7
Template Engine
7
Performance analysis
7
Distribution
7
Code Generators
7
Configuration
7
Natural Language Processing
6
Web Crawling
6
Formal Verification
6
Introspection
6
Imagery
6
Microservice
6
Game Development
5
Server
5
Influential Books
5
Reactive libraries
5
Serialization
5
Financial
4
Cluster Management
4
CSV
4
Job Scheduling
4
Search
4
Date and Time
4
Podcasts and Screencasts
4
Build
3
Version Managers
3
GUI
3
Distributed Transactions
3
Code Coverage
3
Communities
3
Native
3
Document Processing
3
Processes
3
Hypermedia Types
3
PaaS
2
IDE
2
Caching
2
Constraint Satisfaction Problem Solver
1
Frontends
1
Compiler-compiler
1
Keywords
java
140
android
13
spring-boot
10
monitoring
10
static-analysis
10
microservices
9
jvm
8
testing
7
java-library
7
http
7
json
7
rpc
7
spring
7
awesome
7
kotlin
6
jdbc
6
javafx
6
static-code-analysis
6
reactive-streams
5
machine-learning
5
grpc
5
scala
5
xml
5
javascript
5
awesome-list
5
scheduler
4
code-analysis
4
serialization
4
nlp
4
testing-tools
4
database
4
python
4
jackson
4
library
4
reactive
4
functional-programming
4
java-8
4
framework
4
http-client
4
c
4
annotation-processor
4
test-driven-development
3
compiler
3
metrics
3
visualization
3
messaging
3
http2
3
streaming
3
java8
3
netty
3