Modern Java
Tools, Libraries and Frameworks for Java1
Categories
- Web Frameworks
- ORM Frameworks
- Frontend Frameworks
- Web Scraping
- Messaging Queue
- Frameworks for Microservice
- Metrics and Performance
- Profiling
- Application Analytics
- Data Analytics
- Concurrency
- Scheduler
- Template Engines
- Sockets
- Computer Vision
- Machine Learning
- Design Patterns
Web Frameworks
- Spring Boot
Spring Boot helps you to create Spring-powered, production-grade applications and services with absolute minimum fuss. It takes an opinionated view of the Spring platform so that new and existing users can quickly get to the bits they need
- Dropwizard
Dropwizard is a Java framework for developing ops-friendly, high-performance, RESTful web services
- Play
The High Velocity Web Framework For Java and Scala
- Spark
Spark - A micro framework for creating web applications in Kotlin and Java 8 with minimal effort
- Sling
Apache Sling™ is a framework for RESTful web-applications based on an extensible content tree
- Wicket
The Apache Wicket project announces the 9th major release of the open source Java web framework servicing websites and applications across the globe since 2004. Built on top of Java 11, this version of Wicket brings web development into the modern Java world, offering a fundamental tool to keep you code up to date with Java’s evolution
ORM Frameworks
- Hibernate
Hibernate ORM is an object–relational mapping tool for the Java programming language. It provides a framework for mapping an object-oriented domain model to a relational database
- OpenJPA
Apache OpenJPA is a Java persistence project at The Apache Software Foundation that can be used as a stand-alone POJO persistence layer or integrated into any Java EE compliant container and many other lightweight frameworks, such as Tomcat and Spring
- EclipseLink
Comprehensive open-source Java persistence solution addressing relational, XML, and database web services
Frontend Frameworks
- Vaadin
This package contains all Vaadin web components (free and commercial)
Web Scraping
- Jsoup
jsoup is a Java library for working with real-world HTML. It provides a very convenient API for fetching URLs and extracting and manipulating data, using the best of HTML5 DOM methods and CSS selectors
Messaging Queue
- JMS
The Java Message Service (JMS) API is a messaging standard that allows application components based on the Java Platform Enterprise Edition (Java EE) to create, send, receive, and read messages. It enables distributed communication that is loosely coupled, reliable, and asynchronous
- Apache Kafka
Apache Kafka is an open-source distributed event streaming platform used by thousands of companies for high-performance data pipelines, streaming analytics, data integration, and mission-critical applications
- RabbitMQ
RabbitMQ is the most widely deployed open source message broker
- Redis
The open source, in-memory data store used by millions of developers as a database, cache, streaming engine, and message broker
Frameworks for Microservice
- Helidon
Helidon is a cloud-native, open‑source set of Java libraries for writing microservices that run on a fast web core powered by Netty
Metrics and Performance
- Micrometer
Micrometer provides a simple facade over the instrumentation clients for the most popular monitoring systems, allowing you to instrument your JVM-based application code without vendor lock-in. Think SLF4J, but for metrics
- Prometheus
Power your metrics and alerting with the leading open-source monitoring solution
- Grafana
Compose and scale observability with one or all pieces of the stack
Profiling
- VisualVM
VisualVM is a visual tool integrating commandline JDK tools and lightweight profiling capabilities. Designed for both development and production time use
Application Analytics
- Elasticsearch
Free and Open, Distributed, RESTful Search Engine
Data Analytics
- Apache Spark
Apache Spark is a unified analytics engine for large-scale data processing
Concurrency
- Project Loom
The goal of this Project is to explore and incubate Java VM features and APIs built on top of them for the implementation of lightweight user-mode threads (fibers), delimited continuations (of some form), and related features, such as explicit tail-call
- Disruptor
LMAX aims to be the fastest trading platform in the world. Clearly, in order to achieve this we needed to do something special to achieve very low-latency and high-throughput with our Java platform. Performance testing showed that using queues to pass data between stages of the system was introducing latency, so we focused on optimising this area
Scheduler
- Quartz
Quartz is a richly featured, open source job scheduling library that can be integrated within virtually any Java application - from the smallest stand-alone application to the largest e-commerce system
Template Engines
- Themeleaf
Thymeleaf is a modern server-side Java template engine for both web and standalone environments
- Apache Velocity
Velocity is a Java-based template engine. It permits anyone to use a simple yet powerful template language to reference objects defined in Java code
- FreeMaker
Apache FreeMarker™ is a template engine: a Java library to generate text output (HTML web pages, e-mails, configuration files, source code, etc.) based on templates and changing data
Sockets
- RSocket
RSocket is an application protocol providing Reactive Streams semantics over an asynchronous, binary boundary
Computer Vision
- JavaCV
JavaCV uses wrappers from the JavaCPP Presets of commonly used libraries by researchers in the field of computer vision (OpenCV, FFmpeg, libdc1394, FlyCapture, Spinnaker, OpenKinect, librealsense, CL PS3 Eye Driver, videoInput, ARToolKitPlus, flandmark, Leptonica, and Tesseract) and provides utility classes to make their functionality easier to use on the Java platform, including Android
Machine Learning
- Tribuo
Tribuo* is a machine learning library written in Java. It provides tools for classification, regression, clustering, model development, and more. It provides a unified interface to many popular third-party ML libraries like xgboost and liblinear. With interfaces to native code, Tribuo also makes it possible to deploy models trained by Python libraries (e.g. scikit-learn, and pytorch) in a Java program. Tribuo is licensed under Apache 2.0
Design Patterns
-
We are continually adding more stuff, Stay tuned :relaxed: ↩