awesome-java
A curated list of awesome frameworks, libraries and software for the Java programming language.
https://github.com/eric-erki/awesome-java
Last synced: 1 day ago
JSON representation
-
Projects
-
Performance analysis
- 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.
-
Platform
- Logging - Wrapper around a variety of logging API implementations.
- Orienteer - Open-source business application platform for rapid configuration/development of CRM, ERP, LMS and other applications.
- Chain - Chain of Responsibility pattern implementation.
- Graph - General purpose graph APIs and algorithms.
- Monitoring - Monitoring aims to provide a simple but extensible monitoring solution for Java applications.
- Math - Lightweight, self-contained mathematics and statistics components.
- Net - Collection of network utilities and protocol implementations.
- OGNL - Object-graph navigation language.
- 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.
- Proxy - Library for creating dynamic proxies.
- 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.
- Weaver - Provides an easy way to enhance (weave) compiled bytecode.
- CUBA Platform - High-level framework for developing enterprise applications with a rich web interface, based on Spring, EclipseLink and Vaadin.
- Light-Java - Fast, lightweight and productive microservices framework with built-in [security](https://github.com/networknt/light-oauth2).
- Spring - Provides many packages for dependency injection, aspect-oriented programming, security, etc.
-
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
- RxJava - Allows for composing asynchronous and event-based programs using observable sequences.
- Akka - Toolkit and runtime for building concurrent, distributed, fault-tolerant and event-driven applications.
- Reactive Streams - Provides a standard for asynchronous stream processing with non-blocking backpressure.
- Reactor - Library for building reactive fast-data applications.
- vert.x - Polyglot event-driven application framework.
-
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.
- RESTEasy - Fully certified and portable implementation of the JAX-RS specification.
- 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.
- 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.
- 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.
- Dropwizard - Opinionated framework for setting up modern web applications with Jetty, Jackson, Jersey and Metrics.
- Microserver - A 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.
- 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.
- springdoc-openapi - Automates the generation of API documentation using Spring Boot projects.
- 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.
- Dropwizard - Opinionated framework for setting up modern web applications with Jetty, Jackson, Jersey and Metrics.
- Elide - Opinionated framework for JSON- or GraphQL-APIs based on a JPA data model.
- javalin - Javalin is just a few thousand lines of code on top of Jetty, which means its performance is almost equivalent to pure Jetty.
- Jersey - JAX-RS reference implementation.
- Rapidoid - Simple, secure and extremely fast framework consisting of an embedded HTTP server, GUI components and dependency injection.
- RESTEasy - Fully certified and portable implementation of the JAX-RS specification.
- Spark - Sinatra inspired framework.
- Swagger - Standard, language-agnostic interface to REST APIs.
-
Science
- Morpheus - Provides a versatile two-dimensional memory efficient tabular data structure called a DataFrame to enable efficient in-memory analytics for scientific computing on the JVM.
- Erdos - Modular, light and easy graph framework for theoretic algorithms.
- JGraphT - Graph library that provides mathematical graph-theory objects and algorithms.
- JGraphX - Library for visualizing (mainly Swing) and interacting with node-edge graphs.
- Mines Java Toolkit - Library for geophysical scientific computation, visualization and digital signal analysis.
- Orson-Charts - Generates a wide variety of 3D charts that can be displayed with Swing and JavaFX or exported to PDF, SVG, PNG and JPEG. (GPL-3.0-only)
- XChart - Light-weight library for plotting data. Many customizable chart types are available.
- DataMelt - Environment for scientific computation, data analysis and data visualization. (GPL-3.0-or-later)
- GraphStream - Library for modeling and analyzing dynamic graphs.
- JFreeChart - 2D chart library for Swing, JavaFX and server-side applications. (LGPL-2.1-only)
- Morpheus - Provides a versatile two-dimensional memory efficient tabular data structure called a DataFrame to enable efficient in-memory analytics for scientific computing on the JVM.
- Tablesaw - Includes a data-frame, an embedded column store, and hundreds of methods to transform, summarize, or filter data.
-
Search
- Indexer4j - Simple and light full text indexing and searching library.
- Elasticsearch - Distributed, multitenant-capable, full-text search engine with a RESTful web interface and schema-free JSON documents.
- Apache Lucene - High-performance, full-featured, cross-platform, text search engine library.
- Apache Solr - Enterprise search engine optimized for high-volume traffic.
-
Security
- Bouncy Castle - All-purpose cryptographic library and JCA provider offering a wide range of functions, from basic helpers to PGP/SMIME operations.
- 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.
- Bouncy Castle - All-purpose cryptographic library and JCA provider offering a wide range of functions, from basic helpers to PGP/SMIME operations.
- 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.
- 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.
- pac4j - Security engine.
- 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.
- Vault - Secures, stores, and tightly controls access to tokens, passwords, certificates, API keys, and other secrets. It handles leasing, key revocation, key rolling, and auditing. Through a unified API, users can access an encrypted Key/Value store and network encryption-as-a-service, or generate AWS IAM/STS credentials, SQL/NoSQL databases, X.509 certificates, SSH credentials, and more.
- Keycloak - Integrated SSO and IDM for browser apps and RESTful web services.
- Apache Shiro - Performs authentication, authorization, cryptography and session management.
- Cryptomator - Multiplatform, transparent, client-side encryption of files in the cloud. (GPL-3.0-only)
-
Serialization
- 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.
-
Server
- nanohttpd - Tiny, easily embeddable HTTP server.
- Apache Tomcat - Robust, all-round server for Servlet and JSP.
- Apache TomEE - Tomcat plus Java EE.
- Jetty - Provides a Web server and javax.servlet container, plus support for HTTP/2, WebSocket, OSGi, JMX, JNDI, JAAS and many other integrations.
- WildFly - Formerly known as JBoss and developed by Red Hat with extensive Java EE support. (LGPL-2.1-only)
-
Template Engine
- Jtwig - Modular, configurable and fully tested template engine.
- Jade4J - Implementation of Pug (formerly known as Jade).
- Rocker - Optimized, memory efficient and speedy template engine producing statically typed, plain objects.
- Handlebars.java - Logicless and semantic Mustache templates.
- Jtwig - Modular, configurable and fully tested template engine.
- Pebble - Inspired by Twig and separates itself with its inheritance feature and its easy-to-read syntax. It ships with built-in autoescaping for security and it includes integrated support for internationalization.
- Thymeleaf - Aims to be a substitute for JSP and works for XML files.
-
Testing
- GreenMail - In-memory email server for integration testing. Supports SMTP, POP3 and IMAP including SSL. (GPL-2.0-only)
- Serenity BDD - Automated Acceptance testing and reporting library that works with Cucumber, JBehave and JUnit to make it easier to write high quality executable specifications.
- ConcurrentUnit - Toolkit for testing multi-threaded and asynchronous applications.
- Hoverfly Java - Native bindings for Hoverfly, a proxy which allows you to simulate HTTP services.
- Karate - DSL that combine API test-automation, mocks and performance-testing making testing REST/HTTP services easy.
- Cucumber - Provides a way to describe features in a plain language which customers can understand.
- J8Spec - Follows a Jasmine-like syntax.
- Lamdba Behave - Aims to provide a fluent API to write tests in long and descriptive sentences that read like plain English.
- Beanmother - Sets up beans from YAML fixtures.
- Fixture Factory - Generates fake objects from a template.
- jFairy - Fake data generator.
- Randomized Testing - JUnit test runner and plugins for running JUnit tests with pseudo-randomness.
- Java Faker - Port of Ruby's fake data generator.
- ArchUnit - Test library for specifying and asserting architecture rules.
- XMLUnit - Simplifies testing for XML output.
- junit-dataprovider - TestNG-like data provider/runner for JUnit.
- Mutability Detector - Reports whether instances of a given class are immutable.
- raml-tester - Tests if a request/response matches a given RAML definition.
- TestContainers - Provides throwaway instances of common databases, Selenium web browsers, or anything else that can run in a Docker container.
- JMockit - Integration testing, API mocking and faking, and code coverage.
- Mockito - Mocking framework that lets you write tests with a clean and simple API.
- Moco - Concise web services for stubs and mocks.
- Pact JVM - Consumer-driven contract testing.
- Awaitility - DSL for synchronizing asynchronous operations.
- Cukes-REST - Collection of Gherkin steps for REST-service testing using Cucumber.
- PowerMock - Mocks static methods, constructors, final classes and methods, private methods, and removal of static initializers.
- REST Assured - DSL for easy testing of REST/HTTP services.
- JBehave - Extensively configurable framework that describes stories.
- JGiven - Provides a fluent API which allows for simpler composition.
- Apache JMeter - Functional testing and performance measurements.
- Arquillian - Integration and functional testing platform for Java EE containers.
- Citrus - Integration testing framework that focuses on both client- and server-side messaging.
- Gatling - Load testing tool designed for ease of use, maintainability and high performance.
- JUnit - Common testing framework.
- jqwik - Engine for property-based testing built on JUnit 5.
- PIT - Fast mutation-testing framework for evaluating fault-detection abilities of existing JUnit or TestNG test suites.
- AssertJ - Fluent assertions that improve readability.
- Hamcrest - Matchers that can be combined to create flexible expressions of intent.
- JSONAssert - Simplifies testing JSON strings.
- Truth - Google's fluent assertion and proposition framework.
- pojo-tester - Automatically performs tests on basic POJO methods. (LGPL-3.0-only)
- MockServer - Allows mocking of systems integrated with HTTPS.
- WireMock - Stubs and mocks web services.
-
Utility
- Guava - Collections, caching, primitives support, concurrency libraries, common annotations, string processing, I/O, and more.
- JADE - Framework and environment for building and debugging multi-agent systems. (LGPL-2.0-only)
- 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.
- 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)
- JavaVerbalExpressions - Library that helps with constructing difficult regular expressions.
- JGit - Lightweight, pure Java library implementing the Git version control system.
- minio-java - Provides simple APIs to access any Amazon S3-compatible object storage server.
- Underscore-java - Port of Underscore.js functions.
- bucket4j - Rate limiting library based on token-bucket algorithm.
- Protégé - Provides an ontology editor and a framework to build knowledge-based systems.
- cactoos - Collection of object-oriented primitives.
- Embulk - Bulk data loader that helps data transfer between various databases, storages, file formats, and cloud services.
-
Version Managers
-
Web Crawling
- Crawler4j - Simple and lightweight web crawler.
- StormCrawler - SDK for building low-latency and scalable web crawlers.
- webmagic - Scalable crawler with downloading, url management, content extraction and persistent.
- StormCrawler - SDK for building low-latency and scalable web crawlers.
- Apache Nutch - Highly extensible, highly scalable web crawler for production environments.
- jsoup - Scrapes, parses, manipulates and cleans HTML.
-
Web Frameworks
- Vaadin Flow - Event-driven framework that uses standard web components. Server-side architecture with Ajax on the client side.
- 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.
- Apache Tapestry - Component-oriented framework for creating dynamic, robust, highly scalable web applications.
- Apache Wicket - Component-based web application framework similar to Tapestry, with a stateful GUI.
- Blade - Lightweight, modular framework that aims to be elegant and simple.
- Bootique - Minimally opinionated framework for runnable apps.
- Grails - Groovy framework that provides a highly productive environment by favoring convention over configuration, no XML and support for mixins.
- Jooby - Scalable, fast and modular micro-framework that offers multiple programming models.
- Ninja - Full-stack web framework.
- Play - Built on Akka, it provides predictable and minimal resource consumption (CPU, memory, threads) for highly-scalable applications in Java and Scala.
- PrimeFaces - JSF framework with both free and commercial/support versions and frontend components.
- Ratpack - Set of libraries that facilitate fast, efficient, evolvable and well-tested HTTP applications.
-
-
Resources
-
Awesome Lists
-
Communities
- r/java - Subreddit for the Java community.
- Stack Overflow - Question/answer platform.
-
Programming Languages
Categories
Sub Categories
Twitter
67
Testing
43
Miscellaneous
31
Database
25
REST Frameworks
24
Platform
22
Security
17
JSON
17
Monitoring
16
Websites
15
Distributed Applications
14
Utility
14
Web Frameworks
14
CLI
13
JVM and JDK
13
Networking
13
Science
12
Messaging
12
Awesome Lists
11
Geospatial
11
Logging
10
Machine Learning
10
Bean Mapping
10
Code Analysis
10
HTTP Clients
9
Bytecode Manipulation
9
PDF
9
Data Structures
9
High Performance
9
Development
8
Configuration
8
Formal Verification
8
Distribution
8
ORM
7
Template Engine
7
Microservice
7
Code Generators
7
Dependency Injection
7
Functional Programming
7
Introspection
6
Web Crawling
6
Natural Language Processing
6
Imagery
6
Distributed Transactions
5
Performance analysis
5
Server
5
Influential Books
5
Reactive libraries
5
Serialization
5
Financial
4
Document Processing
4
Caching
4
CSV
4
Job Scheduling
4
Date and Time
4
Podcasts and Screencasts
4
PaaS
4
Search
4
Version Managers
3
GUI
3
Code Coverage
3
IDE
3
Build
3
Communities
3
Game Development
3
Constraint Satisfaction Problem Solver
3
Processes
3
Cluster Management
3
Native
3
Compiler-compiler
3
Hypermedia Types
2
Frontends
1
Keywords
java
141
android
13
static-analysis
10
spring-boot
10
monitoring
10
microservices
9
jvm
8
http
7
testing
7
java-library
7
json
7
spring
7
rpc
7
awesome
7
kotlin
6
javafx
6
jdbc
6
static-code-analysis
6
grpc
5
reactive-streams
5
machine-learning
5
awesome-list
5
scala
5
javascript
5
xml
5
reactive
4
testing-tools
4
annotation-processor
4
scheduler
4
code-analysis
4
database
4
serialization
4
framework
4
jackson
4
library
4
python
4
java-8
4
functional-programming
4
http-client
4
nlp
4
c
4
test-automation
3
code-generator
3
performance
3
configuration
3
junit
3
c-plus-plus
3
concurrency
3
circuit-breaker
3
visualization
3