Track Awesome Java Updates Weekly
A curated list of awesome frameworks, libraries and software for the Java programming language.
🏠 Home · 🔍 Search · 🔥 Feed · 📮 Subscribe · ❤️ Sponsor · 😺 akullpp/awesome-java · ⭐ 42K · 🏷️ Programming Languages
Nov 11 - Nov 17, 2024
Architecture
- jMolecules (⭐1.2k) - Annotations and interfaces to express design and architecture concepts in code.
Build
- Buck2 (⭐3.6k) - Encourages the creation of small, reusable modules consisting of code and resources.
Dependency Injection / Text-Based User Interfaces
- HK2 - Lightweight and dynamic dependency injection framework.
Logging / Text-Based User Interfaces
- Flogger - Flogger is a fluent logging API for Java. It supports a wide variety of features, and has many benefits over existing logging APIs.
Oct 28 - Nov 03, 2024
Native / Text-Based User Interfaces
- native-lib-loader (⭐184) - Native library loader for extracting and loading native libraries from Java.
Testing / Frameworks
- cdi-test (⭐26) - JUnit extension for easy and efficient testing of CDI components.
- weld-testing (⭐101) - Set of test framework extensions (JUnit 4, JUnit 5, Spock) to enhance the testing of CDI components via Weld. Supports Weld 5.
Testing / Miscellaneous
- Testcontainers (⭐8k) - Provides throwaway instances of common databases, Selenium web browsers, or anything else that can run in a Docker container.
Sep 09 - Sep 15, 2024
Monitoring / Text-Based User Interfaces
- OpenTelemetry (⭐2k) - Instrument, generate, collect, and export telemetry data to help you analyze your software’s performance and behavior.
May 06 - May 12, 2024
Miscellaneous / Text-Based User Interfaces
- ISBN core (⭐3) - A small library that contains a representation object of ISBN-10 and ISBN-13 and tools to parse, validate and format one.
Apr 22 - Apr 28, 2024
CLI / Text-Based User Interfaces
- 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.
Messaging / Text-Based User Interfaces
- AutoMQ (⭐3.8k) - AutoMQ is a cloud-native, serverless reinvented Kafka that is easily scalable, manage-less and cost-effective.
PDF / Text-Based User Interfaces
- Dynamic Jasper - Abstraction layer to JasperReports. (LGPL-3.0-only)
Influential Books / Mocking
Feb 19 - Feb 25, 2024
Utility / Mocking
- JKScope (⭐13) - Java scope functions inspired by Kotlin.
Feb 12 - Feb 18, 2024
Constraint Satisfaction Problem Solver / Text-Based User Interfaces
- Timefold - Flexible solver with Spring/Quarkus support and quickstarts for the Vehicle Routing Problem, Maintenance Scheduling, Employee Shift Scheduling and much more.
Miscellaneous / Text-Based User Interfaces
- IP2Location.io Java SDK (⭐4) - Wrapper for the IP2Location.io Geolocation API and the IP2WHOIS domain WHOIS API.
Testing / Miscellaneous
- Selfie (⭐52) - Snapshot testing (inline and on disk).
Jan 08 - Jan 14, 2024
Related Awesome Lists / Mocking
Nov 20 - Nov 26, 2023
GUI / Text-Based User Interfaces
- SnapKit (⭐251) - Modern Java UI library for both desktop and web.
IDE / Text-Based User Interfaces
- SnapCode - Modern IDE for Java running in the browser, focused on education.
JVM and JDK / Text-Based User Interfaces
- Microsoft JDK (⭐323) - Microsoft Build of OpenJDK, Free, Open Source, Freshly Brewed!
Science / Other
- Orekit - A low level space flight dynamics library providing basic elements (orbits, dates, attitude, frames...) and various algorithms (conversions, propagations, pointing...) to handle them.
Testing / Mocking
- EasyMock (⭐820) - EasyMock is a Java library that provides an easy way to use Mock Objects in unit testing.
Nov 06 - Nov 12, 2023
Geospatial / Text-Based User Interfaces
- ArcGIS Maps SDK for Java (⭐113) - JavaFX library for adding mapping and GIS functionality to desktop apps.
Machine Learning / Text-Based User Interfaces
- Neureka (⭐70) - A lightweight, platform independent, OpenCL accelerated nd-array/tensor library.
Oct 23 - Oct 29, 2023
CLI / Argument Parsing
- Airline - Annotation-based framework for parsing Git-like command-line arguments.
Configuration / Text-Based User Interfaces
- Gestalt (⭐80) - 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.
Monitoring / Text-Based User Interfaces
- Dropwizard Metrics (⭐7.8k) - Expose metrics via JMX or HTTP and send them to a database.
- Micrometer (⭐4.5k) - Vendor-neutral metrics/observability facade for the most popular metrics/observability libraries.
- Micrometer Tracing (⭐245) - Vendor-neutral distributed tracing facade for the most popular tracer libraries.
Serialization / Other
- Fury (⭐3.1k) - Blazing fast object graph serialization framework powered by JIT and zero-copy.
Testing / Asynchronous
- GreenMail - In-memory email server for integration testing. Supports SMTP, POP3 and IMAP including SSL. (GPL-2.0-only)
Testing / Fixtures
- Datafaker (⭐1.2k) - Modern fake data generator forked from Java Faker.
Utility / Mocking
- dregex (⭐46) - 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.
- JADE - Framework and environment for building and debugging multi-agent systems. (LGPL-2.0-only)
- Semver4j (⭐72) - Lightweight library that helps you handling semantic versioning with different modes.
Jul 24 - Jul 30, 2023
Code Analysis / Text-Based User Interfaces
- RefactorFirst (⭐457) - Identifies and prioritizes God Classes and Highly Coupled classes.
Code Generators / Text-Based User Interfaces
- Avaje Http Server - Generates Lightweight JAX-RS style http servers using Javalin or Helidon (Nima) SE.
Configuration / Text-Based User Interfaces
- avaje config - Loads yaml and properties files, supports dynamic configuration, plugins, file-watching and config event listeners.
Database / Text-Based User Interfaces
- OpenDJ (⭐368) - LDAPv3 compliant directory service, developed for the Java platform, providing a high performance, highly available, and secure store for the identities.
Dependency Injection / Text-Based User Interfaces
- Avaje Inject - Microservice-focused compile-time injection framework without reflection.
Distributed Applications / Text-Based User Interfaces
- OpenIG (⭐74) - High-performance reverse proxy server with specialized session management and credential replay functionality.
Distribution / Text-Based User Interfaces
- jlink.online (⭐45) - Builds optimized runtimes over HTTP.
HTTP Clients / Text-Based User Interfaces
- Avaje Http Client - Wrapper on JDK 11's HttpClient that adds Feign-like interface among other enhancements.
JSON / Text-Based User Interfaces
- Avaje Jsonb - Reflection-free Json binding via source code generation with Jackson-like annotations.
Miscellaneous / Text-Based User Interfaces
- jOOX (⭐495) - Simple wrapper for the org.w3c.dom package, to allow for fluent XML document creation and manipulation with an API inspired by jQuery.
Security / Other
- OpenAM (⭐774) - Access management solution that includes authentication, SSO, authorization, federation, entitlements and web services security.
- Topaz - Fine-grained authorization for applications with support for RBAC, ABAC, and ReBAC.
Websites / Other
May 29 - Jun 04, 2023
Database / Text-Based User Interfaces
- CosId (⭐482) - Universal, flexible, high-performance distributed ID generator.
Feb 20 - Feb 26, 2023
Bytecode Manipulation
- Maker (⭐55) - Provides low level bytecode generation.
Monitoring / Text-Based User Interfaces
- hippo4j (⭐5.6k) - Dynamic and observable thread pool framework.
Testing / Asynchronous
- WebTau (⭐368) - Test across REST-API, Graph QL, Browser, Database, CLI and Business Logic with consistent set of matchers and concepts.
Feb 13 - Feb 19, 2023
Testing / Fixtures
- Instancio (⭐909) - Automates data setup in unit tests by generating fully-populated, reproducible objects. Includes JUnit 5 extension.
Testing / Matchers
- JsonUnit (⭐886) - Library that simplifies JSON comparison in tests.
Jan 30 - Feb 05, 2023
Code Analysis / Text-Based User Interfaces
- Error Prone Support (⭐196) - Error Prone extensions: extra bug checkers and a large battery of Refaster templates.
- p3c (⭐30k) - Provides Alibaba's coding guidelines for PMD, IDEA and Eclipse.
Database / Text-Based User Interfaces
- Lettuce - Lettuce is a scalable Redis client for building non-blocking Reactive applications.
Machine Learning / Text-Based User Interfaces
- Intelligent java (⭐65) - Seamlessly integrate with remote deep learning and language models programmatically.
Podcasts and Screencasts / Mocking
Jan 23 - Jan 29, 2023
Database / Text-Based User Interfaces
- HSQLDB - HyperSQL 100% Java database.
Development / Text-Based User Interfaces
- Tail - Enable infinite recursion using tail call optimization.
Microservice / Text-Based User Interfaces
- JDA (⭐4.3k) - Wrapping of the Discord REST API and its WebSocket events.
- KeenType - Modernized version of a Java-based implementation of the New Typesetting System, which was heavily based on Donald E. Knuth's original TeX.
- kubernetes-client (⭐3.4k) - Client provides access to the full Kubernetes & OpenShift REST APIs via a fluent DSL.
- OpenAI-Java (⭐4.8k) - Java libraries for using OpenAI's GPT-3 API.
Miscellaneous / Text-Based User Interfaces
- AWS SDK for Java 2.0 (⭐2.2k) - Wrapper around AWS' API.
Science / Other
- DataMelt - Environment for scientific computation, data analysis and data visualization. (GPL-3.0-or-later)
Security / Other
- DependencyCheck (⭐6.4k) - Detects publicly disclosed vulnerabilities contained within a project's dependencies.
Testing / Miscellaneous
- log-capture (⭐12) - Captures log entries and provides assertions for unit and integration testing.
Utility / Mocking
- Chocotea (⭐41) - Generates postman collection, environment and integration tests from java code.
Influential Books / Mocking
Dec 05 - Dec 11, 2022
Configuration / Text-Based User Interfaces
- Externalized Properties (⭐27) - Lightweight yet powerful configuration library which supports resolution of properties from external sources and an extensible post-processing/conversion mechanism.
Messaging / Text-Based User Interfaces
- Deezpatch (⭐42) - Simple, lightweight, and performant dispatch library for decoupling messages (requests and events) and message handlers.
Miscellaneous / Text-Based User Interfaces
- Svix (⭐2.4k) - Library for the Svix API to send webhooks and verify signatures.
Monitoring / Text-Based User Interfaces
- HertzBeat (⭐5.6k) - Real-time monitoring system with custom-monitor and agentless.
Template Engine / Other
- jstachio (⭐261) - Typesafe Mustache templating engine.
Oct 17 - Oct 23, 2022
Bytecode Manipulation
- Recaf - JVM reverse engineering toolkit, essentially an IDE for Java bytecode.
Configuration / Text-Based User Interfaces
- Curator Framework - High-level API for Apache ZooKeeper.
Game Development / Text-Based User Interfaces
- Void2D - High-level 2D game engine with built-in physics based on Swing.
HTTP Clients / Text-Based User Interfaces
- Apache HttpComponents - Toolset of low-level Java components focused on HTTP and associated protocols.
- Ribbon (⭐4.6k) - Client-side IPC library that is battle-tested in the cloud.
Networking / Text-Based User Interfaces
- Fluency (⭐155) - High throughput data ingestion logger to Fluentd and Fluent Bit.
Security / Other
- Passay - Enforce password policy by validating candidate passwords against a configurable rule set.
Testing / Fixtures
- Mockneat (⭐527) - Another fake data generator.
Web Frameworks / Mocking
- Javalin - Microframework for web applications.
Aug 29 - Sep 04, 2022
Miscellaneous / Text-Based User Interfaces
- LittleProxy (⭐2.1k) - High performance HTTP proxy atop Netty's event-based networking library.
People / Twitter
- Chris Engelbert - Open Source Enthusiast, Speaker, Developer, Developer Advocacy at TimescaleDB.
May 09 - May 15, 2022
Database / Text-Based User Interfaces
- QueryStream (⭐17) - Build JPA Criteria queries using a Stream-like API.
- QuestDB (⭐15k) - High-performance SQL database for time series. Supports InfluxDB line protocol, PostgreSQL wire protocol, and REST.
- Spring Data JPA MongoDB Expressions (⭐95) - Allows you to use MongoDB query language to query your relational database.
- Trino - Distributed SQL query engine for big data.
Distribution / Text-Based User Interfaces
- jDeploy - Deploy desktop apps as native Mac, Windows or Linux bundles.
Podcasts and Screencasts / Mocking
- 140 Second Ducklings - Short videos on Twitter explaining Java debugging in depth.
May 02 - May 08, 2022
Date and Time / Text-Based User Interfaces
- Jollyday (⭐191) - Determines the holidays for a given year, country/name and eventually state/region.
Mar 14 - Mar 20, 2022
Logging / Text-Based User Interfaces
- Echopraxia (⭐53) - API designed around structured logging, rich context, and conditional logging. There are Logback and Log4J2 implementations, but Echopraxia's API is completely dependency-free, meaning it can be implemented with any logging API.
Feb 14 - Feb 20, 2022
Code Generators / Text-Based User Interfaces
- Geci (⭐130) - Discovers files that need generated code, updates automatically and writes to the source with a convenient API.
- JPA Buddy - Plugin for IntelliJ IDEA. Provides visual tools for generating JPA entities, Spring Data JPA repositories, Liquibase changelogs and SQL scripts. Offers automatic Liquibase/Flyway script generation by comparing model to DB, and reverse engineering JPA entities from DB tables.
Miscellaneous / Text-Based User Interfaces
- RR4J (⭐22) - RR4J is a tool that records java bytecode execution and later allows developers to replay locally.
Security / Other
- jwt-java (⭐11) - Easily create and parse JSON Web Tokens and create customized JWT validators using a fluent API.
Nov 08 - Nov 14, 2021
Database / Text-Based User Interfaces
- ArangoDB (⭐202) - ArangoDB Java driver.
Miscellaneous / Text-Based User Interfaces
- JObfuscator - Source code obfuscator.
Monitoring / Text-Based User Interfaces
- Sentry (⭐1.2k) - Integration with Sentry (⭐39k), an application error tracking and performance analysis platform.
Template Engine / Other
- Jamal (⭐58) - Extendable template engine embedded into Maven/JavaDoc, supporting multiple extensions (Groovy, Ruby, JavaScript, JShell, PlantUml) with support for snippet handling.
- jte (⭐826) - Compiles to classes, and uses an easy syntax, several features to make development easier and provides fast execution and a small footprint.
People / Other
- Groundbreakers - Oracle ACEs, Groundbreaker Ambassadors and Java Champions.
Oct 11 - Oct 17, 2021
Code Generators / Text-Based User Interfaces
- Record-Builder (⭐748) - Companion builder class, withers and templates for Java records.
People / Twitter
- Lukas Eder - Java Champion, speaker, Founder and CEO Data Geekery (jOOQ).
Sep 06 - Sep 12, 2021
Financial / Text-Based User Interfaces
- Cassandre (⭐581) - Trading bot framework.
Machine Learning / Text-Based User Interfaces
- m2cgen (⭐2.8k) - CLI tool to transpile models into native code.
Testing / Miscellaneous
- ConsoleCaptor (⭐30) - Captures console output for unit testing purposes.
Workflow Orchestration Engines / Mocking
- flowable (⭐8k) - Compact and efficient workflow and business process management platform.
Jul 26 - Aug 01, 2021
CLI / Argument Parsing
- jbock (⭐87) - Reflectionless command line parser.
Utility / Mocking
- Java Diff Utils - Utilities for text or data comparison and patching.
May 24 - May 30, 2021
Code Generators / Text-Based User Interfaces
- Bootify - Browser-based Spring Boot app generation with JPA model and REST API.
Networking / Text-Based User Interfaces
- Commons-networking (⭐16) - Client for server-sent events (SSE).
Template Engine / Other
- StringTemplate (⭐950) - Template engine for generating source code, web pages, emails, or any other formatted text output.
Workflow Orchestration Engines / Mocking
- Cadence - Stateful code platform from Uber.
- Temporal - Microservice orchestration platform, forked from Cadence but gRPC based.
May 17 - May 23, 2021
ORM / Text-Based User Interfaces
- ObjectiveSql (⭐1.3k) - ActiveRecord ORM for rapid development and convention over configuration.
Mar 29 - Apr 04, 2021
Miscellaneous / Text-Based User Interfaces
- Smooks (⭐395) - Framework for fragment-based message processing. (Apache-2.0 OR LGPL-3.0-or-later)
Mar 01 - Mar 07, 2021
CSV / Text-Based User Interfaces
- FastCSV (⭐550) - Performance-optimized, dependency-free and RFC 4180 compliant.
Financial / Text-Based User Interfaces
- ta4j (⭐2.1k) - Library for technical analysis.
Security / Other
- OTP-Java (⭐189) - One-time password generator library according to RFC 4226 (HOTP) and RFC 6238 (TOTP).
Feb 08 - Feb 14, 2021
Distribution / Text-Based User Interfaces
- Artipie (⭐514) - Binary artifact management toolkit which hosts them on the file system or S3.
Security / Other
- Password4j (⭐355) - User-friendly cryptographic library that supports Argon2, Bcrypt, Scrypt, PBKDF2 and various other cryptographic hash functions.
Jan 04 - Jan 10, 2021
Game Development / Text-Based User Interfaces
- JBox2D - Port of the renowned C++ 2D physics engine.
- libGDX - All-round cross-platform, high-level framework.
- Litiengine - AWT-based, lightweight 2D game engine.
Dec 21 - Dec 27, 2020
Computer Vision / Text-Based User Interfaces
- BoofCV - Library for image processing, camera calibration, tracking, SFM, MVS, 3D vision, QR Code and much more.
Miscellaneous / Text-Based User Interfaces
- jsweet (⭐1.5k) - Source transpiler to TypeScript/JavaScript.
Dec 14 - Dec 20, 2020
Computer Vision / Text-Based User Interfaces
- ImageJ - Medical image processing application with an API.
- JavaCV (⭐7.6k) - Java interface to OpenCV, FFmpeg, and much more.
Nov 23 - Nov 29, 2020
Data Structures / Text-Based User Interfaces
- RoaringBitmap (⭐3.5k) - Fast and efficient compressed bitmap.
Distribution / Text-Based User Interfaces
- Getdown (⭐505) - System for deploying Java applications to end-user computers and keeping them up to date. Developed as an alternative to Java Web Start.
- JavaPackager (⭐1.1k) - 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.
Document Processing / Text-Based User Interfaces
- fastexcel (⭐680) - High performance library to read and write large Excel (XLSX) worksheets.
HTTP Clients / Text-Based User Interfaces
- Google HTTP Client (⭐1.4k) - Pluggable HTTP transport abstraction with support for java.net.HttpURLConnection, Apache HTTP Client, Android, Google App Engine, XML, Gson, Jackson and Protobuf.
Nov 09 - Nov 15, 2020
Configuration / Text-Based User Interfaces
- Configurate (⭐374) - Configuration library with support for various configuration formats and transformations.
Podcasts and Screencasts / Mocking
- Inside Java (Official)
Websites / Other
Oct 19 - Oct 25, 2020
Networking / Text-Based User Interfaces
- sshj (⭐2.5k) - Programmatically use SSH, SCP or SFTP.
Oct 05 - Oct 11, 2020
Science / Other
- BioJava - Facilitates processing biological data by providing algorithms, file format parsers, sequencing and 3D visualization commonly used in bioinformatics.
Sep 28 - Oct 04, 2020
Machine Learning / Text-Based User Interfaces
- DJL - High-level and engine-agnostic framework for deep learning.
- oj! Algorithms - High-performance mathematics, linear algebra and optimisation needed for data science, machine learning and scientific computing.
- Tribuo - Provides tools for classification, regression, clustering, model development and interfaces with other libraries such as scikit-learn, pytorch and TensorFlow.
Microservice / Text-Based User Interfaces
- ActiveRPC - Lightweight and fast library for complex high-load distributed applications and Memcached-like solutions.
Native / Text-Based User Interfaces
- Aparapi (⭐467) - Converts bytecode to OpenCL which allows execution on GPUs.
PDF / Text-Based User Interfaces
- Tabula (⭐1.8k) - Extracts tables from PDF files.
Science / Other
- Chart-FX (⭐506) - Scientific charting library with focus on performance optimised real-time data visualisation at 25 Hz update rates for large data sets.
- LogicNG (⭐133) - Library for creating, manipulating and solving Boolean and Pseudo-Boolean formulas.
Testing / Miscellaneous
- LogCaptor (⭐366) - Captures log entries for unit testing purposes.
Related Awesome Lists / Mocking
People / Twitter
- Mani Sarkar - Java champion, Polyglot, Software Crafter involved with @graalvm, AI/ML/DL, Data Science, Developer communities, speaker & blogger. Creator of couple of awesome lists like this one.
Jul 20 - Jul 26, 2020
Code Generators / Text-Based User Interfaces
- Telosys - Simple and light code generator available as an Eclipse Plugin and also as a CLI.
Configuration / Text-Based User Interfaces
- microconfig - Configuration system designed for microservices which helps to separate configuration from code. The configuration for different services can have common and specific parts and can be dynamically distributed.
Database / Text-Based User Interfaces
- Apache Calcite - Dynamic data management framework. It contains many of the pieces that comprise a typical database management system.
- Xodus (⭐1.2k) - Highly concurrent transactional schema-less and ACID-compliant embedded database.
Distributed Transactions / Text-Based User Interfaces
- Seata (⭐25k) - Delivers high performance and easy to use distributed transaction services under a microservices architecture.
High Performance / Text-Based User Interfaces
- Koloboke (⭐1k) - Carefully designed extension of the Java Collections Framework with primitive specializations and more.
HTTP Clients / Text-Based User Interfaces
- methanol (⭐239) - HTTP client extensions library.
Hypermedia Types / Text-Based User Interfaces
- Siren4J (⭐25) - Library for the Siren specification.
Job Scheduling / Text-Based User Interfaces
- easy-batch (⭐612) - 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 (⭐3.6k) - 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.
Machine Learning / Text-Based User Interfaces
- H2O - Analytics engine for statistics over big data.
- Siddhi (⭐1.5k) - Cloud native streaming and complex event processing engine.
Mobile Development / Text-Based User Interfaces
- Codename One - Cross-platform solution for writing native mobile apps. (GPL-2.0-only WITH Classpath-exception-2.0)
- MobileUI - Cross-platform framework for developing mobile apps with native UI in Java and Kotlin.
- Multi-OS Engine - Open-source, cross-platform engine to develop native mobile (iOS, Android, etc.) apps.
Monitoring / Text-Based User Interfaces
- Datadog (⭐580) - Modern monitoring & analytics.
- Prometheus (⭐2.2k) - Provides a multi-dimensional data model, DSL, autonomous server nodes and much more.
- SPM (⭐23) - Performance monitor with distributing transaction tracing for JVM apps.
Security / Other
- SSLContext-Kickstart (⭐499) - High-level SSL context builder for configuring HTTP clients with SSL/TLS.
Template Engine / Other
- Jtwig (⭐301) - Modular, configurable and fully tested template engine.
Web Frameworks / Mocking
- ActiveJ - Lightweight asynchronous framework built from the ground up for developing high-performance web applications.
May 25 - May 31, 2020
Configuration / Text-Based User Interfaces
- config (⭐6.2k) - Configuration library supporting Java properties, JSON or its human optimized superset HOCON.
Database / Text-Based User Interfaces
- Debezium - Low latency data streaming platform for change data capture.
Game Development / Text-Based User Interfaces
- Mini2Dx - Beginner-friendly, master-ready framework for rapidly prototyping and building 2D games.
Job Scheduling / Text-Based User Interfaces
- JobRunr (⭐2.4k) - 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.
May 11 - May 17, 2020
Imagery / Text-Based User Interfaces
- image-comparison (⭐340) - Library that compares 2 images with the same sizes and shows the differences visually by drawing rectangles. Some parts of the image can be excluded from the comparison.
Apr 27 - May 03, 2020
PDF / Text-Based User Interfaces
- Eclipse BIRT - Report engine for creating PDF and other formats (DOCX, XLSX, HTML, etc) using Eclipse-based visual editor.
Template Engine / Other
- Freemarker - Library to generate text output (HTML web pages, e-mails, configuration files, source code, etc.) based on templates and changing data.
Apr 13 - Apr 19, 2020
Hypermedia Types / Text-Based User Interfaces
- hate (⭐22) - Builds hypermedia-friendly objects according to HAL specification.
Apr 06 - Apr 12, 2020
JVM and JDK / Text-Based User Interfaces
- Dragonwell8 (⭐4.2k) - Downstream version of OpenJDK optimized for online e-commerce, financial, logistics applications.
Mar 30 - Apr 05, 2020
Microservice / Text-Based User Interfaces
- Sentinel (⭐22k) - Flow control component enabling reliability, resilience and monitoring for microservices.
Utility / Mocking
- Arthas (⭐36k) - Allows to troubleshoot production issues for applications without modifying code or restarting servers.
Mar 16 - Mar 22, 2020
Distribution / Text-Based User Interfaces
- Cloudsmith - Fully managed package management SaaS with support for Maven/Gradle/SBT with a free tier.
Mar 02 - Mar 08, 2020
ORM / Text-Based User Interfaces
- Permazen (⭐403) - Language-natural persistence layer.
Feb 17 - Feb 23, 2020
Logging / Text-Based User Interfaces
- Logstash - Tool for managing log files.
Testing / Asynchronous
- Karate (⭐8.3k) - DSL that combines API test-automation, mocks and performance-testing making testing REST/HTTP services easy.
Feb 03 - Feb 09, 2020
Bean Mapping
- JMapper (⭐231) - Uses byte code manipulation for lightning-fast mapping. Supports annotations and API or XML configuration.
- ModelMapper (⭐2.3k) - Intelligent object mapping library that automatically maps objects to each other.
Build
- Bazel - Tool from Google that builds code quickly and reliably.
Bytecode Manipulation
- ASM - All-purpose, low-level bytecode manipulation and analysis.
- Byte Buddy - Further simplifies bytecode generation with a fluent API.
- Javassist (⭐4.1k) - Tries to simplify bytecode editing.
Caching
- Infinispan - Highly concurrent key/value datastore used for caching.
CLI / Argument Parsing
- picocli - ANSI colors and styles in usage help with annotation-based POSIX/GNU/any syntax, subcommands, strong typing for both options and positional args.
Code Coverage / Text-Based User Interfaces
- 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 / Text-Based User Interfaces
- FreeBuilder (⭐839) - Automatically generates the Builder pattern.
- Joda-Beans - Small framework that adds queryable properties to Java, enhancing JavaBeans.
Compiler-compiler / Text-Based User Interfaces
- ANTLR - Complex full-featured framework for top-down parsing.
- JavaCC - Parser generator that generates top-down parsers. Allows lexical state switching and permits extended BNF specifications.
- JFlex - Lexical analyzer generator.
Configuration / Text-Based User Interfaces
- dotenv (⭐46) - Twelve-factor configuration library which uses environment-specific files.
Constraint Satisfaction Problem Solver / Text-Based User Interfaces
- Choco - Off-the-shelf constraint satisfaction problem solver that uses constraint programming techniques.
CSV / Text-Based User Interfaces
- Super CSV - Powerful CSV parser with support for Dozer, Joda-Time and Java 8.
Data Structures / Text-Based User Interfaces
- Apache Avro - Data interchange format with dynamic typing, untagged data, and absence of manually assigned IDs.
- Apache Orc - Fast and efficient columnar storage format for Hadoop-based workloads.
- Apache Parquet - Columnar storage format based on assembly algorithms from Google's paper on Dremel.
- Apache Thrift - Data interchange format that originated at Facebook.
- Big Queue (⭐557) - Fast and persistent queue based on memory-mapped files.
- HyperMinHash-java (⭐54) - Probabilistic data structure for computing union, intersection, and set cardinality in loglog space.
- Persistent Collection (⭐765) - Persistent and immutable analogue of the Java Collections Framework.
- Protobuf (⭐66k) - Google's data interchange format.
- SBE (⭐3.1k) - Simple Binary Encoding, one of the fastest message formats around.
- Tape (⭐2.5k) - Lightning-fast, transactional, file-based FIFO.
- Wire (⭐4.2k) - Clean, lightweight protocol buffers.
Database / Text-Based User Interfaces
- eXist (⭐429) - NoSQL document database and application platform. (LGPL-2.1-only)
- Modality (⭐13) - Lightweight ORM with database reverse engineering features.
- Redisson (⭐23k) - Allows for distributed and scalable data structures on top of a Redis server.
- requery (⭐3.1k) - 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.
Dependency Injection / Text-Based User Interfaces
- Dagger - Compile-time injection framework without reflection.
Development / Text-Based User Interfaces
- AspectJ - Seamless aspect-oriented programming extension.
- JavaSymbolSolver (⭐290) - Symbol solver.
- Manifold (⭐2.4k) - Re-energizes Java with powerful features like type-safe metaprogramming, structural typing and extension methods.
Distributed Applications / Text-Based User Interfaces
- Axon - Framework for creating CQRS applications.
- Hazelcast (⭐6.1k) - Highly scalable in-memory datagrid with a free open-source version.
- Quasar - Lightweight threads and actors for the JVM.
- ScaleCube Services (⭐611) - Embeddable Cluster-Membership library based on SWIM and gossip protocol.
- Zuul (⭐14k) - Gateway service that provides dynamic routing, monitoring, resiliency, security, and more.
Distributed Transactions / Text-Based User Interfaces
- Bitronix (⭐426) - Simple but complete implementation of the JTA 1.1 API.
- Narayana - Provides support for traditional ACID and compensation transactions, also complies with JTA, JTS and other standards. (LGPL-2.1-only)
Distribution / Text-Based User Interfaces
- Capsule (⭐1.1k) - Simple and powerful packaging and deployment. A fat JAR on steroids, or a "Docker for Java" that supports JVM-optimized containers.
- Nexus - Binary management with proxy and caching capabilities.
- packr (⭐2.6k) - Packs JARs, assets and the JVM for native distribution on Windows, Linux and macOS.
Document Processing / Text-Based User Interfaces
- documents4j - API for document format conversion using third-party converters such as MS Word.
Financial / Text-Based User Interfaces
- Square (⭐39) - Integration with the Square API.
- Stripe (⭐818) - Integration with the Stripe API.
Formal Verification / Text-Based User Interfaces
- Daikon - Detects likely program invariants and generates JML specs based on those invariants.
- JMLOK 2.0 - Detects inconsistencies between code and JML specification through feedback-directed random tests generation, and suggests a likely cause for each nonconformance detected. (GPL-3.0-only)
- KeY - Formal software development tool that aims to integrate design, implementation, formal specification, and formal verification of object-oriented software as seamlessly as possible. Uses JML for specification and symbolic execution for verification. (GPL-2.0-or-later)
- OpenJML - Translates JML specifications into SMT-LIB format and passes the proof problems implied by the program to backend solvers. (GPL-2.0-only)
Functional Programming / Text-Based User Interfaces
- Cyclops (⭐1.3k) - Monad and stream utilities, comprehensions, pattern matching, functional extensions for all JDK collections, future streams, trampolines and much more.
- Vavr - Functional component library that provides persistent data types and functional control structures.
Game Development / Text-Based User Interfaces
- FXGL - JavaFX Game Development Framework.
- jMonkeyEngine - Game engine for modern 3D development.
Geospatial / Text-Based User Interfaces
- H2GIS - Spatial extension of the H2 database. (LGPL-3.0-only)
- Jgeohash - Library for using the GeoHash algorithm.
GUI / Text-Based User Interfaces
- JavaFX - Successor of Swing.
- Scene Builder - Visual layout tool for JavaFX applications.
- SWT - Graphical widget toolkit.
High Performance / Text-Based User Interfaces
- Disruptor - Inter-thread messaging library.
HTTP Clients / Text-Based User Interfaces
- Feign (⭐9.5k) - HTTP client binder inspired by Retrofit, JAXRS-2.0, and WebSocket.
- Retrofit - Typesafe REST client.
IDE / Text-Based User Interfaces
- IntelliJ IDEA - Supports many JVM languages and provides good options for Android development. The commercial edition targets the enterprise sector.
Imagery / Text-Based User Interfaces
- Imgscalr (⭐1.2k) - Simple, efficient and hardware-accelerated image-scaling library implemented in pure Java 2D.
- Tess4J (⭐1.6k) - JNA wrapper for Tesseract OCR API.
Introspection / Text-Based User Interfaces
- Mirror - Mirror was created to bring light to a simple problem, usually named ReflectionUtil, which is on almost all projects that rely on reflection to do advanced tasks.
JSON / Text-Based User Interfaces
- Genson - Powerful and easy-to-use Java-to-JSON conversion library.
- Yasson (⭐203) - Binding layer between classes and JSON documents similar to JAXB.
- JsonPath (⭐8.9k) - Extract data from JSON using XPATH-like syntax.
JVM and JDK / Text-Based User Interfaces
- Corretto - No-cost, multiplatform, production-ready distribution of OpenJDK by Amazon. (GPL-2.0-only WITH Classpath-exception-2.0)
- Liberica JDK - Built from OpenJDK, thoroughly tested and passed the JCK. (GPL-2.0-only WITH Classpath-exception-2.0)
- SAP Machine - SAP's no-cost, rigorously tested and JCK-verified OpenJDK friendly fork. (GPL-2.0-only WITH Classpath-exception-2.0)
- Zulu - OpenJDK builds for Windows, Linux, and macOS. (GPL-2.0-only WITH Classpath-exception-2.0)
Logging / Text-Based User Interfaces
- Apache Log4j 2 - Complete rewrite with a powerful plugin and configuration architecture.
- Kibana - Analyzes and visualizes log files. Some features require payment.
- Logback - Robust logging library with interesting configuration options via Groovy.
- SLF4J - Abstraction layer/simple logging facade.
- tinylog - Lightweight logging framework with static logger class.
- OpenTracing Toolbox (⭐180) - Collection of libraries that build on top of OpenTracing and provide extensions and plugins to existing instrumentations.
Machine Learning / Text-Based User Interfaces
- Smile (⭐6k) - Statistical Machine Intelligence and Learning Engine provides a set of machine learning algorithms and a visualization library.
- Weka - Collection of algorithms for data mining tasks ranging from pre-processing to visualization. (GPL-3.0-only)
Messaging / Text-Based User Interfaces
- NATS client (⭐569) - NATS client.
Microservice / Text-Based User Interfaces
- Armeria (⭐4.8k) - Asynchronous RPC/REST client/server library built on top of Java 8, Netty, HTTP/2, Thrift and gRPC.
- consul-api (⭐417) - Client for the Consul API: a distributed, highly available and datacenter-aware registry/discovery service.
- Eureka (⭐12k) - REST-based service registry for resilient load balancing and failover.
- Helidon - Two-style approach for writing microservices: Functional-reactive and as an implementation of MicroProfile.
- Micronaut - Modern full-stack framework with focus on modularity, minimal memory footprint and startup time.
- Nacos - Dynamic service discovery, configuration and service management platform for building cloud native applications.
- Quarkus - Kubernetes stack tailored for the HotSpot and Graal VM.
Miscellaneous / Text-Based User Interfaces
- JBake - Static website generator.
- JBot (⭐1.2k) - Framework for building chatbots. (GPL-3.0-only)
- Joda-Money - Basic currency and money classes and algorithms not provided by the JDK.
- Membrane Service Proxy (⭐461) - Open-source, reverse-proxy framework.
- Modernizer (⭐369) - Detect uses of legacy Java APIs.
- OctoLinker (⭐5.3k) - Browser extension which allows to navigate through code on GitHub more efficiently.
- PipelinR (⭐420) - Small utility library for using handlers and commands with pipelines.
- Simple Java Mail (⭐1.2k) - Mailing with a clean and fluent API.
Monitoring / Text-Based User Interfaces
- Failsafe Actuator (⭐53) - Out of the box monitoring of Failsafe Circuit Breaker in Spring-Boot environment.
- inspectIT - Captures detailed run-time information via hooks that can be changed on the fly. It supports tracing over multiple systems via the OpenTracing API and can correlate the data with end user monitoring.
Natural Language Processing / Text-Based User Interfaces
- LingPipe - Toolkit for tasks ranging from POS tagging to sentiment analysis.
Networking / Text-Based User Interfaces
- Dubbo (⭐41k) - High-performance RPC framework.
- Grizzly - NIO framework. Used as a network layer in Glassfish.
- Drift (⭐243) - Easy-to-use, annotation-based library for creating Thrift clients and serializable types.
ORM / Text-Based User Interfaces
- Doma (⭐442) - 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.
- 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)
- MyBatis (⭐20k) - Couples objects with stored procedures or SQL statements.
PaaS / Text-Based User Interfaces
- AWS Elastic Beanstalk - AWS-based, with support for Tomcat and Jetty.
- AWS Lambda - Serverless computation.
- Microsoft Azure - Microsoft's cloud infrastructure.
PDF / Text-Based User Interfaces
- Apache FOP - Creates PDFs from XSL-FO.
- iText - Creates PDF files programmatically.
Performance analysis / Text-Based User Interfaces
- fastThread - Analyze and visualize thread dumps with a free cloud-based upload interface.
- GCeasy - Tool to analyze and visualize GC logs. It provides a free cloud-based upload interface.
- honest-profiler (⭐1.3k) - Low-overhead, bias-free sampling profiler.
- 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)
Platform / Apache Commons
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
Platform / Other
- CUBA Platform - High-level framework for developing enterprise applications with a rich web interface, based on Spring, EclipseLink and Vaadin.
- Light-4J (⭐3.6k) - Fast, lightweight and productive microservices framework with built-in security (⭐315).
- Orienteer (⭐243) - Open-source business application platform for rapid configuration/development of CRM, ERP, LMS and other applications.
- Spring - Provides many packages for dependency injection, aspect-oriented programming, security, etc.
Reactive libraries / Other
- Reactor (⭐5k) - Library for building reactive fast-data applications.
REST Frameworks / Other
- Dropwizard (⭐8.5k) - 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.
- Microserver (⭐940) - 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.
- 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.
Science / Other
- JFreeChart - 2D chart library for Swing, JavaFX and server-side applications. (LGPL-2.1-only)
- Morpheus (⭐238) - 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 (⭐3.5k) - Includes a data-frame, an embedded column store, and hundreds of methods to transform, summarize, or filter data.
- XChart (⭐1.5k) - Light-weight library for plotting data. Many customizable chart types are available.
Search / Other
- Apache Solr - Enterprise search engine optimized for high-volume traffic.
Server / Other
- 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 / Other
- Handlebars.java - Logicless and semantic Mustache templates.
- Thymeleaf - Aims to be a substitute for JSP and works for XML files.
Testing / Asynchronous
- Awaitility (⭐3.8k) - DSL for synchronizing asynchronous operations.
- REST Assured (⭐6.9k) - DSL for easy testing of REST/HTTP services.
Testing / BDD
- Cukes-REST (⭐112) - Collection of Gherkin steps for REST-service testing using Cucumber.
- JBehave - Extensively configurable framework that describes stories.
- Serenity BDD (⭐720) - Automated Acceptance testing and reporting library that works with Cucumber, JBehave and JUnit to make it easier to write high quality executable specifications.
Testing / Fixtures
- Java Faker (⭐4.7k) - Port of Ruby's fake data generator.
Testing / Frameworks
- JUnit - Common testing framework.
Testing / Matchers
- AssertJ - Fluent assertions that improve readability.
- Hamcrest - Matchers that can be combined to create flexible expressions of intent.
Testing / Miscellaneous
- junit-dataprovider (⭐246) - TestNG-like data provider/runner for JUnit.
- pojo-tester - Automatically performs tests on basic POJO methods. (LGPL-3.0-only)
Testing / Mocking
- PowerMock (⭐4.2k) - Mocks static methods, constructors, final classes and methods, private methods, and removal of static initializers.
Utility / Mocking
- cactoos (⭐741) - Collection of object-oriented primitives.
- Embulk (⭐1.8k) - Bulk data loader that helps data transfer between various databases, storages, file formats, and cloud services.
- fswatch (⭐29) - Micro library to watch for directory file system changes, simplifying java.nio.file.WatchService.
- JGit - Lightweight, pure Java library implementing the Git version control system.
Version Managers / Mocking
- jabba (⭐3k) - Java Version Manager inspired by nvm. Supports macOS, Linux and Windows.
- jenv (⭐5.8k) - Java Version Manager inspired by rbenv. Can configure globally or per project. Tested on Debian and macOS.
Web Frameworks / Mocking
- Blade (⭐5.8k) - Lightweight, modular framework that aims to be elegant and simple.
- Jooby - Scalable, fast and modular micro-framework that offers multiple programming models.
- PrimeFaces - JSF framework with both free and commercial/support versions and frontend components.
- Vaadin - Full-stack open-source Java framework that simplifies web app development. Build complex, interactive applications with Java alone, and enhance with TypeScript and React components, without needing deep JavaScript, CSS, or HTML expertise.
Communities / Mocking
- r/java - Subreddit for the Java community.
- Stack Overflow - Question/answer platform.
Jan 20 - Jan 26, 2020
Financial / Text-Based User Interfaces
- Parity (⭐502) - Platform for trading venues.
- Philadelphia (⭐324) - Low-latency financial information exchange.
Miscellaneous / Text-Based User Interfaces
- yGuard (⭐376) - Obfuscation via renaming and shrinking.
Jan 06 - Jan 12, 2020
Testing / Frameworks
- jqwik - Engine for property-based testing built on JUnit 5.
Dec 30 - Jan 05, 2019
Database / Text-Based User Interfaces
- Leaf (⭐6.5k) - Distributed ID generate service.
Messaging / Text-Based User Interfaces
- Apache RocketMQ - Fast, reliable, and scalable distributed messaging platform.
PaaS / Text-Based User Interfaces
- Google Cloud - Google's cloud infrastructure.
- OpenShift - Provides additionally an on-premise solution.
REST Frameworks / Other
- springdoc-openapi (⭐3.3k) - Automates the generation of API documentation using Spring Boot projects.
Dec 16 - Dec 22, 2019
Job Scheduling / Text-Based User Interfaces
- Quartz (⭐6.3k) - Feature-rich, open source job scheduling library that can be integrated within virtually any Java application.
- Sundial (⭐269) - Lightweight framework to simply define jobs, define triggers and start the scheduler.
- Wisp (⭐132) - Simple library with minimal footprint and straightforward API.
- db-scheduler (⭐1.3k) - Persistent and cluster-friendly scheduler.
PDF / Text-Based User Interfaces
- OpenPDF (⭐3.6k) - Open-source iText fork. (LGPL-3.0-only & MPL-2.0)
Testing / Matchers
- Truth - Google's fluent assertion and proposition framework.
People / Twitter
- Chris Richardson - Software architect, consultant, and serial entrepreneur, Java Champion, JavaOne Rock Star, *POJOs in Action- author.
Nov 25 - Dec 01, 2019
JVM and JDK / Text-Based User Interfaces
- Adopt Open JDK - Community-driven OpenJDK builds, including both HotSpot and OpenJ9.
- Open JDK - Open JDK community home. (GPL-2.0-only WITH Classpath-exception-2.0)
Nov 11 - Nov 17, 2019
Bean Mapping
- reMap (⭐122) - Lambda and method handle-based mapping which requires code and not annotations if objects have different names.
Bytecode Manipulation
- Perses (⭐66) - Dynamically injects failure/latency at the bytecode level according to principles of chaos engineering.
Database / Text-Based User Interfaces
- druid - High-performance, column-oriented, distributed data store.
IDE / Text-Based User Interfaces
- jGRASP - Created to provide software visualizations that work in conjunction with the debugger such as Control Structure Diagrams, UML class diagrams and Object Viewer.
Introspection / Text-Based User Interfaces
- Objenesis - Allows dynamic instantiation without default constructor, e.g. constructors which have required arguments, side effects or throw exceptions.
Networking / Text-Based User Interfaces
- ServiceTalk (⭐918) - Framework built on Netty with APIs tailored to specific protocols and support for multiple programming paradigms.
People / Twitter
- Spencer Gibb - Software Engineer, Dad, Geek, Co-founder and Lead of Spring Cloud Core @pivotal.
- Vlad Mihalcea - Java Champion working on Hypersistence Optimizer, database aficionado, author of High-Performance Java Persistence book.
Oct 21 - Oct 27, 2019
Introspection / Text-Based User Interfaces
- ClassGraph (⭐2.8k) - ClassGraph (formerly FastClasspathScanner) is an uber-fast, ultra-lightweight, parallelized classpath scanner and module scanner for Java, Scala, Kotlin and other JVM languages.
- ReflectASM (⭐1.5k) - ReflectASM is a very small Java library that provides high performance reflection by using code generation.
- Reflections (⭐4.7k) - Reflections scans your classpath, indexes the metadata, allows you to query it on runtime and may save and collect that information for many modules within your project.
Oct 14 - Oct 20, 2019
Testing / Matchers
- XMLUnit (⭐299) - Simplifies testing for XML output.
Oct 07 - Oct 13, 2019
Bytecode Manipulation
- bytecode-viewer (⭐15k) - Java 8 Jar & Android APK reverse engineering suite. (GPL-3.0-only)
- Byteman - Manipulate bytecode at runtime via DSL (rules); mainly for testing/troubleshooting. (LGPL-2.1-or-later)
CLI / Text-Based User Interfaces
- Lanterna (⭐2.3k) - Easy console text-GUI library, similar to curses. (LGPL-3.0-only)
Code Analysis / Text-Based User Interfaces
- Checkstyle (⭐8.3k) - Static analysis of coding conventions and standards. (LGPL-2.1-or-later)
- jQAssistant - Static code analysis with Neo4J-based query language. (GPL-3.0-only)
- SonarJava (⭐1.1k) - Static analyzer for SonarQube & SonarLint. (LGPL-3.0-only)
- Spotbugs (⭐3.5k) - Static analysis of bytecode to find potential bugs. (LGPL-2.1-only)
Constraint Satisfaction Problem Solver / Text-Based User Interfaces
- JaCoP (⭐220) - Includes an interface for the FlatZinc language, enabling it to execute MiniZinc models. (AGPL-3.0)
Date and Time / Text-Based User Interfaces
- Time4J (⭐439) - Advanced date and time library. (LGPL-2.1-only)
Dependency Injection / Text-Based User Interfaces
- JayWire (⭐56) - Lightweight dependency injection framework. (LGPL-3.0-only)
Development / Text-Based User Interfaces
- DCEVM - JVM modification that allows unlimited redefinition of loaded classes at runtime. (GPL-2.0-only)
- HotswapAgent (⭐2.3k) - Unlimited runtime class and resource redefinition. (GPL-2.0-only)
Distributed Applications / Text-Based User Interfaces
- Atomix - Fault-tolerant distributed coordination framework.
- Dropwizard Circuit Breaker (⭐43) - Circuit breaker design pattern for Dropwizard. (GPL-2.0-only)
Distribution / Text-Based User Interfaces
- Boxfuse - Deployment of JVM applications to AWS using the principles of immutable infrastructure.
Document Processing / Text-Based User Interfaces
- Apache POI - Supports OOXML (XLSX, DOCX, PPTX) as well as OLE2 (XLS, DOC or PPT).
Formal Verification / Text-Based User Interfaces
- Checker Framework - Pluggable type systems. Includes nullness types, physical units, immutability types and more. (GPL-2.0-only WITH Classpath-exception-2.0)
- Java Path Finder (JPF) (⭐534) - JVM formal verification tool containing a model checker and more. Created by NASA.
Functional Programming / Text-Based User Interfaces
- derive4j (⭐566) - Java 8 annotation processor and framework for deriving algebraic data types constructors, pattern-matching and morphisms. (GPL-3.0-only)
Geospatial / Text-Based User Interfaces
- GeoTools - Library that provides tools for geospatial data. (LGPL-2.1-only)
- Mapsforge (⭐1.2k) - Map rendering based on OpenStreetMap data. (LGPL-3.0-only)
IDE / Text-Based User Interfaces
- NetBeans - Provides integration for several Java SE and EE features, from database access to HTML5.
Introspection / Text-Based User Interfaces
- jOOR (⭐2.8k) - jOOR stands for jOOR Object Oriented Reflection. It is a simple wrapper for the java.lang.reflect package.
JVM and JDK / Text-Based User Interfaces
- Graal (⭐20k) - Polyglot embeddable JVM. (GPL-2.0-only WITH Classpath-exception-2.0)
- ParparVM (⭐1.7k) - VM with non-blocking, concurrent GC for iOS. (GPL-2.0-only WITH Classpath-exception-2.0)
- RedHat Open JDK - RedHat's OpenJDK distribution. (GPL-2.0-only WITH Classpath-exception-2.0)
Logging / Text-Based User Interfaces
- Graylog - Open-source aggregator suited for extended role and permission management. (GPL-3.0-only)
Machine Learning / Text-Based User Interfaces
- JSAT (⭐788) - Algorithms for pre-processing, classification, regression, and clustering with support for multi-threaded execution. (GPL-3.0-only)
Miscellaneous / Text-Based User Interfaces
- FizzBuzz Enterprise Edition (⭐21k) - No-nonsense implementation of FizzBuzz made by serious businessmen for serious business purposes. (No explicit license)
Natural Language Processing / Text-Based User Interfaces
- CogCompNLP (⭐470) - Provides common annotators for plain text input. (Research and Academic Use License)
- CoreNLP - Provides a set of fundamental tools for tasks like tagging, named entity recognition, and sentiment analysis. (GPL-3.0-or-later)
Networking / Text-Based User Interfaces
- Undertow - Web server providing both blocking and non-blocking APIs based on NIO. Used as a network layer in WildFly. (LGPL-2.1-only)
- urnlib (⭐31) - Represent, parse and encode URNs, as in RFC 2141. (GPL-3.0-only)
PDF / Text-Based User Interfaces
- DynamicReports (⭐215) - Simplifies JasperReports. (LGPL-3.0-only)
- flyingsaucer (⭐2k) - XML/XHTML and CSS 2.1 renderer. (LGPL-2.1-or-later)
- JasperReports - Complex reporting engine. (LGPL-3.0-only)
Reactive libraries / Other
- vert.x - Polyglot event-driven application framework.
Science / Other
- Orson-Charts (⭐107) - 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)
Security / Other
- Cryptomator - Multiplatform, transparent, client-side encryption of files in the cloud. (GPL-3.0-only)
- Keycloak - Integrated SSO and IDM for browser apps and RESTful web services.
- Tink (⭐13k) - Provides a simple and misuse-proof API for common cryptographic tasks.
Utility / Mocking
- CRaSH - Provides a shell into a JVM that's running CRaSH. Used by Spring Boot and others. (LGPL-2.1-or-later)
- Gephi (⭐5.9k) - Cross-platform for visualizing and manipulating large graph networks. (GPL-3.0-only)
Web Frameworks / Mocking
- Bootique - Minimally opinionated framework for runnable apps.
Sep 09 - Sep 15, 2019
Testing / Fixtures
- jFairy (⭐741) - Fake data generator.
Aug 05 - Aug 11, 2019
HTTP Clients / Text-Based User Interfaces
- unirest-java (⭐2.6k) - Simplified, lightweight HTTP client library.
Jul 08 - Jul 14, 2019
PDF / Text-Based User Interfaces
- Open HTML to PDF (⭐1.9k) - Properly supports modern PDF standards based on flyingsaucer and Apache PDFBox.
May 27 - Jun 02, 2019
Related Awesome Lists / Mocking
May 06 - May 12, 2019
Template Engine / Other
- 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.
Related Awesome Lists / Mocking
Apr 08 - Apr 14, 2019
Template Engine / Other
- Rocker (⭐742) - Optimized, memory efficient and speedy template engine producing statically typed, plain objects.
Related Awesome Lists / Mocking
Mar 18 - Mar 24, 2019
People / Twitter
- Sander Mak - Java Champion, author.
Mar 11 - Mar 17, 2019
Database / Text-Based User Interfaces
- Apache Drill - Distributed, schema on-the-fly, ANSI SQL query engine for Big Data exploration.
Feb 25 - Mar 03, 2019
Websites / Other
Feb 11 - Feb 17, 2019
Caching
- cache2k - In-memory high performance caching library.
Development / Text-Based User Interfaces
- SneakyThrow (⭐77) - Ignores checked exceptions without bytecode manipulation. Can also be used inside Java 8 stream operations.
Miscellaneous / Text-Based User Interfaces
- FF4J (⭐1.4k) - Feature Flags for Java.
Jan 28 - Feb 03, 2019
Search / Other
- Indexer4j (⭐52) - Simple and light full text indexing and searching library.
Jan 14 - Jan 20, 2019
Bean Mapping
- dOOv (⭐92) - 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.
Dec 24 - Dec 30, 2018
Logging / Text-Based User Interfaces
- p6spy (⭐2.1k) - Enables logging for all JDBC transactions without changes to the code.
Messaging / Text-Based User Interfaces
- Apache Qpid - Apache Qpid makes messaging tools that speak AMQP and support many languages and platforms.
- RabbitMQ Java client (⭐1.2k) - RabbitMQ client.
Miscellaneous / Text-Based User Interfaces
- JCuda - JCuda offers Java bindings for CUDA and CUDA-related libraries.
Monitoring / Text-Based User Interfaces
- Jaeger client (⭐491) - Jaeger client.
Security / Other
- Kalium (⭐208) - Binding for the Networking and Cryptography (NaCl) library.
Websites / Other
Dec 03 - Dec 09, 2018
JVM and JDK / Text-Based User Interfaces
- OpenJ9 (⭐3.3k) - High performance, enterprise-calibre, flexibly licensed, openly-governed cross-platform JVM extending and augmenting the runtime technology components from the Eclipse OMR and OpenJDK project.
Nov 26 - Dec 02, 2018
Document Processing / Text-Based User Interfaces
- docx4j - Create and manipulate Microsoft Open XML files.
- zerocell (⭐80) - Annotation-based API for reading data from Excel sheets into POJOs with focus on reduced overhead.
Oct 22 - Oct 28, 2018
Bytecode Manipulation
- Mixin (⭐1.4k) - Manipulate bytecode at runtime using real Java code.
Oct 15 - Oct 21, 2018
CLI / Argument Parsing
- JCommander - Command-line argument-parsing framework with custom types and validation via implementing interfaces.
- JLine (⭐1.5k) - Includes features from modern shells like completion or history.
CLI / Text-Based User Interfaces
- Jansi (⭐1.1k) - ANSI escape codes to format console output.
- Text-IO (⭐343) - Aids the creation of full console-based applications.
Networking / Text-Based User Interfaces
- TLS Channel (⭐191) - Implements a ByteChannel interface over SSLEngine, enabling easy-to-use (socket-like) TLS.
Security / Other
- SecurityBuilder (⭐46) - Fluent Builder API for JCA and JSSE classes and especially X.509 certificates.
Utility / Mocking
- bucket4j (⭐2.3k) - Rate limiting library based on token-bucket algorithm.
Aug 06 - Aug 12, 2018
Processes / Other
- ch.vorburger.exec (⭐30) - Convenient API around Apache Commons Exec.
- zt-exec (⭐881) - Provides a unified API to Apache Commons Exec and ProcessBuilder.
- zt-process-killer (⭐128) - Stops processes started from Java or the system processes via PID.
Jul 30 - Aug 05, 2018
Security / Other
- Themis (⭐1.9k) - 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.
Jul 09 - Jul 15, 2018
Testing / Mocking
- JMockit - Integration testing, API mocking and faking, and code coverage.
Jun 18 - Jun 24, 2018
Security / Other
- Jwks RSA (⭐195) - JSON Web Key Set parser.
May 28 - Jun 03, 2018
Architecture
- ArchUnit (⭐3.2k) - Test library for specifying and asserting architecture rules.
Bean Mapping
- MapStruct (⭐7.1k) - Code generator that simplifies mappings between different bean types, based on a convention-over-configuration approach.
- Orika (⭐1.3k) - JavaBean-mapping framework that recursively copies (among other capabilities) data from one object to another.
- Selma (⭐213) - Annotation processor-based bean mapper.
Build
- Apache Maven - Declarative build and dependency management that favors convention over configuration. It might be preferable to Apache Ant, which uses a rather procedural approach and can be difficult to maintain.
- Gradle - Incremental builds programmed via Groovy instead of declaring XML. Works well with Maven's dependency management.
Bytecode Manipulation
- cglib (⭐4.8k) - Bytecode generation library.
Caching
- Caffeine (⭐16k) - High-performance, near-optimal caching library.
- Ehcache - Distributed general-purpose cache.
Code Analysis / Text-Based User Interfaces
- Error Prone (⭐6.8k) - Catches common programming mistakes as compile-time errors.
- Infer (⭐15k) - Modern static analysis tool for verifying the correctness of code.
- NullAway (⭐3.6k) - Eliminates NullPointerExceptions with low build-time overhead.
- PMD (⭐4.9k) - Source code analysis for finding bad coding practices.
- Spoon (⭐1.8k) - Library for analyzing and transforming Java source code.
Code Generators / Text-Based User Interfaces
- ADT4J (⭐144) - JSR-269 code generator for algebraic data types.
- Auto (⭐10k) - Generates factory, service, and value classes.
- Immutables - Annotation processors to generate simple, safe and consistent value objects.
- JavaPoet (⭐11k) - API to generate source files.
- JHipster (⭐22k) - Yeoman source code generator for Spring Boot and AngularJS.
- Lombok - Code generator that aims to reduce verbosity.
Configuration / Text-Based User Interfaces
- centraldogma (⭐601) - Highly-available version-controlled service configuration repository based on Git, ZooKeeper and HTTP/2.
- ini4j - Provides an API for handling Windows' INI files.
- KAConf (⭐60) - Annotation-based configuration system for Java and Kotlin.
- owner (⭐917) - Reduces boilerplate of properties.
Constraint Satisfaction Problem Solver / Text-Based User Interfaces
- OptaPlanner - Business planning and resource scheduling optimization solver.
CSV / Text-Based User Interfaces
- jackson-dataformat-csv (⭐194) - Jackson extension for reading and writing CSV.
- opencsv - Simple CSV parser.
- uniVocity-parsers (⭐911) - One of the fastest and most feature-complete parsers. Also comes with parsers for TSV and fixed-width records.
Database / Text-Based User Interfaces
- Apache Phoenix - High-performance relational database layer over HBase for low-latency applications.
- Chronicle Map (⭐2.8k) - Efficient, in-memory (opt. persisted to disk), off-heap key-value store.
- FlexyPool (⭐1.1k) - Brings metrics and failover strategies to the most common connection pooling solutions.
- Flyway - Simple database migration tool.
- H2 - Small SQL database notable for its in-memory functionality.
- HikariCP (⭐20k) - High-performance JDBC connection pool.
- JDBI - Convenient abstraction of JDBC.
- Jedis (⭐12k) - Small client for interaction with Redis, with methods for commands.
- Jest (⭐2.1k) - Client for the Elasticsearch REST API.
- jetcd (⭐137) - Client library for etcd.
- Jinq (⭐660) - Typesafe database queries via symbolic execution of Java 8 Lambdas (on top of JPA or jOOQ).
- jOOQ - Generates typesafe code based on SQL schema.
- Liquibase - Database-independent library for tracking, managing and applying database schema changes.
- MapDB - Embedded database engine that provides concurrent collections backed on disk or in off-heap memory.
- MariaDB4j (⭐10) - Launcher for MariaDB that requires no installation or external dependencies.
- Querydsl - Typesafe unified queries.
- Realm (⭐11k) - Mobile database to run directly inside phones, tablets or wearables.
- Speedment (⭐2.1k) - Database access library that utilizes Java 8's Stream API for querying.
- Vibur DBCP - JDBC connection pool library with advanced performance monitoring capabilities.
Date and Time / Text-Based User Interfaces
- iCal4j (⭐761) - Parse and build iCalendar RFC 5545 data models.
- ThreeTen-Extra (⭐396) - Additional date-time classes that complement those in JDK 8.
Dependency Injection / Text-Based User Interfaces
- Apache DeltaSpike - CDI extension framework.
- Feather (⭐354) - Ultra-lightweight, JSR-330-compliant dependency injection library.
- Governator (⭐825) - Extensions and utilities that enhance Google Guice.
- Guice (⭐13k) - Lightweight and opinionated framework that completes Dagger.
Development / Text-Based User Interfaces
- Faux Pas (⭐132) - 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 (⭐5.4k) - Parse, modify and generate Java code.
- NoException - Allows checked exceptions in functional interfaces and converts exceptions to Optional return.
Distributed Applications / Text-Based User Interfaces
- Apache Geode - In-memory data management system that provides reliable asynchronous event notifications and guaranteed message delivery.
- Apache Storm - Realtime computation system.
- Apache ZooKeeper - Coordination service with distributed configuration, synchronization, and naming registry for large distributed systems.
- Failsafe (⭐4.2k) - Simple failure handling with retries and circuit breakers.
- JGroups - Toolkit for reliable messaging and cluster creation.
- resilience4j (⭐9.8k) - Functional fault tolerance library.
Distributed Transactions / Text-Based User Interfaces
- Atomikos - Provides transactions for REST, SOA and microservices with support for JTA and XA.
Distribution / Text-Based User Interfaces
- Central Repository - Largest binary component repository available as a free service to the open-source community. Default used by Apache Maven, and available in all other build tools.
- IzPack - Setup authoring tool for cross-platform deployments.
- really-executable-jars-maven-plugin (⭐125) - Maven plugin for making self-executing JARs.
Formal Verification / Text-Based User Interfaces
- CATG (⭐102) - Concolic unit testing engine. Automatically generates unit tests using formal methods.
Functional Programming / Text-Based User Interfaces
- Fugue - Functional extensions to Guava.
- Functional Java - Implements numerous basic and advanced programming abstractions that assist composition-oriented development.
- jOOλ (⭐2.1k) - Extension to Java 8 that aims to fix gaps in lambda by providing numerous missing types and a rich set of sequential Stream API additions.
- protonpack (⭐479) - Collection of stream utilities.
- StreamEx (⭐2.2k) - Enhances Java 8 Streams.
Game Development / Text-Based User Interfaces
- LWJGL - Robust framework that abstracts libraries like OpenGL/CL/AL.
Geospatial / Text-Based User Interfaces
- Apache SIS - Library for developing geospatial applications.
- Geo (⭐409) - GeoHash utilities in Java.
- GraphHopper (⭐5.4k) - Road-routing engine. Used as a Java library or standalone web service.
- Spatial4j (⭐933) - General-purpose spatial/geospatial library.
High Performance / Text-Based User Interfaces
- Agrona (⭐2.9k) - Data structures and utility methods that are common in high-performance applications.
- Eclipse Collections (⭐2.4k) - Collections framework inspired by Smalltalk.
- fastutil - Fast and compact type-specific collections.
- HPPC - Primitive collections.
- JCTools (⭐3.6k) - Concurrency tools currently missing from the JDK.
HTTP Clients / Text-Based User Interfaces
- Async Http Client (⭐6.3k) - Asynchronous HTTP and WebSocket client library.
- Riptide (⭐296) - Client-side response routing for Spring's RestTemplate.
Hypermedia Types / Text-Based User Interfaces
- JSON-LD (⭐377) - JSON-LD implementation.
IDE / Text-Based User Interfaces
- Eclipse - Established open-source project with support for lots of plugins and languages.
- Visual Studio Code - Provides Java support for lightweight projects with a simple, modern workflow by using extensions from the internal marketplace.
Imagery / Text-Based User Interfaces
- Thumbnailator (⭐5.2k) - High-quality thumbnail generation library.
- TwelveMonkeys (⭐1.9k) - Collection of plugins that extend the number of supported image file formats.
- ZXing (⭐33k) - Multi-format 1D/2D barcode image processing library.
JSON / Text-Based User Interfaces
- DSL-JSON (⭐1k) - JSON library with advanced compile time databinding.
- Gson (⭐23k) - Serializes objects to JSON and vice versa. Good performance with on-the-fly usage.
- HikariJSON (⭐461) - High-performance JSON parser, 2x faster than Jackson.
- jackson-modules-java8 (⭐400) - Set of Jackson modules for Java 8 datatypes and features.
- Jackson-datatype-money (⭐252) - Open-source Jackson module to support JSON serialization and deserialization of JavaMoney data types.
- Jackson (⭐9.1k) - Similar to GSON, but offers performance gains if you need to instantiate the library more often.
- JSON-io (⭐331) - Convert Java to JSON. Convert JSON to Java. Pretty print JSON. Java JSON serializer.
- jsoniter - Fast and flexible library with iterator and lazy parsing API.
- LoganSquare (⭐3.2k) - JSON parsing and serializing library based on Jackson's streaming API. Outperforms GSON & Jackson's library.
- Moshi (⭐9.8k) - Modern JSON library, less opinionated and uses built-in types like List and Map.
- fastjson (⭐26k) - Very fast processor with no additional dependencies and full data binding.
- Jolt (⭐1.6k) - JSON to JSON transformation tool.
- JsonSurfer (⭐293) - Streaming JsonPath processor dedicated to processing big and complicated JSON data.
Logging / Text-Based User Interfaces
- Logbook (⭐1.8k) - Extensible, open-source library for HTTP request and response logging.
Machine Learning / Text-Based User Interfaces
- Apache Flink - Fast, reliable, large-scale data processing engine.
- Apache Mahout - Scalable algorithms focused on collaborative filtering, clustering and classification.
- DatumBox - Provides several algorithms and pre-trained models for natural language processing.
- Deeplearning4j - Distributed and multi-threaded deep learning library.
- Oryx 2 (⭐1.8k) - Framework for building real-time, large-scale machine learning applications. Includes end-to-end applications for collaborative filtering, classification, regression, and clustering.
Messaging / Text-Based User Interfaces
- Aeron (⭐7.4k) - Efficient, reliable, unicast and multicast message transport.
- Apache ActiveMQ - Message broker that implements JMS and converts synchronous to asynchronous communication.
- Apache Camel - Glues together different transport APIs via Enterprise Integration Patterns.
- Apache Kafka - High-throughput distributed messaging system.
- Apache Pulsar - Distributed pub/sub-messaging system.
- EventBus (⭐25k) - Simple publish/subscribe event bus.
- Hermes - Fast and reliable message broker built on top of Kafka.
- JeroMQ (⭐2.4k) - Implementation of ZeroMQ.
- Nakadi (⭐958) - Provides a RESTful API on top of Kafka.
- Smack (⭐2.4k) - Cross-platform XMPP client library.
Miscellaneous / Text-Based User Interfaces
- CQEngine (⭐1.7k) - Ultra-fast, SQL-like queries on Java collections.
- Design Patterns (⭐90k) - Implementation and explanation of the most common design patterns.
- J2ObjC (⭐6k) - Java-to-Objective-C translator for porting Android libraries to iOS.
- Jimfs (⭐2.4k) - In-memory file system.
- JPad - Snippet runner.
- Maven Wrapper (⭐1.6k) - Analogue of Gradle Wrapper for Maven, allows building projects without installing maven.
- MinimalFTP (⭐161) - Lightweight, small and customizable FTP server.
- Modern Java - A Guide to Java 8 (⭐17k) - Popular Java 8 guide.
- OpenRefine - Tool for working with messy data: cleaning, transforming, extending it with web services and linking it to databases.
- Polyglot for Maven (⭐893) - Extensions for Maven 3.3.1+ that allows writing the POM model in dialects other than XML.
- Togglz - Implementation of the Feature Toggles pattern.
- TypeTools (⭐617) - Tools for resolving generic types.
- XMLBeam (⭐73) - Processes XML by using annotations or XPath within code.
Monitoring / Text-Based User Interfaces
- Automon (⭐576) - Combines the power of AOP with monitoring and/or logging tools.
- Glowroot - Open-source Java APM.
- Instrumental - Real-time Java application performance monitoring. A commercial service with free development accounts.
- JavaMelody (⭐2.9k) - Performance monitoring and profiling.
- jmxtrans (⭐1.7k) - Connect to multiple JVMs and query them for their attributes via JMX. Its query language is based on JSON, which allows non-Java programmers to access the JVM attributes. Supports different output writes, including Graphite, Ganglia, and StatsD.
- Jolokia - JMX over REST.
- nudge4j (⭐160) - Remote developer console from the browser for Java 8 via bytecode injection.
- Pinpoint (⭐13k) - Open-source APM tool.
- Stagemonitor (⭐1.7k) - Open-source performance monitoring and transaction tracing for JVM apps.
- Sysmon (⭐155) - Lightweight platform monitoring tool for Java VMs.
- zipkin - Distributed tracing system which gathers timing data needed to troubleshoot latency problems in microservice architectures.
Native / Text-Based User Interfaces
- JavaCPP (⭐4.5k) - Provides efficient and easy access to native C++.
- JNA (⭐8.5k) - Work with native libraries without writing JNI. Also provides interfaces to common system libraries.
- JNR (⭐1.3k) - Work with native libraries without writing JNI. Also provides interfaces to common system libraries. Same goals as JNA, but faster, and serves as the basis for the upcoming Project Panama.
Natural Language Processing / Text-Based User Interfaces
- DKPro - Collection of reusable NLP tools for linguistic pre-processing, machine learning, lexical resources, etc.
Networking / Text-Based User Interfaces
- Comsat (⭐598) - Integrates standard Java web-related APIs with Quasar fibers and actors.
- gRPC (⭐11k) - RPC framework based on protobuf and HTTP/2.
- KryoNet (⭐1.8k) - Provides a clean and simple API for efficient TCP and UDP client/server network communication using NIO and Kryo.
- MINA - Abstract, event-driven async I/O API for network operations over TCP/IP and UDP/IP via Java NIO.
- Netty - Framework for building high-performance network applications.
ORM / Text-Based User Interfaces
- 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.
- SimpleFlatMapper (⭐439) - Simple database and CSV mapper.
PaaS / Text-Based User Interfaces
- Heroku - Abstract computing environments.
PDF / Text-Based User Interfaces
- Apache PDFBox - Toolbox for creating and manipulating PDFs.
Performance analysis / Text-Based User Interfaces
- jHiccup (⭐685) - Logs and records platform JVM stalls.
- JITWatch (⭐3.1k) - Analyze the JIT compiler optimisations made by the HotSpot JVM.
- LatencyUtils (⭐454) - Utilities for latency measurement and reporting.
Reactive libraries / Other
- Akka - Toolkit and runtime for building concurrent, distributed, fault-tolerant and event-driven applications.
- Reactive Streams (⭐4.8k) - Provides a standard for asynchronous stream processing with non-blocking backpressure.
- RxJava (⭐48k) - Allows for composing asynchronous and event-based programs using observable sequences.
REST Frameworks / Other
- Jersey - JAX-RS reference implementation.
- rest.li (⭐2.5k) - 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 (⭐938) - Thin wrapper on the JBoss Netty HTTP stack that provides scaling and performance.
- Restlet Framework (⭐650) - Pioneering framework with powerful routing and filtering capabilities, and a unified client and server API.
- Spark - Sinatra inspired framework.
- 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.
- Swagger - Standard, language-agnostic interface to REST APIs.
Science / Other
- Erdos (⭐127) - Modular, light and easy graph framework for theoretic algorithms.
- GraphStream - Library for modeling and analyzing dynamic graphs.
- JGraphT (⭐2.6k) - Graph library that provides mathematical graph-theory objects and algorithms.
- JGraphX (⭐669) - Library for visualizing (mainly Swing) and interacting with node-edge graphs.
- Mines Java Toolkit (⭐77) - Library for geophysical scientific computation, visualization and digital signal analysis.
Search / Other
- Apache Lucene - High-performance, full-featured, cross-platform, text search engine library.
- Elasticsearch - Distributed, multitenant-capable, full-text search engine with a RESTful web interface and schema-free JSON documents.
Security / Other
- Apache Shiro - Performs authentication, authorization, cryptography and session management.
- Bouncy Castle - All-purpose cryptographic library and JCA provider offering a wide range of functions, from basic helpers to PGP/SMIME operations.
- Hdiv (⭐214) - 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 (⭐10k) - JSON web token for Java and Android.
- Keywhiz (⭐2.6k) - System for distributing and managing secrets.
- Nbvcxz (⭐292) - Advanced password strength estimation.
- OACC - Provides permission-based authorization services.
- pac4j (⭐2.4k) - Security engine.
Serialization / Other
- FlatBuffers (⭐23k) - Memory-efficient serialization library that can access serialized data without unpacking and parsing it.
- FST (⭐1.6k) - JDK-compatible, high-performance object graph serialization.
- Kryo (⭐6.2k) - Fast and efficient object graph serialization framework.
- MessagePack (⭐1.4k) - Efficient binary serialization format.
- PHP Serializer (⭐15) - Serializing objects in the PHP serialization format.
Server / Other
- Apache Tomcat - Robust, all-round server for Servlet and JSP.
- Apache TomEE - Tomcat plus Java EE.
- nanohttpd (⭐6.9k) - Tiny, easily embeddable HTTP server.
Template Engine / Other
- Jade4J (⭐707) - Implementation of Pug (formerly known as Jade).
Testing / Asynchronous
- ConcurrentUnit (⭐420) - Toolkit for testing multi-threaded and asynchronous applications.
- Hoverfly Java (⭐168) - Native bindings for Hoverfly, a proxy which allows you to simulate HTTP services.
Testing / BDD
- Cucumber (⭐2.7k) - Provides a way to describe features in a plain language which customers can understand.
- J8Spec (⭐47) - Follows a Jasmine-like syntax.
- JGiven - Provides a fluent API which allows for simpler composition.
- Lamdba Behave (⭐253) - Aims to provide a fluent API to write tests in long and descriptive sentences that read like plain English.
Testing / Fixtures
- Beanmother (⭐115) - Sets up beans from YAML fixtures.
- Fixture Factory (⭐445) - Generates fake objects from a template.
- Randomized Testing (⭐173) - JUnit test runner and plugins for running JUnit tests with pseudo-randomness.
Testing / Frameworks
- 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.
- Pact JVM (⭐1.1k) - Consumer-driven contract testing.
- PIT - Fast mutation-testing framework for evaluating fault-detection abilities of existing JUnit or TestNG test suites.
Testing / Matchers
- JSONAssert - Simplifies testing JSON strings.
Testing / Miscellaneous
- Mutability Detector (⭐240) - Reports whether instances of a given class are immutable.
- raml-tester (⭐71) - Tests if a request/response matches a given RAML definition.
Testing / Mocking
- Mockito (⭐15k) - Mocking framework that lets you write tests with a clean and simple API.
- MockServer - Allows mocking of systems integrated with HTTPS.
- Moco (⭐4.4k) - Concise web services for stubs and mocks.
- WireMock - Stubs and mocks web services.
Utility / Mocking
- Dex (⭐1.3k) - Java/JavaFX tool capable of powerful ETL and data visualization.
- Guava (⭐50k) - Collections, caching, primitives support, concurrency libraries, common annotations, string processing, I/O, and more.
- JavaVerbalExpressions (⭐2.6k) - Library that helps with constructing difficult regular expressions.
- minio-java (⭐1.1k) - Provides simple APIs to access any Amazon S3-compatible object storage server.
- Protégé - Provides an ontology editor and a framework to build knowledge-based systems.
- Underscore-java (⭐533) - Port of Underscore.js functions.
Version Managers / Mocking
- SDKMan (⭐6.1k) - Java Version Manager inspired by RVM and rbenv. Supports UNIX-based platforms and Windows.
Web Crawling / Mocking
- Apache Nutch - Highly extensible, highly scalable web crawler for production environments.
- Crawler4j (⭐4.5k) - Simple and lightweight web crawler.
- jsoup - Scrapes, parses, manipulates and cleans HTML.
- StormCrawler - SDK for building low-latency and scalable web crawlers.
- webmagic (⭐11k) - Scalable crawler with downloading, url management, content extraction and persistent.
Web Frameworks / Mocking
- 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.
- Firefly - Asynchronous framework for rapid development of high-performance web application.
- Ninja - Full-stack web framework.
- Pippo - Small, highly modularized, Sinatra-like framework.
- Play - Built on Akka, it provides predictable and minimal resource consumption (CPU, memory, threads) for highly-scalable applications in Java and Scala.
- Ratpack - Set of libraries that facilitate fast, efficient, evolvable and well-tested HTTP applications.
- Takes (⭐810) - Opinionated web framework which is built around the concepts of True Object-Oriented Programming and immutability.
Related Awesome Lists / Mocking
Frontends / Mocking
Influential Books / Mocking
Podcasts and Screencasts / Mocking
- The Java Posse - Discontinued as of 02/2015.
People / Twitter
- Adam Bien - Freelance author, JavaOne Rockstar speaker, consultant, Java Champion.
- Aleksey Shipilëv - Performance geek, benchmarking czar, concurrency bug hunter.
- Antonio Goncalves - Java Champion, JUG Leader, Devoxx France, Java EE 6/7, JCP, Author.
- Arun Gupta - Java Champion, JavaOne Rockstar, JUG Leader, Devoxx4Kids-er, VP of Developer Advocacy at Couchbase.
- Brian Goetz - Java Language Architect at Oracle.
- Bruno Borges - Product Manager/Java Jock at Oracle.
- Ed Burns - Consulting Member of the Technical Staff at Oracle.
- Eugen Paraschiv - Author of the Spring Security Course.
- Heinz Kabutz - Java Champion, speaker, author of The Java Specialists' Newsletter, concurrency performance expert.
- Holly Cummins - Technical Lead of IBM London's Bluemix Garage, Java Champion, developer, author, JavaOne rockstar.
- James Weaver - Java/JavaFX/IoT developer, author and speaker.
- Java EE - Official Java EE Twitter account.
- Java Magazine - Official Java Magazine account.
- Java - Official Java Twitter account.
- Javin Paul - Well-known Java blogger.
- Josh Long - Spring Advocate at Pivotal, author of O'Reilly's Cloud Native Java- and Building Microservices with Spring Boot, JavaOne Rock Star.
- Mario Fusco - RedHatter, JUG coordinator, frequent speaker and author.
- Mark Heckler - Pivotal Principal Technologist and Developer Advocate, conference speaker, published author, and Java Champion, focusing on Internet of Things and the cloud.
- Mark Reinhold - Chief Architect, Java Platform Group, Oracle.
- Markus Eisele - Java EE evangelist, Red Hat.
- Martijn Verburg - London JUG co-leader, speaker, author, Java Champion and much more.
- Martin Thompson - Pasty faced performance gangster.
- Monica Beckwith - Performance consultant, JavaOne Rock Star.
- OpenJDK - Official OpenJDK account.
- Peter Lawrey - Peter Lawrey, Java performance expert.
- Randy Shoup - Stitch Fix VP Engineering, speaker, JavaOne Rock Star.
- Reza Rahman - Java EE/GlassFish/WebLogic evangelist, author, speaker, open source hacker.
- Simon Maple - Java Champion, VirtualJUG founder, LJC leader, RebelLabs author.
- Stephen Colebourne - Java Champion, speaker.
- Trisha Gee - Java Champion and speaker.
- Venkat Subramaniam - Author, University of Houston professor, MicroSoft MVP award recipient, JavaOne Rock Star, Java Champion.
Websites / Other