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: 3 days 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
- Caffeine - High-performance, near-optimal caching library.
-
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)
-
Cluster Management
- 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)
-
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.
-
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.
- SBE - Simple Binary Encoding, one of the fastest message formats around.
- Wire - Clean, lightweight protocol buffers.
-
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.
-
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)
-
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.
-
Distributed Transactions
-
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)
-
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)
-
-
Resources
-
Communities
- r/java - Subreddit for the Java community.
- Stack Overflow - Question/answer platform.
- VirtualJUG - Virtual Java User Group.
-
Twitter
- 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.
- Brian Goetz - Java Language Architect at Oracle.
- Heinz Kabutz - Java Champion, speaker, author of The Java Specialists' Newsletter, concurrency performance expert.
- Lukas Eder - Java Champion, speaker, JUG.ch co-leader, Founder and CEO Data Geekery (jOOQ).
- 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.
- 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.
- 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.
- 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.
- 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.
-
Websites
-
Podcasts and Screencasts
- Java Off Heap
- Marco Behler's Screencasts - Screencasts about modern Java development.
- The Java Posse - Discontinued as of 02/2015.
- The Java Council
-
Awesome Lists
-
Frontends
-
Influential Books
-
-
Contributing
-
Websites
- CONTRIBUTING - java-validation).
-
Programming Languages
Categories
Sub Categories
Twitter
64
Testing
32
Miscellaneous
30
Database
22
REST Frameworks
20
JSON
17
Security
15
Websites
14
Monitoring
12
Networking
12
Utility
12
Awesome Lists
11
CLI
11
Science
11
Bean Mapping
10
JVM and JDK
10
Distributed Applications
10
HTTP Clients
10
Web Frameworks
9
Geospatial
8
Machine Learning
8
Logging
8
Code Analysis
8
Messaging
7
PDF
7
Development
7
Bytecode Manipulation
7
Data Structures
7
High Performance
7
Dependency Injection
7
Configuration
7
Code Generators
6
Template Engine
6
Formal Verification
6
Imagery
6
Functional Programming
6
Microservice
5
Introspection
5
ORM
5
Performance analysis
5
Distribution
5
Influential Books
5
Natural Language Processing
5
Serialization
5
Web Crawling
5
Financial
4
Platform
4
Job Scheduling
4
Podcasts and Screencasts
4
Server
3
Communities
3
Document Processing
3
CSV
3
Code Coverage
3
Native
3
Reactive libraries
3
GUI
3
Search
3
Date and Time
3
Version Managers
3
Build
3
Processes
3
Game Development
3
Distributed Transactions
2
Hypermedia Types
2
Cluster Management
1
Frontends
1
Constraint Satisfaction Problem Solver
1
Caching
1
IDE
1
PaaS
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