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 8 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
- FastCSV - Performance-optimized, dependency-free and RFC 4180 compliant.
- 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.
-
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.
- Protobuf - Google's data interchange format.
- RoaringBitmap - Fast and efficient compressed bitmap.
- Tape - Lightning-fast, transactional, file-based FIFO.
- Wire - Clean, lightweight protocol buffers.
- 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.
- 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.
- HikariCP - High-performance JDBC connection pool.
- Jedis - Small client for interaction with Redis, with methods for commands.
- Jest - Client for the Elasticsearch REST API.
- Leaf - Distributed ID generate service.
- Modality - Lightweight ORM with database reverse engineering features.
- Querydsl - Typesafe unified queries.
- QueryStream - Build JPA Criteria queries using a Stream-like API.
- 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.
- CosId - Universal, flexible, high-performance distributed ID generator.
- jetcd - Client library for etcd.
- Jinq - Typesafe database queries via symbolic execution of Java 8 Lambdas (on top of JPA or jOOQ).
- MariaDB4j - Launcher for MariaDB that requires no installation or external dependencies.
- OpenDJ - LDAPv3 compliant directory service, developed for the Java platform, providing a high performance, highly available, and secure store for the identities.
- 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.
- Speedment - Database access library that utilizes Java 8's Stream API for querying.
- Apache ShardingSphere - Distributed SQL transaction & query engine that allows for data sharding, scaling, encryption, and more on any database.
-
Date and Time
- Jollyday - Determines the holidays for a given year, country/name and eventually state/region.
- 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.
- 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.
- Guice - Lightweight and opinionated framework that completes Dagger.
- JayWire - Lightweight dependency injection framework. (LGPL-3.0-only)
-
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.
- JavaParser - Parse, modify and generate Java code.
- SneakyThrow - Ignores checked exceptions without bytecode manipulation. Can also be used inside Java 8 stream operations.
- HotswapAgent - Unlimited runtime class and resource redefinition. (GPL-2.0-only)
- JavaSymbolSolver - Symbol solver.
- Manifold - Re-energizes Java with powerful features like type-safe metaprogramming, structural typing and extension methods.
-
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.
-
Code Generators
- JPA Buddy .
- 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.
-
Compiler-compiler
- JavaCC - Parser generator that generates top-down parsers. Allows lexical state switching and permits extended BNF specifications.
-
Game Development
-
High Performance
-
Job Scheduling
- easy-batch - Set up batch jobs with simple processing pipelines. Records are read in sequence from a data source, processed in pipeline and written in batches to a data sink.
- shedlock - Makes sure that your scheduled tasks are executed at most once at the same time. If a task is being executed on one node, it acquires a lock which prevents execution of the same task from another node or thread.
- JobRunr - Job scheduling library which utilizes lambdas for fire-and-forget, delayed and recurring jobs. Guarantees execution by single scheduler instance using optimistic locking. Has features for persistence, minimal dependencies and is embeddable.
- Quartz - Feature-rich, open source job scheduling library that can be integrated within virtually any Java application.
- Sundial - Lightweight framework to simply define jobs, define triggers and start the scheduler.
- Wisp - Simple library with minimal footprint and straightforward API.
- db-scheduler - Persistent and cluster-friendly scheduler.
-
JSON
- DSL-JSON - JSON library with advanced compile time databinding.
- Genson - Powerful and easy-to-use Java-to-JSON conversion library.
- Gson - Serializes objects to JSON and vice versa. Good performance with on-the-fly usage.
- 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.
- Jackson - Similar to GSON, but offers performance gains if you need to instantiate the library more often.
- JSON-io - Convert Java to JSON. Convert JSON to Java. Pretty print JSON. Java JSON serializer.
- LoganSquare - JSON parsing and serializing library based on Jackson's streaming API. Outperforms GSON & Jackson's library.
- Moshi - Modern JSON library, less opinionated and uses built-in types like List and Map.
- Yasson - Binding layer between classes and JSON documents similar to JAXB.
- fastjson - Very fast processor with no additional dependencies and full data binding.
- Jolt - JSON to JSON transformation tool.
- JsonPath - Extract data from JSON using XPATH-like syntax.
-
Machine Learning
- Intelligent java - Seamlessly integrate with remote deep learning and language models programmatically.
- JSAT - Algorithms for pre-processing, classification, regression, and clustering with support for multi-threaded execution. (GPL-3.0-only)
- m2cgen - CLI tool to transpile models into native code.
- Neureka - A lightweight, platform independent, OpenCL accelerated nd-array/tensor library.
- Oryx 2 - Framework for building real-time, large-scale machine learning applications. Includes end-to-end applications for collaborative filtering, classification, regression, and clustering.
- Siddhi - Cloud native streaming and complex event processing engine.
- Smile - Statistical Machine Intelligence and Learning Engine provides a set of machine learning algorithms and a visualization library.
-
Miscellaneous
- JPad - Snippet runner.
- JBang - JBang makes it easy to use Java for scripting. It lets you use a single file for
- JBang - JBang makes it easy to use Java for scripting. It lets you use a single file for
- CQEngine - Ultra-fast, SQL-like queries on Java collections.
- Design Patterns - Implementation and explanation of the most common design patterns.
- FF4J - Feature Flags for Java.
- FizzBuzz Enterprise Edition - No-nonsense implementation of FizzBuzz made by serious businessmen for serious business purposes. (No explicit license)
- IP2Location.io Java SDK - Wrapper for the IP2Location.io Geolocation API and the IP2WHOIS domain WHOIS API.
- ISBN core - A small library that contains a representation object of ISBN-10 and ISBN-13 and tools to parse, validate and format one.
- J2ObjC - Java-to-Objective-C translator for porting Android libraries to iOS.
- JBot - Framework for building chatbots. (GPL-3.0-only)
- JCuda - JCuda offers Java bindings for CUDA and CUDA-related libraries.
- JEmoji - An auto-generated emoji library that provides type-safe direct access to emojis and alias support for Discord, Slack, GitHub and many more features.
- Jimfs - In-memory file system.
- JObfuscator), an application error tracking and performance analysis platform.
- SPM .
- native-lib-loader - Native library loader for extracting and loading native libraries from Java.
-
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.
-
Search
- Indexer4j - Simple and light full text indexing and searching library.
-
Security
- Ayza - High-level SSL configuration builder for configuring HTTP clients and servers with SSL/TLS.
- DependencyCheck - Detects publicly disclosed vulnerabilities contained within a project's dependencies.
- 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.
- jjwt - JSON web token for Java and Android.
- jwt-java - Easily create and parse JSON Web Tokens and create customized JWT validators using a fluent API.
- Jwks RSA - JSON Web Key Set parser.
- Kalium - Binding for the Networking and Cryptography (NaCl) library.
- Keywhiz - System for distributing and managing secrets.
- Nbvcxz - Advanced password strength estimation.
- OACC - Provides permission-based authorization services.
- OpenAM - Access management solution that includes authentication, SSO, authorization, federation, entitlements and web services security.
- OTP-Java - One-time password generator library according to RFC 4226 (HOTP) and RFC 6238 (TOTP).
- pac4j - Security engine.
- Password4j - User-friendly cryptographic library that supports Argon2, Bcrypt, Scrypt, PBKDF2 and various other cryptographic hash functions.
- SecurityBuilder - Fluent Builder API for JCA and JSSE classes and especially X.509 certificates.
- 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.
- Tink - Provides a simple and misuse-proof API for common cryptographic tasks.
-
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
-
Web Frameworks
- Blade - Lightweight, modular framework that aims to be elegant and simple.
- Firefly - Asynchronous framework for rapid development of high-performance web application.
- Pippo - Small, highly modularized, Sinatra-like framework.
- Takes - Opinionated web framework which is built around the concepts of True Object-Oriented Programming and immutability.
- WebForms Core - A technology for managing HTML tags from the server.
-
Workflow Orchestration Engines
- flowable - Compact and efficient workflow and business process management platform.
-
-
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
33
Platform
31
Database
24
Monitoring
19
Security
17
Utility
16
JSON
14
Related Awesome Lists
13
Code Generators
13
Networking
12
Code Analysis
11
Science
11
Configuration
10
REST Frameworks
10
Distribution
9
Distributed Applications
9
Imagery
8
Messaging
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
Performance analysis
7
Functional Programming
7
Financial
6
Development
6
Web Frameworks
5
Introspection
5
Serialization
5
Native
5
PDF
5
Logging
4
JVM and JDK
4
PaaS
4
Dependency Injection
4
Hypermedia Types
4
Date and Time
4
Natural Language Processing
3
Version Managers
3
Code Coverage
3
CSV
3
Artificial Intelligence
3
Processes
3
Reactive libraries
3
High Performance
3
Web Crawling
3
Cloud
2
Formal Verification
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