Awesome Java
如果您觉得这个项目对您有帮助,就请点右上角的Star按钮为它加星星✨✨ 其他TIOBE Top 20编程语言的中文翻译请看awesome-code-resources。 本项目的原始仓库地址为这里。
Awesome Java 
精选的Java框架,库和软件列表。
内容
- Awesome Java
项目
Bean映射
简化bean映射的框架。
- dOOv-为类型安全域模型验证和映射提供fluent API。它使用注释,代码生成和类型安全的DSL,使bean验证和映射快速和容易。
- JMapper-使用字节码操作闪电快速映射。支持注释和API或XML配置。
- MapStruct-代码生成器,它基于约定配置方法简化了不同bean类型之间的映射。
- ModelMapper-智能对象映射库,自动将对象映射到彼此。
- Orika-JavaBean映射框架,递归地将数据从一个对象 (以及其他功能) 复制到另一个对象。
- reMap-Lambda和基于方法句柄的映射,如果对象具有不同的名称,则需要代码而不是注释。
- Selma-基于注释处理器的bean映射器。
构建
处理应用程序的生成周期和依赖项的工具。
- Apache Maven-声明式构建和依赖管理,有利于约定而不是配置。它可能比Apache Ant更可取,后者使用相当程序化的方法,并且可能难以维护。
- Bazel-来自Google的工具,可快速可靠地构建代码。
- Buck-鼓励创建由代码和资源组成的小型可重用模块。
- Gradle-通过Groovy而不是声明XML编程的增量构建。适用于Maven的依赖管理。
字节码操作
库以编程方式操作字节码。
- ASM-通用,低级别的字节码操作和分析。
- Byte Buddy-使用fluent API进一步简化字节码生成。
- bytecode-viewer-Java 8 Jar & Android APK逆向工程套件。(GPL-3.0-only)
- Byteman-通过DSL (规则) 在运行时操纵字节码; 主要用于测试/故障排除。(LGPL-2.1-or-later)
- cglib-字节码生成库。
- Javassist-试图简化字节码编辑。
- Maker-提供低级别的字节码生成。
- Mixin-使用真正的Java代码在运行时操作字节码。
- Perses-根据混沌工程的原理在字节码级别动态注入故障/延迟。
- Recaf-JVM逆向工程工具包,本质上是Java字节码的IDE。
缓存
提供缓存设施的库。
- cache2k-内存中的高性能缓存库。
- Caffeine-高性能,接近最佳的缓存库。
- Ehcache-分布式通用缓存。
- Infinispan-用于缓存的高度并发的键/值数据存储。
CLI
与CLI相关的所有内容的库。
参数解析
帮助解析命令行参数的库。
- Airline-基于注释的框架,用于解析类似Git的命令行参数。
- JCommander-命令行参数解析框架与自定义类型和验证通过实现接口。
- jbock-Reflectionless命令行解析器。
- JLine-包括从现代炮弹,如完成或历史的功能。
- picocli-使用ANSI颜色和样式有助于基于注释的POSIX/GNU/any语法,子命令,选项和位置参数的强类型。
基于文本的用户界面
提供TUI框架或构建块相关功能的库。
- Jansi-ANSI转义代码格式化控制台输出。
- Jexer-高级控制台 (和Swing) 文本用户界面 (TUI) 库,具有鼠标可拖动窗口,内置终端窗口管理器和sixel图像支持。看起来像Turbo Vision。
- Text-IO-帮助创建完整的基于控制台的应用程序。
- Lanterna-简单的控制台文本GUI库,类似于诅咒。(LGPL-3.0-only)
群集管理
可以动态管理集群内的应用程序的框架。
- Apache Aurora-用于长时间运行的服务和cron作业的Mesos框架。
- Singularity-Mesos框架,使部署和操作变得容易。它支持web服务、后台工作人员、计划作业和一次性任务。
代码分析
提供度量和质量度量的工具。
- Checkstyle-编码约定和标准的静态分析。(LGPL-2.1-or-later)
- Error Prone-捕获常见的编程错误作为编译时错误。
- Error Prone Support-容易出错的扩展: 额外的错误检查器和大量的更快的模板。
- Infer-现代静态分析工具,用于验证代码的正确性。
- jQAssistant-使用Neo4J-based查询语言进行静态代码分析。(GPL-3.0-only)
- NullAway-消除具有低构建时间开销的NullPointerExceptions。
- PMD-用于查找不良编码实践的源代码分析。
- p3c-提供阿里巴巴的PMD、IDEA和Eclipse的编码指南。
- RefactorFirst-识别并优先考虑上帝类和高度耦合类。
- SonarJava-SonarQube & SonarLint的静态分析仪。(LGPL-3.0-only)
- Spoon-用于分析和转换Java源代码的库。
- Spotbugs-字节码的静态分析,以发现潜在的错误。(LGPL-2.1-only)
代码覆盖率
为测试套件启用代码覆盖率指标收集的框架和工具。
- Clover-依赖于源代码工具而不是字节码工具。
- Cobertura-依靠离线 (或静态) 字节码检测和类加载来收集代码覆盖率指标。(GPL-2.0-only)
- JaCoCo-允许使用离线和运行时字节码工具收集代码覆盖率指标的框架。
代码生成器
为重复代码生成模式以减少冗长和错误倾向的工具。
- ADT4J-代数数据类型的JSR-269代码生成器。
- Auto-生成工厂、服务和值类。
- Avaje Http Server-使用Javalin或Helidon (Nima) SE生成轻量级jax-rs样式的http服务器。
- Bootify
-使用JPA模型和REST API生成基于浏览器的Spring Boot应用程序。
- FreeBuilder-自动生成构建器模式。
- Geci-发现需要生成代码的文件,自动更新并使用方便的API写入源代码。
- Immutables-注释处理器生成简单,安全和一致的值对象。
- JavaPoet-生成源文件的API。
- JHipster-用于Spring Boot和AngularJS的Yeoman源代码生成器。
- Joda-Beans-为Java添加可查询属性的小框架,增强了JavaBeans。
- JPA Buddy
-插件的IntelliJ的想法。提供用于生成JPA实体、Spring Data JPA存储库、Liquibase changelogs和SQL脚本的可视化工具。通过将模型与DB进行比较,并从DB表反向工程JPA实体,提供自动的Liquibase/Flyway脚本生成。
- Lombok-旨在减少冗长的代码生成器。
- Record-Builder-同伴构建器类,Java记录的枯萎和模板。
- Telosys-简单而轻便的代码生成器可作为Eclipse插件和CLI使用。
编译器-编译器
帮助创建解析器、解释器或编译器的框架。
计算机视觉
寻求从图像和视频中获取高级信息的库。
配置
提供外部配置的库。
- avaje config-加载yaml和属性文件,支持动态配置,插件,文件监视和配置事件侦听器。
- centraldogma-基于Git、ZooKeeper和HTTP/2的高可用版本控制服务配置库。
- config-配置库支持Java属性,JSON或其人类优化的超集HOCON。
- Configurate-支持各种配置格式和转换的配置库。
- Curator Framework-Apache ZooKeeper的高级API。
- dotenv-使用特定于环境的文件的十二因素配置库。
- Externalized Properties-轻量级但功能强大的配置库,支持从外部源和可扩展的后处理/转换机制的属性的分辨率。
- Gestalt-Gestalt为配置管理的挑战提供了全面的解决方案。它允许您从多个输入获取配置数据,智能地合并它们,并以结构化、类型安全的方式呈现它们。
- ini4j-提供用于处理windows的ini文件的API。
- KAConf-用于Java和Kotlin的基于注释的配置系统。
- microconfig-为微服务设计的配置系统,有助于将配置与代码分开。不同服务的配置可以具有公共和特定部分,并且可以动态分布。
- owner-减少属性的样板。
约束满足问题求解器
帮助实现优化和可满足性问题的库。
- Choco-使用约束编程技术的现成的约束满足问题求解器。
- JaCoP-包括FlatZinc语言的接口,使其能够执行MiniZinc模型。(AGPL-3.0)
- OptaPlanner-业务计划和资源调度优化求解器。
- Timefold-具有Spring/Quarkus支持和快速入门的灵活求解器,用于解决车辆路线问题,维护计划,员工轮班计划等。
CSV
简化读取/写入CSV数据的框架和库。
- FastCSV-性能优化,无依赖和RFC 4180兼容。
- jackson-dataformat-csv-用于读取和写入CSV的Jackson扩展。
- opencsv-简单的CSV解析器。
- Super CSV-强大的CSV解析器,支持Dozer,joda-time和Java 8。
- uniVocity-parsers-最快和最完整的功能解析器之一。还带有用于TSV和固定宽度记录的解析器。
数据结构
高效和具体的数据结构。
- Apache Avro-具有动态类型,未标记数据以及缺少手动分配的id的数据交换格式。
- Apache Orc-快速高效的列式存储格式,适用于基于Hadoop的工作负载。
- Apache Parquet-基于Google关于Dremel的论文中的汇编算法的列式存储格式。
- Apache Thrift-起源于Facebook的数据交换格式。
- Big Queue-基于内存映射文件的快速和持久队列。
- HyperMinHash-java-用于在日志空间中计算并集,交集和集合基数的概率数据结构。
- Persistent Collection-Java集合框架的持久和不可变的模拟。
- Protobuf-Google的数据交换格式。
- RoaringBitmap-快速和高效的压缩位图。
- SBE-简单的二进制编码,最快的消息格式之一。
- Tape-闪电般快速,事务性,基于文件的FIFO。
- Wire-干净,轻量级的协议缓冲区。
数据库
简化与数据库交互的一切。
- Apache Calcite-动态数据管理框架。它包含许多组成典型数据库管理系统的部分。
- Apache Drill-用于大数据探索的分布式模式即时ANSI SQL查询引擎。
- Apache Phoenix-HBase上的高性能关系数据库层,用于低延迟应用程序。
- ArangoDB-ArangoDB Java驱动程序。
- Chronicle Map-高效、内存中 (opt.持久化到磁盘) 、堆外键值存储。
- Debezium-用于更改数据捕获的低延迟数据流平台。
- druid-高性能,面向列的分布式数据存储。
- eXist-NoSQL文档数据库和应用平台。(LGPL-2.1-only)
- FlexyPool-为最常见的连接池解决方案带来指标和故障转移策略。
- Flyway-简单的数据库迁移工具。
- H2-小型sql数据库以其内存中的功能而著称。
- HikariCP-高性能JDBC连接池。
- HSQLDB-HyperSQL 100% Java数据库。
- JDBI-JDBC的方便抽象。
- Jedis-用于与Redis交互的小客户端,具有用于命令的方法。
- Jest-Elasticsearch REST API的客户端。
- jetcd-用于etcd的客户端库。
- Jinq-通过符号执行Java 8 Lambdas (在JPA或jOOQ之上) 进行类型安全数据库查询。
- jOOQ-基于SQL架构生成类型安全代码。
- Leaf-分布式ID生成服务。
- Lettuce-生菜是一个可扩展的Redis客户端,用于构建非阻塞反应式应用程序。
- Liquibase-独立于数据库的库,用于跟踪,管理和应用数据库模式更改。
- MapDB-嵌入式数据库引擎,提供在磁盘上或堆外内存中支持的并发集合。
- MariaDB4j-MariaDB的启动器,不需要安装或外部依赖。
- Modality-具有数据库逆向工程功能的轻量级ORM。
- OpenDJ-为Java平台开发的符合LDAPv3的目录服务,为身份提供高性能、高可用性和安全的存储。
- Querydsl-Typesafe统一查询。
- QueryStream-使用类似流的API构建JPA标准查询。
- QuestDB-用于时间序列的高性能sql数据库。支持InfluxDB line协议、PostgreSQL wire协议和REST。
- Realm-移动数据库直接在手机,平板电脑或可穿戴设备中运行。
- Redisson-允许在Redis服务器上使用分布式和可扩展的数据结构。
- requery-现代,轻量级但功能强大的对象映射和SQL生成器。轻松映射或创建数据库,或从任何使用Java的平台执行查询和更新。
- Speedment-利用Java 8的Stream API进行查询的数据库访问库。
- Spring Data JPA MongoDB Expressions-允许您使用MongoDB查询语言来查询您的关系数据库。
- Trino-用于大数据的分布式SQL查询引擎。
- Vibur DBCP-具有高级性能监控功能的JDBC连接池库。
- Xodus-高度并发的无事务模式和符合ACID的嵌入式数据库。
- CosId-通用,灵活,高性能的分布式ID生成器。
日期和时间
与处理日期和时间相关的库。
- iCal4j-解析和构建iCalendarRFC 5545数据模型。
- Jollyday-确定给定年份,国家/地区和最终州/地区的假期。
- ThreeTen-Extra-补充JDK 8中的日期时间类。
- Time4J-先进的日期和时间库。(LGPL-2.1-only)
依赖注入
有助于实现Inversion of Control paradigm.
- Apache DeltaSpike-CDI扩展框架。
- Avaje Inject-专注于微服务的编译时注入框架,无需反射。
- Dagger-没有反射的编译时注入框架。
- Feather-超轻量级,JSR-330-compliant依赖注入库。
- Governator-增强Google Guice的扩展和实用程序。
- Guice-轻量级和固执己见的框架,完成匕首。
- HK2-轻量级和动态依赖注入框架。
- JayWire-轻量级的依赖注入框架。(LGPL-3.0-only)
发展
在基本层面上增强开发过程。
- AspectJ-无缝的面向方面的编程扩展。
- DCEVM-JVM修改,允许在运行时无限制地重新定义加载的类。(GPL-2.0-only)
- Faux Pas-库,通过规避默认情况下不允许Java运行时中的任何函数式接口抛出检查异常的问题,简化了错误处理。
- HotswapAgent-无限的运行时类和资源重新定义。(GPL-2.0-only)
- JavaParser-解析,修改和生成Java代码。
- JavaSymbolSolver-符号求解器。
- Manifold-重新激发Java强大的功能,如类型安全元编程,结构类型和扩展方法。
- NoException-允许在函数式接口中检查异常,并将异常转换为可选返回。
- SneakyThrow-忽略没有字节码操作的检查异常。也可以在Java 8流操作中使用。
- Tail-使用尾调用优化启用无限递归。
分布式应用程序
用于编写分布式和容错应用程序的库和框架。
- Apache Geode-内存数据管理系统,提供可靠的异步事件通知和有保证的消息传递。
- Apache Storm-实时计算系统。
- Apache ZooKeeper-具有大型分布式系统的分布式配置,同步和命名注册表的协调服务。
- Atomix容错分布式协调框架。
- Axon-用于创建CQRS应用程序的框架。
- Dropwizard Circuit Breaker-Dropwizard的断路器设计模式。(GPL-2.0-only)
- Failsafe-简单的故障处理与重试和断路器。
- Hazelcast-具有免费开源版本的高度可扩展的内存datagrid。
- JGroups-用于可靠消息传递和集群创建的工具包。
- Quasar-JVM的轻量级线程和actor。
- resilience4j功能容错库。
- OpenIG-具有专用会话管理和凭证重放功能的高性能反向代理服务器。
- ScaleCube Services-基于SWIM和gossip协议的嵌入式集群成员库。
- Zuul-提供动态路由、监控、弹性、安全性等功能的网关服务。
分布式事务
分布式事务提供了一种机制,用于在存在并发访问和部分故障的情况下确保数据更新的一致性。
- Atomikos-为REST,SOA和微服务提供事务,并支持JTA和XA。
- Bitronix-JTA 1.1 API的简单但完整的实现。
- Narayana-为传统的ACID和补偿交易提供支持,还符合JTA,JTS和其他标准。(LGPL-2.1-only)
- Seata-在微服务架构下提供高性能和易于使用的分布式事务服务。
分布
处理以本机格式分发应用程序的工具。
- Artipie-二进制工件管理工具包,将它们托管在文件系统或s3上。
- Boxfuse
-使用不可变基础设施的原则将JVM应用程序部署到AWS。
- Capsule-简单而强大的包装和部署。类固醇上的胖罐子,或者支持JVM优化容器的 “Docker for Java”。
- Central Repository-最大的二进制组件存储库可作为免费服务提供给开源社区。默认由Apache Maven使用,并在所有其他构建工具中可用。
- Cloudsmith
-完全托管的包管理SaaS,支持Maven/Gradle/SBT和免费层。
- Getdown-用于将Java应用程序部署到最终用户计算机并使其保持最新状态的系统。作为Java Web Start的替代方案而开发。
- IzPack-用于跨平台部署的设置创作工具。
- JavaPackager-Maven和Gradle插件,它提供了一种简单的方法来在本机Windows,macOS或GNU/Linux可执行文件中打包Java应用程序,并为它们生成安装程序。
- jDeploy-将桌面应用程序部署为本机Mac,Windows或Linux捆绑包。
- jlink.online-通过HTTP构建优化的运行时。
- Nexus
-具有代理和缓存功能的二进制管理。
- packr-打包jar,资产和JVM,以便在Windows,Linux和macOS上进行本机分发。
- really-executable-jars-maven-plugin-用于制作自执行jar的Maven插件。
文档处理
协助处理office文档格式的库。
- Apache POI-支持OOXML (XLSX,DOCX,PPTX) 以及OLE2 (XLS,DOC或PPT)。
- documents4j-使用第三方转换器 (如MS Word) 进行文档格式转换的API。
- docx4j-创建和操作Microsoft Open XML文件。
- fastexcel-高性能库读取和写入大型Excel (XLSX) 工作表。
- zerocell-基于注释的API,用于将数据从Excel工作表读取到pojo中,重点是减少开销。
财务
与金融领域相关的图书馆。
- Cassandre-交易bot框架。
- Parity-交易场所平台。
- Philadelphia-低延迟的金融信息交换。
- Square-与Square API集成。
- Stripe-与Stripe API集成。
- ta4j-技术分析库。
形式验证
形式方法工具: 证明助手、模型检查、符号执行等。
- CATG-Concoric单元测试引擎。使用正式方法自动生成单元测试。
- Checker Framework-可插拔型系统。包括nullness类型、物理单位、不变性类型等。(GPL-2.0-only与Classpath-exception-2.0)
- Daikon-检测可能的程序不变量,并根据这些不变量生成JML规范。
- Java Path Finder (JPF)-包含模型检查器等的JVM形式验证工具。由NASA创建。
- JMLOK 2.0-通过反馈导向的随机测试生成来检测代码和JML规范之间的不一致,并建议检测到的每个不一致的可能原因。(GPL-3.0-only)
- KeY-正式的软件开发工具,旨在尽可能无缝地集成面向对象软件的设计,实现,正式规范和形式验证。使用JML规范和符号执行验证。(GPL-2.0-or-later)
- OpenJML-将JML规范转换为smt-lib格式,并将程序暗示的证明问题传递给后端求解器。(GPL-2.0-only)
函数式编程
便于函数式编程的库。
- Cyclops-Monad和流实用程序,理解,模式匹配,所有JDK集合的功能扩展,未来流,蹦床等等。
- derive4j-Java 8注释处理器和框架,用于导出代数数据类型构造函数,模式匹配和态射。(GPL-3.0-only)
- Fugue-番石榴的功能扩展。
- Functional Java-实现了许多基本和高级编程抽象,有助于面向组合的开发。
- jOOλ-Java 8的扩展,旨在通过提供大量缺失的类型和一组丰富的顺序流API添加来修复lambda中的差距。
- protonpack-流实用程序的集合。
- StreamEx-增强Java 8流。
- Vavr-提供持久数据类型和功能控制结构的功能组件库。
游戏开发
支持游戏开发的框架。
- FXGLJavaFX游戏开发框架。
- JBox2D-著名的C 2D物理引擎的端口。
- jMonkeyEngine-现代3D开发的游戏引擎。
- libGDX-全方位跨平台,高层次的框架。
- Litiengine-基于AWT的轻量级2D游戏引擎。
- LWJGL-抽象像OpenGL/CL/AL这样的库的健壮框架。
- Mini2Dx-初学者友好,掌握快速原型和构建2D游戏的框架。
- Void2D-基于Swing的内置物理的高级2D游戏引擎。
地理空间
用于处理地理空间数据和算法的库。
- Apache SIS-开发地理空间应用程序的图书馆。
- ArcGIS Maps SDK for Java
-用于向桌面应用程序添加映射和GIS功能的JavaFX库。
- Geo-Java中的GeoHash实用程序。
- GeoTools-提供地理空间数据工具的库。(LGPL-2.1-only)
- GraphHopper-道路路由引擎。用作Java库或独立的web服务。
- H2GIS-H2数据库的空间扩展。(LGPL-3.0-only)
- Jgeohash-使用GeoHash算法的库。
- Mapsforge基于OpenStreetMap数据的地图渲染。(LGPL-3.0-only)
- Spatial4j-通用空间/地理空间图书馆。
GUI
库来创建现代图形用户界面。
- JavaFX-Swing的继任者.
- Scene Builder-用于JavaFX应用程序的可视化布局工具。
- SnapKit-用于桌面和web的现代Java UI库。
- SWT-图形小部件工具包。
高性能
关于高性能计算的一切,从集合到特定的库。
- Agrona-高性能应用程序中常见的数据结构和实用程序方法。
- Disruptor-线程间消息传递库。
- Eclipse Collections-受Smalltalk启发的集合框架。
- fastutil-快速和紧凑的特定类型的集合。
- HPPC-原始集合。
- JCTools-JDK中当前缺少的并发工具。
- Koloboke-精心设计的Java集合框架的扩展,具有原始的专业化和更多。
HTTP客户端
帮助创建HTTP请求和/或绑定响应的库。
- Apache HttpComponents-专注于HTTP和相关协议的低级Java组件的工具集。
- Async Http Client-异步HTTP和WebSocket客户端库。
- Avaje Http Client-JDK 11的HttpClient上的包装器,在其他增强功能中添加了类似Feign的界面。
- Feign-受改造,JAXRS-2.0和WebSocket启发的HTTP客户端绑定器。
- Google HTTP Client-支持r java.net的可插拔HTTP传输抽象。HttpURLConnection,Apache HTTP客户端,Android,Google App Engine,XML,Gson,Jackson和Protobuf。
- methanol-HTTP客户端扩展库。
- Retrofit-Typesafe REST客户端。
- Ribbon-在云中经过战斗测试的客户端IPC库。
- Riptide-Spring的RestTemplate的客户端响应路由。
- unirest-java-简化,轻量级的HTTP客户端库。
超媒体类型
处理超媒体类型序列化的库。
IDE
集成开发环境,试图简化开发的几个方面。
- Eclipse-建立了支持大量插件和语言的开源项目。
- IntelliJ IDEA
-支持许多JVM语言,并为Android开发提供了很好的选择。商业版针对企业部门。
- jGRASP-创建以提供与调试器一起工作的软件可视化,例如控制结构图,UML类图和对象查看器。
- NetBeans-提供几个Java SE和EE功能的集成,从数据库访问到html5。
- SnapCode-用于在浏览器中运行的Java的现代IDE,专注于教育。
- Visual Studio Code-通过使用内部市场的扩展,为轻量级项目提供Java支持,并提供简单的现代工作流。
图像
帮助创建、评估或处理图形图像的库。
- Imgscalr-在纯Java 2D中实现的简单,高效和硬件加速的图像缩放库。
- Tess4J-Tesseract OCR API的JNA包装器。
- Thumbnailator-高质量的缩略图生成库。
- TwelveMonkeys-扩展支持的图像文件格式数量的插件集合。
- ZXing-多格式1D/2D条码图像处理库。
- image-comparison-比较具有相同大小的2个图像的库,并通过绘制矩形在视觉上显示差异。可以从比较中排除图像的一些部分。
内省
有助于使Java自省和反射API更容易和更快地使用的库。
- ClassGraphClassGraph (以前称为FastClasspathScanner) 是用于Java,Scala,Kotlin和其他JVM语言的超快,超轻,并行化的类路径扫描仪和模块扫描仪。
- jOORjOOR代表jOOR面向对象的反射。它是java.lang.reflect包的简单包装。
- Mirror-Mirror的创建是为了解决一个简单的问题,通常将其命名为ReflectionUtil,该问题几乎适用于所有依靠反射来执行高级任务的项目。
- Objenesis-允许没有默认构造函数的动态实例化,例如具有所需参数,副作用或抛出异常的构造函数。
- ReflectASM-ReflectASM是一个非常小的Java库,通过使用代码生成提供高性能反射。
- Reflections-反射扫描您的类路径,索引元数据,允许您在运行时查询它,并可以保存和收集项目中许多模块的信息。
作业调度
用于调度后台作业的库。
- JobRunr-作业调度库,它利用lambdas进行fire-and-forget,延迟和重复的作业。使用乐观锁定保证由单个调度程序实例执行。具有持久性,最小依赖性和可嵌入的功能。
- Quartz-功能丰富的开源作业调度库,可以集成在几乎任何Java应用程序中。
- Sundial-轻量级框架,用于简单地定义作业,定义触发器并启动调度程序。
- Wisp-具有最小的占用空间和简单的API的简单库。
- db-scheduler-持久和群集友好的调度程序。
- easy-batch-使用简单的处理管道设置批处理作业。记录从数据源按顺序读取,在管道中处理并批量写入数据接收器。
- shedlock-确保您的计划任务在同一时间最多执行一次。如果任务正在一个节点上执行,则它获取一个锁,该锁阻止从另一个节点或线程执行相同的任务。
JSON
用于将JSON与Java对象进行序列化和反序列化的库。
- Avaje Jsonb-通过使用类似Jackson的注释生成源代码进行无反射的Json绑定。
- DSL-JSON-具有高级编译时数据绑定的JSON库。
- Genson-功能强大且易于使用的Java到JSON转换库。
- Gson-将对象序列化为JSON,反之亦然。良好的性能与飞行使用。
- HikariJSON-高性能JSON解析器,比杰克逊快2倍。
- jackson-modules-java8-用于Java 8数据类型和功能的Jackson模块集。
- Jackson-datatype-money-开源Jackson模块,支持JavaMoney数据类型的JSON序列化和反序列化。
- Jackson-与GSON类似,但如果您需要更频繁地实例化库,则可以提供性能提升。
- JSON-io-将Java转换为JSON。将JSON转换为Java。漂亮的打印JSON。Java JSON序列化程序。
- jsoniter-快速和灵活的库与迭代器和惰性解析API。
- LoganSquare-基于Jackson的流API的JSON解析和序列化库。胜过GSON & Jackson的图书馆。
- Moshi-现代JSON库,不太固执己见,并使用内置类型,如列表和地图。
- Yasson-类和JSON文档之间的绑定层,类似于JAXB。
- fastjson-非常快速的处理器,没有额外的依赖关系和完整的数据绑定。
- Jolt-JSON到JSON转换工具。
- JsonPath-使用类似XPATH的语法从JSON中提取数据。
- JsonSurfer-流JsonPath处理器专用于处理大而复杂的JSON数据。
JVM和JDK
JVM/JDK的当前实现。
- Adopt Open JDK-社区驱动的OpenJDK构建,包括HotSpot和openj9。
- Avian-JVM与JIT,AOT模式和iOS端口。
- Corretto-亚马逊的OpenJDK的无成本,多平台,生产就绪分发。(与Classpath-exception-2.0 GPL-2.0-only)
- Dragonwell8-OpenJDK的下游版本,针对在线电子商务,金融,物流应用进行了优化。
- Graal-多语言可嵌入JVM。(与Classpath-exception-2.0 GPL-2.0-only)
- Liberica JDK-从OpenJDK构建,经过全面测试并通过了JCK。(与Classpath-exception-2.0 GPL-2.0-only)
- OpenJ9-高性能,企业级,灵活许可,开放管理的跨平台JVM,扩展和增强了Eclipse OMR和OpenJDK项目的运行时技术组件。
- Open JDK-打开JDK社区主页。(与Classpath-exception-2.0 GPL-2.0-only)
- ParparVM-VM与非阻塞,并发GC的iOS。(与Classpath-exception-2.0 GPL-2.0-only)
- RedHat Open JDK-RedHat的OpenJDK发行版。(与Classpath-exception-2.0 GPL-2.0-only)
- SAP Machine-SAP的无成本,经过严格测试和JCK验证的OpenJDK友好叉。(与Classpath-exception-2.0 GPL-2.0-only)
- Zulu-适用于Windows、Linux和macOS的OpenJDK版本。(与Classpath-exception-2.0 GPL-2.0-only)
- Microsoft JDK-微软构建的OpenJDK,免费,开源,现煮!
日志记录
记录应用程序行为的库。
- Apache Log4j 2-完整的重写与强大的插件和配置架构。
- Echopraxia-围绕结构化日志记录,丰富的上下文和条件日志记录设计的API。有Logback和Log4J2实现,但echoprawia的API是完全无依赖关系的,这意味着它可以用任何日志API实现。
- Graylog-适合扩展角色和权限管理的开源聚合器。(GPL-3.0-only)
- Kibana-分析和可视化日志文件。某些功能需要付款。
- Logback-健壮的日志库,通过Groovy提供有趣的配置选项。
- Logbook-用于HTTP请求和响应日志记录的可扩展的开源库。
- Logstash-用于管理日志文件的工具。
- p6spy-为所有JDBC事务启用日志记录,而无需更改代码。
- SLF4J-抽象层/简单的日志记录外观。
- tinylog-具有静态记录器类的轻量级日志记录框架。
- OpenTracing Toolbox-建立在OpenTracing之上的库集合,并为现有仪器提供扩展和插件。
机器学习
提供用于从数据中学习的特定统计算法的工具。
- Apache Flink-快速,可靠,大规模数据处理引擎。
- Apache Mahout-专注于协同过滤,聚类和分类的可扩展算法。
- DatumBox-为自然语言处理提供几种算法和预训练模型。
- Deeplearning4j-分布式和多线程深度学习库。
- DJL-用于深度学习的高级和引擎无关的框架。
- H2O
-用于大数据统计的分析引擎。
- Intelligent java-以编程方式与远程深度学习和语言模型无缝集成。
- JSAT-用于预处理、分类、回归和聚类的算法,支持多线程执行。(GPL-3.0-only)
- m2cgen-CLI工具将模型转换为本机代码。
- Neureka-一个轻量级的,平台独立的,OpenCL加速的nd阵列/张量库。
- oj! Algorithms-数据科学,机器学习和科学计算所需的高性能数学,线性代数和优化。
- Oryx 2-用于构建实时,大规模机器学习应用程序的框架。包括用于协同过滤、分类、回归和聚类的端到端应用程序。
- Siddhi-云原生流和复杂事件处理引擎。
- Smile统计机器智能和学习引擎提供了一套机器学习算法和一个可视化库。
- Tribuo-提供用于分类,回归,聚类,模型开发的工具以及与其他库 (如scikit-learn,pytorch和TensorFlow) 的接口。
- Weka-从预处理到可视化的数据挖掘任务的算法集合。(GPL-3.0-only)
消息传递
帮助在客户端之间发送消息以确保协议独立性的工具。
- Aeron-高效,可靠,单播和多播消息传输。
- Apache ActiveMQ-实现JMS并将同步通信转换为异步通信的Message broker。
- Apache Camel-通过企业集成模式将不同的传输api粘合在一起。
- Apache Kafka-高吞吐量分布式消息传递系统。
- Apache Pulsar-分布式pub/sub消息系统。
- Apache RocketMQ-快速,可靠和可扩展的分布式消息传递平台。
- Apache Qpid-Apache Qpid使消息工具讲AMQP并支持多种语言和平台。
- AutoMQ-AutoMQ是一款云原生的无服务器Kafka,易于扩展,无需管理且具有成本效益。
- Deezpatch-用于解耦消息 (请求和事件) 和消息处理程序的简单,轻量级和高性能的调度库。
- EventBus-简单的发布/订阅事件总线。
- Hermes-建立在Kafka之上的快速可靠的消息代理。
- JeroMQ-ZeroMQ的实现。
- Nakadi-在Kafka之上提供一个RESTful API。
- RabbitMQ Java client-RabbitMQ客户端。
- Smack跨平台XMPP客户端库。
- NATS client-NATS的客户.
微服务
用于创建和管理微服务的工具。
- ActiveRPC-轻量级和快速的库,用于复杂的高负载分布式应用程序和类似Memcached的解决方案。
- Apollo-用于编写可组合微服务的库。
- Armeria-基于Java 8,Netty,HTTP/2,Thrift和gRPC构建的异步RPC/REST客户端/服务器库。
- consul-api-Consul API的客户端: 分布式、高可用性和数据中心感知的注册/发现服务。
- Eureka-基于REST的服务注册表,用于弹性负载平衡和故障转移。
- Helidon-编写微服务的两种风格方法: 功能反应和作为微配置文件的实现。
- JDA-包装Discord REST API及其WebSocket事件。
- KeenType-新排版系统的基于Java的实现的现代化版本,该系统主要基于Donald E. Knuth的原始TeX。
- kubernetes-client-客户端通过流畅的DSL提供对完整Kubernetes和OpenShift REST api的访问。
- Micronaut-现代全栈框架,专注于模块化,最小的内存占用和启动时间。
- Nacos-用于构建云原生应用的动态服务发现、配置和服务管理平台。
- OpenAI-Java-用于使用OpenAI GPT-3 API的Java库。
- Quarkus-为HotSpot和Graal VM量身定制的Kubernetes堆栈。
- Sentinel-流量控制组件,实现微服务的可靠性、弹性和监控。
杂项
其他一切。
- AWS SDK for Java 2.0-围绕aws的API进行包装。
- CQEngine-Java集合上的超快速,类似SQL的查询。
- Design Patterns-最常见的设计模式的实现和解释。
- FF4J-Java的功能标志。
- FizzBuzz Enterprise Edition-认真的商人为严肃的商业目的而制造的FizzBuzz的废话。(无明确许可)
- IP2Location.io Java SDK-IP2Location.io地理位置API和IP2WHOIS域WHOIS API的包装器。
- ISBN core-一个小型库,其中包含ISBN-10和ISBN-13的表示对象以及用于解析,验证和格式化的工具。
- J2ObjC-用于将Android库移植到iOS的Java到objective-c转换器。
- JBake-静态网站生成器。
- JBot-构建聊天机器人的框架。(GPL-3.0-only)
- JCuda-JCuda为CUDA和与CUDA相关的库提供Java绑定。
- Jimfs-内存文件系统。
- JObfuscator
-源代码混淆器。
- Joda-Money-JDK未提供的基本货币和货币类和算法。
- jOOX-org.w3c.dom包的简单包装器,允许使用受jQuery启发的API进行流畅的XML文档创建和操作。
- JPad-片段赛跑者.
- jsweet-源转换器到TypeScript/JavaScript。
- Maven Wrapper-Maven的Gradle包装器的模拟,允许在不安装maven的情况下构建项目。
- Membrane Service Proxy-开源,反向代理框架。
- MinimalFTP-轻量级,小型和可定制的FTP服务器。
- LittleProxy-在Netty的基于事件的网络库之上的高性能HTTP代理。
- Modern Java - A Guide to Java 8-流行的Java 8指南。
- Modernizer-检测遗留Java api的使用。
- OctoLinker-浏览器扩展,允许更有效地浏览GitHub上的代码。
- OpenRefine-用于处理凌乱数据的工具: 清理,转换,使用web服务扩展它并将其链接到数据库。
- PipelinR-小型实用程序库,用于使用处理程序和带有管道的命令。
- Polyglot for Maven-Maven 3.3.1的扩展,允许用XML以外的方言编写POM模型。
- RR4J-RR4J是一个记录java字节码执行的工具,后来允许开发人员在本地重放。
- Simple Java Mail-邮寄一个干净和流畅的API。
- Smooks-基于片段的消息处理框架。(Apache-2.0或LGPL-3.0-or-later)
- Svix-用于Svix API的库,用于发送webhook并验证签名。
- Togglz-功能切换模式的实现。
- TypeTools-用于解析泛型类型的工具。
- XMLBeam-通过在代码中使用注释或XPath来处理XML。
- yGuard-通过重命名和收缩混淆。
移动开发
用于创建或管理移动应用程序的工具。
- Codename One-用于编写本地移动应用程序的跨平台解决方案。(与Classpath-exception-2.0 GPL-2.0-only)
- MobileUI-跨平台框架,用于在Java和Kotlin中开发具有本机UI的移动应用程序。
- Multi-OS Engine-开源,跨平台引擎,用于开发本地移动 (iOS,Android等) 应用程序。
监测
通过提供遥测来观察/监视生产中的应用程序的工具。
- Automon-将AOP的功能与监视和/或日志记录工具相结合。
- Datadog
-现代监控和分析。
- Dropwizard Metrics-通过JMX或HTTP公开指标,并将其发送到数据库。
- Failsafe Actuator-Spring-Boot环境中的故障安全断路器的开箱即用监控。
- Glowroot-开源Java APM。
- HertzBeat-具有自定义监视器和无代理功能的实时监视系统。
- hippo4j-动态和可观察的线程池框架。
- inspectIT-通过钩子捕获详细的运行时信息,可以在飞行中更改。它支持通过OpenTracing API跟踪多个系统,并可以将数据与最终用户监控相关联。
- Instrumental
-实时Java应用程序性能监控。具有免费开发帐户的商业服务。
- Jaeger client-Jaeger客户.
- JavaMelody-性能监控和分析。
- jmxtrans-连接到多个jvm并通过JMX查询它们的属性。它的查询语言基于JSON,允许非Java程序员访问JVM属性。支持不同的输出写入,包括Graphite、Ganglia和StatsD。
- Jolokia-JMX over REST.
- Micrometer-供应商中立的度量/可观察性外观,用于最受欢迎的度量/可观察性库。
- Micrometer Tracing-供应商中立的分布式跟踪facade,用于最流行的跟踪器库。
- nudge4j-通过字节码注入从Java 8浏览器远程开发人员控制台。
- Pinpoint-开源APM工具。
- Prometheus-提供多维数据模型,DSL,自治服务器节点等等。
- Sentry
-与集成Sentry,一个应用程序错误跟踪和性能分析平台。
- SPM
-性能监视器,为JVM应用程序分发事务跟踪。
- Stagemonitor-JVM应用程序的开源性能监控和事务跟踪。
- Sysmon-用于Java vm的轻量级平台监控工具。
- zipkin-分布式跟踪系统,收集解决微服务架构中延迟问题所需的定时数据。
原生
用于处理特定于平台的本机库。
- Aparapi-将字节码转换为允许在gpu上执行的OpenCL。
- JavaCPP-提供高效和方便地访问本机C。
- JNA-在不编写JNI的情况下使用本机库。还提供了通用系统库的接口。
- JNR-在不编写JNI的情况下使用本机库。还提供了通用系统库的接口。与JNA相同的目标,但速度更快,并作为即将到来的Project Panama。
自然语言处理
专门处理文本的库。
- CogCompNLP-为纯文本输入提供通用注释器。(研究和学术使用许可证)
- CoreNLP-为标记、命名实体识别和情感分析等任务提供了一组基本工具。(GPL-3.0-or-later)
- DKPro-收集可重复使用的NLP工具,用于语言预处理,机器学习,词汇资源等。
- LingPipe-用于从POS标记到情感分析的任务的工具包。
联网
用于构建网络服务器的库。
- Commons-networking-服务器发送事件 (SSE) 的客户端。
- Comsat-将标准的Java web相关api与Quasar纤维和actor集成在一起。
- Dubbo-高性能RPC框架。
- Grizzly-NIO框架。在Glassfish中用作网络层。
- gRPC基于protobuf和HTTP/2的RPC框架。
- KryoNet-使用NIO和Kryo为高效的TCP和UDP客户端/服务器网络通信提供干净简单的API。
- MINA-抽象,事件驱动的异步I/O API,用于通过Java NIO通过tcp/IP和UDP/IP进行网络操作。
- Netty-构建高性能网络应用程序的框架。
- Drift-易于使用,基于注释的库,用于创建节俭客户端和可序列化类型。
- ServiceTalk-基于Netty的框架,具有针对特定协议定制的api,并支持多种编程范例。
- sshj-以编程方式使用SSH,SCP或SFTP。
- TLS Channel-在SSLEngine上实现ByteChannel接口,从而实现易于使用 (类似套接字) 的TLS。
- Undertow-基于NIO提供阻塞和非阻塞api的Web服务器。在WildFly中用作网络层。(LGPL-2.1-only)
- urnlib-表示、解析和编码urn,如在RFC 2141中。(GPL-3.0-only)
- Fluency-到Fluentd和Fluent Bit的高吞吐量数据摄取记录器。
ORM
处理对象持久性的api。
- Apache Cayenne-为数据访问提供干净的静态API。还包括一个GUI建模器,用于处理数据库映射以及数据库逆向工程和生成。
- Doma-数据库访问框架,在编译时使用注释处理以及称为双向SQL的本机SQL模板来验证和生成源代码。
- Ebean-提供简单和快速的数据访问。
- EclipseLink-支持许多持久性标准: JPA,JAXB,JCA和SDO。
- Hibernate-强大和广泛使用,与一个活跃的社区。(LGPL-2.1-only)
- MyBatis-将对象与存储过程或SQL语句耦合。
- ObjectiveSql-ActiveRecord ORM用于快速开发和convention over configuration。
- Permazen-语言-自然持久层。
- SimpleFlatMapper-简单的数据库和CSV映射器。
PaaS
Java平台即服务。
- AWS Elastic Beanstalk
-基于AWS,支持Tomcat和Jetty。
- AWS Lambda
-无服务器计算。
- Google Cloud
-Google的云基础设施。
- Heroku
-抽象计算环境。
- Microsoft Azure
-微软的云基础设施。
- OpenShift
-另外提供内部部署解决方案。
帮助处理pdf文件的工具。
- Apache FOP-从xsl-fo创建pdf。
- Apache PDFBox-用于创建和操作pdf的工具箱。
- Dynamic Jasper-JasperReports的抽象层。(LGPL-3.0-only)
- DynamicReports-简化JasperReports。(LGPL-3.0-only)
- Eclipse BIRT-使用基于Eclipse的可视化编辑器创建PDF和其他格式 (DOCX,XLSX,HTML等) 的报告引擎。
- flyingsaucer-XML/XHTML和CSS 2.1渲染器。(LGPL-2.1-or-later)
- iText
-以编程方式创建pdf文件。
- JasperReports-复杂的报告引擎。(LGPL-3.0-only)
- Open HTML to PDF-正确支持基于flyingsaucer和Apache PDFBox的现代PDF标准。
- OpenPDF-开源iText fork。(LGPL-3.0-only和MPL-2.0)
- Tabula-从pdf文件中提取表格。
性能分析
用于性能分析、分析和基准测试的工具。
- fastThread
-使用免费的基于云的上传界面分析和可视化线程转储。
- GCeasy
-分析和可视化GC日志的工具。它提供了一个免费的基于云的上传界面。
- honest-profiler-低开销,无偏差采样分析器。
- jHiccup-日志和记录平台JVM失速。
- JITWatch-分析HotSpot JVM所做的JIT编译器优化。
- JMH-用于构建,运行和分析以Java和其他语言编写的针对JVM的纳米/微/毫/宏基准的线束。(仅与Classpath-exception-2.0一起GPL-2.0)
- LatencyUtils-用于延迟测量和报告的实用程序。
站台
框架是包含多个类别的多个库的套件。
Apache Commons
- BCEL-字节码工程库-分析,创建和操作Java类文件。
- BeanUtils-围绕Java反射和内省api的易于使用的包装器。
- BeanUtils2-重新设计Commons BeanUtils。
- BSF-Bean脚本框架-脚本语言的接口,包括JSR-223。
- Chain-责任链模式的实施。
- ClassScan-在不加载的情况下查找类接口,方法,字段和注释。
- CLI-命令行参数解析器。
- CLI2-重新设计Commons CLI。
- Codec-通用编码/解码算法,例如语音,base64或URL。
- Collections-扩展或增强Java集合框架。
- Compress-定义用于处理tar、zip和bzip2文件的API。
- Configuration-读取各种格式的配置/首选项文件。
- Convert-Commons-Convert旨在提供一个单独的库,专门用于将一种类型的对象转换为另一种类型的任务。
- CSV-用于读取和写入逗号分隔值文件的组件。
- Daemon-类似unix守护程序的java代码的替代调用机制。
- DBCP-数据库连接池服务。
- DbUtils-JDBC帮助程序库。
- Digester-XML到Java对象映射实用程序。
- Email-从Java发送电子邮件的库。
- Exec-用于处理Java中的外部进程执行和环境管理的API。
- FileUpload-您的servlet和web应用程序的文件上传功能。
- Finder-受UNIX find命令启发的Java库。
- Flatfile-用于使用平面数据结构的Java库。
- Functor-可以作为对象或表示单个通用函数的对象进行操作的函数。
- Graph-通用图形api和算法。
- I18n-添加本地化消息包的功能,该功能由一个或多个属于一起的本地化文本组成。
- Id-Id是用于生成标识符的组件。
- Imaging-图像库。
- IO-I/O实用程序的集合。
- Javaflow-用于捕获应用程序状态的延续实现。
- JCIJava编译器接口。
- JCSJava缓存系统。
- Jelly-基于XML的脚本和处理引擎。
- Jexl-表达式语言,它扩展了JSTL的表达式语言。
- JNet-JNet允许通过e java.net API使用动态注册url流处理程序。
- JXPath-使用XPath语法操作Java bean的实用程序。
- Lang-为java.lang中的类提供额外的功能。
- Logging-围绕各种日志API实现的包装。
- Math-轻量级,独立的数学和统计组件。
- Monitoring-监控旨在为Java应用程序提供一个简单但可扩展的监控解决方案。
- Nabla-Nabla提供自动微分类,可以生成Java语言中实现的任何函数的派生。
- Net-网络实用程序和协议实现的集合。
- OGNL-对象图导航语言。
- OpenPGP-使用OpenPGP对数据进行签名和验证的接口。
- Performance-用于微基准客户端的小型框架,实现了Commons DBCP和Pool。
- Pipeline-提供一组围绕工作队列设计的管道实用程序,这些工作队列并行运行以按顺序处理数据对象。
- Pool-通用对象池组件。
- Proxy-用于创建动态代理的库。
- RDF-可以由JVM上的系统实现的RDF 1.1的常见实现。
- RNG-Commons Rng提供伪随机数生成器的实现。
- SCXML-旨在创建和维护Java SCXML引擎的状态图XML规范的实现。
- Validator-在xml文件中定义验证器和验证规则的框架。
- VFS-虚拟文件系统组件,用于将文件,FTP,SMB,ZIP等视为单个逻辑文件系统。
- Weaver-提供一种简单的方法来增强 (编织) 编译的字节码。
其他
- CUBA Platform-用于开发具有丰富web界面的企业应用程序的高级框架,基于Spring,EclipseLink和Vaadin。
- Light-4J-内置的快速,轻量级和高效的微服务框架security。
- Orienteer-用于快速配置/开发CRM,ERP,LMS和其他应用程序的开源业务应用程序平台。
- Spring-提供了许多用于依赖注入,面向方面编程,安全性等的软件包。
流程
帮助管理操作系统进程的库。
- ch.vorburger.exec-围绕Apache Commons Exec的便捷API。
- zt-exec-为Apache Commons Exec和ProcessBuilder提供统一的API。
- zt-process-killer-停止从Java启动的进程或通过PID的系统进程。
反应式库
用于开发反应式应用程序的库。
- Akka-用于构建并发,分布式,容错和事件驱动应用程序的工具包和运行时。
- Reactive Streams-提供具有非阻塞背压的异步流处理的标准。
- Reactor-用于构建响应式快速数据应用程序的库。
- RxJava-允许使用可观察序列组成异步和基于事件的程序。
- vert.x-多语言事件驱动的应用程序框架。
REST框架
专门用于创建RESTful服务的框架。
- Dropwizard-自以为是的框架,用于使用Jetty,Jackson,Jersey和Metrics设置现代web应用程序。
- Elide-基于JPA数据模型的JSON或GraphQL api的自以为是的框架。
- Jersey-JAX-RS参考实现。
- Microserver-用于Spring和Spring Boot的方便,可扩展的微服务插件系统。它拥有30多个插件,并且还在不断增长,它支持微单体和纯微服务风格。
- Rapidoid-简单,安全和非常快速的框架,包括嵌入式HTTP服务器,GUI组件和依赖注入。
- rest.li-用于使用类型安全绑定和异步,非阻塞IO构建强大,可扩展的RESTful架构的框架,具有端到端开发人员工作流程,可促进清洁实践,统一接口设计和一致的数据建模。
- RESTEasy-JAX-RS规范的完全认证和可移植实现。
- RestExpress-JBoss Netty HTTP堆栈上的薄包装器,可提供缩放和性能。
- Restlet Framework-具有强大路由和过滤功能以及统一的客户端和服务器API的开创性框架。
- Spark-Sinatra启发框架。
- Crnk-实现JSON API规范,以构建面向资源的REST端点,包括排序,过滤,分页,链接,对象图,类型安全,批量更新,集成等。
- springdoc-openapi-使用Spring Boot项目自动生成API文档。
- Swagger-REST api的标准语言无关接口。
科学
用于科学计算、分析和可视化的图书馆。
- BioJava-通过提供生物信息学中常用的算法,文件格式解析器,测序和3D可视化,促进处理生物数据。
- Chart-FX-科学图表库,重点是针对大型数据集以25 hz的更新速率进行性能优化的实时数据可视化。
- DataMelt-科学计算,数据分析和数据可视化的环境。(GPL-3.0-or-later)
- Erdos-用于理论算法的模块化,轻便和简单的图形框架。
- GraphStream-用于建模和分析动态图的库。
- JFreeChart-用于Swing,JavaFX和服务器端应用程序的2D图表库。(LGPL-2.1-only)
- JGraphT-提供数学图论对象和算法的图库。
- JGraphX-用于可视化 (主要是摆动) 和与节点边图交互的库。
- LogicNG-用于创建,操作和解决布尔和伪布尔公式的库。
- Mines Java Toolkit-用于地球物理科学计算,可视化和数字信号分析的库。
- Morpheus-提供了一种通用的二维内存高效表格数据结构,称为DataFrame,以实现高效的内存分析,用于JVM上的科学计算。
- Orekit-一个低级别的太空飞行动力学库,提供基本元素 (轨道,日期,姿态,帧...) 和各种算法 (转换,传播,指向...) 来处理它们。
- Orson-Charts-生成各种3D图表,可以使用Swing和JavaFX显示或导出为PDF,SVG,PNG和JPEG。(GPL-3.0-only)
- Tablesaw-包括一个数据框、一个嵌入式列存储以及数百种用于转换、汇总或过滤数据的方法。
- XChart-用于绘制数据的轻量级库。有许多可自定义的图表类型。
搜索
索引文档以进行搜索和分析的引擎。
- Apache Lucene-高性能,全功能,跨平台,文本搜索引擎库。
- Apache Solr-针对高流量优化的企业搜索引擎。
- Elasticsearch-分布式,支持多租户的全文搜索引擎,具有RESTful web界面和无架构的JSON文档。
- Indexer4j-简单而轻便的全文索引和搜索库。
安全
处理安全性、身份验证、授权或会话管理的库。
- Apache Shiro-执行身份验证,授权,加密和会话管理。
- Bouncy Castle-通用加密库和JCA提供程序提供广泛的功能,从基本的助手到PGP/SMIME操作。
- DependencyCheck-检测项目依赖项中包含的公开披露的漏洞。
- Cryptomator-云中文件的多平台,透明,客户端加密。(GPL-3.0-only)
- Hdiv-排除OWASP Top 10中包含的应用程序安全风险的运行时应用程序,包括SQL注入,跨站点脚本,跨站点请求伪造,数据篡改和蛮力攻击。
- jjwt-适用于Java和Android的JSON web令牌。
- jwt-java-轻松创建和解析JSON Web令牌,并使用fluent API创建自定义JWT验证器。
- Jwks RSA-JSON Web密钥集解析器。
- Kalium-网络和密码学 (NaCl) 库的绑定。
- Keycloak-用于浏览器应用程序和RESTful web服务的集成SSO和IDM。
- Keywhiz-用于分发和管理秘密的系统。
- Nbvcxz-高级密码强度估计。
- OACC-提供基于权限的授权服务。
- OpenAM-访问管理解决方案,包括身份验证,SSO,授权,联合,权利和web服务安全性。
- OTP-Java-根据RFC 4226 (HOTP) 和RFC 6238 (TOTP) 的一次性密码生成器库。
- pac4j-安全引擎。
- Passay-通过根据可配置的规则集验证候选密码来实施密码策略。
- Password4j-用户友好的加密库,支持Argon2,Bcrypt,Scrypt,PBKDF2和各种其他加密哈希函数。
- SecurityBuilder-用于JCA和JSSE类,尤其是X.509证书的Fluent Builder API。
- SSLContext-Kickstart-高级SSL上下文构建器,用于使用SSL/TLS配置HTTP客户端。
- Themis-多平台高级加密库为保护敏感数据提供易于使用的加密: 具有前向保密性的安全消息传递,安全数据存储 (AES256GCM); 适合构建端到端加密应用程序。
- Tink-为常见的加密任务提供简单且防误用的API。
- Topaz-对支持RBAC、ABAC和ReBAC的应用程序进行细粒度授权。
序列化
高效处理序列化的库。
- FlatBuffers-内存高效的序列化库,可以访问序列化数据,而无需解包和解析。
- FST-JDK兼容,高性能对象图序列化。
- Fury-由JIT和零拷贝提供支持的快速对象图序列化框架。
- Kryo快速高效的对象图序列化框架。
- MessagePack-高效的二进制序列化格式。
- PHP Serializer-以PHP序列化格式序列化对象。
服务器
专门用于部署应用程序的服务器。
- Apache Tomcat-用于Servlet和JSP的健壮、全面的服务器。
- Apache TomEE-Tomcat加上Java EE。
- Jetty-提供Web服务器和javax.servlet容器,以及对HTTP/2,WebSocket,OSGi,JMX,JNDI,JAAS和许多其他集成的支持。
- nanohttpd-微小,易于嵌入的HTTP服务器。
- WildFly-以前称为JBoss,由Red Hat开发,具有广泛的Java EE支持。(LGPL-2.1-only)
模板引擎
在模板中替换表达式的工具。
- Freemarker-基于模板和更改数据生成文本输出 (HTML网页,电子邮件,配置文件,源代码等) 的库。
- Handlebars.java-无逻辑和语义胡子模板。
- Jade4J-实施Pug (以前称为Jade)。
- Jamal-嵌入到Maven/JavaDoc中的可扩展模板引擎,支持多个扩展 (Groovy,Ruby,JavaScript,JShell,PlantUml),并支持代码段处理。
- jstachio-Typesafe Mustache模板引擎。
- jte-编译为类,并使用简单的语法,几个功能,使开发更容易,并提供快速执行和占地面积小。
- Jtwig-模块化,可配置和完全测试的模板引擎。
- Pebble-受Twig的启发,并以其继承功能和易于阅读的语法将自己分开。它配备了内置的自动逃逸安全性,并包括对国际化的集成支持。
- Rocker-优化,内存高效和快速的模板引擎产生静态类型,普通对象。
- StringTemplate-用于生成源代码,网页,电子邮件或任何其他格式化文本输出的模板引擎。
- Thymeleaf-旨在替代JSP并适用于XML文件。
测试
从模型到视图进行测试的工具。
异步
简化测试异步服务的工具。
- Awaitility-用于同步异步操作的DSL。
- ConcurrentUnit-用于测试多线程和异步应用程序的工具包。
- GreenMail-用于集成测试的内存电子邮件服务器。支持SMTP,POP3和IMAP,包括SSL。(GPL-2.0-only)
- Hoverfly Java-Hoverfly的本机绑定,它允许您模拟HTTP服务的代理。
- Karate-DSL结合了API测试自动化,模拟和性能测试,使测试REST/HTTP服务变得容易。
- REST Assured-用于轻松测试REST/HTTP服务的DSL。
- WebTau-使用一致的匹配程序和概念集,跨REST API,图形QL,浏览器,数据库,CLI和业务逻辑进行测试。
BDD
TDD产生的软件开发过程的测试,受到DDD和OOAD的严重影响。
- Cucumber-提供了一种以客户可以理解的简单语言描述功能的方法。
- Cukes-REST-使用黄瓜进行REST服务测试的小黄瓜步骤集合。
- J8Spec-遵循类似茉莉花的语法。
- JBehave-描述故事的广泛可配置的框架。
- JGiven-提供了一个流畅的API,允许更简单的组合。
- Lamdba Behave-旨在提供一个流利的API来编写测试长而描述性的句子,读起来像普通英语。
- Serenity BDD-自动验收测试和报告库,与黄瓜,j行为和JUnit的工作,使它更容易编写高质量的可执行规范。
固定装置
与创建和处理随机数据有关的一切。
- Beanmother-从YAML fixtures设置bean。
- Datafaker-从Java Faker分叉的现代假数据生成器。
- Fixture Factory-从模板生成假对象。
- jFairy-假数据生成器。
- Instancio-通过生成完全填充的,可重现的对象来自动执行单元测试中的数据设置。包括JUnit 5扩展。
- Randomized Testing-JUnit测试运行器和插件,用于运行具有伪随机性的JUnit测试。
- Java Faker-Ruby的假数据生成器的端口。
- Mockneat-另一个假数据生成器。
框架
为特定用例提供运行测试的环境。
- ArchUnit-用于指定和断言架构规则的测试库。
- Apache JMeter-功能测试和性能测量。
- Arquillian-Java EE容器的集成和功能测试平台。
- Citrus-专注于客户端和服务器端消息传递的集成测试框架。
- Gatling-负载测试工具专为易用性,可维护性和高性能而设计。
- JUnit-通用测试框架。
- jqwik-基于JUnit 5构建的基于属性的测试引擎。
- Pact JVM-消费者驱动的合同测试。
- PIT-快速突变测试框架,用于评估现有JUnit或TestNG测试套件的故障检测能力。
匹配程序
提供自定义匹配程序的库。
- AssertJ-流利的断言,提高可读性。
- Hamcrest-可以组合以创建灵活的意图表达的匹配器。
- JSONAssert-简化测试JSON字符串。
- JsonUnit-简化测试中JSON比较的库。
- Truth-Google流利的断言和命题框架。
- XMLUnit-简化了XML输出的测试。
杂项
其他与测试有关的东西。
- ConsoleCaptor-捕获用于单元测试目的的控制台输出。
- junit-dataprovider-用于JUnit的类似TestNG的数据提供程序/运行程序。
- LogCaptor-捕获用于单元测试目的的日志条目。
- log-capture-捕获日志条目并为单元和集成测试提供断言。
- Mutability Detector-报告给定类的实例是否不可变。
- pojo-tester-自动对基本POJO方法执行测试。(LGPL-3.0-only)
- raml-tester-测试请求/响应是否与给定的RAML定义匹配。
- Selfie-快照测试 (内联和磁盘上)。
- TestContainers-提供常见数据库、Selenium web浏览器或其他任何可以在Docker容器中运行的一次性实例。
嘲笑
模拟协作者以帮助测试单个隔离单元的工具。
- JMockit-集成测试,API模拟和伪造以及代码覆盖率。
- Mockito-Mocking框架,让您使用干净简单的API编写测试。
- MockServer-允许嘲笑与HTTPS集成的系统。
- Moco-用于存根和模拟的简洁web服务。
- PowerMock-模拟静态方法,构造函数,最终类和方法,私有方法以及删除静态初始值设定项。
- WireMock-存根和模拟web服务。
- EasyMock-EasyMock是一个Java库,它提供了一种在单元测试中使用Mock对象的简便方法。
实用程序
提供通用实用功能的库。
- Arthas-允许对应用程序的生产问题进行故障排除,而无需修改代码或重新启动服务器。
- bucket4j基于令牌桶算法的限速库。
- cactoos-面向对象原语的集合。
- Chocotea-从java代码生成postman集合,环境和集成测试。
- CRaSH-为运行崩溃的JVM提供一个shell。由Spring Boot和其他人使用。(LGPL-2.1-or-later)
- Dex-Java/JavaFX工具能够强大的ETL和数据可视化。
- dregex-使用确定性有限自动机的正则表达式引擎。它支持一些Perl风格的特性,但保留了线性匹配时间,还提供了set操作。
- Embulk-批量数据加载器,可帮助各种数据库,存储,文件格式和云服务之间的数据传输。
- fswatch-微库监视目录文件系统更改,简化了java.nio.file.WatchService。
- Gephi-用于可视化和操纵大型图形网络的跨平台。(GPL-3.0-only)
- Guava-集合,缓存,原语支持,并发库,通用注释,字符串处理,I/O等。
- JADE-用于构建和调试多代理系统的框架和环境。(LGPL-2.0-only)
- Java Diff Utils-用于文本或数据比较和修补的实用程序。
- JavaVerbalExpressions-库,有助于构建困难的正则表达式。
- JGit-实现Git版本控制系统的轻量级纯Java库。
- JKScope-受Kotlin启发的Java作用域函数。
- minio-java-提供简单的api来访问任何Amazon S3-compatible对象存储服务器。
- Protégé-提供了一个本体编辑器和一个框架来构建基于知识的系统。
- Semver4j-轻量级库,可帮助您处理不同模式的语义版本控制。
- Underscore-java-Underscore.js函数的端口。
版本管理器
帮助创建开发shell环境并在不同Java版本之间切换的实用程序。
- jabba-受nvm启发的Java版本管理器。支持macOS,Linux和Windows。
- jenv-受rbenv启发的Java版本管理器。可以全局配置或按项目配置。在Debian和macOS上测试。
- SDKMan-受RVM和rbenv启发的Java版本管理器。支持基于UNIX的平台和Windows。
Web爬行
分析网站内容的图书馆。
- Apache Nutch-用于生产环境的高度可扩展、高度可扩展的网络爬虫。
- Crawler4j-简单和轻量级的网络爬虫。
- jsoup-刮擦,解析,操纵和清理HTML。
- StormCrawler-用于构建低延迟和可扩展的web爬虫的SDK。
- webmagic-具有下载,url管理,内容提取和持久性的可扩展爬虫。
Web框架
处理web应用程序各层之间通信的框架。
- ActiveJ-为开发高性能web应用程序而从头开始构建的轻量级异步框架。
- Apache Tapestry-面向组件的框架,用于创建动态,健壮,高度可扩展的web应用程序。
- Apache Wicket-基于组件的web应用程序框架,类似于Tapestry,具有有状态的GUI。
- Blade-轻量级的模块化框架,旨在优雅和简单。
- Bootique-可运行应用程序的最小自以为是的框架。
- Firefly-用于快速开发高性能web应用程序的异步框架。
- Javalin-web应用程序的微框架。
- Jooby-可扩展,快速和模块化的微框架,提供多种编程模型。
- Ninja-全栈web框架。
- Pippo-小型、高度模块化、类似Sinatra的框架。
- Play-基于Akka构建,它为Java和Scala中的高度可扩展应用程序提供了可预测且最小的资源消耗 (CPU,内存,线程)。
- PrimeFaces-具有免费和商业/支持版本以及前端组件的JSF框架。
- Ratpack-一组库,可促进快速,高效,可发展且经过良好测试的HTTP应用程序。
- Takes-固执己见的web框架,围绕真正的面向对象编程和不变性的概念构建。
- Vaadin-使用标准web组件的事件驱动框架。在客户端使用Ajax的服务器端架构。
工作流编排引擎
资源
相关的真棒列表
与Java和JVM生态系统相关的很棒的列表。
- Awesome Annotation Processing
- Awesome Graal
- Awesome Gradle Plugins
- AwesomeJavaFX
- Awesome JVM
- Awesome Microservices
- Awesome REST
- Awesome Selenium
- Awesome Hybris
- ciandcd
- Useful Java Links
- Java Concurrency Checklist
- Java Developer Roadmap
社区
积极的讨论。
- r/java-Subreddit的Java社区。
- Stack Overflow-问题/答案平台。
前端
为此列表提供前端的网站。请注意,不会有官方网站。我们不与特定网站相关联,每个人都可以创建一个。
有影响力的书籍
这些书产生了很大的影响,仍然值得一读。
- Core Java Volume I--Fundamentals
- Core Java, Volume II--Advanced Features
- Effective Java (3rd Edition)
- Head First Java (3rd Edition)
- Java Concurrency in Practice
- The Well-Grounded Java Developer (2nd Edition)
- Thinking in Java
播客和截屏
编程时要看或听的东西。
- 140 Second Ducklings-在Twitter上的短视频深入解释Java调试。
- A Bootiful Podcast
- Foojay Podcast
- Inside Java(官方)
- Java Off Heap
- The Java Posse-截至02/2015已停产。
人
要关注的活跃帐户。来自Twitter的描述
- Adam Bien-自由作家,JavaOne Rockstar演讲者,顾问,Java冠军。
- Aleksey Shipilëv-性能极客,基准沙皇,并发bug猎人。
- Antonio Goncalves-Java冠军,JUG领导者,Devoxx法国,Java EE 6/7,JCP,作者。
- Arun Gupta-Java冠军,JavaOne Rockstar,JUG负责人,Devoxx4Kids-er,Couchbase开发人员倡导副总裁。
- Brian Goetz-Oracle的Java语言架构师。
- Bruno Borges-Oracle的产品经理/Java Jock。
- Chris Engelbert-开源爱好者,演讲者,开发人员,TimescaleDB的开发人员倡导。
- Chris Richardson-软件架构师,顾问和系列企业家,Java冠军,JavaOne摇滚明星,* POJOs in Action- author。
- Ed Burns-Oracle技术人员的咨询成员。
- Eugen Paraschiv-春季安全课程的作者。
- Heinz Kabutz-Java冠军,演讲者,Java专家通讯的作者,并发性能专家。
- Holly Cummins-IBM伦敦Bluemix车库技术负责人,Java冠军,JavaOne rockstar开发人员,作者。
- James Weaver-Java/JavaFX/IoT开发人员,作者和演讲者。
- Java EE-官方Java EE Twitter帐户。
- Java Magazine-官方Java杂志帐户。
- Java-官方Java Twitter帐户。
- Javin Paul-著名的Java博客。
- Josh Long-Pivotal的Spring倡导者,O'Reilly's Cloud Native Java的作者-以及使用JavaOne摇滚明星Spring Boot构建微服务。
- Lukas Eder-Java冠军、演讲者、创始人兼首席执行官数据极客 (jOOQ)。
- Mani Sarkar-Java冠军,多语言,涉及 @ graalvm,AI/ML/DL,数据科学,开发人员社区,演讲者和博客的软件工匠。像这样的几个令人敬畏的列表的创建者。
- Mario Fusco-RedHatter,JUG协调员,经常演讲和作者。
- Mark Heckler-Pivotal首席技术专家和开发人员倡导者,会议发言人,出版作者和Java冠军,专注于物联网和云。
- Mark Reinhold-Oracle Java平台组首席架构师。
- Markus Eisele-Java EE布道者,Red Hat。
- Martijn Verburg-伦敦JUG联合负责人,演讲者,作者,Java冠军等等。
- Martin Thompson-面对表演黑帮。
- Monica Beckwith-性能顾问,JavaOne摇滚明星。
- OpenJDK-官方OpenJDK帐户。
- Peter Lawrey-Peter Lawrey,Java性能专家。
- Randy Shoup-Stitch Fix工程副总裁,扬声器,JavaOne摇滚明星。
- Reza Rahman-Java EE/GlassFish/WebLogic布道者,作者,演讲者,开源黑客。
- Sander Mak-Java冠军,作者。
- Simon Maple-Java冠军,VirtualJUG创始人,LJC领导者,RebelLabs作者。
- Spencer Gibb-软件工程师,爸爸,极客,Spring Cloud Core @ pivotal的联合创始人兼负责人。
- Stephen Colebourne-Java冠军,演讲者.
- Trisha Gee-Java冠军和演讲者。
- Venkat Subramaniam-作者,休斯顿大学教授,微软MVP奖获得者,JavaOne摇滚明星,Java冠军。
- Vlad Mihalcea-Java冠军致力于Hypersistence优化器,数据库爱好者,高性能Java持久性书籍的作者。
其他
- Groundbreakers-甲骨文王牌,开创性大使和Java冠军。
网站
要阅读的网站。
- Baeldung
- Dzone
- foojay.io
- Google Java Style
- InfoQ
- Java Algorithms and Clients
- Java, SQL, and jOOQ
- Java.net
- Javalobby
- JavaWorld
- JAXenter
- RebelLabs
- OverOps Blog
- TheServerSide.com
- Vanilla Java
- Voxxed
- Java Weekly
贡献
捐款是非常受欢迎的!
请看看CONTRIBUTING指导方针和the validation tools。
