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/eric-erki/awesome-java

Last synced: 1 day ago
JSON representation

  • Projects

    • Performance analysis

      • jHiccup - Logs and records platform JVM stalls.
      • JITWatch - Analyze the JIT compiler optimisations made by the HotSpot JVM.
      • LatencyUtils - Utilities for latency measurement and reporting.
    • Platform

      • Logging - Wrapper around a variety of logging API implementations.
      • Orienteer - Open-source business application platform for rapid configuration/development of CRM, ERP, LMS and other applications.
      • Chain - Chain of Responsibility pattern implementation.
      • Graph - General purpose graph APIs and algorithms.
      • Monitoring - Monitoring aims to provide a simple but extensible monitoring solution for Java applications.
      • Math - Lightweight, self-contained mathematics and statistics components.
      • Net - Collection of network utilities and protocol implementations.
      • OGNL - Object-graph navigation language.
      • OpenPGP - Interface to signing and verifying data using OpenPGP.
      • Performance - Small framework for microbenchmark clients, with implementations for Commons DBCP and Pool.
      • Pipeline - Provides a set of pipeline utilities designed around work queues that run in parallel to sequentially process data objects.
      • Pool - Generic object pooling component.
      • Proxy - Library for creating dynamic proxies.
      • RDF - Common implementation of RDF 1.1 that could be implemented by systems on the JVM.
      • RNG - Commons Rng provides implementations of pseudo-random numbers generators.
      • SCXML - Implementation of the State Chart XML specification aimed at creating and maintaining a Java SCXML engine.
      • Validator - Framework to define validators and validation rules in an xml file.
      • VFS - Virtual File System component for treating files, FTP, SMB, ZIP and such like as a single logical file system.
      • Weaver - Provides an easy way to enhance (weave) compiled bytecode.
      • CUBA Platform - High-level framework for developing enterprise applications with a rich web interface, based on Spring, EclipseLink and Vaadin.
      • Light-Java - Fast, lightweight and productive microservices framework with built-in [security](https://github.com/networknt/light-oauth2).
      • Spring - Provides many packages for dependency injection, aspect-oriented programming, security, etc.
    • Processes

      • ch.vorburger.exec - Convenient API around Apache Commons Exec.
      • zt-exec - Provides a unified API to Apache Commons Exec and ProcessBuilder.
      • zt-process-killer - Stops processes started from Java or the system processes via PID.
    • Reactive libraries

      • RxJava - Allows for composing asynchronous and event-based programs using observable sequences.
      • Akka - Toolkit and runtime for building concurrent, distributed, fault-tolerant and event-driven applications.
      • Reactive Streams - Provides a standard for asynchronous stream processing with non-blocking backpressure.
      • Reactor - Library for building reactive fast-data applications.
      • vert.x - Polyglot event-driven application framework.
    • REST Frameworks

      • Crnk - Implementation of the JSON API specification to build resource-oriented REST endpoints with sorting, filtering, paging, linking, object graphs, type-safety, bulk updates, integrations and more.
      • RESTEasy - Fully certified and portable implementation of the JAX-RS specification.
      • Crnk - Implementation of the JSON API specification to build resource-oriented REST endpoints with sorting, filtering, paging, linking, object graphs, type-safety, bulk updates, integrations and more.
      • Crnk - Implementation of the JSON API specification to build resource-oriented REST endpoints with sorting, filtering, paging, linking, object graphs, type-safety, bulk updates, integrations and more.
      • Crnk - Implementation of the JSON API specification to build resource-oriented REST endpoints with sorting, filtering, paging, linking, object graphs, type-safety, bulk updates, integrations and more.
      • Crnk - Implementation of the JSON API specification to build resource-oriented REST endpoints with sorting, filtering, paging, linking, object graphs, type-safety, bulk updates, integrations and more.
      • Crnk - Implementation of the JSON API specification to build resource-oriented REST endpoints with sorting, filtering, paging, linking, object graphs, type-safety, bulk updates, integrations and more.
      • Crnk - Implementation of the JSON API specification to build resource-oriented REST endpoints with sorting, filtering, paging, linking, object graphs, type-safety, bulk updates, integrations and more.
      • Dropwizard - Opinionated framework for setting up modern web applications with Jetty, Jackson, Jersey and Metrics.
      • Microserver - A convenient, extensible microservices plugin system for Spring & Spring Boot. With more than 30 plugins and growing, it supports both micro-monolith and pure microservices styles.
      • rest.li - Framework for building robust, scalable RESTful architectures using typesafe bindings and asynchronous, non-blocking IO with an end-to-end developer workflow that promotes clean practices, uniform interface design and consistent data modeling.
      • RestExpress - Thin wrapper on the JBoss Netty HTTP stack that provides scaling and performance.
      • Restlet Framework - Pioneering framework with powerful routing and filtering capabilities, and a unified client and server API.
      • Crnk - Implementation of the JSON API specification to build resource-oriented REST endpoints with sorting, filtering, paging, linking, object graphs, type-safety, bulk updates, integrations and more.
      • springdoc-openapi - Automates the generation of API documentation using Spring Boot projects.
      • Crnk - Implementation of the JSON API specification to build resource-oriented REST endpoints with sorting, filtering, paging, linking, object graphs, type-safety, bulk updates, integrations and more.
      • Dropwizard - Opinionated framework for setting up modern web applications with Jetty, Jackson, Jersey and Metrics.
      • Elide - Opinionated framework for JSON- or GraphQL-APIs based on a JPA data model.
      • javalin - Javalin is just a few thousand lines of code on top of Jetty, which means its performance is almost equivalent to pure Jetty.
      • Jersey - JAX-RS reference implementation.
      • Rapidoid - Simple, secure and extremely fast framework consisting of an embedded HTTP server, GUI components and dependency injection.
      • RESTEasy - Fully certified and portable implementation of the JAX-RS specification.
      • Spark - Sinatra inspired framework.
      • Swagger - Standard, language-agnostic interface to REST APIs.
    • Science

      • Morpheus - Provides a versatile two-dimensional memory efficient tabular data structure called a DataFrame to enable efficient in-memory analytics for scientific computing on the JVM.
      • Erdos - Modular, light and easy graph framework for theoretic algorithms.
      • JGraphT - Graph library that provides mathematical graph-theory objects and algorithms.
      • JGraphX - Library for visualizing (mainly Swing) and interacting with node-edge graphs.
      • Mines Java Toolkit - Library for geophysical scientific computation, visualization and digital signal analysis.
      • Orson-Charts - Generates a wide variety of 3D charts that can be displayed with Swing and JavaFX or exported to PDF, SVG, PNG and JPEG. (GPL-3.0-only)
      • XChart - Light-weight library for plotting data. Many customizable chart types are available.
      • DataMelt - Environment for scientific computation, data analysis and data visualization. (GPL-3.0-or-later)
      • GraphStream - Library for modeling and analyzing dynamic graphs.
      • JFreeChart - 2D chart library for Swing, JavaFX and server-side applications. (LGPL-2.1-only)
      • Morpheus - Provides a versatile two-dimensional memory efficient tabular data structure called a DataFrame to enable efficient in-memory analytics for scientific computing on the JVM.
      • Tablesaw - Includes a data-frame, an embedded column store, and hundreds of methods to transform, summarize, or filter data.
      • Indexer4j - Simple and light full text indexing and searching library.
      • Elasticsearch - Distributed, multitenant-capable, full-text search engine with a RESTful web interface and schema-free JSON documents.
      • Apache Lucene - High-performance, full-featured, cross-platform, text search engine library.
      • Apache Solr - Enterprise search engine optimized for high-volume traffic.
    • Security

      • Bouncy Castle - All-purpose cryptographic library and JCA provider offering a wide range of functions, from basic helpers to PGP/SMIME operations.
      • Themis - Multi-platform high-level cryptographic library provides easy-to-use encryption for protecting sensitive data: secure messaging with forward secrecy, secure data storage (AES256GCM); suits for building end-to-end encrypted applications.
      • Bouncy Castle - All-purpose cryptographic library and JCA provider offering a wide range of functions, from basic helpers to PGP/SMIME operations.
      • Hdiv - Runtime application that repels application security risks included in the OWASP Top 10, including SQL injection, cross-site scripting, cross-site request forgery, data tampering, and brute force attacks.
      • jjwt - JSON web token for Java and Android.
      • Jwks RSA - JSON Web Key Set parser.
      • Kalium - Binding for the Networking and Cryptography (NaCl) library.
      • Keywhiz - System for distributing and managing secrets.
      • Nbvcxz - Advanced password strength estimation.
      • OACC - Provides permission-based authorization services.
      • pac4j - Security engine.
      • SecurityBuilder - Fluent Builder API for JCA and JSSE classes and especially X.509 certificates.
      • Tink - Provides a simple and misuse-proof API for common cryptographic tasks.
      • Vault - Secures, stores, and tightly controls access to tokens, passwords, certificates, API keys, and other secrets. It handles leasing, key revocation, key rolling, and auditing. Through a unified API, users can access an encrypted Key/Value store and network encryption-as-a-service, or generate AWS IAM/STS credentials, SQL/NoSQL databases, X.509 certificates, SSH credentials, and more.
      • Keycloak - Integrated SSO and IDM for browser apps and RESTful web services.
      • Apache Shiro - Performs authentication, authorization, cryptography and session management.
      • Cryptomator - Multiplatform, transparent, client-side encryption of files in the cloud. (GPL-3.0-only)
    • Serialization

      • FlatBuffers - Memory-efficient serialization library that can access serialized data without unpacking and parsing it.
      • FST - JDK-compatible, high-performance object graph serialization.
      • Kryo - Fast and efficient object graph serialization framework.
      • MessagePack - Efficient binary serialization format.
      • PHP Serializer - Serializing objects in the PHP serialization format.
    • Server

      • nanohttpd - Tiny, easily embeddable HTTP server.
      • Apache Tomcat - Robust, all-round server for Servlet and JSP.
      • Apache TomEE - Tomcat plus Java EE.
      • Jetty - Provides a Web server and javax.servlet container, plus support for HTTP/2, WebSocket, OSGi, JMX, JNDI, JAAS and many other integrations.
      • WildFly - Formerly known as JBoss and developed by Red Hat with extensive Java EE support. (LGPL-2.1-only)
    • Template Engine

      • Jtwig - Modular, configurable and fully tested template engine.
      • Jade4J - Implementation of Pug (formerly known as Jade).
      • Rocker - Optimized, memory efficient and speedy template engine producing statically typed, plain objects.
      • Handlebars.java - Logicless and semantic Mustache templates.
      • Jtwig - Modular, configurable and fully tested template engine.
      • Pebble - Inspired by Twig and separates itself with its inheritance feature and its easy-to-read syntax. It ships with built-in autoescaping for security and it includes integrated support for internationalization.
      • Thymeleaf - Aims to be a substitute for JSP and works for XML files.
    • Testing

      • GreenMail - In-memory email server for integration testing. Supports SMTP, POP3 and IMAP including SSL. (GPL-2.0-only)
      • Serenity BDD - Automated Acceptance testing and reporting library that works with Cucumber, JBehave and JUnit to make it easier to write high quality executable specifications.
      • ConcurrentUnit - Toolkit for testing multi-threaded and asynchronous applications.
      • Hoverfly Java - Native bindings for Hoverfly, a proxy which allows you to simulate HTTP services.
      • Karate - DSL that combine API test-automation, mocks and performance-testing making testing REST/HTTP services easy.
      • Cucumber - Provides a way to describe features in a plain language which customers can understand.
      • J8Spec - Follows a Jasmine-like syntax.
      • Lamdba Behave - Aims to provide a fluent API to write tests in long and descriptive sentences that read like plain English.
      • Beanmother - Sets up beans from YAML fixtures.
      • Fixture Factory - Generates fake objects from a template.
      • jFairy - Fake data generator.
      • Randomized Testing - JUnit test runner and plugins for running JUnit tests with pseudo-randomness.
      • Java Faker - Port of Ruby's fake data generator.
      • ArchUnit - Test library for specifying and asserting architecture rules.
      • XMLUnit - Simplifies testing for XML output.
      • junit-dataprovider - TestNG-like data provider/runner for JUnit.
      • Mutability Detector - Reports whether instances of a given class are immutable.
      • raml-tester - Tests if a request/response matches a given RAML definition.
      • TestContainers - Provides throwaway instances of common databases, Selenium web browsers, or anything else that can run in a Docker container.
      • JMockit - Integration testing, API mocking and faking, and code coverage.
      • Mockito - Mocking framework that lets you write tests with a clean and simple API.
      • Moco - Concise web services for stubs and mocks.
      • Pact JVM - Consumer-driven contract testing.
      • Awaitility - DSL for synchronizing asynchronous operations.
      • Cukes-REST - Collection of Gherkin steps for REST-service testing using Cucumber.
      • PowerMock - Mocks static methods, constructors, final classes and methods, private methods, and removal of static initializers.
      • REST Assured - DSL for easy testing of REST/HTTP services.
      • JBehave - Extensively configurable framework that describes stories.
      • JGiven - Provides a fluent API which allows for simpler composition.
      • Apache JMeter - Functional testing and performance measurements.
      • Arquillian - Integration and functional testing platform for Java EE containers.
      • Citrus - Integration testing framework that focuses on both client- and server-side messaging.
      • Gatling - Load testing tool designed for ease of use, maintainability and high performance.
      • JUnit - Common testing framework.
      • jqwik - Engine for property-based testing built on JUnit 5.
      • PIT - Fast mutation-testing framework for evaluating fault-detection abilities of existing JUnit or TestNG test suites.
      • AssertJ - Fluent assertions that improve readability.
      • Hamcrest - Matchers that can be combined to create flexible expressions of intent.
      • JSONAssert - Simplifies testing JSON strings.
      • Truth - Google's fluent assertion and proposition framework.
      • pojo-tester - Automatically performs tests on basic POJO methods. (LGPL-3.0-only)
      • MockServer - Allows mocking of systems integrated with HTTPS.
      • WireMock - Stubs and mocks web services.
    • Utility

      • Guava - Collections, caching, primitives support, concurrency libraries, common annotations, string processing, I/O, and more.
      • JADE - Framework and environment for building and debugging multi-agent systems. (LGPL-2.0-only)
      • CRaSH - Provides a shell into a JVM that's running CRaSH. Used by Spring Boot and others. (LGPL-2.1-or-later)
      • Dex - Java/JavaFX tool capable of powerful ETL and data visualization.
      • fswatch - Micro library to watch for directory file system changes, simplifying java.nio.file.WatchService.
      • Gephi - Cross-platform for visualizing and manipulating large graph networks. (GPL-3.0-only)
      • JavaVerbalExpressions - Library that helps with constructing difficult regular expressions.
      • JGit - Lightweight, pure Java library implementing the Git version control system.
      • minio-java - Provides simple APIs to access any Amazon S3-compatible object storage server.
      • Underscore-java - Port of Underscore.js functions.
      • bucket4j - Rate limiting library based on token-bucket algorithm.
      • Protégé - Provides an ontology editor and a framework to build knowledge-based systems.
      • cactoos - Collection of object-oriented primitives.
      • Embulk - Bulk data loader that helps data transfer between various databases, storages, file formats, and cloud services.
    • Version Managers

      • jabba - Java Version Manager inspired by nvm. Supports macOS, Linux and Windows.
      • SDKMan - Java Version Manager inspired by RVM and rbenv. Supports UNIX-based platforms and Windows.
      • jenv - Java Version Manager inspired by rbenv. Can configure globally or per project. Tested on Debian and macOS.
    • Web Crawling

      • Crawler4j - Simple and lightweight web crawler.
      • StormCrawler - SDK for building low-latency and scalable web crawlers.
      • webmagic - Scalable crawler with downloading, url management, content extraction and persistent.
      • StormCrawler - SDK for building low-latency and scalable web crawlers.
      • Apache Nutch - Highly extensible, highly scalable web crawler for production environments.
      • jsoup - Scrapes, parses, manipulates and cleans HTML.
    • Web Frameworks

      • Vaadin Flow - Event-driven framework that uses standard web components. Server-side architecture with Ajax on the client side.
      • Firefly - Asynchronous framework for rapid development of high-performance web application.
      • Pippo - Small, highly modularized, Sinatra-like framework.
      • Takes - Opinionated web framework which is built around the concepts of True Object-Oriented Programming and immutability.
      • Apache Tapestry - Component-oriented framework for creating dynamic, robust, highly scalable web applications.
      • Apache Wicket - Component-based web application framework similar to Tapestry, with a stateful GUI.
      • Blade - Lightweight, modular framework that aims to be elegant and simple.
      • Bootique - Minimally opinionated framework for runnable apps.
      • Grails - Groovy framework that provides a highly productive environment by favoring convention over configuration, no XML and support for mixins.
      • Jooby - Scalable, fast and modular micro-framework that offers multiple programming models.
      • Ninja - Full-stack web framework.
      • Play - Built on Akka, it provides predictable and minimal resource consumption (CPU, memory, threads) for highly-scalable applications in Java and Scala.
      • PrimeFaces - JSF framework with both free and commercial/support versions and frontend components.
      • Ratpack - Set of libraries that facilitate fast, efficient, evolvable and well-tested HTTP applications.
  • Resources