An open API service indexing awesome lists of open source software.

awesome-java-zh

Java 编程语言的优秀框架、库和软件的精选列表
https://github.com/awesome-code-resources/awesome-java-zh

Last synced: 10 days ago
JSON representation

  • 项目

    • Web框架

      • Jooby - 可扩展,快速和模块化的微框架,提供多种编程模型。
      • Ninja - 全栈web框架。
      • Ratpack - 一组库,可促进快速,高效,可发展且经过良好测试的HTTP应用程序。
    • Web爬行

      • Crawler4j - 简单和轻量级的网络爬虫。
      • webmagic - 具有下载,url管理,内容提取和持久性的可扩展爬虫。
      • StormCrawler - 用于构建低延迟和可扩展的web爬虫的SDK。
    • 代码分析

      • Infer - 现代静态分析工具,用于验证代码的正确性。
      • Checkstyle - 编码约定和标准的静态分析。(LGPL-2.1-or-later)
      • Error Prone - 捕获常见的编程错误作为编译时错误。
      • Error Prone Support - 容易出错的扩展: 额外的错误检查器和大量的更快的模板。
      • NullAway - 消除具有低构建时间开销的NullPointerExceptions。
      • PMD - 用于查找不良编码实践的源代码分析。
      • p3c - 提供阿里巴巴的PMD、IDEA和Eclipse的编码指南。
      • SonarJava - SonarQube & SonarLint的静态分析仪。(LGPL-3.0-only)
      • Spoon - 用于分析和转换Java源代码的库。
      • Spotbugs - 字节码的静态分析,以发现潜在的错误。(LGPL-2.1-only)
      • RefactorFirst - 识别并优先考虑上帝类和高度耦合类。
      • jQAssistant - 使用Neo4J-based查询语言进行静态代码分析。(GPL-3.0-only)
    • 代码生成器

      • Avaje Http Server - 使用Javalin或Helidon (Nima) SE生成轻量级jax-rs样式的http服务器。
      • Joda-Beans - 为Java添加可查询属性的小框架,增强了JavaBeans。
      • Telosys - 简单而轻便的代码生成器可作为Eclipse插件和CLI使用。
      • ADT4J - 代数数据类型的JSR-269代码生成器。
      • Auto - 生成工厂、服务和值类。
      • FreeBuilder - 自动生成构建器模式。
      • Geci - 发现需要生成代码的文件,自动更新并使用方便的API写入源代码。
      • JavaPoet - 生成源文件的API。
      • JHipster - 用于Spring Boot和AngularJS的Yeoman源代码生成器。
      • Record-Builder - 同伴构建器类,Java记录的枯萎和模板。
      • Bootify ![c - 使用JPA模型和REST API生成基于浏览器的Spring Boot应用程序。
    • 代码覆盖率

      • Clover - 依赖于源代码工具而不是字节码工具。
      • JaCoCo - 允许使用离线和运行时字节码工具收集代码覆盖率指标的框架。
      • Cobertura - 依靠离线 (或静态) 字节码检测和类加载来收集代码覆盖率指标。(GPL-2.0-only)
    • 作业调度

      • JobRunr - 作业调度库,它利用lambdas进行fire-and-forget,延迟和重复的作业。使用乐观锁定保证由单个调度程序实例执行。具有持久性,最小依赖性和可嵌入的功能。
      • Quartz - 功能丰富的开源作业调度库,可以集成在几乎任何Java应用程序中。
      • Sundial - 轻量级框架,用于简单地定义作业,定义触发器并启动调度程序。
      • Wisp - 具有最小的占用空间和简单的API的简单库。
      • db-scheduler - 持久和群集友好的调度程序。
      • easy-batch - 使用简单的处理管道设置批处理作业。记录从数据源按顺序读取,在管道中处理并批量写入数据接收器。
      • shedlock - 确保您的计划任务在同一时间最多执行一次。如果任务正在一个节点上执行,则它获取一个锁,该锁阻止从另一个节点或线程执行相同的任务。
    • 依赖注入

      • Inversion of Control
      • Avaje Inject - 专注于微服务的编译时注入框架,无需反射。
      • Dagger - 没有反射的编译时注入框架。
      • Feather - 超轻量级,JSR-330-compliant依赖注入库。
      • Governator - 增强Google Guice的扩展和实用程序。
      • Guice - 轻量级和固执己见的框架,完成匕首。
      • HK2 - 轻量级和动态依赖注入框架。
      • JayWire - 轻量级的依赖注入框架。(LGPL-3.0-only)
    • 内省

      • Mirror - Mirror的创建是为了解决一个简单的问题,通常将其命名为ReflectionUtil,该问题几乎适用于所有依靠反射来执行高级任务的项目。
      • ClassGraph
      • jOOR
      • Mirror - Mirror的创建是为了解决一个简单的问题,通常将其命名为ReflectionUtil,该问题几乎适用于所有依靠反射来执行高级任务的项目。
      • ReflectASM - ReflectASM是一个非常小的Java库,通过使用代码生成提供高性能反射。
      • Reflections - 反射扫描您的类路径,索引元数据,允许您在运行时查询它,并可以保存和收集项目中许多模块的信息。
    • 函数式编程

      • Functional Java - 实现了许多基本和高级编程抽象,有助于面向组合的开发。
      • Cyclops - Monad和流实用程序,理解,模式匹配,所有JDK集合的功能扩展,未来流,蹦床等等。
      • derive4j - Java 8注释处理器和框架,用于导出代数数据类型构造函数,模式匹配和态射。(GPL-3.0-only)
      • Fugue - 番石榴的功能扩展。
      • jOOλ - Java 8的扩展,旨在通过提供大量缺失的类型和一组丰富的顺序流API添加来修复lambda中的差距。
      • protonpack - 流实用程序的集合。
      • StreamEx - 增强Java 8流。
    • 分布

      • IzPack - 用于跨平台部署的设置创作工具。
      • Artipie - 二进制工件管理工具包,将它们托管在文件系统或s3上。
      • Capsule - 简单而强大的包装和部署。类固醇上的胖罐子,或者支持JVM优化容器的 “Docker for Java”。
      • Getdown - 用于将Java应用程序部署到最终用户计算机并使其保持最新状态的系统。作为Java Web Start的替代方案而开发。
      • JavaPackager - Maven和Gradle插件,它提供了一种简单的方法来在本机Windows,macOS或GNU/Linux可执行文件中打包Java应用程序,并为它们生成安装程序。
      • jlink.online - 通过HTTP构建优化的运行时。
      • packr - 打包jar,资产和JVM,以便在Windows,Linux和macOS上进行本机分发。
      • really-executable-jars-maven-plugin - 用于制作自执行jar的Maven插件。
      • JavaPackager - Maven和Gradle插件,它提供了一种简单的方法来在本机Windows,macOS或GNU/Linux可执行文件中打包Java应用程序,并为它们生成安装程序。
    • 分布式事务

      • Seata - 在微服务架构下提供高性能和易于使用的分布式事务服务。
      • Narayana - 为传统的ACID和补偿交易提供支持,还符合JTA,JTS和其他标准。(LGPL-2.1-only)
    • 分布式应用程序

      • Quasar - JVM的轻量级线程和actor。
      • Dropwizard Circuit Breaker - Dropwizard的断路器设计模式。(GPL-2.0-only)
      • Hazelcast - 具有免费开源版本的高度可扩展的内存datagrid。
      • Atomix
      • Failsafe - 简单的故障处理与重试和断路器。
      • JGroups - 用于可靠消息传递和集群创建的工具包。
      • resilience4j
      • OpenIG - 具有专用会话管理和凭证重放功能的高性能反向代理服务器。
      • ScaleCube Services - 基于SWIM和gossip协议的嵌入式集群成员库。
      • Zuul - 提供动态路由、监控、弹性、安全性等功能的网关服务。
    • 原生

      • Aparapi - 将字节码转换为允许在gpu上执行的OpenCL。
      • JavaCPP - 提供高效和方便地访问本机C。
      • JNA - 在不编写JNI的情况下使用本机库。还提供了通用系统库的接口。
      • JNR - 在不编写JNI的情况下使用本机库。还提供了通用系统库的接口。与JNA相同的目标,但速度更快,并作为即将到来的[Project Panama](http://openjdk.java.net/projects/panama)。
    • 反应式库

      • RxJava - 允许使用可观察序列组成异步和基于事件的程序。
      • Akka - 用于构建并发,分布式,容错和事件驱动应用程序的工具包和运行时。
      • Reactive Streams - 提供具有非阻塞背压的异步流处理的标准。
      • Reactor - 用于构建响应式快速数据应用程序的库。
    • 发展

      • Faux Pas - 库,通过规避默认情况下不允许Java运行时中的任何函数式接口抛出检查异常的问题,简化了错误处理。
      • HotswapAgent - 无限的运行时类和资源重新定义。(GPL-2.0-only)
      • JavaParser - 解析,修改和生成Java代码。
      • JavaSymbolSolver - 符号求解器。
      • Manifold - 重新激发Java强大的功能,如类型安全元编程,结构类型和扩展方法。
      • SneakyThrow - 忽略没有字节码操作的检查异常。也可以在Java 8流操作中使用。
      • Tail - 使用尾调用优化启用无限递归。
      • NoException - 允许在函数式接口中检查异常,并将异常转换为可选返回。
    • 图像

      • ZXing - 多格式1D/2D条码图像处理库。
      • Imgscalr - 在纯Java 2D中实现的简单,高效和硬件加速的图像缩放库。
      • Tess4J - Tesseract OCR API的JNA包装器。
      • Thumbnailator - 高质量的缩略图生成库。
      • TwelveMonkeys - 扩展支持的图像文件格式数量的插件集合。
      • image-comparison - 比较具有相同大小的2个图像的库,并通过绘制矩形在视觉上显示差异。可以从比较中排除图像的一些部分。
    • 地理空间

      • Geo - Java中的GeoHash实用程序。
      • GraphHopper - 道路路由引擎。用作Java库或独立的web服务。
      • Jgeohash - 使用GeoHash算法的库。
      • Mapsforge - 3.0-only)
      • Spatial4j - 通用空间/地理空间图书馆。
    • 字节码操作

      • Recaf - JVM逆向工程工具包,本质上是Java字节码的IDE。
      • bytecode-viewer - Java 8 Jar & Android APK逆向工程套件。(GPL-3.0-only)
      • cglib - 字节码生成库。
      • Javassist - 试图简化字节码编辑。
      • Maker - 提供低级别的字节码生成。
      • Mixin - 使用真正的Java代码在运行时操作字节码。
      • Perses - 根据混沌工程的原理在字节码级别动态注入故障/延迟。
      • ASM - 通用,低级别的字节码操作和分析。
      • Perses - 根据混沌工程的原理在字节码级别动态注入故障/延迟。
    • 安全

      • Bouncy Castle - 通用加密库和JCA提供程序提供广泛的功能,从基本的助手到PGP/SMIME操作。
      • Themis - 多平台高级加密库为保护敏感数据提供易于使用的加密: 具有前向保密性的安全消息传递,安全数据存储 (AES256GCM); 适合构建端到端加密应用程序。
      • Bouncy Castle - 通用加密库和JCA提供程序提供广泛的功能,从基本的助手到PGP/SMIME操作。
      • DependencyCheck - 检测项目依赖项中包含的公开披露的漏洞。
      • Hdiv - 排除OWASP Top 10中包含的应用程序安全风险的运行时应用程序,包括SQL注入,跨站点脚本,跨站点请求伪造,数据篡改和蛮力攻击。
      • jjwt - 适用于Java和Android的JSON web令牌。
      • jwt-java - 轻松创建和解析JSON Web令牌,并使用fluent API创建自定义JWT验证器。
      • Jwks RSA - JSON Web密钥集解析器。
      • Kalium - 网络和密码学 (NaCl) 库的绑定。
      • Keywhiz - 用于分发和管理秘密的系统。
      • Nbvcxz - 高级密码强度估计。
      • OACC - 提供基于权限的授权服务。
      • OpenAM - 访问管理解决方案,包括身份验证,SSO,授权,联合,权利和web服务安全性。
      • OTP-Java - 根据RFC 4226 (HOTP) 和RFC 6238 (TOTP) 的一次性密码生成器库。
      • pac4j - 安全引擎。
      • Password4j - 用户友好的加密库,支持Argon2,Bcrypt,Scrypt,PBKDF2和各种其他加密哈希函数。
      • SecurityBuilder - 用于JCA和JSSE类,尤其是X.509证书的Fluent Builder API。
      • SSLContext-Kickstart - 高级SSL上下文构建器,用于使用SSL/TLS配置HTTP客户端。
      • Tink - 为常见的加密任务提供简单且防误用的API。
      • Keycloak - 用于浏览器应用程序和RESTful web服务的集成SSO和IDM。
      • Passay - 通过根据可配置的规则集验证候选密码来实施密码策略。
    • 实用程序

      • Guava - 集合,缓存,原语支持,并发库,通用注释,字符串处理,I/O等。
      • JADE - 用于构建和调试多代理系统的框架和环境。(LGPL-2.0-only)
      • JGit - 实现Git版本控制系统的轻量级纯Java库。
      • JADE - 用于构建和调试多代理系统的框架和环境。(LGPL-2.0-only)
      • Arthas - 允许对应用程序的生产问题进行故障排除,而无需修改代码或重新启动服务器。
      • 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)
      • Java Diff Utils - 用于文本或数据比较和修补的实用程序。
      • JavaVerbalExpressions - 库,有助于构建困难的正则表达式。
      • JKScope - 受Kotlin启发的Java作用域函数。
      • minio-java - 提供简单的api来访问任何Amazon S3-compatible对象存储服务器。
      • Semver4j - 轻量级库,可帮助您处理不同模式的语义版本控制。
      • Underscore-java - Underscore.js函数的端口。
      • bucket4j
      • Protégé - 提供了一个本体编辑器和一个框架来构建基于知识的系统。
    • 工作流编排引擎

      • flowable - 紧凑高效的工作流和业务流程管理平台。
      • Cadence - 来自Uber的状态代码平台。
    • 序列化

      • FlatBuffers - 内存高效的序列化库,可以访问序列化数据,而无需解包和解析。
      • FST - JDK兼容,高性能对象图序列化。
      • Kryo
      • MessagePack - 高效的二进制序列化格式。
      • PHP Serializer - 以PHP序列化格式序列化对象。
      • Fury - 由JIT和零拷贝提供支持的快速对象图序列化框架。
    • 形式验证

      • Daikon - 检测可能的程序不变量,并根据这些不变量生成JML规范。
      • JMLOK 2.0 - 通过反馈导向的随机测试生成来检测代码和JML规范之间的不一致,并建议检测到的每个不一致的可能原因。(GPL-3.0-only)
      • CATG - Concoric单元测试引擎。使用正式方法自动生成单元测试。
      • Java Path Finder (JPF) - 包含模型检查器等的JVM形式验证工具。由NASA创建。
      • Checker Framework - 可插拔型系统。包括nullness类型、物理单位、不变性类型等。(GPL-2.0-only与Classpath-exception-2.0)
      • OpenJML - 将JML规范转换为smt-lib格式,并将程序暗示的证明问题传递给后端求解器。(GPL-2.0-only)
    • 微服务

      • Apollo - 用于编写可组合微服务的库。
      • Armeria - 基于Java 8,Netty,HTTP/2,Thrift和gRPC构建的异步RPC/REST客户端/服务器库。
      • consul-api - Consul API的客户端: 分布式、高可用性和数据中心感知的注册/发现服务。
      • Eureka - 基于REST的服务注册表,用于弹性负载平衡和故障转移。
      • JDA - 包装Discord REST API及其WebSocket事件。
      • kubernetes-client - 客户端通过流畅的DSL提供对完整Kubernetes和OpenShift REST api的访问。
      • OpenAI-Java - 用于使用OpenAI GPT-3 API的Java库。
      • Sentinel - 流量控制组件,实现微服务的可靠性、弹性和监控。
      • KeenType - 新排版系统的基于Java的实现的现代化版本,该系统主要基于Donald E. Knuth的原始TeX。
    • 性能分析

      • GCeasy ![c - 分析和可视化GC日志的工具。它提供了一个免费的基于云的上传界面。
      • JMH - 用于构建,运行和分析以Java和其他语言编写的针对JVM的纳米/微/毫/宏基准的线束。(仅与Classpath-exception-2.0一起GPL-2.0)
      • honest-profiler - 低开销,无偏差采样分析器。
      • jHiccup - 日志和记录平台JVM失速。
      • JITWatch - 分析HotSpot JVM所做的JIT编译器优化。
      • LatencyUtils - 用于延迟测量和报告的实用程序。
    • 搜索

      • Elasticsearch - 分布式,支持多租户的全文搜索引擎,具有RESTful web界面和无架构的JSON文档。
      • Indexer4j - 简单而轻便的全文索引和搜索库。
    • 数据库

      • Debezium - 用于更改数据捕获的低延迟数据流平台。
      • HSQLDB - HyperSQL 100% Java数据库。
      • Lettuce - 生菜是一个可扩展的Redis客户端,用于构建非阻塞反应式应用程序。
      • Realm - 移动数据库直接在手机,平板电脑或可穿戴设备中运行。
      • requery - 现代,轻量级但功能强大的对象映射和SQL生成器。轻松映射或创建数据库,或从任何使用Java的平台执行查询和更新。
      • Querydsl - Typesafe统一查询。
      • ArangoDB - ArangoDB Java驱动程序。
      • Chronicle Map - 高效、内存中 (opt.持久化到磁盘) 、堆外键值存储。
      • eXist - NoSQL文档数据库和应用平台。(LGPL-2.1-only)
      • FlexyPool - 为最常见的连接池解决方案带来指标和故障转移策略。