这是Github上关于Java相关的工具,框架等等资源集合. 原文参考: https://github.com/akullpp/awesome-java。 @pdai
- Awesome Java
- Bean Mapping
- Build
- Bytecode Manipulation
- Caching
- CLI
- Cluster Management
- Code Analysis
- Code Coverage
- Code Generators
- Compiler-compiler
- Configuration
- Constraint Satisfaction Problem Solver
- CSV
- Database
- Data Structures
- Date and Time
- Dependency Injection
- Development
- Distributed Applications
- Distributed Transactions
- Distribution
- Document Processing
- Formal Verification
- Functional Programming
- Game Development
- Geospatial
- GUI
- High Performance
- HTTP Clients
- Hypermedia Types
- IDE
- Imagery
- JSON
- JSON Processing
- JVM and JDK
- Logging
- Machine Learning
- Messaging
- Miscellaneous
- Microservice
- Monitoring
- Native
- Natural Language Processing
- Networking
- ORM
- PaaS
- Performance analysis
- Platform
- Apache Commons
- Other
- Processes
- Reactive libraries
- REST Frameworks
- Science
- Search
- Security
- Serialization
- Server
- Template Engine
- Testing
- Asynchronous
- BDD
- Fixtures
- Frameworks
- Matchers
- Miscellaneous
- Mocking
- Parameterization
- Utility
- Version Managers
- Web Crawling
- Web Frameworks
- Resources
- Awesome Lists
- Communities
- Frontends
- Influential Books
- Podcasts and Screencasts
- Websites
- Contributing
# Bean Mapping
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.
# 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.
- java.libhunt.com在新窗口打开
# 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在新窗口打开
Contributions are very welcome!
Please have a look at the CONTRIBUTING在新窗口打开 guidelines.