awesome-java
A curated list of awesome frameworks, libraries and software for the Java programming language.
https://github.com/akullpp/awesome-java
Last synced: 1 day ago
JSON representation
-
Projects
-
Messaging
- Smack - Cross-platform XMPP client library.
- NATS client - NATS client.
- AutoMQ - AutoMQ is a cloud-native, serverless reinvented Kafka that is easily scalable, manage-less and cost-effective.
- Emissary - Simple, lightweight, yet FAST messaging library for decoupling messages (requests and events) and message handlers.
-
Microservice
- ActiveRPC - Lightweight and fast library for complex high-load distributed applications and Memcached-like solutions.
- Nacos - Dynamic service discovery, configuration and service management platform for building cloud native applications.
- Quarkus - Kubernetes stack tailored for the HotSpot and Graal VM.
- Armeria - Asynchronous RPC/REST client/server library built on top of Java 8, Netty, HTTP/2, Thrift and gRPC.
- consul-api - Client for the Consul API: a distributed, highly available and datacenter-aware registry/discovery service.
- Eureka - REST-based service registry for resilient load balancing and failover.
- JDA - Wrapping of the Discord REST API and its WebSocket events.
- kubernetes-client - Client provides access to the full Kubernetes & OpenShift REST APIs via a fluent DSL.
- OpenAI-Java - Java libraries for using OpenAI's GPT-3 API.
- Sentinel - Flow control component enabling reliability, resilience and monitoring for microservices.
- KeenType - Modernized version of a Java-based implementation of the New Typesetting System, which was heavily based on Donald E. Knuth's original TeX.
-
Miscellaneous
- JBake - Static website generator.
- JCuda - JCuda offers Java bindings for CUDA and CUDA-related libraries.
- 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
- CoreNLP - Provides a set of fundamental tools for tasks like tagging, named entity recognition, and sentiment analysis. (GPL-3.0-or-later)
- DKPro - Collection of reusable NLP tools for linguistic pre-processing, machine learning, lexical resources, etc.
- LingPipe - Toolkit for tasks ranging from POS tagging to sentiment analysis.
- 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.
-
Networking
- MINA - Abstract, event-driven async I/O API for network operations over TCP/IP and UDP/IP via Java NIO.
- Undertow - Web server providing both blocking and non-blocking APIs based on NIO. Used as a network layer in WildFly. (LGPL-2.1-only)
- Commons-networking - Client for server-sent events (SSE).
- Comsat - Integrates standard Java web-related APIs with Quasar fibers and actors.
- Dubbo - High-performance RPC framework.
- Grizzly - NIO framework. Used as a network layer in Glassfish.
- 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.
- Drift - Easy-to-use, annotation-based library for creating Thrift clients and serializable types.
- ServiceTalk - Framework built on Netty with APIs tailored to specific protocols and support for multiple programming paradigms.
- sshj - Programmatically use SSH, SCP or SFTP.
- TLS Channel - Implements a ByteChannel interface over SSLEngine, enabling easy-to-use (socket-like) TLS.
- 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.
-
ORM
- Apache Cayenne - Provides a clean, static API for data access. Also includes a GUI Modeler for working with database mappings, and DB reverse engineering and generation.
- Ebean - Provides simple and fast data access.
- EclipseLink - Supports a number of persistence standards: JPA, JAXB, JCA and SDO.
- Hibernate - Robust and widely used, with an active community. (LGPL-2.1-only)
- Doma - Database access framework that verifies and generates source code at compile time using annotation processing as well as native SQL templates called two-way SQL.
- MyBatis - Couples objects with stored procedures or SQL statements.
- MyBatis-Plus - A powerful enhanced toolkit of MyBatis for simplifying development.
- ObjectiveSql - ActiveRecord ORM for rapid development and convention over configuration.
- Permazen - Language-natural persistence layer.
- SimpleFlatMapper - Simple database and CSV mapper.
- mybatis-dynamic - Code-first dynamic ORM for MyBatis with runtime schema modification.
-
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.
- Microsoft Azure ![c - Microsoft's cloud infrastructure.
-
Pathfinding
- Pathetic - A highly configurable 3D A\* pathfinding library that uses specific optimizations for high performance.
-
PDF
- Apache FOP - Creates PDFs from XSL-FO.
- Apache PDFBox - Toolbox for creating and manipulating PDFs.
- Dynamic Jasper - Abstraction layer to JasperReports. (LGPL-3.0-only)
- Dynamic Jasper - Abstraction layer to JasperReports. (LGPL-3.0-only)
- Dynamic Jasper - Abstraction layer to JasperReports. (LGPL-3.0-only)
- DynamicReports - Simplifies JasperReports. (LGPL-3.0-only)
- flyingsaucer - XML/XHTML and CSS 2.1 renderer. (LGPL-2.1-or-later)
- JasperReports - Complex reporting engine. (LGPL-3.0-only)
- Open HTML to PDF - Properly supports modern PDF standards based on flyingsaucer and Apache PDFBox.
- OpenPDF - Open-source iText fork. (LGPL-3.0-only & MPL-2.0)
- Tabula - Extracts tables from PDF files.
- iText ![c - Creates PDF files programmatically.
- Open HTML to PDF - Properly supports modern PDF standards based on flyingsaucer and Apache PDFBox.
-
Performance analysis
- fastThread ![c - Analyze and visualize thread dumps with a free cloud-based upload interface.
- 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)
- 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)
- 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.
- LatencyUtils - Utilities for latency measurement and reporting.
- Heap Seance - Memory leak diagnostics that orchestrates jcmd, jmap, jstat, JFR, Eclipse MAT, and async-profiler into a structured investigation workflow with confidence-based verdicts.
- JVM Hotpath - Java agent for line-level execution frequency analysis to identify algorithmic bottlenecks.
- fastThread ![c - Analyze and visualize thread dumps with a free cloud-based upload interface.
- GCeasy ![c - Tool to analyze and visualize GC logs. It provides a free cloud-based upload interface.
-
Platform
- 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.
- 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.
- CSV - Component for reading and writing comma separated value files.
- 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.
- Email - Library for sending e-mail from Java.
- 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.
- 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.
- IO - Collection of I/O utilities.
- 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.
- Lang - Provides extra functionality for classes in java.lang.
- Logging - Wrapper around a variety of logging API implementations.
- 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.
- Net - Collection of network utilities and protocol implementations.
- OpenPGP - Interface to signing and verifying data using OpenPGP.
- Performance - Small framework for microbenchmark clients, with implementations for Commons DBCP and Pool.
- Pipeline - Provides a set of pipeline utilities designed around work queues that run in parallel to sequentially process data objects.
- Pool - Generic object pooling component.
- RDF - Common implementation of RDF 1.1 that could be implemented by systems on the JVM.
- RNG - Commons Rng provides implementations of pseudo-random numbers generators.
- SCXML - Implementation of the State Chart XML specification aimed at creating and maintaining a Java SCXML engine.
- Validator - Framework to define validators and validation rules in an xml file.
- VFS - Virtual File System component for treating files, FTP, SMB, ZIP and such like as a single logical file system.
-
Programming Languages
Categories
Sub Categories
People
68
Testing
64
Platform
53
Miscellaneous
42
Database
40
Websites
30
Security
27
Monitoring
26
Utility
26
Web Frameworks
26
REST Frameworks
22
Code Generators
18
Science
17
JSON
17
Messaging
16
Distributed Applications
15
Related Awesome Lists
15
JVM and JDK
15
Code Analysis
14
Logging
14
Configuration
14
Networking
14
Distribution
14
PDF
13
Machine Learning
13
Dependency Injection
11
Performance analysis
11
Development
11
Microservice
11
ORM
11
Bytecode Manipulation
11
Template Engine
11
HTTP Clients
10
Podcasts and Screencasts
10
Geospatial
10
Game Development
10
Data Structures
10
CLI
10
Functional Programming
9
Formal Verification
9
Bean Mapping
9
Imagery
8
Introspection
7
Serialization
7
Influential Books
7
High Performance
7
Job Scheduling
7
Financial
6
Document Processing
6
CSV
6
GUI
6
Natural Language Processing
6
Reactive libraries
5
Web Crawling
5
Native
5
IDE
5
Search
5
Workflow Orchestration Engines
5
Date and Time
5
Artificial Intelligence
5
PaaS
5
Hypermedia Types
4
Build
4
Server
4
Constraint Satisfaction Problem Solver
4
Distributed Transactions
4
Code Coverage
4
Caching
4
Processes
3
Computer Vision
3
Mobile Development
3
Version Managers
3
Cloud
2
Compiler-compiler
2
Communities
2
Frontends
2
Architecture
2
Cluster Management
2
Pathfinding
1
Decentralization
1
Keywords
java
227
kotlin
18
spring-boot
17
testing
16
android
15
spring
14
microservices
13
jvm
13
monitoring
12
static-analysis
12
http
10
database
10
java-library
10
json
9
awesome
9
javascript
8
rest-api
8
python
8
rest
8
xml
7
annotation-processor
7
machine-learning
7
sql
7
rpc
7
orm
6
high-performance
6
cloud-native
6
jdbc
6
awesome-list
6
java8
6
framework
6
static-code-analysis
6
api
6
library
6
metrics
6
javafx
6
logging
6
maven-plugin
6
java-8
6
junit
6
configuration
6
serialization
6
gradle
5
generator
5
cli
5
functional-programming
5
performance
5
test-automation
5
testing-tools
5
grpc
5