Skip to content

awesome-code-resources/awesome-java-zh

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 

Repository files navigation

如果您觉得这个项目对您有帮助,就请点右上角的Star按钮为它加星星✨✨ 其他TIOBE Top 20编程语言的中文翻译请看awesome-code-resources。 本项目的原始仓库地址为这里

Awesome 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 c-使用JPA模型和REST API生成基于浏览器的Spring Boot应用程序。
  • FreeBuilder-自动生成构建器模式。
  • Geci-发现需要生成代码的文件,自动更新并使用方便的API写入源代码。
  • Immutables-注释处理器生成简单,安全和一致的值对象。
  • JavaPoet-生成源文件的API。
  • JHipster-用于Spring Boot和AngularJS的Yeoman源代码生成器。
  • Joda-Beans-为Java添加可查询属性的小框架,增强了JavaBeans。
  • JPA Buddy c-插件的IntelliJ的想法。提供用于生成JPA实体、Spring Data JPA存储库、Liquibase changelogs和SQL脚本的可视化工具。通过将模型与DB进行比较,并从DB表反向工程JPA实体,提供自动的Liquibase/Flyway脚本生成。
  • Lombok-旨在减少冗长的代码生成器。
  • Record-Builder-同伴构建器类,Java记录的枯萎和模板。
  • Telosys-简单而轻便的代码生成器可作为Eclipse插件和CLI使用。

编译器-编译器

帮助创建解析器、解释器或编译器的框架。

  • ANTLR-复杂的自上而下的解析功能齐全的框架。
  • JavaCC-生成自顶向下解析器的解析器生成器。允许词法状态切换,并允许扩展的BNF规范。
  • JFlex-词法分析器生成器。

计算机视觉

寻求从图像和视频中获取高级信息的库。

  • BoofCV-用于图像处理,相机校准,跟踪,SFM,MVS,3D视觉,QR码等的库。
  • ImageJ-具有API的医学图像处理应用程序。
  • JavaCV-Java接口OpenCV,FFmpeg,以及更多。

配置

提供外部配置的库。

  • 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 c-使用不可变基础设施的原则将JVM应用程序部署到AWS。
  • Capsule-简单而强大的包装和部署。类固醇上的胖罐子,或者支持JVM优化容器的 “Docker for Java”。
  • Central Repository-最大的二进制组件存储库可作为免费服务提供给开源社区。默认由Apache Maven使用,并在所有其他构建工具中可用。
  • Cloudsmith c-完全托管的包管理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 c-具有代理和缓存功能的二进制管理。
  • 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中,重点是减少开销。

财务

与金融领域相关的图书馆。

形式验证

形式方法工具: 证明助手、模型检查、符号执行等。

  • 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 c-用于向桌面应用程序添加映射和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客户端库。

超媒体类型

处理超媒体类型序列化的库。

  • hate-根据HAL规范构建超媒体友好的对象。
  • JSON-LD-JSON-LD实现。
  • Siren4J-警报器规范库。

IDE

集成开发环境,试图简化开发的几个方面。

  • Eclipse-建立了支持大量插件和语言的开源项目。
  • IntelliJ IDEA c-支持许多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 c-用于大数据统计的分析引擎。
  • 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-内存文件系统。
  • JObfuscatorc-源代码混淆器。
  • 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 c-现代监控和分析。
  • Dropwizard Metrics-通过JMX或HTTP公开指标,并将其发送到数据库。
  • Failsafe Actuator-Spring-Boot环境中的故障安全断路器的开箱即用监控。
  • Glowroot-开源Java APM。
  • HertzBeat-具有自定义监视器和无代理功能的实时监视系统。
  • hippo4j-动态和可观察的线程池框架。
  • inspectIT-通过钩子捕获详细的运行时信息,可以在飞行中更改。它支持通过OpenTracing API跟踪多个系统,并可以将数据与最终用户监控相关联。
  • Instrumental c-实时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 c-与集成Sentry,一个应用程序错误跟踪和性能分析平台。
  • SPM c-性能监视器,为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平台即服务。

PDF

帮助处理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 c-以编程方式创建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 c-使用免费的基于云的上传界面分析和可视化线程转储。
  • GCeasy c-分析和可视化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的服务器端架构。

工作流编排引擎

  • Cadence-来自Uber的状态代码平台。
  • flowable-紧凑高效的工作流和业务流程管理平台。
  • Temporal-微服务编排平台,从Cadence分叉,但基于gRPC。

资源

相关的真棒列表

与Java和JVM生态系统相关的很棒的列表。

社区

积极的讨论。

前端

为此列表提供前端的网站。请注意,不会有官方网站。我们不与特定网站相关联,每个人都可以创建一个。

有影响力的书籍

这些书产生了很大的影响,仍然值得一读。

播客和截屏

编程时要看或听的东西。

Twitter

要关注的活跃帐户。来自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持久性书籍的作者。

其他

网站

要阅读的网站。

贡献

捐款是非常受欢迎的!

请看看CONTRIBUTING指导方针和the validation tools

About

Java 编程语言的优秀框架、库和软件的精选列表

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors