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: about 17 hours ago
JSON representation
-
Projects
-
Configuration
- owner - Reduces boilerplate of properties.
- avaje config - Loads yaml and properties files, supports dynamic configuration, plugins, file-watching and config event listeners.
- Curator Framework - High-level API for Apache ZooKeeper.
- centraldogma - Highly-available version-controlled service configuration repository based on Git, ZooKeeper and HTTP/2.
- config - Configuration library supporting Java properties, JSON or its human optimized superset HOCON.
- Configurate - Configuration library with support for various configuration formats and transformations.
- dotenv - Twelve-factor configuration library which uses environment-specific files.
- Externalized Properties - Lightweight yet powerful configuration library which supports resolution of properties from external sources and an extensible post-processing/conversion mechanism.
- Gestalt - Gestalt offers a comprehensive solution to the challenges of configuration management. It allows you to source configuration data from multiple inputs, merge them intelligently, and present them in a structured, type-safe manner.
- KAConf - Annotation-based configuration system for Java and Kotlin.
-
Constraint Satisfaction Problem Solver
- JaCoP - Includes an interface for the FlatZinc language, enabling it to execute MiniZinc models. (AGPL-3.0)
-
CSV
- uniVocity-parsers - One of the fastest and most feature-complete parsers. Also comes with parsers for TSV and fixed-width records.
- FastCSV - Performance-optimized, dependency-free and RFC 4180 compliant.
- jackson-dataformat-csv - Jackson extension for reading and writing CSV.
-
Data Structures
- HyperMinHash-java - Probabilistic data structure for computing union, intersection, and set cardinality in loglog space.
- Protobuf - Google's data interchange format.
- RoaringBitmap - Fast and efficient compressed bitmap.
- Tape - Lightning-fast, transactional, file-based FIFO.
- Wire - Clean, lightweight protocol buffers.
- Big Queue - Fast and persistent queue based on memory-mapped files.
- Persistent Collection - Persistent and immutable analogue of the Java Collections Framework.
- SBE - Simple Binary Encoding, one of the fastest message formats around.
-
Database
- ArangoDB - ArangoDB Java driver.
- HikariCP - High-performance JDBC connection pool.
- Jest - Client for the Elasticsearch REST API.
- Querydsl - Typesafe unified queries.
- Realm - Mobile database to run directly inside phones, tablets or wearables.
- Spring Data JPA MongoDB Expressions - Allows you to use MongoDB query language to query your relational database.
- Xodus - Highly concurrent transactional schema-less and ACID-compliant embedded database.
- QuestDB - High-performance SQL database for time series. Supports InfluxDB line protocol, PostgreSQL wire protocol, and REST.
- Redisson - Allows for distributed and scalable data structures on top of a Redis server.
- 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.
- 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.
- Jedis - Small client for interaction with Redis, with methods for commands.
- 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.
- Modality - Lightweight ORM with database reverse engineering features.
- OpenDJ - LDAPv3 compliant directory service, developed for the Java platform, providing a high performance, highly available, and secure store for the identities.
- QueryStream - Build JPA Criteria queries using a Stream-like API.
- Speedment - Database access library that utilizes Java 8's Stream API for querying.
- CosId - Universal, flexible, high-performance distributed ID generator.
- Apache ShardingSphere - Distributed SQL transaction & query engine that allows for data sharding, scaling, encryption, and more on any database.
-
Date and Time
- ThreeTen-Extra - Additional date-time classes that complement those in JDK 8.
- iCal4j - Parse and build iCalendar 🌎 [RFC 5545](tools.ietf.org/html/rfc5545) data models.
- Jollyday - Determines the holidays for a given year, country/name and eventually state/region.
- Time4J - Advanced date and time library. (LGPL-2.1-only)
-
Decentralization
-
Dependency Injection
- Feather - Ultra-lightweight, JSR-330-compliant dependency injection library.
- Governator - Extensions and utilities that enhance Google Guice.
- JayWire - Lightweight dependency injection framework. (LGPL-3.0-only)
- Guice - Lightweight and opinionated framework that completes Dagger.
-
Development
- JavaParser - Parse, modify and generate Java code.
- JavaSymbolSolver - Symbol solver.
- 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)
- 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.
-
Distributed Applications
- Hazelcast - Highly scalable in-memory datagrid with a free open-source version.
- JGroups - Toolkit for reliable messaging and cluster creation.
- Quasar - Lightweight threads and actors for the JVM.
- Dropwizard Circuit Breaker - Circuit breaker design pattern for Dropwizard. (GPL-2.0-only)
- Failsafe - Simple failure handling with retries and circuit breakers.
- resilience4j - Functional fault tolerance library.
- OpenIG - High-performance reverse proxy server with specialized session management and credential replay functionality.
- ScaleCube Services - Embeddable Cluster-Membership library based on SWIM and gossip protocol.
- Zuul - Gateway service that provides dynamic routing, monitoring, resiliency, security, and more.
-
REST Frameworks
- Crnk - Implementation of the JSON API specification to build resource-oriented REST endpoints with sorting, filtering, paging, linking, object graphs, type-safety, bulk updates, integrations and more.
- Crnk - Implementation of the JSON API specification to build resource-oriented REST endpoints with sorting, filtering, paging, linking, object graphs, type-safety, bulk updates, integrations and more.
- Spark - Sinatra inspired framework.
- Dropwizard - Opinionated framework for setting up modern web applications with Jetty, Jackson, Jersey and Metrics.
- Microserver - Convenient, extensible microservices plugin system for Spring & Spring Boot. With more than 30 plugins and growing, it supports both micro-monolith and pure microservices styles.
- rest.li - Framework for building robust, scalable RESTful architectures using typesafe bindings and asynchronous, non-blocking IO with an end-to-end developer workflow that promotes clean practices, uniform interface design and consistent data modeling.
- RestExpress - Thin wrapper on the JBoss Netty HTTP stack that provides scaling and performance.
- Restlet Framework - Pioneering framework with powerful routing and filtering capabilities, and a unified client and server API.
- springdoc-openapi - Automates the generation of API documentation using Spring Boot projects.
- openapi-generator - Allows generation of API client libraries, SDKs, server stubs, documentation and configuration automatically given an OpenAPI Spec.
-
Artificial Intelligence
- LangChain4j - Simplifies integration of LLMs with unified APIs and a comprehensive toolbox.
- simple-openai - Library to use the OpenAI API (and compatible ones) in the simplest possible way.
- MCP Java SDK - Enables applications to interact with AI models and tools through a standardized interface (i.e. Model Context Protocol), supporting both synchronous and asynchronous communication patterns.
-
Bytecode Manipulation
- Perses - Dynamically injects failure/latency at the bytecode level according to principles of chaos engineering.
- ASM - All-purpose, low-level bytecode manipulation and analysis.
- Recaf - JVM reverse engineering toolkit, essentially an IDE for Java bytecode.
- bytecode-viewer - Java 8 Jar & Android APK reverse engineering suite. (GPL-3.0-only)
- cglib - Bytecode generation library.
- Mixin - Manipulate bytecode at runtime using real Java code.
- Javassist - Tries to simplify bytecode editing.
- Maker - Provides low level bytecode generation.
-
Bean Mapping
- MapStruct - Code generator that simplifies mappings between different bean types, based on a convention-over-configuration approach.
- 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.
- reMap - Lambda and method handle-based mapping which requires code and not annotations if objects have different names.
- JMapper - Uses byte code manipulation for lightning-fast mapping. Supports annotations and API or XML configuration.
- 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.
-
Caching
- Caffeine - High-performance, near-optimal caching library.
-
CLI
- jbock - Reflectionless command line parser.
- JLine - Includes features from modern shells like completion or history.
- Airline - Annotation-based framework for parsing Git-like command-line arguments.
- 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).
- Jansi - ANSI escape codes to format console output.
- Text-IO - Aids the creation of full console-based applications.
- Lanterna - Easy console text-GUI library, similar to curses. (LGPL-3.0-only)
-
Build
-
Code Coverage
- Clover - Relies on source-code instrumentation instead of bytecode instrumentation.
- Cobertura - Relies on offline (or static) bytecode instrumentation and class loading to collect code coverage metrics. (GPL-2.0-only)
- JaCoCo - Framework that enables collection of code coverage metrics, using both offline and runtime bytecode instrumentation.
-
Code Generators
- Avaje Http Server - Generates Lightweight JAX-RS style http servers using Javalin or Helidon (Nima) SE.
- Joda-Beans - Small framework that adds queryable properties to Java, enhancing JavaBeans.
- Telosys - Simple and light code generator available as an Eclipse Plugin and also as a CLI.
- Bootify ), an application error tracking and performance analysis platform.
- SPM .
- native-lib-loader - Native library loader for extracting and loading native libraries from Java.
-
PaaS
- AWS Elastic Beanstalk ![c - AWS-based, with support for Tomcat and Jetty.
- AWS Lambda ![c - Serverless computation.
- Google Cloud ![c - Google's cloud infrastructure.
- Microsoft Azure ![c - Microsoft's cloud infrastructure.
-
Pathfinding
- Pathetic - A highly configurable 3D A* pathfinding library that uses specific optimizations for high performance.
-
Performance analysis
- honest-profiler - Low-overhead, bias-free sampling profiler.
- jHiccup - Logs and records platform JVM stalls.
- JITWatch - Analyze the JIT compiler optimisations made by the HotSpot JVM.
- JMH - Harness for building, running, and analysing nano/micro/milli/macro benchmarks written in Java and other languages targeting the JVM. (GPL-2.0 only WITH Classpath-exception-2.0)
- LatencyUtils - Utilities for latency measurement and reporting.
-
Search
- Indexer4j - Simple and light full text indexing and searching library.
-
Server
- nanohttpd - Tiny, easily embeddable HTTP server.
-
Template Engine
- Jade4J - Implementation of Pug (formerly known as Jade).
- Jamal - Extendable template engine embedded into Maven/JavaDoc, supporting multiple extensions (Groovy, Ruby, JavaScript, JShell, PlantUml) with support for snippet handling.
- jstachio - Typesafe Mustache templating engine.
- jte - Compiles to classes, and uses an easy syntax, several features to make development easier and provides fast execution and a small footprint.
- Jtwig - Modular, configurable and fully tested template engine.
- Rocker - Optimized, memory efficient and speedy template engine producing statically typed, plain objects.
- StringTemplate - Template engine for generating source code, web pages, emails, or any other formatted text output.
-
Utility
- Arthas - Allows to troubleshoot production issues for applications without modifying code or restarting servers.
- cactoos - Collection of object-oriented primitives.
- Chocotea - Generates postman collection, environment and integration tests from java code.
- CRaSH - Provides a shell into a JVM that's running CRaSH. Used by Spring Boot and others. (LGPL-2.1-or-later)
- Dex - Java/JavaFX tool capable of powerful ETL and data visualization.
- 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.
- Embulk - Bulk data loader that helps data transfer between various databases, storages, file formats, and cloud services.
- fswatch - Micro library to watch for directory file system changes, simplifying java.nio.file.WatchService.
- Gephi - Cross-platform for visualizing and manipulating large graph networks. (GPL-3.0-only)
- Guava - Collections, caching, primitives support, concurrency libraries, common annotations, string processing, I/O, and more.
- Javadoc Publisher - Generate Javadoc from your maven/gradle project and deploy it automatically on GitHub Page.
- JavaVerbalExpressions - Library that helps with constructing difficult regular expressions.
- JKScope - Java scope functions inspired by Kotlin.
- minio-java - Provides simple APIs to access any Amazon S3-compatible object storage server.
- Semver4j - Lightweight library that helps you handling semantic versioning with different modes.
- Underscore-java - Port of Underscore.js functions.
-
Version Managers
-
-
Resources
-
Related Awesome Lists
-
Podcasts and Screencasts
- The Java Posse - Discontinued as of 02/2015.
-
-
Source
-
Websites
-
Programming Languages
Categories
Sub Categories
Testing
42
Miscellaneous
34
Platform
33
Database
24
Monitoring
20
Security
17
Utility
16
Code Generators
14
JSON
14
Related Awesome Lists
13
Code Analysis
11
Networking
11
Science
11
Configuration
10
REST Frameworks
10
Distributed Applications
9
Distribution
8
Messaging
8
Imagery
8
Data Structures
8
Bytecode Manipulation
8
Template Engine
7
Job Scheduling
7
Machine Learning
7
HTTP Clients
7
Geospatial
7
ORM
7
Microservice
7
Bean Mapping
7
CLI
7
PDF
7
Functional Programming
7
Financial
6
Development
6
Performance analysis
5
Web Frameworks
5
Introspection
5
Serialization
5
Native
5
Logging
4
Web Crawling
4
JVM and JDK
4
Dependency Injection
4
Hypermedia Types
4
PaaS
4
Date and Time
4
Version Managers
3
Natural Language Processing
3
Code Coverage
3
CSV
3
Artificial Intelligence
3
Processes
3
Reactive libraries
3
High Performance
3
Formal Verification
2
Cloud
2
Document Processing
2
Game Development
2
Build
2
Architecture
2
Compiler-compiler
1
Workflow Orchestration Engines
1
Decentralization
1
Pathfinding
1
Server
1
Constraint Satisfaction Problem Solver
1
Caching
1
Podcasts and Screencasts
1
Computer Vision
1
IDE
1
Distributed Transactions
1
GUI
1
Websites
1
Search
1
Keywords
java
194
spring-boot
14
kotlin
14
spring
13
testing
13
microservices
12
monitoring
12
static-analysis
11
android
11
java-library
9
database
9
http
9
json
9
awesome
9
jvm
8
annotation-processor
7
rest-api
7
xml
7
awesome-list
7
rest
7
javascript
7
library
6
rpc
6
machine-learning
6
metrics
6
high-performance
6
java-8
6
static-code-analysis
6
sql
6
jdbc
6
javafx
5
java8
5
test-automation
5
cloud-native
5
configuration
5
serialization
5
orm
5
c
5
gradle
5
grpc
5
junit
5
scheduler
5
groovy
5
annotations
4
dropwizard
4
testing-tools
4
mocking
4
ast
4
python
4
framework
4