Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
awesome-java
A curated list of awesome frameworks, libraries and software for the Java programming language.
https://github.com/akullpp/awesome-java
Last synced: 3 days ago
JSON representation
-
Resources
-
Communities
- Stack Overflow - Question/answer platform.
- r/java - Subreddit for the Java community.
-
Frontends
-
Influential Books
-
Websites
- foojay.io
- Google Java Style
- InfoQ
- Java Algorithms and Clients
- Java, SQL, and jOOQ
- Java.net
- Javalobby
- JavaWorld
- JAXenter
- RebelLabs
- OverOps Blog
- TheServerSide.com
- Vanilla Java
- Voxxed
- Java Weekly
- Baeldung
- Dzone
- Baeldung
- Dzone
- foojay.io
- InfoQ
- Java Algorithms and Clients
- Java, SQL, and jOOQ
- Javalobby
- JavaWorld
- JAXenter
- RebelLabs
- OverOps Blog
- TheServerSide.com
- Vanilla Java
- Voxxed
- JavaWorld
-
Related Awesome Lists
-
Podcasts and Screencasts
- 140 Second Ducklings - Short videos on Twitter explaining Java debugging in depth.
- A Bootiful Podcast
- Foojay Podcast
- Inside Java
- Java Off Heap
- The Java Posse - Discontinued as of 02/2015.
- A Bootiful Podcast
- Inside Java
- Java Off Heap
- The Java Posse - Discontinued as of 02/2015.
-
People
- Brian Goetz - Java Language Architect at Oracle.
- Bruno Borges - Product Manager/Java Jock at Oracle.
- Chris Engelbert - Open Source Enthusiast, Speaker, Developer, Developer Advocacy at TimescaleDB.
- Chris Richardson - Software architect, consultant, and serial entrepreneur, Java Champion, JavaOne Rock Star, \*POJOs in Action- author.
- 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 Magazine - Official Java Magazine 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.
- Lukas Eder - Java Champion, speaker, Founder and CEO Data Geekery (jOOQ).
- 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.
- 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.
- Sander Mak - Java Champion, author.
- Simon Maple - Java Champion, VirtualJUG founder, LJC leader, RebelLabs author.
- Spencer Gibb - Software Engineer, Dad, Geek, Co-founder and Lead of Spring Cloud Core @pivotal.
- 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.
- Vlad Mihalcea - Java Champion working on Hypersistence Optimizer, database aficionado, author of High-Performance Java Persistence book.
- Groundbreakers - Oracle ACEs, Groundbreaker Ambassadors and Java Champions.
- Groundbreakers - Oracle ACEs, Groundbreaker Ambassadors and Java Champions.
- Aleksey Shipilëv - Performance geek, benchmarking czar, concurrency bug hunter.
-
-
Projects
-
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.
- Bazel - Tool from Google that builds code quickly and reliably.
- Gradle - Incremental builds programmed via Groovy instead of declaring XML. Works well with Maven's dependency management.
- 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.
- Bazel - Tool from Google that builds code quickly and reliably.
- Gradle - Incremental builds programmed via Groovy instead of declaring XML. Works well with Maven's dependency management.
- Buck - Encourages the creation of small, reusable modules consisting of code and resources.
-
Bytecode Manipulation
- ASM - All-purpose, low-level bytecode manipulation and analysis.
- Byte Buddy - Further simplifies bytecode generation with a fluent API.
- Byteman - Manipulate bytecode at runtime via DSL (rules); mainly for testing/troubleshooting. (LGPL-2.1-or-later)
- Recaf - JVM reverse engineering toolkit, essentially an IDE for Java bytecode.
- ASM - All-purpose, low-level bytecode manipulation and analysis.
- Byte Buddy - Further simplifies bytecode generation with a fluent API.
- Byteman - Manipulate bytecode at runtime via DSL (rules); mainly for testing/troubleshooting. (LGPL-2.1-or-later)
- Perses - Dynamically injects failure/latency at the bytecode level according to principles of chaos engineering.
- bytecode-viewer - Java 8 Jar & Android APK reverse engineering suite. (GPL-3.0-only)
- cglib - Bytecode generation library.
- Javassist - Tries to simplify bytecode editing.
- Maker - Provides low level bytecode generation.
- Mixin - Manipulate bytecode at runtime using real Java code.
- Perses - Dynamically injects failure/latency at the bytecode level according to principles of chaos engineering.
- Byteman - Manipulate bytecode at runtime via DSL (rules); mainly for testing/troubleshooting. (LGPL-2.1-or-later)
-
Caching
- cache2k - In-memory high performance caching library.
- Ehcache - Distributed general-purpose cache.
- Infinispan - Highly concurrent key/value datastore used for caching.
- cache2k - In-memory high performance caching library.
- Ehcache - Distributed general-purpose cache.
- Infinispan - Highly concurrent key/value datastore used for caching.
- Caffeine - High-performance, near-optimal caching library.
-
CLI
- JCommander - Command-line argument-parsing framework with custom types and validation via implementing interfaces.
- picocli - ANSI colors and styles in usage help with annotation-based POSIX/GNU/any syntax, subcommands, strong typing for both options and positional args.
- JCommander - Command-line argument-parsing framework with custom types and validation via implementing interfaces.
- picocli - ANSI colors and styles in usage help with annotation-based POSIX/GNU/any syntax, subcommands, strong typing for both options and positional args.
- Jexer - Advanced console (and Swing) text user interface (TUI) library, with mouse-draggable windows, built-in terminal window manager, and sixel image support. Looks like [Turbo Vision](https://en.wikipedia.org/wiki/Turbo_Vision).
- Airline - Annotation-based framework for parsing Git-like command-line arguments.
- jbock - Reflectionless command line parser.
- JLine - Includes features from modern shells like completion or history.
- Jansi - ANSI escape codes to format console output.
- Jexer - Advanced console (and Swing) text user interface (TUI) library, with mouse-draggable windows, built-in terminal window manager, and sixel image support. Looks like [Turbo Vision](https://en.wikipedia.org/wiki/Turbo_Vision).
- Text-IO - Aids the creation of full console-based applications.
- Lanterna - Easy console text-GUI library, similar to curses. (LGPL-3.0-only)
-
Cluster Management
- Apache Aurora - Mesos framework for long-running services and cron jobs.
- Singularity - Mesos framework that makes deployment and operations easy. It supports web services, background workers, scheduled jobs, and one-off tasks.
- Apache Aurora - Mesos framework for long-running services and cron jobs.
- Singularity - Mesos framework that makes deployment and operations easy. It supports web services, background workers, scheduled jobs, and one-off tasks.
-
Code Analysis
- Infer - Modern static analysis tool for verifying the correctness of code.
- jQAssistant - Static code analysis with Neo4J-based query language. (GPL-3.0-only)
- jQAssistant - Static code analysis with Neo4J-based query language. (GPL-3.0-only)
- RefactorFirst - Identifies and prioritizes God Classes and Highly Coupled classes.
- Checkstyle - Static analysis of coding conventions and standards. (LGPL-2.1-or-later)
- Error Prone - Catches common programming mistakes as compile-time errors.
- Error Prone Support - Error Prone extensions: extra bug checkers and a large battery of Refaster templates.
- NullAway - Eliminates NullPointerExceptions with low build-time overhead.
- PMD - Source code analysis for finding bad coding practices.
- p3c - Provides Alibaba's coding guidelines for PMD, IDEA and Eclipse.
- SonarJava - Static analyzer for SonarQube & SonarLint. (LGPL-3.0-only)
- Spoon - Library for analyzing and transforming Java source code.
- Spotbugs - Static analysis of bytecode to find potential bugs. (LGPL-2.1-only)
-
Code Coverage
- Clover - Relies on source-code instrumentation instead of bytecode instrumentation.
- JaCoCo - Framework that enables collection of code coverage metrics, using both offline and runtime bytecode instrumentation.
- Cobertura - Relies on offline (or static) bytecode instrumentation and class loading to collect code coverage metrics. (GPL-2.0-only)
-
Code Generators
- Avaje Http Server - Generates Lightweight JAX-RS style http servers using Javalin or Helidon (Nima) SE.
- Bootify ![c - Browser-based Spring Boot app generation with JPA model and REST API.
- Immutables - Annotation processors to generate simple, safe and consistent value objects.
- Joda-Beans - Small framework that adds queryable properties to Java, enhancing JavaBeans.
- JPA Buddy ![c - 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.
- Lombok - Code generator that aims to reduce verbosity.
- Telosys - Simple and light code generator available as an Eclipse Plugin and also as a CLI.
- Bootify ![c - Browser-based Spring Boot app generation with JPA model and REST API.
- Immutables - Annotation processors to generate simple, safe and consistent value objects.
- JPA Buddy ![c - 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.
- Lombok - Code generator that aims to reduce verbosity.
- ADT4J - JSR-269 code generator for algebraic data types.
- Auto - Generates factory, service, and value classes.
- FreeBuilder - Automatically generates the Builder pattern.
- Geci - Discovers files that need generated code, updates automatically and writes to the source with a convenient API.
- JavaPoet - API to generate source files.
- JHipster - Yeoman source code generator for Spring Boot and AngularJS.
- Record-Builder - Companion builder class, withers and templates for Java records.
-
Compiler-compiler
- ANTLR - Complex full-featured framework for top-down parsing.
- JFlex - Lexical analyzer generator.
- ANTLR - Complex full-featured framework for top-down parsing.
- JFlex - Lexical analyzer generator.
- JavaCC - Parser generator that generates top-down parsers. Allows lexical state switching and permits extended BNF specifications.
-
Computer Vision
- BoofCV - Library for image processing, camera calibration, tracking, SFM, MVS, 3D vision, QR Code and much more.
- ImageJ - Medical image processing application with an API.
- BoofCV - Library for image processing, camera calibration, tracking, SFM, MVS, 3D vision, QR Code and much more.
- ImageJ - Medical image processing application with an API.
- JavaCV - Java interface to OpenCV, FFmpeg, and much more.
-
Configuration
- avaje config - Loads yaml and properties files, supports dynamic configuration, plugins, file-watching and config event listeners.
- Curator Framework - High-level API for Apache ZooKeeper.
- ini4j - Provides an API for handling Windows' INI files.
- 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.
- ini4j - Provides an API for handling Windows' INI files.
- 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.
- owner - Reduces boilerplate of properties.
- centraldogma - Highly-available version-controlled service configuration repository based on Git, ZooKeeper and HTTP/2.
- config - Configuration library supporting Java properties, JSON or its human optimized superset HOCON.
- Configurate - Configuration library with support for various configuration formats and transformations.
- dotenv - Twelve-factor configuration library which uses environment-specific files.
- Externalized Properties - Lightweight yet powerful configuration library which supports resolution of properties from external sources and an extensible post-processing/conversion mechanism.
- Gestalt - Gestalt offers a comprehensive solution to the challenges of configuration management. It allows you to source configuration data from multiple inputs, merge them intelligently, and present them in a structured, type-safe manner.
- KAConf - Annotation-based configuration system for Java and Kotlin.
-
Constraint Satisfaction Problem Solver
- Choco - Off-the-shelf constraint satisfaction problem solver that uses constraint programming techniques.
- OptaPlanner - Business planning and resource scheduling optimization solver.
- Choco - Off-the-shelf constraint satisfaction problem solver that uses constraint programming techniques.
- OptaPlanner - Business planning and resource scheduling optimization solver.
- JaCoP - Includes an interface for the FlatZinc language, enabling it to execute MiniZinc models. (AGPL-3.0)
- Timefold - Flexible solver with Spring/Quarkus support and quickstarts for the Vehicle Routing Problem, Maintenance Scheduling, Employee Shift Scheduling and much more.
- Timefold - Flexible solver with Spring/Quarkus support and quickstarts for the Vehicle Routing Problem, Maintenance Scheduling, Employee Shift Scheduling and much more.
-
CSV
- opencsv - Simple CSV parser.
- opencsv - Simple CSV parser.
- FastCSV - Performance-optimized, dependency-free and RFC 4180 compliant.
- jackson-dataformat-csv - Jackson extension for reading and writing CSV.
- Super CSV - Powerful CSV parser with support for Dozer, Joda-Time and Java 8.
- uniVocity-parsers - One of the fastest and most feature-complete parsers. Also comes with parsers for TSV and fixed-width records.
-
Data Structures
- 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.
- Tape - Lightning-fast, transactional, file-based FIFO.
- 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 - Fast and persistent queue based on memory-mapped files.
- HyperMinHash-java - Probabilistic data structure for computing union, intersection, and set cardinality in loglog space.
- Persistent Collection - Persistent and immutable analogue of the Java Collections Framework.
- Protobuf - Google's data interchange format.
- RoaringBitmap - Fast and efficient compressed bitmap.
- SBE - Simple Binary Encoding, one of the fastest message formats around.
- Wire - Clean, lightweight protocol buffers.
-
Database
- Apache Calcite - Dynamic data management framework. It contains many of the pieces that comprise a typical database management system.
- Apache Drill - Distributed, schema on-the-fly, ANSI SQL query engine for Big Data exploration.
- Apache Phoenix - High-performance relational database layer over HBase for low-latency applications.
- Debezium - Low latency data streaming platform for change data capture.
- druid - High-performance, column-oriented, distributed data store.
- H2 - Small SQL database notable for its in-memory functionality.
- HSQLDB - HyperSQL 100% Java database.
- JDBI - Convenient abstraction of JDBC.
- Lettuce - Lettuce is a scalable Redis client for building non-blocking Reactive applications.
- MapDB - Embedded database engine that provides concurrent collections backed on disk or in off-heap memory.
- Querydsl - Typesafe unified queries.
- Realm - Mobile database to run directly inside phones, tablets or wearables.
- requery - Modern, lightweight but powerful object mapping and SQL generator. Easily map to or create databases, or perform queries and updates from any Java-using platform.
- Trino - Distributed SQL query engine for big data.
- Vibur DBCP - JDBC connection pool library with advanced performance monitoring capabilities.
- Apache Calcite - Dynamic data management framework. It contains many of the pieces that comprise a typical database management system.
- Apache Drill - Distributed, schema on-the-fly, ANSI SQL query engine for Big Data exploration.
- Apache Phoenix - High-performance relational database layer over HBase for low-latency applications.
- druid - High-performance, column-oriented, distributed data store.
- Flyway - Simple database migration tool.
- H2 - Small SQL database notable for its in-memory functionality.
- JDBI - Convenient abstraction of JDBC.
- Jedis - Small client for interaction with Redis, with methods for commands.
- 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.
- Querydsl - Typesafe unified queries.
- Trino - Distributed SQL query engine for big data.
- Vibur DBCP - JDBC connection pool library with advanced performance monitoring capabilities.
- MapDB - Embedded database engine that provides concurrent collections backed on disk or in off-heap memory.
- Querydsl - Typesafe unified queries.
- ArangoDB - ArangoDB Java driver.
- Chronicle Map - Efficient, in-memory (opt. persisted to disk), off-heap key-value store.
- eXist - NoSQL document database and application platform. (LGPL-2.1-only)
- FlexyPool - Brings metrics and failover strategies to the most common connection pooling solutions.
- HikariCP - High-performance JDBC connection pool.
- Jest - Client for the Elasticsearch REST API.
- jetcd - Client library for etcd.
- Jinq - Typesafe database queries via symbolic execution of Java 8 Lambdas (on top of JPA or jOOQ).
- Leaf - Distributed ID generate service.
- MariaDB4j - Launcher for MariaDB that requires no installation or external dependencies.
- Modality - Lightweight ORM with database reverse engineering features.
- OpenDJ - LDAPv3 compliant directory service, developed for the Java platform, providing a high performance, highly available, and secure store for the identities.
- QueryStream - Build JPA Criteria queries using a Stream-like API.
- QuestDB - High-performance SQL database for time series. Supports InfluxDB line protocol, PostgreSQL wire protocol, and REST.
- Redisson - Allows for distributed and scalable data structures on top of a Redis server.
- Speedment - Database access library that utilizes Java 8's Stream API for querying.
- Spring Data JPA MongoDB Expressions - Allows you to use MongoDB query language to query your relational database.
- Xodus - Highly concurrent transactional schema-less and ACID-compliant embedded database.
- CosId - Universal, flexible, high-performance distributed ID generator.
- Trino - Distributed SQL query engine for big data.
-
Dependency Injection
- Inversion of Control
- Apache DeltaSpike - CDI extension framework.
- Avaje Inject - Microservice-focused compile-time injection framework without reflection.
- Dagger - Compile-time injection framework without reflection.
- Apache DeltaSpike - CDI extension framework.
- Feather - Ultra-lightweight, JSR-330-compliant dependency injection library.
- Governator - Extensions and utilities that enhance Google Guice.
- Guice - Lightweight and opinionated framework that completes Dagger.
- HK2 - Lightweight and dynamic dependency injection framework.
- JayWire - Lightweight dependency injection framework. (LGPL-3.0-only)
-
Development
- AspectJ - Seamless aspect-oriented programming extension.
- DCEVM - JVM modification that allows unlimited redefinition of loaded classes at runtime. (GPL-2.0-only)
- NoException - Allows checked exceptions in functional interfaces and converts exceptions to Optional return.
- AspectJ - Seamless aspect-oriented programming extension.
- DCEVM - JVM modification that allows unlimited redefinition of loaded classes at runtime. (GPL-2.0-only)
- NoException - Allows checked exceptions in functional interfaces and converts exceptions to Optional return.
- Faux Pas - Library that simplifies error handling by circumventing the issue that none of the functional interfaces in the Java Runtime is allowed by default to throw checked exceptions.
- HotswapAgent - Unlimited runtime class and resource redefinition. (GPL-2.0-only)
- JavaParser - Parse, modify and generate Java code.
- JavaSymbolSolver - Symbol solver.
- Manifold - Re-energizes Java with powerful features like type-safe metaprogramming, structural typing and extension methods.
- SneakyThrow - Ignores checked exceptions without bytecode manipulation. Can also be used inside Java 8 stream operations.
- Tail - Enable infinite recursion using tail call optimization.
-
Distributed Applications
- 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.
- Atomix - Fault-tolerant distributed coordination framework.
- Axon - Framework for creating CQRS applications.
- JGroups - Toolkit for reliable messaging and cluster creation.
- Quasar - Lightweight threads and actors for the JVM.
- 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.
- Atomix - Fault-tolerant distributed coordination framework.
- Axon - Framework for creating CQRS applications.
- Failsafe - Simple failure handling with retries and circuit breakers.
- JGroups - Toolkit for reliable messaging and cluster creation.
- Failsafe - Simple failure handling with retries and circuit breakers.
- Dropwizard Circuit Breaker - Circuit breaker design pattern for Dropwizard. (GPL-2.0-only)
- Hazelcast - Highly scalable in-memory datagrid with a free open-source version.
-
Distributed Transactions
- Atomikos - Provides transactions for REST, SOA and microservices with support for JTA and XA.
- Narayana - Provides support for traditional ACID and compensation transactions, also complies with JTA, JTS and other standards. (LGPL-2.1-only)
- Atomikos - Provides transactions for REST, SOA and microservices with support for JTA and XA.
- Bitronix - 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)
- Seata - Delivers high performance and easy to use distributed transaction services under a microservices architecture.
-
Distribution
- Boxfuse ![c - Deployment of JVM applications to AWS using the principles of immutable infrastructure.
- 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.
- Cloudsmith ![c - Fully managed package management SaaS with support for Maven/Gradle/SBT with a free tier.
- IzPack - Setup authoring tool for cross-platform deployments.
- jDeploy - Deploy desktop apps as native Mac, Windows or Linux bundles.
- Nexus ![c - Binary management with proxy and caching capabilities.
- Boxfuse ![c - Deployment of JVM applications to AWS using the principles of immutable infrastructure.
- 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.
- Cloudsmith ![c - Fully managed package management SaaS with support for Maven/Gradle/SBT with a free tier.
- IzPack - Setup authoring tool for cross-platform deployments.
- jDeploy - Deploy desktop apps as native Mac, Windows or Linux bundles.
- Nexus ![c - Binary management with proxy and caching capabilities.
- IzPack - Setup authoring tool for cross-platform deployments.
-
Document Processing
- Apache POI - Supports OOXML (XLSX, DOCX, PPTX) as well as OLE2 (XLS, DOC or PPT).
- documents4j - API for document format conversion using third-party converters such as MS Word.
- docx4j - Create and manipulate Microsoft Open XML files.
- Apache POI - Supports OOXML (XLSX, DOCX, PPTX) as well as OLE2 (XLS, DOC or PPT).
-
Formal Verification
- Checker Framework - Pluggable type systems. Includes nullness types, physical units, immutability types and more. (GPL-2.0-only WITH Classpath-exception-2.0)
- 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)
- Checker Framework - Pluggable type systems. Includes nullness types, physical units, immutability types and more. (GPL-2.0-only WITH Classpath-exception-2.0)
- 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
- Functional Java - Implements numerous basic and advanced programming abstractions that assist composition-oriented development.
-
Game Development
- JBox2D - Port of the renowned C++ 2D physics engine.
- jMonkeyEngine - Game engine for modern 3D development.
- libGDX - All-round cross-platform, high-level framework.
- Litiengine - AWT-based, lightweight 2D game engine.
- LWJGL - Robust framework that abstracts libraries like OpenGL/CL/AL.
- Mini2Dx - Beginner-friendly, master-ready framework for rapidly prototyping and building 2D games.
- jMonkeyEngine - Game engine for modern 3D development.
- libGDX - All-round cross-platform, high-level framework.
- LWJGL - Robust framework that abstracts libraries like OpenGL/CL/AL.
- Mini2Dx - Beginner-friendly, master-ready framework for rapidly prototyping and building 2D games.
-
Geospatial
- Apache SIS - Library for developing geospatial applications.
- GeoTools - Library that provides tools for geospatial data. (LGPL-2.1-only)
- H2GIS - Spatial extension of the H2 database. (LGPL-3.0-only)
- Apache SIS - Library for developing geospatial applications.
- GeoTools - Library that provides tools for geospatial data. (LGPL-2.1-only)
- H2GIS - Spatial extension of the H2 database. (LGPL-3.0-only)
-
GUI
- JavaFX - Successor of Swing.
- Scene Builder - Visual layout tool for JavaFX applications.
- SWT - Graphical widget toolkit.
- JavaFX - Successor of Swing.
-
High Performance
-
HTTP Clients
- Apache HttpComponents - Toolset of low-level Java components focused on HTTP and associated protocols.
- Avaje Http Client - Wrapper on JDK 11's HttpClient that adds Feign-like interface among other enhancements.
- Retrofit - Typesafe REST client.
- Avaje Http Client - Wrapper on JDK 11's HttpClient that adds Feign-like interface among other enhancements.
-
IDE
- Eclipse - Established open-source project with support for lots of plugins and languages.
- IntelliJ IDEA ![c - Supports many JVM languages and provides good options for Android development. The commercial edition targets the enterprise sector.
- jGRASP - Created to provide software visualizations that work in conjunction with the debugger such as Control Structure Diagrams, UML class diagrams and Object Viewer.
- NetBeans - Provides integration for several Java SE and EE features, from database access to HTML5.
- SnapCode - Modern IDE for Java running in the browser, focused on education.
- Visual Studio Code - Provides Java support for lightweight projects with a simple, modern workflow by using extensions from the internal marketplace.
- Eclipse - Established open-source project with support for lots of plugins and languages.
- jGRASP - Created to provide software visualizations that work in conjunction with the debugger such as Control Structure Diagrams, UML class diagrams and Object Viewer.
- NetBeans - Provides integration for several Java SE and EE features, from database access to HTML5.
- Eclipse - Established open-source project with support for lots of plugins and languages.
-
Imagery
- ZXing - Multi-format 1D/2D barcode image processing library.
-
Introspection
- 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.
- Objenesis - Allows dynamic instantiation without default constructor, e.g. constructors which have required arguments, side effects or throw exceptions.
- Objenesis - Allows dynamic instantiation without default constructor, e.g. constructors which have required arguments, side effects or throw exceptions.
-
JSON
- Avaje Jsonb - Reflection-free Json binding via source code generation with Jackson-like annotations.
- Genson - Powerful and easy-to-use Java-to-JSON conversion library.
- Gson - Serializes objects to JSON and vice versa. Good performance with on-the-fly usage.
- Jackson - Similar to GSON, but offers performance gains if you need to instantiate the library more often.
- jsoniter - Fast and flexible library with iterator and lazy parsing API.
- Moshi - Modern JSON library, less opinionated and uses built-in types like List and Map.
- Genson - Powerful and easy-to-use Java-to-JSON conversion library.
- jsoniter - Fast and flexible library with iterator and lazy parsing API.
- JsonSurfer - Streaming JsonPath processor dedicated to processing big and complicated JSON data.
- Genson - Powerful and easy-to-use Java-to-JSON conversion library.
-
JVM and JDK
- Adopt Open JDK - Community-driven OpenJDK builds, including both HotSpot and OpenJ9.
- 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)
- Open JDK - Open JDK community home. (GPL-2.0-only WITH Classpath-exception-2.0)
- ParparVM - 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)
- Zulu - OpenJDK builds for Windows, Linux, and macOS. (GPL-2.0-only WITH Classpath-exception-2.0)
- Adopt Open JDK - Community-driven OpenJDK builds, including both HotSpot and OpenJ9.
- Dragonwell8 - Downstream version of OpenJDK optimized for online e-commerce, financial, logistics applications.
- Liberica JDK - Built from OpenJDK, thoroughly tested and passed the JCK. (GPL-2.0-only WITH Classpath-exception-2.0)
- OpenJ9 - 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.
- Open JDK - Open JDK community home. (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)
- OpenJ9 - 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.
- Adopt Open JDK - Community-driven OpenJDK builds, including both HotSpot and OpenJ9.
-
Logging
- Apache Log4j 2 - Complete rewrite with a powerful plugin and configuration architecture.
- Graylog - Open-source aggregator suited for extended role and permission management. (GPL-3.0-only)
- Kibana - Analyzes and visualizes log files. Some features require payment.
- Logback - Robust logging library with interesting configuration options via Groovy.
- Logstash - Tool for managing log files.
- SLF4J - Abstraction layer/simple logging facade.
- tinylog - Lightweight logging framework with static logger class.
- Apache Log4j 2 - Complete rewrite with a powerful plugin and configuration architecture.
- Graylog - Open-source aggregator suited for extended role and permission management. (GPL-3.0-only)
- Logback - Robust logging library with interesting configuration options via Groovy.
- SLF4J - Abstraction layer/simple logging facade.
-
Machine Learning
- 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.
- DJL - High-level and engine-agnostic framework for deep learning.
- H2O ![c - Analytics engine for statistics over big data.
- 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.
- Weka - Collection of algorithms for data mining tasks ranging from pre-processing to visualization. (GPL-3.0-only)
- 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.
- DJL - High-level and engine-agnostic framework for deep learning.
- H2O ![c - Analytics engine for statistics over big data.
- Intelligent java - Seamlessly integrate with remote deep learning and language models programmatically.
-
Messaging
- 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.
- Apache RocketMQ - Fast, reliable, and scalable distributed messaging platform.
- Apache Qpid - Apache Qpid makes messaging tools that speak AMQP and support many languages and platforms.
- Hermes - Fast and reliable message broker built on top of Kafka.
- 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.
- Apache RocketMQ - Fast, reliable, and scalable distributed messaging platform.
- Apache Qpid - Apache Qpid makes messaging tools that speak AMQP and support many languages and platforms.
- Hermes - Fast and reliable message broker built on top of Kafka.
-
Microservice
- ActiveRPC - Lightweight and fast library for complex high-load distributed applications and Memcached-like solutions.
- Helidon - Two-style approach for writing microservices: Functional-reactive and as an implementation of MicroProfile.
- KeenType - Modernized version of a Java-based implementation of the New Typesetting System, which was heavily based on Donald E. Knuth's original TeX.
- 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.
- ActiveRPC - Lightweight and fast library for complex high-load distributed applications and Memcached-like solutions.
- Helidon - Two-style approach for writing microservices: Functional-reactive and as an implementation of MicroProfile.
- JDA - Wrapping of the Discord REST API and its WebSocket events.
- 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
- JBake - Static website generator.
- JCuda - JCuda offers Java bindings for CUDA and CUDA-related libraries.
- JObfuscator![c - Source code obfuscator.
- Joda-Money - Basic currency and money classes and algorithms not provided by the JDK.
- JPad - Snippet runner.
- OpenRefine - Tool for working with messy data: cleaning, transforming, extending it with web services and linking it to databases.
- Svix - Library for the Svix API to send webhooks and verify signatures.
- Togglz - Implementation of the Feature Toggles pattern.
- JBake - Static website generator.
- JCuda - JCuda offers Java bindings for CUDA and CUDA-related libraries.
- JPad - Snippet runner.
- Membrane Service Proxy - Open-source, reverse-proxy framework.
- OpenRefine - Tool for working with messy data: cleaning, transforming, extending it with web services and linking it to databases.
- Togglz - Implementation of the Feature Toggles pattern.
-
Mobile Development
- 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.
- 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
- Glowroot - Open-source Java APM.
- hippo4j - Dynamic and observable thread pool framework.
- 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.
- Instrumental ![c - Real-time Java application performance monitoring. A commercial service with free development accounts.
- Jolokia - JMX over REST.
- Pinpoint - Open-source APM tool.
- zipkin - Distributed tracing system which gathers timing data needed to troubleshoot latency problems in microservice architectures.
- Glowroot - Open-source Java APM.
- 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.
- Instrumental ![c - Real-time Java application performance monitoring. A commercial service with free development accounts.
- Jolokia - JMX over REST.
- Pinpoint - Open-source APM tool.
- zipkin - Distributed tracing system which gathers timing data needed to troubleshoot latency problems in microservice architectures.
-
Natural Language Processing
- CoreNLP - Provides a set of fundamental tools for tasks like tagging, named entity recognition, and sentiment analysis. (GPL-3.0-or-later)
- DKPro - Collection of reusable NLP tools for linguistic pre-processing, machine learning, lexical resources, etc.
- LingPipe - Toolkit for tasks ranging from POS tagging to sentiment analysis.
- DKPro - Collection of reusable NLP tools for linguistic pre-processing, machine learning, lexical resources, etc.
- LingPipe - Toolkit for tasks ranging from POS tagging to sentiment analysis.
-
Networking
- 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.
- Undertow - Web server providing both blocking and non-blocking APIs based on NIO. Used as a network layer in WildFly. (LGPL-2.1-only)
- 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.
- Undertow - Web server providing both blocking and non-blocking APIs based on NIO. Used as a network layer in WildFly. (LGPL-2.1-only)
-
ORM
- Apache Cayenne - Provides a clean, static API for data access. Also includes a GUI Modeler for working with database mappings, and DB reverse engineering and generation.
- Ebean - Provides simple and fast data access.
- EclipseLink - Supports a number of persistence standards: JPA, JAXB, JCA and SDO.
- Hibernate - Robust and widely used, with an active community. (LGPL-2.1-only)
- Apache Cayenne - Provides a clean, static API for data access. Also includes a GUI Modeler for working with database mappings, and DB reverse engineering and generation.
- Ebean - Provides simple and fast data access.
- EclipseLink - Supports a number of persistence standards: JPA, JAXB, JCA and SDO.
- Hibernate - Robust and widely used, with an active community. (LGPL-2.1-only)
-
PaaS
- AWS Elastic Beanstalk ![c - AWS-based, with support for Tomcat and Jetty.
- AWS Lambda ![c - Serverless computation.
- Google Cloud ![c - Google's cloud infrastructure.
- Heroku ![c - Abstract computing environments.
- Microsoft Azure ![c - Microsoft's cloud infrastructure.
- OpenShift ![c - Provides additionally an on-premise solution.
- Google Cloud ![c - Google's cloud infrastructure.
- Heroku ![c - Abstract computing environments.
- OpenShift ![c - Provides additionally an on-premise solution.
-
PDF
- Apache FOP - Creates PDFs from XSL-FO.
- Apache PDFBox - Toolbox for creating and manipulating PDFs.
- Dynamic Jasper - Abstraction layer to JasperReports. (LGPL-3.0-only)
- iText ![c - Creates PDF files programmatically.
- Apache PDFBox - Toolbox for creating and manipulating PDFs.
- Dynamic Jasper - Abstraction layer to JasperReports. (LGPL-3.0-only)
- Eclipse BIRT - Report engine for creating PDF and other formats (DOCX, XLSX, HTML, etc) using Eclipse-based visual editor.
- iText ![c - Creates PDF files programmatically.
- JasperReports - Complex reporting engine. (LGPL-3.0-only)
- Dynamic Jasper - Abstraction layer to JasperReports. (LGPL-3.0-only)
-
Performance analysis
- fastThread ![c - Analyze and visualize thread dumps with a free cloud-based upload interface.
- GCeasy ![c - Tool to analyze and visualize GC logs. It provides a free cloud-based upload interface.
- 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)
- fastThread ![c - Analyze and visualize thread dumps with a free cloud-based upload interface.
- GCeasy ![c - Tool to analyze and visualize GC logs. It provides a free cloud-based upload interface.
- 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
- 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.
- CUBA Platform - High-level framework for developing enterprise applications with a rich web interface, based on Spring, EclipseLink and Vaadin.
- Spring - Provides many packages for dependency injection, aspect-oriented programming, security, etc.
- BCEL - Byte Code Engineering Library - analyze, create, and manipulate Java class files.
- BeanUtils - Easy-to-use wrappers around the Java reflection and introspection APIs.
- BeanUtils2 - Redesign of Commons BeanUtils.
- BSF - Bean Scripting Framework - interface to scripting languages, including JSR-223.
- ClassScan - Find Class interfaces, methods, fields, and annotations without loading.
- CLI - Command-line arguments parser.
- CLI2 - Redesign of Commons CLI.
- Codec - General encoding/decoding algorithms, e.g. phonetic, base64 or URL.
- Collections - Extends or augments the Java Collections Framework.
- Compress - Defines an API for working with tar, zip and bzip2 files.
- Configuration - Reading of configuration/preferences files in various formats.
- Convert - Commons-Convert aims to provide a single library dedicated to the task of converting an object of one type to another.
- CSV - Component for reading and writing comma separated value files.
- Daemon - Alternative invocation mechanism for unix-daemon-like java code.
- DBCP - Database connection pooling services.
- DbUtils - JDBC helper library.
- Digester - XML-to-Java-object mapping utility.
- Email - Library for sending e-mail from Java.
- Exec - API for dealing with external process execution and environment management in Java.
- FileUpload - File upload capability for your servlets and web applications.
- Finder - Java library inspired by the UNIX find command.
- Flatfile - Java library for working with flat data structures.
- Graph - General purpose graph APIs and algorithms.
- I18n - Adds the feature of localized message bundles that consist of one or many localized texts that belong together.
- Id - Id is a component used to generate identifiers.
- Imaging - Image library.
- IO - Collection of I/O utilities.
- Javaflow - Continuation implementation to capture the state of the application.
- JCI - Java Compiler Interface.
- JCS - Java Caching System.
- Jelly - XML based scripting and processing engine.
- Jexl - Expression language which extends the Expression Language of the JSTL.
- JNet - JNet allows to use dynamically register url stream handlers through the java.net API.
- JXPath - Utilities for manipulating Java Beans using the XPath syntax.
- Lang - Provides extra functionality for classes in java.lang.
- 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.
- 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.
- 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.
-
REST Frameworks
- Jersey - JAX-RS reference implementation.
- Elide - Opinionated framework for JSON- or GraphQL-APIs based on a JPA data model.
- 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.
- 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.
- Elide - Opinionated framework for JSON- or GraphQL-APIs based on a JPA data model.
- 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.
- 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.
- 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.
- 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.
-
Reactive libraries
- Akka - Toolkit and runtime for building concurrent, distributed, fault-tolerant and event-driven applications.
- RxJava - Allows for composing asynchronous and event-based programs using observable sequences.
- vert.x - Polyglot event-driven application framework.
- Akka - Toolkit and runtime for building concurrent, distributed, fault-tolerant and event-driven applications.
- vert.x - Polyglot event-driven application framework.
-
Science
- BioJava - Facilitates processing biological data by providing algorithms, file format parsers, sequencing and 3D visualization commonly used in bioinformatics.
- 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)
- Orekit - A low level space flight dynamics library providing basic elements (orbits, dates, attitude, frames...) and various algorithms (conversions, propagations, pointing...) to handle them.
- Chart-FX - Scientific charting library with focus on performance optimised real-time data visualisation at 25 Hz update rates for large data sets.
- GraphStream - Library for modeling and analyzing dynamic graphs.
- JFreeChart - 2D chart library for Swing, JavaFX and server-side applications. (LGPL-2.1-only)
-
Search
- Apache Lucene - High-performance, full-featured, cross-platform, text search engine library.
- Apache Solr - Enterprise search engine optimized for high-volume traffic.
- 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
- 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.
- 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.
- OACC - Provides permission-based authorization services.
- Passay - Enforce password policy by validating candidate passwords against a configurable rule set.
- 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.
- Topaz - Fine-grained authorization for applications with support for RBAC, ABAC, and ReBAC.
- Apache Shiro - Performs authentication, authorization, cryptography and session management.
- 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.
- OACC - Provides permission-based authorization services.
- Topaz - Fine-grained authorization for applications with support for RBAC, ABAC, and ReBAC.
-
Server
- Apache Tomcat - Robust, all-round server for Servlet and JSP.
- Apache TomEE - Tomcat plus Java EE.
- WildFly - Formerly known as JBoss and developed by Red Hat with extensive Java EE support. (LGPL-2.1-only)
- 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
- Freemarker - Library to generate text output (HTML web pages, e-mails, configuration files, source code, etc.) based on templates and changing data.
- 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.
- Freemarker - Library to generate text output (HTML web pages, e-mails, configuration files, source code, etc.) based on templates and changing data.
- 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
- 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.
- Hamcrest - Matchers that can be combined to create flexible expressions of intent.
- Truth - Google's fluent assertion and proposition framework.
- pojo-tester - Automatically performs tests on basic POJO methods. (LGPL-3.0-only)
- JMockit - Integration testing, API mocking and faking, and code coverage.
- MockServer - Allows mocking of systems integrated with HTTPS.
- WireMock - Stubs and mocks web services.
- Karate - DSL that combines API test-automation, mocks and performance-testing making testing REST/HTTP services easy.
- 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.
- jqwik - Engine for property-based testing built on JUnit 5.
- Pact JVM - Consumer-driven contract testing.
- PIT - Fast mutation-testing framework for evaluating fault-detection abilities of existing JUnit or TestNG test suites.
- 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)
- JMockit - Integration testing, API mocking and faking, and code coverage.
- MockServer - Allows mocking of systems integrated with HTTPS.
- WireMock - Stubs and mocks web services.
- Karate - DSL that combines API test-automation, mocks and performance-testing making testing REST/HTTP services easy.
- JSONAssert - Simplifies testing JSON strings.
-
Utility
- CRaSH - Provides a shell into a JVM that's running CRaSH. Used by Spring Boot and others. (LGPL-2.1-or-later)
- 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)
- JGit - Lightweight, pure Java library implementing the Git version control system.
- Protégé - Provides an ontology editor and a framework to build knowledge-based systems.
- bucket4j - Rate limiting library based on token-bucket algorithm.
- CRaSH - Provides a shell into a JVM that's running CRaSH. Used by Spring Boot and others. (LGPL-2.1-or-later)
- Protégé - Provides an ontology editor and a framework to build knowledge-based systems.
-
Web Crawling
- Apache Nutch - Highly extensible, highly scalable web crawler for production environments.
- jsoup - Scrapes, parses, manipulates and cleans HTML.
- 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.
- StormCrawler - SDK for building low-latency and scalable web crawlers.
-
Web Frameworks
- ActiveJ - Lightweight asynchronous framework built from the ground up for developing high-performance web applications.
- 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.
- Bootique - Minimally opinionated framework for runnable apps.
- Firefly - Asynchronous framework for rapid development of high-performance web application.
- Javalin - Microframework for web applications.
- Jooby - Scalable, fast and modular micro-framework that offers multiple programming models.
- 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.
- 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.
- Vaadin - Event-driven framework that uses standard web components. Server-side architecture with Ajax on the client side.
- ActiveJ - Lightweight asynchronous framework built from the ground up for developing high-performance web applications.
- 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.
- Bootique - Minimally opinionated framework for runnable apps.
- Firefly - Asynchronous framework for rapid development of high-performance web application.
- Jooby - Scalable, fast and modular micro-framework that offers multiple programming models.
- 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.
- 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.
- Vaadin - Event-driven framework that uses standard web components. Server-side architecture with Ajax on the client side.
-
Workflow Orchestration Engines
-
Bean Mapping
- dOOv - 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.
- Selma - Annotation processor-based bean mapper.
- dOOv - 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.
- JMapper - Uses byte code manipulation for lightning-fast mapping. Supports annotations and API or XML configuration.
- MapStruct - Code generator that simplifies mappings between different bean types, based on a convention-over-configuration approach.
- ModelMapper - Intelligent object mapping library that automatically maps objects to each other.
- Orika - JavaBean-mapping framework that recursively copies (among other capabilities) data from one object to another.
- reMap - Lambda and method handle-based mapping which requires code and not annotations if objects have different names.
- Selma - Annotation processor-based bean mapper.
-
Serialization
-
Date and Time
- iCal4j - Parse and build iCalendar [RFC 5545](https://tools.ietf.org/html/rfc5545) data models.
- Jollyday - Determines the holidays for a given year, country/name and eventually state/region.
- ThreeTen-Extra - Additional date-time classes that complement those in JDK 8.
- Time4J - Advanced date and time library. (LGPL-2.1-only)
-
Categories
Sub Categories
Platform
104
Database
50
People
35
Testing
34
Websites
32
Web Frameworks
25
REST Frameworks
21
Code Generators
18
Distributed Applications
17
Data Structures
16
Machine Learning
16
Bytecode Manipulation
15
JVM and JDK
15
Messaging
14
Miscellaneous
14
Configuration
14
Security
13
Code Analysis
13
Development
13
Distribution
13
Monitoring
13
Microservice
12
CLI
12
Logging
11
PDF
10
Dependency Injection
10
Game Development
10
IDE
10
Podcasts and Screencasts
10
JSON
10
PaaS
9
Bean Mapping
9
ORM
8
Science
8
Utility
8
Formal Verification
8
Influential Books
7
Constraint Satisfaction Problem Solver
7
Caching
7
Server
7
Build
7
Related Awesome Lists
7
Performance analysis
6
Distributed Transactions
6
CSV
6
Template Engine
6
Geospatial
6
Mobile Development
6
Networking
6
Web Crawling
6
Compiler-compiler
5
Natural Language Processing
5
Reactive libraries
5
Search
5
Computer Vision
5
Cluster Management
4
Document Processing
4
Date and Time
4
HTTP Clients
4
GUI
4
Workflow Orchestration Engines
4
Introspection
3
Code Coverage
3
High Performance
3
Frontends
2
Communities
2
Serialization
2
Imagery
1
Functional Programming
1
Keywords
java
61
static-analysis
10
android
7
static-code-analysis
6
database
6
code-quality
4
code-analysis
4
configuration
4
kotlin
4
spring
4
spring-boot
4
abstract-syntax-tree
3
code-generator
3
golang
3
annotations
3
bytecode
3
json
3
gradle
3
awesome
3
code-generation
3
ast
3
persistence
3
jvm
3
xml
3
python
3
nosql
3
cpp
3
distributed
3
marshalling
2
swift
2
rust
2
hibernate
2
cloud-native
2
java-bytecode
2
parser
2
rest
2
rpc
2
serialization
2
metaprogramming
2
monitoring
2
code-transformation
2
mapper
2
mapping
2
redis
2
connection-pool
2
linter
2
jpa
2
jdbc
2
library
2
postgres
2