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
-
Development
- JavaParser - Parse, modify and generate Java code.
- Manifold - Re-energizes Java with powerful features like type-safe metaprogramming, structural typing and extension methods.
- HotswapAgent - Unlimited runtime class and resource redefinition. (GPL-2.0-only)
- 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.
- JavaSymbolSolver - Symbol solver.
- SneakyThrow - Ignores checked exceptions without bytecode manipulation. Can also be used inside Java 8 stream operations.
-
Distributed Applications
- Failsafe - Simple failure handling with retries and circuit breakers.
- 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.
- Hazelcast - Highly scalable in-memory datagrid with a free open-source version.
- resilience4j - Functional fault tolerance library.
- 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)
- Zuul - Gateway service that provides dynamic routing, monitoring, resiliency, security, and more.
-
Distribution
- Capsule - Simple and powerful packaging and deployment. A fat JAR on steroids, or a "Docker for Java" that supports JVM-optimized containers.
- JavaPackager - Maven and Gradle plugin which provides an easy way to package Java applications in native Windows, macOS or GNU/Linux executables, and generate installers for them.
- Artipie - Binary artifact management toolkit which hosts them on the file system or S3.
- jlink.online - Builds optimized runtimes over HTTP.
- Boxfuse ), an application error tracking and performance analysis platform.
- SPM ).
- BCEL - Byte Code Engineering Library - analyze, create, and manipulate Java class files.
- BeanUtils - Easy-to-use wrappers around the Java reflection and introspection APIs.
- BeanUtils2 - Redesign of Commons BeanUtils.
- BSF - Bean Scripting Framework - interface to scripting languages, including JSR-223.
- Chain - Chain of Responsibility pattern implementation.
- ClassScan - Find Class interfaces, methods, fields, and annotations without loading.
- CLI - Command-line arguments parser.
- CLI2 - Redesign of Commons CLI.
- Codec - General encoding/decoding algorithms, e.g. phonetic, base64 or URL.
- Collections - Extends or augments the Java Collections Framework.
- Compress - Defines an API for working with tar, zip and bzip2 files.
- Configuration - Reading of configuration/preferences files in various formats.
- Convert - Commons-Convert aims to provide a single library dedicated to the task of converting an object of one type to another.
- Daemon - Alternative invocation mechanism for unix-daemon-like java code.
- DBCP - Database connection pooling services.
- DbUtils - JDBC helper library.
- Digester - XML-to-Java-object mapping utility.
- Exec - API for dealing with external process execution and environment management in Java.
- FileUpload - File upload capability for your servlets and web applications.
- Finder - Java library inspired by the UNIX find command.
- Flatfile - Java library for working with flat data structures.
- Functor - Function that can be manipulated as an object, or an object representing a single, generic function.
- Graph - General purpose graph APIs and algorithms.
- I18n - Adds the feature of localized message bundles that consist of one or many localized texts that belong together.
- Id - Id is a component used to generate identifiers.
- Imaging - Image library.
- Javaflow - Continuation implementation to capture the state of the application.
- JCI - Java Compiler Interface.
- JCS - Java Caching System.
- Jelly - XML based scripting and processing engine.
- Jexl - Expression language which extends the Expression Language of the JSTL.
- JNet - JNet allows to use dynamically register url stream handlers through the java.net API.
- JXPath - Utilities for manipulating Java Beans using the XPath syntax.
- Math - Lightweight, self-contained mathematics and statistics components.
- Monitoring - Monitoring aims to provide a simple but extensible monitoring solution for Java applications.
- Nabla - Nabla provides automatic differentiation classes that can generate derivative of any function implemented in the Java language.
- Weaver - Provides an easy way to enhance (weave) compiled bytecode.
- Orienteer - Open-source business application platform for rapid configuration/development of CRM, ERP, LMS and other applications.
-
Serialization
- Fury - Blazing fast object graph serialization framework powered by JIT and zero-copy.
- FlatBuffers - Memory-efficient serialization library that can access serialized data without unpacking and parsing it.
- FST - JDK-compatible, high-performance object graph serialization.
- Kryo - Fast and efficient object graph serialization framework.
- MessagePack - Efficient binary serialization format.
- PHP Serializer - Serializing objects in the PHP serialization format.
-
CLI
- Lanterna - Easy console text-GUI library, similar to curses. (LGPL-3.0-only)
- 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).
- JCommander - Command-line argument-parsing framework with custom types and validation via implementing interfaces.
- Jansi - ANSI escape codes to format console output.
- Text-IO - Aids the creation of full console-based applications.
-
Cloud
- AWS SDK for Java - Provides Java APIs for interacting with Amazon Web Services.
- Google Cloud Client Libraries - Client libraries for accessing Google Cloud services from Java applications.
-
Date and Time
- Time4J - Advanced date and time library. (LGPL-2.1-only)
- 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.
- ThreeTen-Extra - Additional date-time classes that complement those in JDK 8.
-
Decentralization
-
Financial
-
Geospatial
- Mapsforge - Map rendering based on OpenStreetMap data. (LGPL-3.0-only)
- Spatial4j - General-purpose spatial/geospatial library.
- ArcGIS Maps SDK for Java .
- 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.
- Heroku ![c - Abstract computing environments.
-
Server
- nanohttpd - Tiny, easily embeddable HTTP server.
-
Formal Verification
- CATG - Concolic unit testing engine. Automatically generates unit tests using formal methods.
- OpenJML - Translates JML specifications into SMT-LIB format and passes the proof problems implied by the program to backend solvers. (GPL-2.0-only)
- Java Path Finder (JPF) - JVM formal verification tool containing a model checker and more. Created by NASA.
-
Workflow Orchestration Engines
- flowable - Compact and efficient workflow and business process management platform.
-
Processes
- ch.vorburger.exec - Convenient API around Apache Commons Exec.
- zt-exec - Provides a unified API to Apache Commons Exec and ProcessBuilder.
- zt-process-killer - Stops processes started from Java or the system processes via PID.
-
Reactive libraries
- 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.
- RxJava - Allows for composing asynchronous and event-based programs using observable sequences.
-
Distributed Transactions
-
Pathfinding
- Pathetic - A highly configurable 3D A* pathfinding library that uses specific optimizations for high performance.
-
Architecture
- ArchUnit - Test library for specifying and asserting architecture rules.
- jMolecules - Annotations and interfaces to express design and architecture concepts in code.
-
-
Resources
-
Related Awesome Lists
-
Podcasts and Screencasts
- The Java Posse - Discontinued as of 02/2015.
-
-
Source
-
Websites
-
Programming Languages
Categories
Sub Categories
Testing
44
Platform
39
Miscellaneous
36
Database
27
Monitoring
20
Security
17
Utility
17
JSON
16
Code Generators
14
Distribution
13
Related Awesome Lists
13
Science
12
Networking
11
Configuration
11
Code Analysis
11
Machine Learning
10
REST Frameworks
10
Messaging
9
Distributed Applications
9
Imagery
8
CLI
8
Bytecode Manipulation
8
Data Structures
8
Microservice
8
Geospatial
8
Template Engine
7
ORM
7
Bean Mapping
7
PDF
7
Functional Programming
7
HTTP Clients
7
Job Scheduling
7
Introspection
6
Development
6
Serialization
6
Financial
6
High Performance
6
Logging
5
Web Frameworks
5
JVM and JDK
5
Native
5
Performance analysis
5
PaaS
5
Web Crawling
4
Dependency Injection
4
Hypermedia Types
4
Date and Time
4
Natural Language Processing
3
Formal Verification
3
Version Managers
3
Game Development
3
Code Coverage
3
CSV
3
Artificial Intelligence
3
Processes
3
Reactive libraries
3
Distributed Transactions
2
Cloud
2
Document Processing
2
Architecture
2
Build
2
Search
1
GUI
1
Websites
1
IDE
1
Computer Vision
1
Decentralization
1
Caching
1
Constraint Satisfaction Problem Solver
1
Server
1
Pathfinding
1
Podcasts and Screencasts
1
Workflow Orchestration Engines
1
Compiler-compiler
1
Keywords
java
194
kotlin
14
spring-boot
14
testing
13
spring
13
microservices
12
monitoring
12
static-analysis
11
android
11
awesome
9
java-library
9
http
9
json
9
database
9
jvm
8
javascript
7
xml
7
rest-api
7
rest
7
awesome-list
7
annotation-processor
7
rpc
6
sql
6
jdbc
6
static-code-analysis
6
library
6
machine-learning
6
high-performance
6
java-8
6
metrics
6
javafx
5
junit
5
cloud-native
5
serialization
5
orm
5
java8
5
configuration
5
scheduler
5
grpc
5
gradle
5
test-automation
5
groovy
5
c
5
api
4
visualization
4
spring-boot-starter
4
sdk
4
reactive-streams
4
postgresql
4
logging
4