fucking-awesome-java
A curated list of awesome frameworks, libraries and software for the Java programming language. With repository stars⭐ and forks🍴
https://github.com/correia-jpv/fucking-awesome-java
Last synced: 11 days ago
JSON representation
-
Resources
-
Related Awesome Lists
-
Podcasts and Screencasts
- The Java Posse - Discontinued as of 02/2015.
-
-
Source
-
Websites
-
-
Projects
-
Security
- Themis - Multi-platform high-level cryptographic library provides easy-to-use encryption for protecting sensitive data: secure messaging with forward secrecy, secure data storage (AES256GCM); suits for building end-to-end encrypted applications.
- DependencyCheck - Detects publicly disclosed vulnerabilities contained within a project's dependencies.
- Keywhiz - System for distributing and managing secrets.
- pac4j - Security engine.
- OpenAM - Access management solution that includes authentication, SSO, authorization, federation, entitlements and web services security.
- jjwt - JSON web token for Java and Android.
- Jwks RSA - JSON Web Key Set parser.
- SecurityBuilder - Fluent Builder API for JCA and JSSE classes and especially X.509 certificates.
- Tink - Provides a simple and misuse-proof API for common cryptographic tasks.
- jwt-java - Easily create and parse JSON Web Tokens and create customized JWT validators using a fluent API.
- Hdiv - Runtime application that repels application security risks included in the OWASP Top 10, including SQL injection, cross-site scripting, cross-site request forgery, data tampering, and brute force attacks.
- Password4j - User-friendly cryptographic library that supports Argon2, Bcrypt, Scrypt, PBKDF2 and various other cryptographic hash functions.
- Nbvcxz - Advanced password strength estimation.
- OTP-Java - One-time password generator library according to RFC 4226 (HOTP) and RFC 6238 (TOTP).
- Kalium - Binding for the Networking and Cryptography (NaCl) library.
- Ayza - High-level SSL configuration builder for configuring HTTP clients and servers with SSL/TLS.
- OACC - Provides permission-based authorization services.
-
Code Analysis
- Infer - Modern static analysis tool for verifying the correctness of code.
- PMD - Source code analysis for finding bad coding practices.
- p3c - Provides Alibaba's coding guidelines for PMD, IDEA and Eclipse.
- Checkstyle - Static analysis of coding conventions and standards. (LGPL-2.1-or-later)
- Error Prone - Catches common programming mistakes as compile-time errors.
- NullAway - Eliminates NullPointerExceptions with low build-time overhead.
- 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)
- Error Prone Support - Error Prone extensions: extra bug checkers and a large battery of Refaster templates.
- RefactorFirst - Identifies and prioritizes God Classes and Highly Coupled classes.
-
JSON
- Gson - Serializes objects to JSON and vice versa. Good performance with on-the-fly usage.
- Jackson - Similar to GSON, but offers performance gains if you need to instantiate the library more often.
- Moshi - Modern JSON library, less opinionated and uses built-in types like List and Map.
- Genson - Powerful and easy-to-use Java-to-JSON conversion library.
- fastjson - Very fast processor with no additional dependencies and full data binding.
- JsonPath - Extract data from JSON using XPATH-like syntax.
- DSL-JSON - JSON library with advanced compile time databinding.
- HikariJSON - High-performance JSON parser, 2x faster than Jackson.
- jackson-modules-java8 - Set of Jackson modules for Java 8 datatypes and features.
- Jackson-datatype-money - Open-source Jackson module to support JSON serialization and deserialization of JavaMoney data types.
- JSON-io - Convert Java to JSON/TOON and back. Supports complex object graphs, cyclic references, and TOON format for 40-50% LLM token savings.
- LoganSquare - JSON parsing and serializing library based on Jackson's streaming API. Outperforms GSON & Jackson's library.
- Yasson - Binding layer between classes and JSON documents similar to JAXB.
- Jolt - JSON to JSON transformation tool.
- JsonSurfer - Streaming JsonPath processor dedicated to processing big and complicated JSON data.
-
Database
- 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.
- Querydsl - Typesafe unified queries.
- QuestDB - High-performance SQL database for time series. Supports InfluxDB line protocol, PostgreSQL wire protocol, and REST.
- Apache ShardingSphere - Distributed SQL transaction & query engine that allows for data sharding, scaling, encryption, and more on any database.
- HikariCP - High-performance JDBC connection pool.
- ArangoDB - ArangoDB Java driver.
- Chronicle Map - Efficient, in-memory (opt. persisted to disk), off-heap key-value store.
- eXist - NoSQL document database and application platform. (LGPL-2.1-only)
- FlexyPool - Brings metrics and failover strategies to the most common connection pooling solutions.
- Jest - Client for the Elasticsearch REST API.
- 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.
- 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.
- Modality - Lightweight ORM with database reverse engineering features.
- QueryStream - Build JPA Criteria queries using a Stream-like API.
- Xodus - Highly concurrent transactional schema-less and ACID-compliant embedded database.
- OpenDJ - LDAPv3 compliant directory service, developed for the Java platform, providing a high performance, highly available, and secure store for the identities.
- Spring Data JPA MongoDB Expressions - Allows you to use MongoDB query language to query your relational database.
- CosId - Universal, flexible, high-performance distributed ID generator.
- Spring Data Dynamic Query - Unified dynamic query interface for Spring Data JPA, MongoDB, and Elasticsearch, enabling advanced JOIN(s), OR logic, scoped conditions, powerful projections and advanced features with zero boilerplate.
-
Data Structures
- Tape - Lightning-fast, transactional, file-based FIFO.
- Protobuf - Google's data interchange format.
- Wire - Clean, lightweight protocol buffers.
- 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.
- RoaringBitmap - Fast and efficient compressed bitmap.
- SBE - Simple Binary Encoding, one of the fastest message formats around.
-
Utility
- Guava - Collections, caching, primitives support, concurrency libraries, common annotations, string processing, I/O, and more.
- JavaVerbalExpressions - Library that helps with constructing difficult regular expressions.
- Arthas - Allows to troubleshoot production issues for applications without modifying code or restarting servers.
- Gephi - Cross-platform for visualizing and manipulating large graph networks. (GPL-3.0-only)
- Embulk - Bulk data loader that helps data transfer between various databases, storages, file formats, and cloud services.
- cactoos - Collection of object-oriented primitives.
- Dex - Java/JavaFX tool capable of powerful ETL and data visualization.
- minio-java - Provides simple APIs to access any Amazon S3-compatible object storage server.
- fswatch - Micro library to watch for directory file system changes, simplifying java.nio.file.WatchService.
- Underscore-java - Port of Underscore.js functions.
- Chocotea - Generates postman collection, environment and integration tests from java code.
- dregex - Regular expression engine that uses deterministic finite automata. It supports some Perl-style features and yet retains linear matching time, and also offers set operations.
- Javadoc Publisher - Generate Javadoc from your maven/gradle project and deploy it automatically on GitHub Page.
- CRaSH - Provides a shell into a JVM that's running CRaSH. Used by Spring Boot and others. (LGPL-2.1-or-later)
- JKScope - Java scope functions inspired by Kotlin.
- Semver4j - Lightweight library that helps you handling semantic versioning with different modes.
- bucket4j - Rate limiting library based on token-bucket algorithm.
-
Imagery
- ZXing - Multi-format 1D/2D barcode image processing library.
- Imgscalr - Simple, efficient and hardware-accelerated image-scaling library implemented in pure Java 2D.
- Tess4J - JNA wrapper for Tesseract OCR API.
- Thumbnailator - High-quality thumbnail generation library.
- TwelveMonkeys - Collection of plugins that extend the number of supported image file formats.
- image-comparison - Library that compares 2 images with the same sizes and shows the differences visually by drawing rectangles. Some parts of the image can be excluded from the comparison.
- vips-ffm - Comprehensive bindings for libvips, using Java's "Foreign Function & Memory" API.
- Barcode-Lib4J - Generates QR Code, DataMatrix, and other 1D/2D barcodes as vector (PDF, EPS, SVG) and raster (PNG, BMP, JPG) images with DPI awareness, high precision, and CMYK color model support.
-
Reactive libraries
- RxJava - Allows for composing asynchronous and event-based programs using observable sequences.
- Reactive Streams - Provides a standard for asynchronous stream processing with non-blocking backpressure.
- Reactor - A framework for building non-blocking applications on the JVM, providing support for reactive programming.
-
IDE
- IntelliJ IDEA ), an application error tracking and performance analysis platform.
- Stagemonitor - Open-source performance monitoring and transaction tracing for JVM apps.
- Prometheus - Provides a multi-dimensional data model, DSL, autonomous server nodes and much more.
- JavaMelody - Performance monitoring and profiling.
- SPM  data models.
- Time4J - Advanced date and time library. (LGPL-2.1-only)
- Jollyday - Determines the holidays for a given year, country/name and eventually state/region.
-
Introspection
- jOOR - jOOR stands for jOOR Object Oriented Reflection. It is a simple wrapper for the java.lang.reflect package.
- ClassGraph - ClassGraph (formerly FastClasspathScanner) is an uber-fast, ultra-lightweight, parallelized classpath scanner and module scanner for Java, Scala, Kotlin and other JVM languages.
- ReflectASM - ReflectASM is a very small Java library that provides high performance reflection by using code generation.
- Reflections - Reflections scans your classpath, indexes the metadata, allows you to query it on runtime and may save and collect that information for many modules within your project.
- Mirror - Mirror was created to bring light to a simple problem, usually named ReflectionUtil, which is on almost all projects that rely on reflection to do advanced tasks.
-
Web Frameworks
- Blade - Lightweight, modular framework that aims to be elegant and simple.
- Erupt - Annotation-Driven Low-Code & JPA Visualization
- Takes - Opinionated web framework which is built around the concepts of True Object-Oriented Programming and immutability.
- Firefly - Asynchronous framework for rapid development of high-performance web application.
- Pippo - Small, highly modularized, Sinatra-like framework.
- WebForms Core - A technology for managing HTML tags from the server.
-
Networking
- Dubbo - High-performance RPC framework.
- gRPC-java - 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.
- sshj - Programmatically use SSH, SCP or SFTP.
- ServiceTalk - Framework built on Netty with APIs tailored to specific protocols and support for multiple programming paradigms.
- Comsat - Integrates standard Java web-related APIs with Quasar fibers and actors.
- urnlib - Represent, parse and encode URNs, as in RFC 2141. (GPL-3.0-only)
- Fluency - High throughput data ingestion logger to Fluentd and Fluent Bit.
- TLS Channel - Implements a ByteChannel interface over SSLEngine, enabling easy-to-use (socket-like) TLS.
- Drift - Easy-to-use, annotation-based library for creating Thrift clients and serializable types.
- Commons-networking - Client for server-sent events (SSE).
-
Web Crawling
- webmagic - Scalable crawler with downloading, url management, content extraction and persistent.
- Crawler4j - Simple and lightweight web crawler.
- StormCrawler - SDK for building low-latency and scalable web crawlers.
- StormCrawler - SDK for building low-latency and scalable web crawlers.
-
Native
- JNA - Work with native libraries without writing JNI. Also provides interfaces to common system libraries.
- JavaCPP - Provides efficient and easy access to native C++.
- native-lib-loader - Native library loader for extracting and loading native libraries from Java.
- Aparapi - Converts bytecode to OpenCL which allows execution on GPUs.
- JNR - Work with native libraries without writing JNI. Also provides interfaces to common system libraries. Same goals as JNA, but faster, and serves as the basis for the upcoming [Project Panama](http://openjdk.java.net/projects/panama).
-
Natural Language Processing
- CogCompNLP - Provides common annotators for plain text input. (Research and Academic Use License)
- Hypherator - Java hyphenation library with iterator-like interface. Can be used out-of-the box - dictionaries for multiple languages are bundled in.
- LingPipe - Toolkit for tasks ranging from POS tagging to sentiment analysis.
-
CLI
- Jansi - ANSI escape codes to format console output.
- JLine - Includes features from modern shells like completion or history.
- Text-IO - Aids the creation of full console-based applications.
- Lanterna - Easy console text-GUI library, similar to curses. (LGPL-3.0-only)
- Airline - Annotation-based framework for parsing Git-like command-line arguments.
- jbock - Reflectionless 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).
-
Compiler-compiler
- JavaCC - Parser generator that generates top-down parsers. Allows lexical state switching and permits extended BNF specifications.
-
Constraint Satisfaction Problem Solver
- JaCoP - Includes an interface for the FlatZinc language, enabling it to execute MiniZinc models. (AGPL-3.0)
-
Development
- Faux Pas - Library that simplifies error handling by circumventing the issue that none of the functional interfaces in the Java Runtime is allowed by default to throw checked exceptions.
- HotswapAgent - Unlimited runtime class and resource redefinition. (GPL-2.0-only)
- JavaParser - Parse, modify and generate Java code.
- JavaSymbolSolver - Symbol solver.
- Manifold - Re-energizes Java with powerful features like type-safe metaprogramming, structural typing and extension methods.
- SneakyThrow - Ignores checked exceptions without bytecode manipulation. Can also be used inside Java 8 stream operations.
-
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.
- Artipie - Binary artifact management toolkit which hosts them on the file system or S3.
- Getdown - System for deploying Java applications to end-user computers and keeping them up to date. Developed as an alternative to Java Web Start.
- Boxfuse ).
- Orienteer - Open-source business application platform for rapid configuration/development of CRM, ERP, LMS and other applications.
-
Programming Languages
Categories
Sub Categories
Testing
41
Miscellaneous
34
Database
24
Monitoring
21
Security
17
Utility
17
JSON
15
Related Awesome Lists
13
Code Generators
13
Networking
11
Code Analysis
11
Science
11
Messaging
10
Configuration
10
Distribution
9
Distributed Applications
9
REST Frameworks
9
Imagery
8
Data Structures
8
Microservice
8
Bytecode Manipulation
8
Machine Learning
8
Template Engine
7
Job Scheduling
7
HTTP Clients
7
Bean Mapping
7
CLI
7
PDF
7
Functional Programming
7
Geospatial
6
ORM
6
Serialization
6
Financial
6
Logging
6
Development
6
Web Frameworks
6
Introspection
5
High Performance
5
JVM and JDK
5
Native
5
Performance analysis
5
Web Crawling
4
Dependency Injection
4
Hypermedia Types
4
PaaS
4
Date and Time
4
Natural Language Processing
3
Game Development
3
Code Coverage
3
Version Managers
3
CSV
3
Processes
3
Artificial Intelligence
3
Reactive libraries
3
Formal Verification
3
GUI
2
Cloud
2
Platform
2
Document Processing
2
Architecture
2
Build
2
Search
1
IDE
1
Distributed Transactions
1
Websites
1
Computer Vision
1
Podcasts and Screencasts
1
Caching
1
Constraint Satisfaction Problem Solver
1
Server
1
Pathfinding
1
Decentralization
1
Workflow Orchestration Engines
1
Compiler-compiler
1
Keywords
java
200
spring-boot
15
kotlin
14
testing
13
spring
13
microservices
13
android
12
monitoring
12
static-analysis
11
java-library
9
json
9
database
9
jvm
9
awesome
9
http
9
javascript
7
awesome-list
7
annotation-processor
7
rest-api
7
rest
7
machine-learning
7
xml
7
library
6
sql
6
java-8
6
metrics
6
jdbc
6
cloud-native
6
rpc
6
static-code-analysis
6
high-performance
6
javafx
5
scheduler
5
groovy
5
orm
5
configuration
5
java8
5
c
5
gradle
5
test-automation
5
logging
5
junit
5
grpc
5
python
5
serialization
5
tracing
4
reactive-streams
4
code-analysis
4
ast
4
generator
4