Awesome Java
Frameworks that ease bean mapping.
- Dozer在新窗口打开 - Mapper that copies data from one object to another using annotations and API or XML configuration.
- 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.
- Selma在新窗口打开 - Annotation processor-based bean mapper.
Build
Tools that handle the build cycle and dependencies of an application.
- 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.
- Buck在新窗口打开 - Encourages the creation of small, reusable modules consisting of code and resources.
- Gradle在新窗口打开 - Incremental builds programmed via Groovy instead of declaring XML. Works well with Maven's dependency management.
Bytecode Manipulation
Libraries to manipulate bytecode programmatically.
- ASM在新窗口打开 - All-purpose, low-level bytecode manipulation and analysis.
- Byte Buddy在新窗口打开 - Further simplifies bytecode generation with a fluent API.
- bytecode-viewer在新窗口打开 - Java 8 Jar & Android APK reverse engineering suite.
- Byteman在新窗口打开 - Manipulate bytecode at runtime via DSL (rules); mainly for testing/troubleshooting.
- cglib在新窗口打开 - Bytecode generation library.
- Javassist在新窗口打开 - Tries to simplify bytecode editing.
- Mixin在新窗口打开 - Manipulate bytecode at runtime using real Java code.
Caching
Libraries that provide caching facilities.
- Caffeine在新窗口打开 - High-performance, near-optimal caching library.
- Ehcache在新窗口打开 - Distributed general-purpose cache.
- Infinispan在新窗口打开 - Highly concurrent key/value datastore used for caching.
CLI
Libraries for everything related to the CLI.
- ASCII Table在新窗口打开 - Library to draw tables in ASCII.
- Airline在新窗口打开 - Annotation-based framework for parsing Git-like command-line arguments.
- args4j在新窗口打开 - Small library to parse command-line arguments.
- Jansi在新窗口打开 - ANSI escape codes to format console output.
- Java ASCII Render在新窗口打开 - Graphical primitives for the console.
- JCommander在新窗口打开 - Command-line argument-parsing framework with custom types and validation via implementing interfaces.
- JLine在新窗口打开 - Includes features from modern shells like completion or history.
- JOpt Simple在新窗口打开 - Fluent parser that uses the POSIX#getopt and GNU#getopt_long syntaxes.
- picocli在新窗口打开 - ANSI colors and styles in usage help with annotation-based POSIX/GNU/any syntax, subcommands, strong typing for both options and positional args.
- Text-IO在新窗口打开 - Aids the creation of full console-based applications.
- Lanterna在新窗口打开 - Easy console text-GUI library, similar to curses.
Cluster Management
Frameworks that can dynamically manage applications inside of a cluster.
- Apache Aurora在新窗口打开 - Mesos framework for long-running services and cron jobs.
- Apache Mesos在新窗口打开 - Abstracts CPU, memory, storage, and other compute resources away from machines.
- Singularity在新窗口打开 - Mesos framework that makes deployment and operations easy. It supports web services, background workers, scheduled jobs, and one-off tasks.
Code Analysis
Tools that provide metrics and quality measurements.
- Checkstyle在新窗口打开 - Static analysis of coding conventions and standards.
- Error Prone在新窗口打开 - Catches common programming mistakes as compile-time errors.
- Infer在新窗口打开 - Modern static analysis tool for verifying the correctness of code.
- jQAssistant在新窗口打开 - Static code analysis with Neo4J-based query language.
- NullAway在新窗口打开 - Eliminates NullPointerExceptions with low build-time overhead.
- PMD在新窗口打开 - Source code analysis for finding bad coding practices.
- SonarJava在新窗口打开 - Static analyzer for SonarQube & SonarLint.
- Sourcetrail
在新窗口打开 - Visual source code navigator.
- Spoon在新窗口打开 - Library for analyzing and transforming Java source code.
- Spotbugs在新窗口打开 - Static analysis of bytecode to find potential bugs.
Code Coverage
Frameworks and tools that enable code coverage metrics collection for test suites.
- Clover
在新窗口打开 - Relies on source-code instrumentation instead of bytecode instrumentation.
- Cobertura在新窗口打开 - Relies on offline (or static) bytecode instrumentation and class loading to collect code coverage metrics.
- JaCoCo在新窗口打开 - Framework that enables collection of code coverage metrics, using both offline and runtime bytecode instrumentation.
Code Generators
Tools that generate patterns for repetitive code in order to reduce verbosity and error-proneness.
- ADT4J在新窗口打开 - JSR-269 code generator for algebraic data types.
- Auto在新窗口打开 - Generates factory, service, and value classes.
- FreeBuilder在新窗口打开 - Automatically generates the Builder pattern.
- Immutables在新窗口打开 - Annotation processors to generate simple, safe and consistent value objects.
- JavaPoet在新窗口打开 - API to generate source files.
- JHipster在新窗口打开 - Yeoman source code generator for Spring Boot and AngularJS.
- Joda-Beans在新窗口打开 - Small framework that adds queryable properties to Java, enhancing JavaBeans.
- Lombok在新窗口打开 - Code generator that aims to reduce verbosity.
Compiler-compiler
Frameworks that help to create parsers, interpreters or compilers.
- ANTLR在新窗口打开 - Complex full-featured framework for top-down parsing.
- JavaCC在新窗口打开 - Parser generator that generates top-down parsers. Allows lexical state switching and permits extended BNF specifications.
- JFlex在新窗口打开 - A lexical analyzer generator.
Configuration
Libraries that provide external configuration.
- centraldogma在新窗口打开 - Highly-available version-controlled service configuration repository based on Git, ZooKeeper and HTTP/2.
- cfg4j在新窗口打开 - Modern configuration library for distributed apps written in Java.
- config在新窗口打开 - Configuration library for JVM languages.
- dotenv在新窗口打开 - A twelve-factor configuration library for Java.
- ini4j在新窗口打开 - Provides an API for handling Windows' INI files.
- KAConf在新窗口打开 - Annotation-based configuration system for Java and Kotlin.
- owner在新窗口打开 - Reduces boilerplate of properties.
Constraint Satisfaction Problem Solver
Libraries that help with implementing optimization and satisfiability problems.
- Choco在新窗口打开 - Off-the-shelf constraint satisfaction problem solver that uses constraint programming techniques.
- JaCoP在新窗口打开 - Includes an interface for the FlatZinc language, enabling it to execute MiniZinc models.
- OptaPlanner在新窗口打开 - Business planning and resource scheduling optimization solver.
CSV
Frameworks and libraries that simplify reading/writing CSV data.
- jackson-dataformat-csv在新窗口打开 - Jackson extension for reading and writing CSV.
- opencsv在新窗口打开 - Simple CSV parser.
- 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.
Database
Everything that simplifies interactions with the database.
- Apache Phoenix在新窗口打开 - High-performance relational database layer over HBase for low-latency applications.
- Chronicle Map在新窗口打开 - Efficient, in-memory (opt. persisted to disk), off-heap key-value store.
- druid在新窗口打开 - High-performance, column-oriented, distributed data store.
- eXist在新窗口打开 - A NoSQL document database and application platform.
- FlexyPool在新窗口打开 - Brings metrics and failover strategies to the most common connection pooling solutions.
- Flyway在新窗口打开 - Simple database migration tool.
- H2在新窗口打开 - Small SQL database notable for its in-memory functionality.
- HikariCP在新窗口打开 - High-performance JDBC connection pool.
- jasync-sql在新窗口打开 - Async DB driver for MySQL and PostgreSQL.
- JDBI在新窗口打开 - Convenient abstraction of JDBC.
- Jedis在新窗口打开 - Small client for interaction with Redis, with methods for commands.
- 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).
- jOOQ在新窗口打开 - Generates typesafe code based on SQL schema.
- Liquibase在新窗口打开 - Database-independent library for tracking, managing and applying database schema changes.
- MapDB在新窗口打开 - Embedded database engine that provides concurrent collections backed on disk or in off-heap memory.
- MariaDB4j在新窗口打开 - Launcher for MariaDB that requires no installation or external dependencies.
- OrientDB在新窗口打开 - Embeddable distributed database written on top of Hazelcast.
- Presto在新窗口打开 - Distributed SQL query engine for big data.
- Querydsl在新窗口打开 - Typesafe unified queries.
- Realm在新窗口打开 - Mobile database to run directly inside phones, tablets or wearables.
- Redisson在新窗口打开 - Allows for distributed and scalable data structures on top of a Redis server.
- requery在新窗口打开 - A 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.
- Speedment在新窗口打开 - Database access library that utilizes Java 8's Stream API for querying.
- sql2o在新窗口打开 - Thin JDBC wrapper that simplifies database access and provides simple mapping of ResultSets to POJOs.
- Vibur DBCP在新窗口打开 - JDBC connection pool library with advanced performance monitoring capabilities.
- Xodus在新窗口打开 - Highly concurrent transactional schema-less and ACID-compliant embedded database.
Data Structures
Efficient and specific 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.
- Big Queue在新窗口打开 - A big, fast and persistent queue based on memory-mapped files.
- Persistent Collection在新窗口打开 - Persistent and immutable analogue of the Java Collections Framework.
- Protobuf在新窗口打开 - Google's data interchange format.
- SBE在新窗口打开 - Simple Binary Encoding, one of the fastest message formats around.
- Tape在新窗口打开 - A lightning-fast, transactional, file-based FIFO.
- Wire在新窗口打开 - Clean, lightweight protocol buffers.
Date and Time
Libraries related to handling date and time.
- Almanac Converter在新窗口打开 - Simple conversion between different calendar systems.
- iCal4j在新窗口打开 - Parse and build iCalendar RFC 5545在新窗口打开 data models.
- ThreeTen-Extra在新窗口打开 - Additional date-time classes that complement those in JDK 8.
- Time4J在新窗口打开 - Advanced date and time library.
Dependency Injection
Libraries that help to realize the Inversion of Control在新窗口打开 paradigm.
- Apache DeltaSpike在新窗口打开 - CDI extension framework.
- Dagger2在新窗口打开 - Compile-time injection framework without reflection.
- 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.
Development
Augmentation of the development process at a fundamental level.
- AspectJ在新窗口打开 - Seamless aspect-oriented programming extension.
- DCEVM在新窗口打开 - JVM modification that allows unlimited redefinition of loaded classes at runtime.
- 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.
- JavaParser在新窗口打开 - Parse, modify and generate Java code.
- JavaSymbolSolver在新窗口打开 - A symbol solver for Java.
- JRebel
在新窗口打开 - Instantly reloads code and configuration changes without redeploys.
- NoException在新窗口打开 - Allows checked exceptions in functional interfaces and converts exceptions to Optional return.
Distributed Applications
Libraries and frameworks for writing distributed and fault-tolerant 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在新窗口打开 - Framework for creating CQRS applications.
- Dropwizard Circuit Breaker在新窗口打开 - Circuit breaker design pattern for Dropwizard.
- Failsafe在新窗口打开 - Simple failure handling with retries and circuit breakers.
- Hazelcast
在新窗口打开 - Highly scalable in-memory datagrid with a free open-source version.
- Hystrix在新窗口打开 - Provides latency and fault tolerance.
- JGroups在新窗口打开 - Toolkit for reliable messaging and cluster creation.
- Orbit在新窗口打开 - Virtual actors; adds another level of abstraction to traditional actors.
- Quasar在新窗口打开 - Lightweight threads and actors for the JVM.
- resilience4j在新窗口打开 - Functional fault tolerance library.
- ScaleCube在新窗口打开 - Embeddable Cluster-Membership library based on SWIM and gossip protocol.
- Zuul在新窗口打开 - A gateway service that provides dynamic routing, monitoring, resiliency, security, and more.
Distributed Transactions
Distributed transactions provide a mechanism for ensuring consistency of data updates in the presence of concurrent access and partial failures.
- Atomikos在新窗口打开 - Provides transactions for REST, SOA and microservices with support for JTA and XA.
- Bitronix在新窗口打开 - A 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.
Distribution
Tools that handle the distribution of applications in native formats.
- Bintray
在新窗口打开 - Version control for binaries that handle publishing. Compatible with Maven or Gradle, with a free plan for open-source software as well as several business plans.
- Boxfuse在新窗口打开 - Deployment of JVM applications to AWS using the principles of immutable infrastructure.
- Capsule在新窗口打开 - Simple and powerful packaging and deployment. A fat JAR on steroids, or a "Docker for Java" that supports JVM-optimized containers.
- Central Repository在新窗口打开 - Largest binary component repository available as a free service to the open-source community. Default used by Apache Maven, and available in all other build tools.
- IzPack在新窗口打开 - Setup authoring tool for cross-platform deployments.
- JitPack在新窗口打开 - Easy-to-use package repository for GitHub. Builds Maven/Gradle projects on demand and publishes ready-to-use packages.
- Nexus
在新窗口打开 - Binary management with proxy and caching capabilities.
- packr在新窗口打开 - Packs JARs, assets and the JVM for native distribution on Windows, Linux and Mac OS X.
- really-executable-jars-maven-plugin在新窗口打开 - Maven plugin for making self-executing JARs.
Document Processing
Libraries that assist with processing office document formats.
- 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.
- zerocell在新窗口打开 - Annotation-based API for reading data from Excel sheets into POJOs with focus on reduced overhead.
Formal Verification
Formal-methods tools: proof assistants, model checking, symbolic execution, etc.
- CATG在新窗口打开 - Concolic unit testing engine. Automatically generates unit tests using formal methods.
- Checker Framework在新窗口打开 - Pluggable type systems. Includes nullness types, physical units, immutability types and more.
- Daikon在新窗口打开 - Detects likely program invariants and generates JML specs based on those invariants.
- Java Path Finder (JPF)在新窗口打开 - JVM formal verification tool containing a model checker and more. Created by NASA.
- 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.
- 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.
- OpenJML在新窗口打开 - Translates JML specifications into SMT-LIB format and passes the proof problems implied by the program to backend solvers.
Functional Programming
Libraries that facilitate functional programming.
- cyclops-react在新窗口打开 - Monad and stream utilities, comprehensions, pattern matching, functional extensions for all JDK collections, future streams, trampolines and much more.
- derive4j在新窗口打开 - Java 8 annotation processor and framework for deriving algebraic data types constructors, pattern-matching and morphisms.
- Fugue在新窗口打开 - Functional extensions to Guava.
- Functional Java在新窗口打开 - Implements numerous basic and advanced programming abstractions that assist composition-oriented development.
- jOOλ在新窗口打开 - Extension to Java 8 that aims to fix gaps in lambda by providing numerous missing types and a rich set of sequential Stream API additions.
- protonpack在新窗口打开 - Collection of stream utilities.
- StreamEx在新窗口打开 - Enhances Java 8 Streams.
- Vavr在新窗口打开 - Functional component library that provides persistent data types and functional control structures.
Game Development
Frameworks that support the development of games.
- FXGL在新窗口打开 - JavaFX Game Development Framework.
- 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.
Geospatial
Libraries for working with geospatial data and algorithms.
- Apache SIS在新窗口打开 - Library for developing geospatial applications.
- Geo在新窗口打开 - GeoHash utilities in Java.
- Geotoolkit.org在新窗口打开 - Library for developing geospatial applications. Built on top of the Apache SIS project.
- GeoTools在新窗口打开 - Library that provides tools for geospatial data.
- GraphHopper在新窗口打开 - Road-routing engine. Used as a Java library or standalone web service.
- H2GIS在新窗口打开 - A spatial extension of the H2 database.
- Jgeohash在新窗口打开 - Library for using the GeoHash algorithm.
- Mapsforge在新窗口打开 - Map rendering based on OpenStreetMap data.
- Spatial4j在新窗口打开 - General-purpose spatial/geospatial library.
GUI
Libraries to create modern graphical user interfaces.
- JavaFX在新窗口打开 - The successor of Swing.
- Scene Builder在新窗口打开 - Visual layout tool for JavaFX applications.
- SWT在新窗口打开 - The Standard Widget Toolkit, a graphical widget toolkit.
High Performance
Everything about high-performance computation, from collections to specific libraries.
- Agrona在新窗口打开 - Data structures and utility methods that are common in high-performance applications.
- Disruptor在新窗口打开 - Inter-thread messaging library.
- Eclipse Collections在新窗口打开 - Collections framework inspired by Smalltalk.
- fastutil在新窗口打开 - Fast and compact type-specific collections.
- HPPC在新窗口打开 - Primitive collections.
- JCTools在新窗口打开 - Concurrency tools currently missing from the JDK.
- Koloboke在新窗口打开 - Hash sets and hash maps.
HTTP Clients
Libraries that assist with creating HTTP requests and/or binding responses.
- Async Http Client在新窗口打开 - Asynchronous HTTP and WebSocket client library.
- Feign在新窗口打开 - HTTP client binder inspired by Retrofit, JAXRS-2.0, and WebSocket.
- OkHttp在新窗口打开 - HTTP+SPDY client.
- Play WS在新窗口打开 - Typesafe client with reactive streams and caching.
- restQL-core在新窗口打开 - Microservice query language that fetches information from multiple services.
- Retrofit在新窗口打开 - Typesafe REST client.
- Ribbon在新窗口打开 - Client-side IPC library that is battle-tested in cloud.
- Riptide在新窗口打开 - Client-side response routing for Spring's RestTemplate.
Hypermedia Types
Libraries that handle serialization to hypermedia types.
- JSON-LD在新窗口打开 - JSON-LD implementation.
- Siren4J在新窗口打开 - Library for the Siren specification.
IDE
Integrated development environments that try to simplify several aspects of development.
- Eclipse在新窗口打开 - Established open-source project with support for lots of plugins and languages.
- IntelliJ IDEA
在新窗口打开 - Supports many JVM languages and provides good options for Android development. The commercial edition targets the enterprise sector.
- NetBeans在新窗口打开 - Provides integration for several Java SE and EE features, from database access to HTML5.
- Visual Studio Code在新窗口打开 - Provides Java support for lightweight projects with a simple, modern workflow by using extensions from the internal marketplace.
Imagery
Libraries that assist with the creation, evaluation or manipulation of graphical images.
- Imgscalr在新窗口打开 - Simple, efficient and hardware-accelerated image-scaling library implemented in pure Java 2D.
- Tess4J在新窗口打开 - A JNA wrapper for Tesseract OCR API.
- Thumbnailator在新窗口打开 - High-quality thumbnail generation library.
- TwelveMonkeys在新窗口打开 - Collection of plugins that extend the number of supported image file formats.
- ZXing在新窗口打开 - Multi-format 1D/2D barcode image processing library.
JSON
Libraries for serializing and deserializing JSON to and from Java objects.
- DSL-JSON在新窗口打开 - JSON library with advanced compile time databinding.
- 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.
- HikariJSON在新窗口打开 - High-performance JSON parser, 2x faster than Jackson.
- jackson-modules-java8在新窗口打开 - Set of Jackson modules for Java 8 datatypes and features.
- Jackson-datatype-money在新窗口打开 - Open-source Jackson module to support JSON serialization and deserialization of JavaMoney data types.
- Jackson在新窗口打开 - Similar to GSON, but offers performance gains if you need to instantiate the library more often.
- JSON-io在新窗口打开 - Convert Java to JSON. Convert JSON to Java. Pretty print JSON. Java JSON serializer.
- jsoniter在新窗口打开 - Fast and flexible library with iterator and lazy parsing API.
- LoganSquare在新窗口打开 - JSON parsing and serializing library based on Jackson's streaming API. Outperforms GSON & Jackson's library.
- Moshi在新窗口打开 - Modern JSON library, less opinionated and uses built-in types like List and Map.
- Yasson在新窗口打开 - Binding layer between classes and JSON documents similar to JAXB.
JSON Processing
Libraries for processing data in JSON format.
- fastjson在新窗口打开 - Very fast processor with no additional dependencies and full data binding.
- Jolt在新窗口打开 - JSON to JSON transformation tool.
- JsonPath在新窗口打开 - Extract data from JSON using XPATH-like syntax.
- JsonSurfer在新窗口打开 - Streaming JsonPath processor dedicated to processing big and complicated JSON data.
JVM and JDK
Current implementations of the JVM/JDK.
- Avian在新窗口打开 - JVM with both JIT and AOT modes. Includes an iOS port.
- Graal在新窗口打开 - Polyglot virtual machine which can be embedded.
- OpenJ9在新窗口打开 - High performance, enterprise calibre, flexibly licensed, openly governed cross platform Java Virtual Machine extending and augmenting the runtime technology components from the Eclipse OMR and OpenJDK project.
- OpenJDK在新窗口打开 - Open-source implementation for Linux.
- ParparVM在新窗口打开 - VM with non-blocking, concurrent GC for iOS.
- Zulu在新窗口打开 - OpenJDK builds for Windows, Linux, and Mac OS X.
Logging
Libraries that log the behavior of an application.
- Apache Log4j 2在新窗口打开 - Complete rewrite with a powerful plugin and configuration architecture.
- Graylog在新窗口打开 - Open-source aggregator suited for extended role and permission management.
- Kibana在新窗口打开 - Analyzes and visualizes log files. Some features require payment.
- Logback在新窗口打开 - Robust logging library with interesting configuration options via Groovy.
- Logbook在新窗口打开 - Extensible, open-source library for HTTP request and response logging.
- Logstash在新窗口打开 - Tool for managing log files.
- SLF4J在新窗口打开 - Abstraction layer/simple logging facade.
- tinylog在新窗口打开 - Lightweight logging framework with static logger class.
- Tracer在新窗口打开 - Call tracing and log correlation in distributed systems.
Machine Learning
Tools that provide specific statistical algorithms for learning from data.
- Apache Flink在新窗口打开 - Fast, reliable, large-scale data processing engine.
- Apache Mahout在新窗口打开 - Scalable algorithms focused on collaborative filtering, clustering and classification.
- Apache Spark在新窗口打开 - Data analytics cluster-computing framework.
- DatumBox在新窗口打开 - Provides several algorithms and pre-trained models for natural language processing.
- DeepDive在新窗口打开 - Creates structured information from unstructured data and integrates it into an existing database.
- Deeplearning4j在新窗口打开 - Distributed and multi-threaded deep learning library.
- H2O在新窗口打开 - Analytics engine for statistics over big data.
- JSAT在新窗口打开 - Algorithms for pre-processing, classification, regression, and clustering with support for multi-threaded execution.
- Oryx 2在新窗口打开 - Framework for building real-time, large-scale machine learning applications. Includes end-to-end applications for collaborative filtering, classification, regression, and clustering.
- Smile在新窗口打开 - The Statistical Machine Intelligence and Learning Engine provides a set of machine learning algorithms and a visualization library.
- Weka在新窗口打开 - Collection of algorithms for data mining tasks ranging from pre-processing to visualization.
Messaging
Tools that help send messages between clients to ensure protocol independency.
- Aeron在新窗口打开 - Efficient, reliable, unicast and multicast message transport.
- Apache ActiveMQ在新窗口打开 - Message broker that implements JMS and converts synchronous to asynchronous communication.
- Apache Camel在新窗口打开 - Glues together different transport APIs via Enterprise Integration Patterns.
- Apache Kafka在新窗口打开 - High-throughput distributed messaging system.
- Apache Pulsar在新窗口打开 - Distributed pub/sub-messaging system.
- Apache RocketMQ在新窗口打开 - A fast, reliable, and scalable distributed messaging platform.
- EventBus在新窗口打开 - Simple publish/subscribe event bus.
- Hermes在新窗口打开 - Fast and reliable message broker built on top of Kafka.
- JeroMQ在新窗口打开 - Implementation of ZeroMQ.
- Nakadi在新窗口打开 - Provides a RESTful API on top of Kafka.
- Smack在新窗口打开 - Cross-platform XMPP client library.
Miscellaneous
Everything else.
- Codename One在新窗口打开 - Cross-platform solution for writing native mobile apps.
- CQEngine在新窗口打开 - Ultra-fast, SQL-like queries on Java collections.
- Design Patterns在新窗口打开 - Implementation and explanation of the most common design patterns.
- Failsafe在新窗口打开 - Simple failure handling with retries and circuit breakers.
- FF4J在新窗口打开 - Feature Flags for Java.
- FizzBuzz Enterprise Edition在新窗口打开 - No-nonsense implementation of FizzBuzz made by serious businessmen for serious business purposes.
- J2ObjC在新窗口打开 - Java-to-Objective-C translator for porting Android libraries to iOS.
- JavaX在新窗口打开 - Reinventing and extending Java with a focus on simplicity.
- JBake在新窗口打开 - Static website generator.
- JBot在新窗口打开 - Framework for building chatbots.
- Jimfs在新窗口打开 - In-memory file system.
- Joda-Money在新窗口打开 - Basic currency and money classes and algorithms not provided by the JDK.
- JPad在新窗口打开 - Snippet runner.
- LightAdmin在新窗口打开 - Pluggable CRUD UI library for rapid application development.
- Maven Wrapper在新窗口打开 - Analogue of Gradle Wrapper for Maven, allows building projects without installing maven.
- Membrane Service Proxy在新窗口打开 - An open-source, reverse-proxy framework written in Java.
- MinimalFTP在新窗口打开 - Lightweight, small and customizable FTP server.
- Modern Java - A Guide to Java 8在新窗口打开 - Popular Java 8 guide.
- Modernizer在新窗口打开 - Detect uses of legacy Java APIs.
- Multi-OS Engine在新窗口打开 - An open-source, cross-platform engine to develop native mobile (iOS, Android, etc.) apps.
- OpenRefine在新窗口打开 - Tool for working with messy data: cleaning, transforming, extending it with web services and linking it to databases.
- Polyglot for Maven在新窗口打开 - Extensions for Maven 3.3.1+ that allows writing the POM model in dialects other than XML.
- Smooks在新窗口打开 - Extensible framework for building applications that process data which means bindings, transformations, message processing and enrichment.
- Togglz在新窗口打开 - Implementation of the Feature Toggles pattern.
- TypeTools在新窗口打开 - Tools for resolving generic types.
- XMLBeam在新窗口打开 - Processes XML by using annotations or XPath within code.
- OctoLinker在新窗口打开 - Browser extension which allows to navigate through code on GitHub more efficiently.
Microservice
Tools for creating and managing microservices.
- Apollo在新窗口打开 - Libraries for writing composable microservices.
- consul-api在新窗口打开 - Client for the Consul在新窗口打开 API: a distributed, highly available and datacenter-aware registry/discovery service.
- Eureka在新窗口打开 - REST-based service registry for resilient load balancing and failover.
- Lagom在新窗口打开 - Framework for creating microservice-based systems.
- Micronaut在新窗口打开 - Modern full-stack framework with focus on modularity, minimal memory footprint and startup time.
Monitoring
Tools that monitor applications in production.
- AppDynamics
在新窗口打开 - Performance monitor.
- Automon在新窗口打开 - Combines the power of AOP with monitoring and/or logging tools.
- BugSnag
在新窗口打开 - Exception and error monitoring with an integration of several third party tools for a better workflow and a free hobbyist tier.
- LeakCanary在新窗口打开 - Memory leak detection.
- Failsafe Actuator在新窗口打开 - Out of the box monitoring of Failsafe Circuit Breaker in Spring-Boot environment.
- 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
在新窗口打开 - Real-time Java application performance monitoring. A commercial service with free development accounts.
- JavaMelody在新窗口打开 - Performance monitoring and profiling.
- jmxtrans在新窗口打开 - Connect to multiple JVMs and query them for their attributes via JMX. Its query language is based on JSON, which allows non-Java programmers to access the JVM attributes. Supports different output writes, including Graphite, Ganglia, and StatsD.
- Jolokia在新窗口打开 - JMX over REST.
- Kamon在新窗口打开 - Tool for monitoring applications running on the JVM.
- Metrics在新窗口打开 - Expose metrics via JMX or HTTP and send them to a database.
- New Relic
在新窗口打开 - Performance monitor.
- nudge4j在新窗口打开 - Remote developer console from the browser for Java 8 via bytecode injection.
- OverOps
在新窗口打开 - In-production error monitoring and debugging.
- Pinpoint在新窗口打开 - Open-source APM tool.
- Prometheus在新窗口打开 - Provides a multi-dimensional data model, DSL, autonomous server nodes and much more.
- SPM
在新窗口打开 - Performance monitor with distributing transaction tracing for JVM apps.
- Stagemonitor在新窗口打开 - Open-source performance monitoring and transaction tracing for JVM apps.
- Sysmon在新窗口打开 - Lightweight platform monitoring tool for Java VMs.
- zipkin在新窗口打开 - Distributed tracing system which gathers timing data needed to troubleshoot latency problems in microservice architectures.
Native
For working with platform-specific native libraries.
- JavaCPP在新窗口打开 - Provides efficient and easy access to native C++.
- JNA在新窗口打开 - Work with native libraries without writing JNI. Also provides interfaces to common system libraries.
- JNR在新窗口打开 - Work with native libraries without writing JNI. Also provides interfaces to common system libraries. Same goals as JNA, but faster, and serves as the basis for the upcoming Project Panama在新窗口打开.
Natural Language Processing
Libraries that specialize in processing text.
- CogCompNLP在新窗口打开 - Provides common annotators for plain text input.
- CoreNLP在新窗口打开 - Provides a set of fundamental tools for tasks like tagging, named entity recognition, and 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
Libraries for building network servers.
- Comsat在新窗口打开 - Integrates standard Java web-related APIs with Quasar fibers and actors.
- Dubbo在新窗口打开 - High-performance RPC framework.
- Finagle在新窗口打开 - Extensible RPC system for constructing high-concurrency servers. It implements uniform client and server APIs for several protocols, and is protocol-agnostic to simplify implementation of new protocols.
- Grizzly在新窗口打开 - NIO framework. Used as a network layer in Glassfish.
- gRPC在新窗口打开 - RPC framework based on protobuf and HTTP/2.
- KryoNet在新窗口打开 - Provides a clean and simple API for efficient TCP and UDP client/server network communication using NIO and Kryo.
- MINA在新窗口打开 - Abstract, event-driven async I/O API for network operations over TCP/IP and UDP/IP via Java NIO.
- Netty在新窗口打开 - Framework for building high-performance network applications.
- Nifty在新窗口打开 - Implementation of Thrift clients and servers on Netty.
- sshj在新窗口打开 - Programatically use SSH, SCP or SFTP.
- TLS Channel在新窗口打开 - Implements a ByteChannel interface over SSLEngine, enabling easy-to-use (socket-like) TLS.
- Undertow在新窗口打开 - Web server providing both blocking and non-blocking APIs based on NIO. Used as a network layer in WildFly.
- urnlib在新窗口打开 - Represent, parse and encode URNs, as in RFC 2141.
ORM
APIs that handle the persistence of objects.
- 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.
- MyBatis在新窗口打开 - Couples objects with stored procedures or SQL statements.
- SimpleFlatMapper在新窗口打开 - Simple database and CSV mapper.
PaaS
Java platform as a service.
- AWS Elastic Beanstalk
在新窗口打开 - AWS-based, with support for Tomcat and Jetty.
- AWS Lambda
在新窗口打开 - Serverless computation.
- Google App Engine
在新窗口打开 - PaaS on Google's infrastructure.
- Heroku
在新窗口打开 - Abstract computing environments.
- Jelastic
在新窗口打开 - Supports Tomcat, Jetty, GlassFish, JBoss, TomEE and WildFly.
- OpenShift Enterprise
在新窗口打开 - On-premise solution.
Tools to help with PDF file creation.
- Apache FOP在新窗口打开 - Creates PDFs from XSL-FO.
- Apache PDFBox在新窗口打开 - Toolbox for creating and manipulating PDFs.
- Dynamic Jasper在新窗口打开 - Abstraction layer to JasperReports.
- DynamicReports在新窗口打开 - Simplifies JasperReports.
- flyingsaucer在新窗口打开 - XML/XHTML and CSS 2.1 renderer.
- iText
在新窗口打开 - Creates PDF files programmatically.
- JasperReports在新窗口打开 - Complex reporting engine.
Performance analysis
Tools for performance analysis, profiling and benchmarking.
- fastThread
在新窗口打开 - Analyze and visualize thread dumps with a free cloud-based upload interface.
- GCeasy
在新窗口打开 - Tool to analyze and visualize GC logs. It provides a free cloud-based upload interface.
- honest-profiler在新窗口打开 - A low-overhead, bias-free sampling profiler.
- jHiccup在新窗口打开 - Logs and records platform JVM stalls.
- JITWatch在新窗口打开 - Analyze the JIT compiler optimisations made by the HotSpot JVM.
- JMH在新窗口打开 - a Java harness for building, running, and analysing nano/micro/milli/macro benchmarks written in Java and other languages targeting the JVM.
- JProfiler
在新窗口打开 - Database profiling for JDBC, JPA and NoSQL, with JEE support.
- LatencyUtils在新窗口打开 - Utilities for latency measurement and reporting.
- XRebel
在新窗口打开 - Real-time profiling for web applications, with an in-browser widget.
- YourKit Java Profiler
在新窗口打开 - Profiler for any application running on the JVM.
Platform
Frameworks that are suites of multiple libraries encompassing several categories.
Apache Commons
- Pool在新窗口打开 - Generic object pooling component.
- BCEL在新窗口打开 - Byte Code Engineering Library - analyze, create, and manipulate Java class files.
- Codec在新窗口打开 - General encoding/decoding algorithms (for example phonetic, base64, URL).
- Compress在新窗口打开 - Defines an API for working with tar, zip and bzip2 files.
- IO在新窗口打开 - Collection of I/O utilities.
- Configuration在新窗口打开 - Reading of configuration/preferences files in various formats.
- VFS在新窗口打开 - Virtual File System component for treating files, FTP, SMB, ZIP and such like as a single logical file system.
- Jelly在新窗口打开 - XML based scripting and processing engine.
- CSV在新窗口打开 - Component for reading and writing comma separated value files.
- JCS在新窗口打开 - Java Caching System.
- Email在新窗口打开 - Library for sending e-mail from Java.
- DbUtils在新窗口打开 - JDBC helper library.
- FileUpload在新窗口打开 - File upload capability for your servlets and web applications.
- Lang在新窗口打开 - Provides extra functionality for classes in java.lang.
- Jexl在新窗口打开 - Expression language which extends the Expression Language of the JSTL.
- CLI在新窗口打开 - Command-line arguments parser.
- Validator在新窗口打开 - Framework to define validators and validation rules in an xml file.
- Net在新窗口打开 - Collection of network utilities and protocol implementations.
- RNG在新窗口打开 - Commons Rng provides implementations of pseudo-random numbers generators.
- RDF在新窗口打开 - Common implementation of RDF 1.1 that could be implemented by systems on the JVM.
- Weaver在新窗口打开 - Provides an easy way to enhance (weave) compiled bytecode.
- BeanUtils在新窗口打开 - Easy-to-use wrappers around the Java reflection and introspection APIs.
- Collections在新窗口打开 - Extends or augments the Java Collections Framework.
- DBCP在新窗口打开 - Database connection pooling services.
- Math在新窗口打开 - Lightweight, self-contained mathematics and statistics components.
- Exec在新窗口打开 - API for dealing with external process execution and environment management in Java.
- Logging在新窗口打开 Wrapper around a variety of logging API implementations.
- OGNL在新窗口打开 - An Object-Graph Navigation Language.
- JCI在新窗口打开 - Java Compiler Interface.
- Daemon在新窗口打开 - Alternative invocation mechanism for unix-daemon-like java code.
- Functor在新窗口打开 - A functor is a function that can be manipulated as an object, or an object representing a single, generic function.
- Digester在新窗口打开 - XML-to-Java-object mapping utility.
- BSF在新窗口打开 - Bean Scripting Framework - interface to scripting languages, including JSR-223.
- Imaging在新窗口打开 - A pure-Java image library.
- SCXML在新窗口打开 - An implementation of the State Chart XML specification aimed at creating and maintaining a Java SCXML engine.
- JXPath在新窗口打开 - Utilities for manipulating Java Beans using the XPath syntax.
- Chain在新窗口打开 - Chain of Responsibility pattern implementation.
- Proxy在新窗口打开 - Library for creating dynamic proxies.
- BeanUtils2在新窗口打开 - Redesign of Commons BeanUtils.
- ClassScan在新窗口打开 - Find Class interfaces, methods, fields, and annotations without loading.
- CLI2在新窗口打开 Redesign of Commons CLI.
- Convert在新窗口打开 - Commons-Convert aims to provide a single library dedicated to the task of converting an object of one type to another.
- Finder在新窗口打开 - Java library inspired by the UNIX find command.
- Flatfile在新窗口打开 - Java library for working with flat data structures.
- Graph在新窗口打开 - A 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.
- Javaflow在新窗口打开 - Continuation implementation to capture the state of the application.
- JNet在新窗口打开 - JNet allows to use dynamically register url stream handlers through the java.net API.
- 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.
- OpenPGP在新窗口打开 - Interface to signing and verifying data using OpenPGP.
- Performance在新窗口打开 - A 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.
Other
- CUBA Platform在新窗口打开 - High-level framework for developing enterprise applications with a rich web interface, based on Spring, EclipseLink and Vaadin.
- Light-Java在新窗口打开 - A fast, lightweight and productive microservices framework with built-in security在新窗口打开.
- Orienteer在新窗口打开 - Open-source business application platform for rapid configuration/development of CRM, ERP, LMS and other applications.
- Spring在新窗口打开 - Provides many packages for dependency injection, aspect-oriented programming, security, etc.
Processes
Libraries that help the management of operating system 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
Libraries for developing reactive applications.
- 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.
- RxJava在新窗口打开 - Allows for composing asynchronous and event-based programs using observable sequences.
- vert.x在新窗口打开 - Polyglot event-driven application framework.
REST Frameworks
Frameworks specifically for creating RESTful services.
- Dropwizard在新窗口打开 - Opinionated framework for setting up modern web applications with Jetty, Jackson, Jersey and Metrics.
- Jersey在新窗口打开 - JAX-RS reference implementation.
- 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.
- Rapidoid在新窗口打开 - A simple, secure and extremely fast framework consisting of an embedded HTTP server, GUI components and dependency injection.
- 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.
- RESTEasy在新窗口打开 - Fully certified and portable implementation of the JAX-RS specification.
- 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.
- Spark在新窗口打开 - Sinatra inspired framework.
- Crnk在新窗口打开 - Implementation of the JSON API specification to build resource-oriented REST endpoints with sorting, filtering, paging, linking, object graphs, type-safety, bulk updates, integrations and more.
- Swagger在新窗口打开 - Standard, language-agnostic interface to REST APIs.
Science
Libraries for scientific computing, analysis and visualization.
- DataMelt在新窗口打开 - Environment for scientific computation, data analysis and data visualization.
- Erdos在新窗口打开 - Modular, light and easy graph framework for theoretic algorithms.
- GraphStream在新窗口打开 - Library for modeling and analyzing dynamic graphs.
- JFreeChart在新窗口打开 - 2D chart library for Swing, JavaFX and server-side applications.
- 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.
- Morpheus在新窗口打开 - Provides a versatile two-dimensional memory efficient tabular data structure called a DataFrame to enable efficient in-memory analytics for scientific computing on the JVM.
- Tablesaw在新窗口打开 - Includes a data-frame, an embedded column store, and hundreds of methods to transform, summarize, or filter data.
Search
Engines that index documents for search and analysis.
- 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.
Security
Libraries that handle security, authentication, authorization or session management.
- 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.
- 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.
- Keycloak在新窗口打开 - Integrated SSO and IDM for browser apps and RESTful web services.
- Keyczar在新窗口打开 - Easy-to-use, safe encryption framework with key versioning.
- Keywhiz在新窗口打开 - System for distributing and managing secrets.
- Nbvcxz在新窗口打开 - Advanced password strength estimation.
- OACC在新窗口打开 - Provides permission-based authorization services.
- pac4j在新窗口打开 - Security engine.
- PicketLink在新窗口打开 - Umbrella project for security and identity management.
- SecurityBuilder在新窗口打开 - Fluent Builder API for JCA and JSSE classes and especially X.509 certificates.
- 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.
- 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.
Serialization
Libraries that handle serialization with high efficiency.
- 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
Servers specifically used to deploy applications.
- 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.
- nanohttpd在新窗口打开 - Tiny, easily embeddable HTTP server.
- WebSphere Liberty在新窗口打开 - Lightweight, modular server developed by IBM.
- WildFly在新窗口打开 - Formerly known as JBoss and developed by Red Hat with extensive Java EE support.
Template Engine
Tools that substitute expressions in a template.
- Handlebars.java在新窗口打开 - Logicless and semantic Mustache templates.
- Jade4J在新窗口打开 - Implementation of Pug (formerly known as Jade).
- 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
Tools that test from model to the view.
Asynchronous
Tools that simplify testing asynchronous services.
- Awaitility在新窗口打开 - DSL for synchronizing asynchronous operations.
- ConcurrentUnit在新窗口打开 - Toolkit for testing multi-threaded and asynchronous applications.
- GreenMail在新窗口打开 - In-memory email server for integration testing. Supports SMTP, POP3 and IMAP including SSL.
- Hoverfly Java在新窗口打开 - Native bindings for Hoverfly, a proxy which allows you to simulate HTTP services.
- REST Assured在新窗口打开 - DSL for easy testing of REST/HTTP services.
BDD
Testing for the software development process that emerged from TDD and was heavily influenced by DDD and OOAD.
- Cucumber在新窗口打开 - Provides a way to describe features in a plain language which customers can understand.
- Cukes-REST在新窗口打开 - A collection of Gherkin steps for REST-service testing using Cucumber.
- J8Spec在新窗口打开 - Follows a Jasmine-like syntax.
- JBehave在新窗口打开 - Extensively configurable framework that describes stories.
- JGiven在新窗口打开 - Provides a fluent API which allows for simpler composition.
- Lamdba Behave在新窗口打开 - Aims to provide a fluent API to write tests in long and descriptive sentences that read like plain English.
Fixtures
Everything related to the creation and handling of random data.
- 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在新窗口打开 - A port of Ruby's fake data generator.
Frameworks
Provide environments to run tests for a specific use case.
- ArchUnit在新窗口打开 - Test library for specifying and asserting architecture rules.
- 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.
- Pact JVM在新窗口打开 - Consumer-driven contract testing.
- PIT在新窗口打开 - Fast mutation-testing framework for evaluating fault-detection abilities of existing JUnit or TestNG test suites.
Matchers
Libraries that provide custom matchers.
- AssertJ在新窗口打开 - Fluent assertions that improve readability.
- JSONAssert在新窗口打开 - Simplifies testing JSON strings.
- Truth在新窗口打开 - Google's assertion and proposition framework.
Miscellaneous
Other stuff related to testing.
- 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.
- pojo-tester在新窗口打开 - Automatically performs tests on basic POJO methods.
Mocking
Tools which mock collaborators to help testing single, isolated units.
- JMockit在新窗口打开 - Integration testing, API mocking and faking, and code coverage.
- Mockito在新窗口打开 - Mocking framework that lets you write tests with a clean and simple API.
- MockServer在新窗口打开 - Allows mocking of systems integrated with HTTPS.
- Moco在新窗口打开 - Concise web services for stubs and mocks.
- PowerMock在新窗口打开 - Mocks static methods, constructors, final classes and methods, private methods, and removal of static initializers.
- WireMock在新窗口打开 - Stubs and mocks web services.
Parameterization
Simplifies the writing of parameterized tests.
- Burst在新窗口打开 - A unit testing library for varying test data.
- junit-dataprovider在新窗口打开 - A TestNG-like data provider/runner for JUnit.
- JUnitParams在新窗口打开 - Creates readable and maintainable parametrised tests.
Utility
Libraries which provide general utility functions.
- bucket4j在新窗口打开 - Rate limiting library based on token-bucket algorithm.
- cactoos在新窗口打开 - Collection of object-oriented primitives.
- CRaSH在新窗口打开 - Provides a shell into a JVM that's running CRaSH. Used by Spring Boot and others.
- Dex在新窗口打开 - Java/JavaFX tool capable of powerful ETL and data visualization.
- Embulk在新窗口打开 - Bulk data loader that helps data transfer between various databases, storages, file formats, and cloud services.
- 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.
- 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.
- JavaVerbalExpressions在新窗口打开 - Library that helps with constructing difficult regular expressions.
- JGit在新窗口打开 - A lightweight, pure Java library implementing the Git version control system.
- minio-java在新窗口打开 - Provides simple APIs to access any Amazon S3-compatible object storage server.
- Protégé在新窗口打开 - Provides an ontology editor and a framework to build knowledge-based systems.
- Underscore-java在新窗口打开 - Port of Underscore.js functions.
Version Managers
Utilities that help create the development shell environment and switch between different Java versions.
- jabba在新窗口打开 - Java Version Manager inspired by nvm. Supports Mac OS X, Linux and Windows.
- jenv在新窗口打开 - Java Version Manager inspired by rbenv. Can configure globally or per project. Tested on Debian and Mac OS X.
- SDKMan在新窗口打开 - Java Version Manager inspired by RVM and rbenv. Supports UNIX-based platforms and Windows.
Web Crawling
Libraries that analyze the content of websites.
- Apache Nutch在新窗口打开 - Highly extensible, highly scalable web crawler for production environments.
- Crawler4j在新窗口打开 - Simple and lightweight web crawler.
- jsoup在新窗口打开 - Scrapes, parses, manipulates and cleans HTML.
- StormCrawler在新窗口打开 - SDK for building low-latency and scalable web crawlers.
- webmagic在新窗口打开 - Scalable crawler with downloading, url management, content extraction and persistent.
Web Frameworks
Frameworks that handle the communication between the layers of a web application.
- 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.
- Firefly在新窗口打开 - Asynchronous framework for rapid development of high-performance web application.
- 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.
- 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.
- Takes在新窗口打开 - Opinionated web framework which is built around the concepts of True Object-Oriented Programming and immutability.
- Vaadin在新窗口打开 - Event-driven framework built on top of GWT. Uses server-side architecture with Ajax on the client side.
Resources
Awesome Lists
Awesome lists related to the Java & JVM ecosystem.
- Awesome Gradle Plugins在新窗口打开
- AwesomeJavaFX在新窗口打开
- Awesome JVM在新窗口打开
- Awesome Microservices在新窗口打开
- Awesome REST在新窗口打开
- Awesome Selenium在新窗口打开
- ciandcd在新窗口打开
- Useful Java Links在新窗口打开
Communities
Active discussions.
- r/java在新窗口打开 - Subreddit for the Java community.
- stackoverflow在新窗口打开 - Question/answer platform.
- VirtualJUG在新窗口打开 - Virtual Java User Group.
Frontends
Websites that provide a frontend for this list. Please note, there won't be an official website. We don't associate with a particular website and everybody is allowed to create one.
Influential Books
Books that made a big impact and are still worth reading.
- Core Java Volume I--Fundamentals在新窗口打开
- Core Java, Volume II--Advanced Features在新窗口打开
- Effective Java (3rd Edition)在新窗口打开
- Java Concurrency in Practice在新窗口打开
- Thinking in Java在新窗口打开
Podcasts and Screencasts
Something to look at or listen to while programming.
- Java Off Heap在新窗口打开
- Marco Behler's Screencasts在新窗口打开 - Screencasts about modern Java development.
- The Java Council在新窗口打开
- The Java Posse在新窗口打开 - Discontinued as of 02/2015.
Active accounts to follow. Descriptions from Twitter.
- Adam Bien在新窗口打开 - Freelance author, JavaOne Rockstar speaker, consultant, Java Champion.
- Aleksey Shipilëv在新窗口打开 - Performance geek, benchmarking czar, concurrency bug hunter.
- Antonio Goncalves在新窗口打开 - Java Champion, JUG Leader, Devoxx France, Java EE 6/7, JCP, Author.
- Arun Gupta在新窗口打开 - Java Champion, JavaOne Rockstar, JUG Leader, Devoxx4Kids-er, VP of Developer Advocacy at Couchbase.
- Brian Goetz在新窗口打开 - Java Language Architect at Oracle.
- Bruno Borges在新窗口打开 - Product Manager/Java Jock at Oracle.
- 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 EE在新窗口打开 - Official Java EE Twitter account.
- Java Magazine在新窗口打开 - Official Java Magazine account.
- Java在新窗口打开 - Official Java Twitter account.
- Javin Paul在新窗口打开 - Well-known Java blogger.
- Josh Long在新窗口打开 - Spring Advocate at Pivotal, author of O'Reilly's Cloud Native Java- and Building Microservices with Spring Boot, JavaOne Rock Star.
- Lukas Eder在新窗口打开 - Java Champion, speaker, JUG.ch co-leader, Founder and CEO Data Geekery (jOOQ).
- Mario Fusco在新窗口打开 - RedHatter, JUG coordinator, frequent speaker and author.
- Mark Heckler在新窗口打开 - Pivotal Principal Technologist and Developer Advocate, conference speaker, published author, and Java Champion, focusing on Internet of Things and the cloud.
- Mark Reinhold在新窗口打开 - Chief Architect, Java Platform Group, Oracle.
- Markus Eisele在新窗口打开 - Java EE evangelist, Red Hat.
- Martijn Verburg在新窗口打开 - London JUG co-leader, speaker, author, Java Champion and much more.
- Martin Thompson在新窗口打开 - Pasty faced performance gangster.
- Monica Beckwith在新窗口打开 - Performance consultant, JavaOne Rock Star.
- OpenJDK在新窗口打开 - Official OpenJDK account.
- Peter Lawrey在新窗口打开 - Peter Lawrey, Java performance expert.
- Randy Shoup在新窗口打开 - Stitch Fix VP Engineering, speaker, JavaOne Rock Star.
- Reza Rahman在新窗口打开 - Java EE/GlassFish/WebLogic evangelist, author, speaker, open source hacker.
- Simon Maple在新窗口打开 - Java Champion, VirtualJUG founder, LJC leader, RebelLabs author.
- Stephen Colebourne在新窗口打开 - Java Champion, speaker.
- Trisha Gee在新窗口打开 - Java Champion and speaker.
- Venkat Subramaniam在新窗口打开 - Author, University of Houston professor, MicroSoft MVP award recipient, JavaOne Rock Star, Java Champion.
Websites
Sites to read.
- Google Java Style在新窗口打开
- InfoQ在新窗口打开
- Java Algorithms and Clients在新窗口打开
- Java, SQL, and jOOQ在新窗口打开
- Java.net在新窗口打开
- Javalobby在新窗口打开
- JavaWorld在新窗口打开
- JAXenter在新窗口打开
- RebelLabs在新窗口打开
- The Takipi Blog在新窗口打开
- TheServerSide.com在新窗口打开
- Vanilla Java在新窗口打开
- Voxxed在新窗口打开
Contributing
Contributions are very welcome!
Please have a look at the CONTRIBUTING在新窗口打开 guidelines.