diff --git a/pages/javalibs.md b/pages/javalibs.md index da8af08..a57def9 100644 --- a/pages/javalibs.md +++ b/pages/javalibs.md @@ -121,20 +121,13 @@ permalink: /javalibs - [响应式](#响应式) - [WebServer](#WebServer) - [WebSocket](#WebSocket) -- [游戏服务器](#游戏服务器) -- [即时通讯](#即时通讯) -- [视频会议](#视频会议) -- [FTP服务器](#FTP服务器) - [Jakarta EE产品](#JakartaEE产品) - [工具库](#工具库) +- [Bean映射&复制](#Bean映射复制) - [字符串工具库](#字符串工具库) - [Java 9-22](#9-22特性) - [IoC](#IoC) - [AOP](#AOP) -- [DSL](#DSL) -- [JMX](#JMX) -- [RMI](#RMI) -- [gRPC](#gRPC) - [日志库](#日志库) - [JSON库](#JSON库) - [JsonPath](#JsonPath) @@ -211,7 +204,6 @@ permalink: /javalibs - [电子签名](#电子签名) - [安全培训](#安全培训) - [模板引擎](#模板引擎) -- [Bean映射&复制](#Bean映射复制) - [脚本](#脚本) - [CLI工具](#CLI工具) - [命令行参数解析](#命令行参数解析) @@ -249,6 +241,10 @@ permalink: /javalibs - [推送SDK](#推送SDK) - [API&客户端](#API客户端) - [中间件客户端](#中间件客户端) +- [游戏服务器](#游戏服务器) +- [即时通讯](#即时通讯) +- [视频会议](#视频会议) +- [FTP服务器](#FTP服务器) - [区块链](#区块链) - [以太坊](#以太坊) - [比特币](#比特币) @@ -258,6 +254,10 @@ permalink: /javalibs - [MQTT](#MQTT) - [金融](#金融) - [短信](#短信) +- [DSL](#DSL) +- [JMX](#JMX) +- [RMI](#RMI) +- [gRPC](#gRPC) - [Raft算法](#Raft算法) - [Paxos算法](#Paxos算法) - [对象池](#对象池) @@ -342,6 +342,7 @@ permalink: /javalibs - [几何学](#几何学) - [天文学](#天文学) - [水文学](#水文学) +- [物理库](#物理库) - [无人机](#无人机) - [AIS库](#AIS库) - [跨语言](#跨语言) @@ -948,7 +949,6 @@ permalink: /javalibs * [ApprovalTests](https://github.com/approvals/ApprovalTests.Java):Java的ApprovalTest验证库。 * [JFRUnit](https://github.com/moditect/jfrunit):用于断言JFR事件的JUnit扩展。 * [ArchUnit](https://github.com/TNG/ArchUnit):ArchUnit是一个免费、简单且可扩展的库,用于检查Java代码的架构。 -* [Scott](https://github.com/dodie/scott):获取非常详细的测试失败消息,无需断言库、额外配置或对现有测试进行更改。 * [Power Assert](https://github.com/jkschneider/java-power-assert):Power Assert通过条件评估过程中产生的值的信息来增强断言失败,并以易于理解的形式呈现它们。 * [Visible Assertions](https://github.com/rnorth/visible-assertions):JUnit断言的替代方案,为你的测试提供更有洞察力的日志叙述。 * [LogCapture](https://github.com/jsalinaspolo/logcapture):LogCapture是一个用于断言日志消息的测试库。 @@ -1010,6 +1010,8 @@ permalink: /javalibs * [Spring Data Mock](https://github.com/mmnaseri/spring-data-mock):Spring Data Repository的Mock工具。 * [ZeroMock](https://github.com/tonivade/zeromock):零依赖的模拟HTTP Server。 * [OKHttp Client Mock](https://github.com/gmazzo/okhttp-client-mock):一个简单的OKHttp客户端Mock,使用可编程请求拦截器。 +* [OkReplay](https://github.com/airbnb/okreplay):OkReplay旨在通过拦截应用程序发起的HTTP连接并重放之前记录的响应,由Airbnb开发。 +* [RESTMock](https://github.com/andrzejchm/RESTMock):RESTMock是一个建立在MockWebServer之上的库,它允许你指定Hamcrest匹配器来匹配HTTP请求并指定要返回的响应。 #### 测试数据生成器 @@ -1046,6 +1048,7 @@ permalink: /javalibs * [Model Citizen](https://github.com/mguymon/model-citizen):Model Citizen是一个基于注解的Java模型工厂。 * [Test Arranger](https://github.com/ocadotechnology/test-arranger):将测试数据排列为完全填充的对象。 * [Datagen](https://github.com/qala-io/datagen):用于生成随机数据(数字、字符串、日期)的Java库-以便于随机测试。 +* [Fabricator](https://github.com/azakordonets/fabricator):Fabricator是随机字符串、数字等的极简生成器,有助于减少单调性。 #### BDD框架 @@ -1146,6 +1149,7 @@ permalink: /javalibs #### 测试报告 * [Allure](https://github.com/allure-framework/allure2):Allure Report是一种灵活的多语言测试报告工具,可向你展示已测试内容的详细表示,并从日常测试执行中提取最大程度的信息。 +* [Scott](https://github.com/dodie/scott):获取非常详细的测试失败消息,无需断言库、额外配置或对现有测试进行更改。 * [ReportPortal](https://github.com/reportportal/reportportal):ReportPortal是一项TestOps服务,它提供了增强的功能,通过使用内置分析功能来加速结果分析和报告。 * [Zebrunner Reporting](https://github.com/zebrunner/reporting):Zebrunner Reporting是一种测试自动化管理工具,可累积并表示测试结果。 * [Difido Reports](https://github.com/Top-Q/difido-reports):该项目旨在为各种功能测试自动化框架提供灵活、实时的HTML报告。 @@ -1218,6 +1222,7 @@ permalink: /javalibs * [CDI-Unit](https://github.com/cdi-unit/cdi-unit):CDI应用程序的单元测试库,支持Mockito来Mock依赖项。 * [Kafka JUnit](https://github.com/mguenther/kafka-junit):Kafka JUnit使开发人员能够在JUnit测试中启动和停止由Kafka代理和分布式Kafka Connect Workers组成的完整Kafka集群。 * [JUnit JSON Params](https://github.com/joshka/junit-json-params):一个JUnit 5库,提供在参数化测试中从JSON字符串或文件加载数据的注解。 +* [FakeTime](https://github.com/faketime-java/faketime):FakeTime使用原生Java代理将System.currentTimeMillis()实现替换为你可以使用系统属性控制的实现。 #### 其他测试库 @@ -2853,68 +2858,6 @@ permalink: /javalibs * [Socket.IO Java](https://github.com/trinopoty/socket.io-server-java):这是从JavaScript服务器移植的Java Socket.IO服务器库。 * [Babl WebSocket Server](https://github.com/babl-ws/babl):Babl是一款高性能、可扩展的WebSocket服务器,专为低延迟应用程序而设计。 -## 游戏服务器 - -* [NettyGameServer](https://github.com/jwpttcg66/NettyGameServer):使用Netty 4.X实现的手机游戏分布式服务器,支持TCP、UDP、HTTP、WebSocket链接。 -* [JetServer](https://github.com/menacher/java-game-server):JetServer是一个基于高速NIO套接字的多人Java游戏服务器,使用Netty和Jetlang编写。 -* [Game Server](https://github.com/jzyong/game-server):分布式Java游戏服务器,包括集群管理服务器、网关服务器、大厅服务器、游戏逻辑服务器。 -* [Summer](https://github.com/SwingFrog/Summer):Summer是一个轻量级、一站式的Java游戏服务器框架,也可用于开发简单的Web服务。 -* [Mmorpg](https://github.com/kingston-csj/mmorpg):Mmorpg是一个用Java编写的分布式高性能mmorpg手游服务端框架。 -* [GameServer4j](https://github.com/jzyong/GameServer4j):分布式Java游戏服务器,包括登录、网关、游戏演示。 -* [ZFoo](https://github.com/zfoo-project/zfoo):极快的企业服务器框架,可用于RPC、游戏服务器、Web服务器。 -* [IoGame](https://gitee.com/game-town/ioGame):IoGame是一个轻量级的网络编程框架,适用于网络游戏服务器、物联网、内部系统及各种需要长连接的场景。 -* [Socket.IO](https://github.com/scalecube/socketio):基于Netty的Socket.IO Java服务器,为了满足游戏性能要求而创建的。 -* [Apollo](https://github.com/apollo-rsps/apollo):Apollo是一个高性能、模块化的RuneScape模拟器,具有一系列用于管理数据文件和插件的实用程序。 -* [Noark](https://gitee.com/xiaoe/noark3):Noark是一个游戏服务器端框架,可快速开发出一个易维护、易扩展且稳定高能的游戏服务器。 -* [Carmelo](https://github.com/needmorecode/carmelo):Carmelo是一个快速、可扩展的Java服务器框架,专为在线游戏而设计。 -* [Okra](https://github.com/ogcs/Okra):Okra是一个简单的使用Java开发的高性能、高扩展、高并发、低延迟的服务器框架。 -* [Gamioo](https://github.com/jiangguilong2000/gamioo):游戏服务器框架,基于此框架,可以快速实现一个高可用、易维护、稳定、高性能的游戏服务器。 -* [TenIO](https://github.com/congcoi123/tenio):TenIO是一个用于创建多人在线游戏的开源项目,其中包括专门为多人游戏设计的基于Java NIO的服务器。 -* [Avalon](https://gitee.com/codeborker/Avalon):基于Akka的高性能可伸缩的Java网络游戏服务器,简单的单服务器开发与集群开发的切换。 - -## 即时通讯 - -* [Signal Server](https://github.com/signalapp/Signal-Server):Signal是一款开源、端到端加密的通讯应用程序,可用于发送文本、语音、图片和视频等多种形式的消息。 -* [TIMSDK](https://github.com/TencentCloud/TIMSDK):腾讯云聊天拥有全球接入、一对一聊天、群聊、消息推送、档案和关系链托管、账户认证等一整套解决方案。 -* [CIM](https://github.com/crossoverJie/cim):CIM是一款面向开发者的IM(即时通讯)系统,同时提供了一些组件帮助开发者构建一款属于自己可水平扩展的IM。 -* [野火IM](https://github.com/wildfirechat/im-server):野火IM是专业级的即时通讯和实时音视频整体解决方案,由北京野火无限网络科技有限公司维护和支持。 -* [Actor Platform](https://github.com/actorapp/actor-platform):Actor是一个即时通讯平台。 -* [MPush](https://github.com/mpusher/mpush):MPush是一款开源实时消息推送系统。 -* [NettyChat](https://github.com/FreddyChen/NettyChat):基于Netty + TCP + Protobuf实现的Android IM库。 -* [Turms](https://github.com/turms-im/turms):Turms是全球最先进的开源即时通讯引擎,支持100K~10M并发用户。 -* [InChat](https://github.com/AwakenCN/InChat):InChat是一个轻量级、高效、分布式的异步通信框架,支持聊天和物联网。 -* [Smack](https://github.com/igniterealtime/Smack):Smack是一个开源、高度模块化、易于使用的XMPP客户端库,用Java编写,适用于兼容Java SE的JVM和Android。 -* [J-IM](https://gitee.com/xchao/j-im):J-IM是用Java语言开发的轻量、高性能、单机支持几十万至百万在线用户IM。 -* [Openfire](https://github.com/igniterealtime/Openfire):Openfire是一个即时通信和群聊服务器,它是使用Java编写的XMPP服务器。 -* [CIM](https://gitee.com/farsunset/cim):CIM是一套完善的消息推送框架,可应用于信令推送,即时聊天,移动设备指令推送等领域。 -* [MobileIMSDK](https://github.com/JackJiang2011/MobileIMSDK):MobileIMSDK是一个原创多端IM通信层框架,轻量级、高度提炼,支持UDP + TCP + WebSocket三种协议。 -* [OIM](https://gitee.com/oimchat/oim-fx):OIM是一套即时通讯的聊天系统,可以用于公司内网、外网通讯、客服系统等。 -* [CometD](https://github.com/cometd/cometd):用于网络消息传递的可扩展Comet(服务器推送)实现。 -* [云信IM](https://github.com/netease-kit/nim-uikit-android):云信IM UIKit基于网易云信IM SDK开发的一款即时通讯UI组件库,包括聊天、会话、圈组、搜索、群管理等组件。 -* [QIQIIM](https://gitee.com/qiqiim/qiqiim-server):QIQIIM提供简单快捷的IM方案,可用于公司内网、外网通讯,客服系统等。 -* [Spark](https://github.com/igniterealtime/Spark):Spark是一款针对企业和组织进行优化的开源跨平台IM客户端。 -* [Gifsockets](https://github.com/videlalvaro/gifsockets):使用Gif动画作为传输的实时通信库。 -* [RongCloud Server SDK](https://github.com/rongcloud/server-sdk-java):Java版融云即时通讯服务器SDK。 -* [SONA](https://github.com/BixinTech/sona):SONA是一个由比心语音技术团队开发,用于快速搭建语音房产品的全端解决方案,支撑了比心聊天室、直播、游戏房等业务。 -* [Tencent Cloud IM Server SDK](https://github.com/doocs/qcloud-im-server-sdk-java):腾讯云IM服务端SDK Java版。 -* [Ant Media Server](https://github.com/ant-media/Ant-Media-Server):Ant Media Server是一款直播流引擎软件,通过使用WebRTC技术提供自适应、超低延迟流媒体,延迟约为0.5秒。 -* [Conversations](https://codeberg.org/iNPUTmice/Conversations):Conversations是适用于Android的开源XMPP/Jabber客户端。 -* [Xiaper](https://github.com/xiaper/xiaper):Xiaper是一款开源企业IM解决方案。 -* [盒子IM](https://gitee.com/bluexsx/box-im):盒子IM是一个仿微信实现的网页版聊天软件,不依赖任何第三方收费组件。 - -## 视频会议 - -* [BigBlueButton](https://github.com/bigbluebutton/bigbluebutton):BigBlueButton是一个开源虚拟教室,旨在帮助教师教学和学习者学习。 -* [Apache OpenMeetings](https://github.com/apache/openmeetings):Openmeetings提供视频会议、即时消息、白板、协作文档编辑和其他群件工具。 -* [OpenVidu Call](https://github.com/OpenVidu/openvidu-call):OpenVidu是一个方便在Web或移动应用程序中添加视频通话的平台。 - -## FTP服务器 - -* [MinimalFTP](https://github.com/Guichaguri/MinimalFTP):一个轻量级、简单的FTP服务器。 -* [Anomic](https://github.com/Orbiter/anomic_ftp_server):一个简单的FTP服务器。 -* [Primitive FTPd](https://github.com/wolpi/prim-ftpd):适用于Android的FTP服务器应用程序。 -* [SwiFTP](https://github.com/ppareit/swiftp):Android设备的FTP服务器。 - ## JakartaEE产品 * [Payara](https://github.com/payara/Payara):Payara Platform Community Edition提供用于开发项目的开源服务器运行时以及容器化Jakarta EE和MicroProfile应用程序。 @@ -2990,6 +2933,29 @@ permalink: /javalibs * [Insight Engineering Platform](https://github.com/Netflix/iep):主要由Netflix的Insight工程团队使用的一组基础库,用于支持需要在内部和外部运行的应用程序。 * [XWiki Commons](https://github.com/xwiki/xwiki-commons):XWiki Commons是其他几个顶级XWiki项目通用的技术库。 +## Bean映射&复制 + +* [MapStruct](https://github.com/mapstruct/mapstruct):MapStruct是一个Java注解处理器,用于为Java bean类生成类型安全且高性能的映射器。 +* [MapStruct Plus](https://github.com/linpeilie/mapstruct-plus):MapStruct Plus是对MapStruct框架的增强。 +* [Dozer](https://github.com/DozerMapper/dozer):Dozer是一种Java Bean到Java Bean映射器,它将数据从一个对象递归复制到另一个对象。 +* [ModelMapper](https://github.com/modelmapper/modelmapper):ModelMapper是一个智能对象映射库,可以自动将对象相互映射。 +* [Orika](https://github.com/orika-mapper/orika):Orika是一种Java Bean映射框架,可将数据从一个对象递归复制到另一个对象。 +* [EasyMapper](https://github.com/EasyMapper/EasyMapper):EasyMapper是一个易于使用的Java对象映射库,旨在简化表示域中对象的模型之间映射值的过程。 +* [JMapper](https://github.com/jmapper-framework/jmapper-core):JMapper是集优雅、高性能和稳健性于一体的Java Bean映射器。 +* [Apache Commons Beanutils](https://github.com/apache/commons-beanutils):Apache Commons BeanUtils提供了一个易于使用但灵活的反射和内省包装器。 +* [Apache Commons BeanUtils2](https://commons.apache.org/sandbox/commons-beanutils2/):BeanUtils2是Commons BeanUtils库的完全重写,它被设计为一种流式的API。 +* [Selma](https://github.com/xebia-france/selma):可以在编译时生成Java代码处理字段到字段映射的注解处理器。 +* [BeanMapper](https://github.com/42BV/beanmapper):Beanmapper是一个Java库,用于将不同的Java类映射为相似的名称。 +* [Tamper](https://github.com/alibaba/tamper):Tamper是一款处理Bean/Map进行属性复制映射的工具,支持递归、集合等深度映射,由阿里开源。 +* [ReMap](https://github.com/remondis-it/remap):ReMap简化了对象逐个字段的转换,并大大减少了单元测试映射器类的工作量。 +* [Bull](https://github.com/ExpediaGroup/bull):Bull是一种Java Bean到Java Bean转换器,通用、灵活、可重用、可配置,并且速度非常快,由Expedia开源。 +* [Datus](https://github.com/roookeee/datus):Datus能够在流式的函数式API中定义两个数据结构之间的转换过程。 +* [Crane4j](https://github.com/opengoofy/crane4j):一个简单易用的数据映射框架,通过简单的注解配置快速根据外键/编码值填充相关字段,支持字典、枚举、方法等多种数据源。 +* [Cloning](https://github.com/kostaskougios/cloning):Cloning是一个小型开源Java库,可深度克隆对象。 +* [BeanUtils](https://github.com/yangtu222/BeanUtils):BeanUtils库是一个Java bean复制实用程序,具有强大的功能和高性能。 +* [ShapeShift](https://github.com/krud-dev/shapeshift):ShapeShift是用于智能对象映射和对象之间转换的Kotlin/Java库。 +* [EasyMapper](https://github.com/neoremind/easy-mapper):EasyMapper是一个简单、轻量级、高性能的Java bean映射框架。 + ## 字符串工具库 * [Joda-Convert](https://github.com/JodaOrg/joda-convert):Joda-Convert是一个小型的、高度集中的库,提供对象和字符串之间的往返转换。 @@ -3059,46 +3025,6 @@ permalink: /javalibs * [AspectJX](https://github.com/HujiangTechnology/gradle_plugin_android_aspectjx):一个基于AspectJ并在此基础上扩展出来可应用于Android开发平台的AOP框架,可作用于Java源码,class文件及jar包,同时支持Kotlin应用,由沪江科技开源。 * [Proxy](https://github.com/Ericsson/proxy):一个小而强大的拦截库,可以让你在运行时操作现有的对象和类行为,由爱立信开源。 -## DSL - -* [Eclipse Xtend](https://github.com/eclipse/xtext-xtend):Eclipse Xtext是一个用于开发编程语言和DSL的框架。 -* [MyBatis Dynamic SQL](https://github.com/mybatis/mybatis-dynamic-sql):适用于Kotlin和Java的SQL DSL,支持MyBatis或Spring JdbcTemplate的渲染。 -* [JMeter DSL](https://github.com/abstracta/jmeter-java-dsl):使用JMeter作为引擎,以Git和程序员友好的方式运行性能测试的简单Java API。 -* [ElasticSearch SQL](https://github.com/iamazy/elasticsearch-sql):使用Antlr4将SQL解析为ElasticSearch DSL。 -* [JBBP](https://github.com/raydac/java-binary-block-parser):在Java和Android中处理二进制数据的最舒适和动态的方式。 -* [Neo4j Cypher DSL](https://github.com/neo4j-contrib/cypher-dsl):用于Cypher查询语言的Java DSL。 -* [Structurizr DSL](https://github.com/structurizr/dsl):此项目包含Structurizr DSL的实现-一种使用DSL基于C4 Model创建Structurizr软件架构模型的方法。 -* [DeepDSL](https://github.com/deepdsl/deepdsl):DeepDSL是一种嵌入在Scala中的DSL,用于编写深度学习网络应用程序。 -* [MontiCore](https://github.com/MontiCore/monticore):MontiCore是一个用于高效开发DSL的语言工作,它处理定义DSL的扩展语法格式并生成用于处理DSL文档的Java组件。 -* [Rosetta](https://github.com/REGnosys/rosetta-dsl):Rosetta是一种DSL,支持金融市场行业的操作流程建模。 -* [WebDSL](https://github.com/webdsl/webdsl):WebDSL是一种特定于领域的语言,用于使用丰富的数据模型对Web应用程序进行建模。 - -## JMX - -* [Simple JMX](https://github.com/j256/simplejmx):JMX Java库可帮助使用JMX和Web发布对象。 -* [JMXUtils](https://github.com/martint/jmxutils):让导出JMX mbean变得容易。 - -## RMI - -* [Dirmi](https://github.com/cojen/Dirmi):Dirmi是Java RMI的替代品,支持双向远程对象。 -* [JrPip](https://github.com/goldmansachs/jrpip):JrPip使用Java二进制序列化协议提供远程方法调用,由高盛银行开源。 -* [SerializationDumper](https://github.com/NickstaDB/SerializationDumper):一种以更易于理解的形式转储和重建Java序列化流和Java RMI数据包内容的工具。 - -## gRPC - -* [Wire](https://github.com/square/wire):适用于Android、Kotlin、Swift和Java的gRPC和协议缓冲区,Square开源。 -* [JProtobuf](https://github.com/jhunters/jprotobuf):JProtobuf是针对Java程序开发的一套简易类库,目的是简化Java语言对protobuf类库的使用,百度开源。 -* [Polyglot](https://github.com/grpc-ecosystem/polyglot):Polyglot是一个gRPC客户端,可以与任何gRPC服务器通信。 -* [Milkman](https://github.com/warmuuh/milkman):Postman的可扩展替代方案,用于制作各种请求,不仅适用于gRPC,还适用于HTTP、SQL等。 -* [Gatling-gRPC](https://github.com/phiSgr/gatling-grpc):gRPC的Gating负载测试插件 -* [Karate-gRPC](https://github.com/pecker-io/karate-grpc):提供使用Karate测试gRPC的通用方法。 -* [gRPC-Swagger](https://github.com/grpc-swagger/grpc-swagger):使用Swagger-UI调试gRPC应用程序。 -* [Mediator](https://github.com/ButterCam/Mediator):gRPC调试代理跨平台GUI。 -* [Google API Extensions Java](https://github.com/googleapis/gax-java):适用于Java的Google API扩展。 -* [gRPC-Java-Contrib](https://github.com/salesforce/grpc-java-contrib):grpc-java库的有用扩展。 -* [QuickBuffers](https://github.com/HebiRobotics/QuickBuffers):QuickBuffers是Google Protocol Buffers的Java实现,专为零分配环境中的低延迟用例而开发。 -* [Sisyphus](https://github.com/ButterCam/sisyphus):基于JVM的现代gRPC后端开发框架。 - ## 日志库 * [Apache Log4j](https://github.com/apache/logging-log4j1):Apache Log4j的初始版本,已经停止维护。 @@ -3824,6 +3750,7 @@ permalink: /javalibs * [ICEpdf](https://github.com/pcorless/icepdf):ICEpdf是一个纯Java PDF文档渲染和查看解决方案。 * [OrsonPDF](https://github.com/jfree/orsonpdf):OrsonPDF是一个适用于Java平台的PDF生成库,允许你使用标准Java2D绘图API(Graphics2D)创建PDF格式的内容。 * [ComPDFKit](https://github.com/ComPDFKit/compdfkit-api-java):ComPDFKit提供强大稳定的PDF库和完整的PDF功能来构建PDF查看器和编辑器,允许预览、编辑、注释、签名、加密和解密PDF文件。 +* [PDF Test](https://github.com/codeborne/pdf-test):PDF测试库。 #### Excel库 @@ -4993,29 +4920,6 @@ permalink: /javalibs * [Pug4j](https://github.com/neuland/pug4j):Pug4j的目的是能够在不需要JavaScript环境的情况下处理Java中的pug模板,同时与原始pug语法完全兼容。 * [JMTE](https://code.google.com/archive/p/jmte/):JMTE旨在填补使用String.format等基本Java类的简单字符串格式化与Velocity或StringTemplate等复杂模板解决方案之间的空白。 -## Bean映射&复制 - -* [MapStruct](https://github.com/mapstruct/mapstruct):MapStruct是一个Java注解处理器,用于为Java bean类生成类型安全且高性能的映射器。 -* [MapStruct Plus](https://github.com/linpeilie/mapstruct-plus):MapStruct Plus是对MapStruct框架的增强。 -* [Dozer](https://github.com/DozerMapper/dozer):Dozer是一种Java Bean到Java Bean映射器,它将数据从一个对象递归复制到另一个对象。 -* [ModelMapper](https://github.com/modelmapper/modelmapper):ModelMapper是一个智能对象映射库,可以自动将对象相互映射。 -* [Orika](https://github.com/orika-mapper/orika):Orika是一种Java Bean映射框架,可将数据从一个对象递归复制到另一个对象。 -* [EasyMapper](https://github.com/EasyMapper/EasyMapper):EasyMapper是一个易于使用的Java对象映射库,旨在简化表示域中对象的模型之间映射值的过程。 -* [JMapper](https://github.com/jmapper-framework/jmapper-core):集优雅、高性能和稳健性于一体的Java Bean映射器。 -* [Apache Commons Beanutils](https://github.com/apache/commons-beanutils):Apache Commons BeanUtils提供了一个易于使用但灵活的反射和内省包装器。 -* [Apache Commons BeanUtils2](https://commons.apache.org/sandbox/commons-beanutils2/):BeanUtils2是Commons BeanUtils库的完全重写,它被设计为一种流式的API。 -* [Selma](https://github.com/xebia-france/selma):可以在编译时生成Java代码处理字段到字段映射的注解处理器。 -* [BeanMapper](https://github.com/42BV/beanmapper):Beanmapper是一个Java库,用于将不同的Java类映射为相似的名称。 -* [Tamper](https://github.com/alibaba/tamper):Tamper是一款处理Bean/Map进行属性复制映射的工具,支持递归、集合等深度映射,由阿里开源。 -* [ReMap](https://github.com/remondis-it/remap):ReMap简化了对象逐个字段的转换,并大大减少了单元测试映射器类的工作量。 -* [Bull](https://github.com/ExpediaGroup/bull):Bull是一种Java Bean到Java Bean转换器,通用、灵活、可重用、可配置,并且速度非常快,由Expedia开源。 -* [Datus](https://github.com/roookeee/datus):Datus能够在流式的函数式API中定义两个数据结构之间的转换过程。 -* [Crane4j](https://github.com/opengoofy/crane4j):一个简单易用的数据映射框架,通过简单的注解配置快速根据外键/编码值填充相关字段,支持字典、枚举、方法等多种数据源。 -* [Cloning](https://github.com/kostaskougios/cloning):Cloning是一个小型开源Java库,可深度克隆对象。 -* [BeanUtils](https://github.com/yangtu222/BeanUtils):BeanUtils库是一个Java bean复制实用程序,具有强大的功能和高性能。 -* [ShapeShift](https://github.com/krud-dev/shapeshift):ShapeShift是用于智能对象映射和对象之间转换的Kotlin/Java库。 -* [EasyMapper](https://github.com/neoremind/easy-mapper):EasyMapper是一个简单、轻量级、高性能的Java bean映射框架。 - ## 脚本 * [Blaze](https://github.com/fizzed/blaze):用于JVM的快速、灵活、通用脚本和应用程序启动堆栈。 @@ -5772,6 +5676,68 @@ permalink: /javalibs * [OpenStack4j](https://github.com/openstack4j/openstack4j):OpenStack4j是一个流式的OpenStack客户端,允许配置和控制OpenStack部署。 * [TiKV Java Client](https://github.com/tikv/client-java):TiKV的Java客户端。 +## 游戏服务器 + +* [NettyGameServer](https://github.com/jwpttcg66/NettyGameServer):使用Netty 4.X实现的手机游戏分布式服务器,支持TCP、UDP、HTTP、WebSocket链接。 +* [JetServer](https://github.com/menacher/java-game-server):JetServer是一个基于高速NIO套接字的多人Java游戏服务器,使用Netty和Jetlang编写。 +* [Game Server](https://github.com/jzyong/game-server):分布式Java游戏服务器,包括集群管理服务器、网关服务器、大厅服务器、游戏逻辑服务器。 +* [Summer](https://github.com/SwingFrog/Summer):Summer是一个轻量级、一站式的Java游戏服务器框架,也可用于开发简单的Web服务。 +* [Mmorpg](https://github.com/kingston-csj/mmorpg):Mmorpg是一个用Java编写的分布式高性能mmorpg手游服务端框架。 +* [GameServer4j](https://github.com/jzyong/GameServer4j):分布式Java游戏服务器,包括登录、网关、游戏演示。 +* [ZFoo](https://github.com/zfoo-project/zfoo):极快的企业服务器框架,可用于RPC、游戏服务器、Web服务器。 +* [IoGame](https://gitee.com/game-town/ioGame):IoGame是一个轻量级的网络编程框架,适用于网络游戏服务器、物联网、内部系统及各种需要长连接的场景。 +* [Socket.IO](https://github.com/scalecube/socketio):基于Netty的Socket.IO Java服务器,为了满足游戏性能要求而创建的。 +* [Apollo](https://github.com/apollo-rsps/apollo):Apollo是一个高性能、模块化的RuneScape模拟器,具有一系列用于管理数据文件和插件的实用程序。 +* [Noark](https://gitee.com/xiaoe/noark3):Noark是一个游戏服务器端框架,可快速开发出一个易维护、易扩展且稳定高能的游戏服务器。 +* [Carmelo](https://github.com/needmorecode/carmelo):Carmelo是一个快速、可扩展的Java服务器框架,专为在线游戏而设计。 +* [Okra](https://github.com/ogcs/Okra):Okra是一个简单的使用Java开发的高性能、高扩展、高并发、低延迟的服务器框架。 +* [Gamioo](https://github.com/jiangguilong2000/gamioo):游戏服务器框架,基于此框架,可以快速实现一个高可用、易维护、稳定、高性能的游戏服务器。 +* [TenIO](https://github.com/congcoi123/tenio):TenIO是一个用于创建多人在线游戏的开源项目,其中包括专门为多人游戏设计的基于Java NIO的服务器。 +* [Avalon](https://gitee.com/codeborker/Avalon):基于Akka的高性能可伸缩的Java网络游戏服务器,简单的单服务器开发与集群开发的切换。 + +## 即时通讯 + +* [Signal Server](https://github.com/signalapp/Signal-Server):Signal是一款开源、端到端加密的通讯应用程序,可用于发送文本、语音、图片和视频等多种形式的消息。 +* [TIMSDK](https://github.com/TencentCloud/TIMSDK):腾讯云聊天拥有全球接入、一对一聊天、群聊、消息推送、档案和关系链托管、账户认证等一整套解决方案。 +* [CIM](https://github.com/crossoverJie/cim):CIM是一款面向开发者的IM(即时通讯)系统,同时提供了一些组件帮助开发者构建一款属于自己可水平扩展的IM。 +* [野火IM](https://github.com/wildfirechat/im-server):野火IM是专业级的即时通讯和实时音视频整体解决方案,由北京野火无限网络科技有限公司维护和支持。 +* [Actor Platform](https://github.com/actorapp/actor-platform):Actor是一个即时通讯平台。 +* [MPush](https://github.com/mpusher/mpush):MPush是一款开源实时消息推送系统。 +* [NettyChat](https://github.com/FreddyChen/NettyChat):基于Netty + TCP + Protobuf实现的Android IM库。 +* [Turms](https://github.com/turms-im/turms):Turms是全球最先进的开源即时通讯引擎,支持100K~10M并发用户。 +* [InChat](https://github.com/AwakenCN/InChat):InChat是一个轻量级、高效、分布式的异步通信框架,支持聊天和物联网。 +* [Smack](https://github.com/igniterealtime/Smack):Smack是一个开源、高度模块化、易于使用的XMPP客户端库,用Java编写,适用于兼容Java SE的JVM和Android。 +* [J-IM](https://gitee.com/xchao/j-im):J-IM是用Java语言开发的轻量、高性能、单机支持几十万至百万在线用户IM。 +* [Openfire](https://github.com/igniterealtime/Openfire):Openfire是一个即时通信和群聊服务器,它是使用Java编写的XMPP服务器。 +* [CIM](https://gitee.com/farsunset/cim):CIM是一套完善的消息推送框架,可应用于信令推送,即时聊天,移动设备指令推送等领域。 +* [MobileIMSDK](https://github.com/JackJiang2011/MobileIMSDK):MobileIMSDK是一个原创多端IM通信层框架,轻量级、高度提炼,支持UDP + TCP + WebSocket三种协议。 +* [OIM](https://gitee.com/oimchat/oim-fx):OIM是一套即时通讯的聊天系统,可以用于公司内网、外网通讯、客服系统等。 +* [CometD](https://github.com/cometd/cometd):用于网络消息传递的可扩展Comet(服务器推送)实现。 +* [云信IM](https://github.com/netease-kit/nim-uikit-android):云信IM UIKit基于网易云信IM SDK开发的一款即时通讯UI组件库,包括聊天、会话、圈组、搜索、群管理等组件。 +* [QIQIIM](https://gitee.com/qiqiim/qiqiim-server):QIQIIM提供简单快捷的IM方案,可用于公司内网、外网通讯,客服系统等。 +* [Spark](https://github.com/igniterealtime/Spark):Spark是一款针对企业和组织进行优化的开源跨平台IM客户端。 +* [Gifsockets](https://github.com/videlalvaro/gifsockets):使用Gif动画作为传输的实时通信库。 +* [RongCloud Server SDK](https://github.com/rongcloud/server-sdk-java):Java版融云即时通讯服务器SDK。 +* [SONA](https://github.com/BixinTech/sona):SONA是一个由比心语音技术团队开发,用于快速搭建语音房产品的全端解决方案,支撑了比心聊天室、直播、游戏房等业务。 +* [Tencent Cloud IM Server SDK](https://github.com/doocs/qcloud-im-server-sdk-java):腾讯云IM服务端SDK Java版。 +* [Ant Media Server](https://github.com/ant-media/Ant-Media-Server):Ant Media Server是一款直播流引擎软件,通过使用WebRTC技术提供自适应、超低延迟流媒体,延迟约为0.5秒。 +* [Conversations](https://codeberg.org/iNPUTmice/Conversations):Conversations是适用于Android的开源XMPP/Jabber客户端。 +* [Xiaper](https://github.com/xiaper/xiaper):Xiaper是一款开源企业IM解决方案。 +* [盒子IM](https://gitee.com/bluexsx/box-im):盒子IM是一个仿微信实现的网页版聊天软件,不依赖任何第三方收费组件。 + +## 视频会议 + +* [BigBlueButton](https://github.com/bigbluebutton/bigbluebutton):BigBlueButton是一个开源虚拟教室,旨在帮助教师教学和学习者学习。 +* [Apache OpenMeetings](https://github.com/apache/openmeetings):Openmeetings提供视频会议、即时消息、白板、协作文档编辑和其他群件工具。 +* [OpenVidu Call](https://github.com/OpenVidu/openvidu-call):OpenVidu是一个方便在Web或移动应用程序中添加视频通话的平台。 + +## FTP服务器 + +* [MinimalFTP](https://github.com/Guichaguri/MinimalFTP):一个轻量级、简单的FTP服务器。 +* [Anomic](https://github.com/Orbiter/anomic_ftp_server):一个简单的FTP服务器。 +* [Primitive FTPd](https://github.com/wolpi/prim-ftpd):适用于Android的FTP服务器应用程序。 +* [SwiFTP](https://github.com/ppareit/swiftp):Android设备的FTP服务器。 + ## 区块链 * [Web3j](https://github.com/web3j/web3j):Web3j是一个轻量级、高度模块化、响应式、类型安全的Java和Android库,用于处理智能合约并与以太坊网络上的客户端(节点)集成。 @@ -6006,6 +5972,46 @@ permalink: /javalibs * [SMSCGateway](https://github.com/RestComm/smscgateway):SMSC用于向移动运营商网络(GSM、SS7 MAP)、SMS聚合器(SMPP)和互联网电话服务提供商(SIP、SMPP)发送/接收SMS。 * [SMS](https://github.com/yunpian/sms):云通讯、国际短信、短信SDK。 +## DSL + +* [Eclipse Xtend](https://github.com/eclipse/xtext-xtend):Eclipse Xtext是一个用于开发编程语言和DSL的框架。 +* [MyBatis Dynamic SQL](https://github.com/mybatis/mybatis-dynamic-sql):适用于Kotlin和Java的SQL DSL,支持MyBatis或Spring JdbcTemplate的渲染。 +* [JMeter DSL](https://github.com/abstracta/jmeter-java-dsl):使用JMeter作为引擎,以Git和程序员友好的方式运行性能测试的简单Java API。 +* [ElasticSearch SQL](https://github.com/iamazy/elasticsearch-sql):使用Antlr4将SQL解析为ElasticSearch DSL。 +* [JBBP](https://github.com/raydac/java-binary-block-parser):在Java和Android中处理二进制数据的最舒适和动态的方式。 +* [Neo4j Cypher DSL](https://github.com/neo4j-contrib/cypher-dsl):用于Cypher查询语言的Java DSL。 +* [Structurizr DSL](https://github.com/structurizr/dsl):此项目包含Structurizr DSL的实现-一种使用DSL基于C4 Model创建Structurizr软件架构模型的方法。 +* [DeepDSL](https://github.com/deepdsl/deepdsl):DeepDSL是一种嵌入在Scala中的DSL,用于编写深度学习网络应用程序。 +* [MontiCore](https://github.com/MontiCore/monticore):MontiCore是一个用于高效开发DSL的语言工作,它处理定义DSL的扩展语法格式并生成用于处理DSL文档的Java组件。 +* [Rosetta](https://github.com/REGnosys/rosetta-dsl):Rosetta是一种DSL,支持金融市场行业的操作流程建模。 +* [WebDSL](https://github.com/webdsl/webdsl):WebDSL是一种特定于领域的语言,用于使用丰富的数据模型对Web应用程序进行建模。 + +## JMX + +* [Simple JMX](https://github.com/j256/simplejmx):JMX Java库可帮助使用JMX和Web发布对象。 +* [JMXUtils](https://github.com/martint/jmxutils):让导出JMX mbean变得容易。 + +## RMI + +* [Dirmi](https://github.com/cojen/Dirmi):Dirmi是Java RMI的替代品,支持双向远程对象。 +* [JrPip](https://github.com/goldmansachs/jrpip):JrPip使用Java二进制序列化协议提供远程方法调用,由高盛银行开源。 +* [SerializationDumper](https://github.com/NickstaDB/SerializationDumper):一种以更易于理解的形式转储和重建Java序列化流和Java RMI数据包内容的工具。 + +## gRPC + +* [Wire](https://github.com/square/wire):适用于Android、Kotlin、Swift和Java的gRPC和协议缓冲区,Square开源。 +* [JProtobuf](https://github.com/jhunters/jprotobuf):JProtobuf是针对Java程序开发的一套简易类库,目的是简化Java语言对protobuf类库的使用,百度开源。 +* [Polyglot](https://github.com/grpc-ecosystem/polyglot):Polyglot是一个gRPC客户端,可以与任何gRPC服务器通信。 +* [Milkman](https://github.com/warmuuh/milkman):Postman的可扩展替代方案,用于制作各种请求,不仅适用于gRPC,还适用于HTTP、SQL等。 +* [Gatling-gRPC](https://github.com/phiSgr/gatling-grpc):gRPC的Gating负载测试插件 +* [Karate-gRPC](https://github.com/pecker-io/karate-grpc):提供使用Karate测试gRPC的通用方法。 +* [gRPC-Swagger](https://github.com/grpc-swagger/grpc-swagger):使用Swagger-UI调试gRPC应用程序。 +* [Mediator](https://github.com/ButterCam/Mediator):gRPC调试代理跨平台GUI。 +* [Google API Extensions Java](https://github.com/googleapis/gax-java):适用于Java的Google API扩展。 +* [gRPC-Java-Contrib](https://github.com/salesforce/grpc-java-contrib):grpc-java库的有用扩展。 +* [QuickBuffers](https://github.com/HebiRobotics/QuickBuffers):QuickBuffers是Google Protocol Buffers的Java实现,专为零分配环境中的低延迟用例而开发。 +* [Sisyphus](https://github.com/ButterCam/sisyphus):基于JVM的现代gRPC后端开发框架。 + ## Raft算法 * [SOFAJRaft](https://github.com/sofastack/sofa-jraft):SOFAJRaft是基于RAFT一致性算法的生产级高性能Java实现,支持MULTI-RAFT-GROUP,适用于高负载、低延迟的场景,由蚂蚁开源。 @@ -6827,6 +6833,7 @@ permalink: /javalibs * [LinkAgent](https://github.com/shulieTech/LinkAgent):LinkAgent是一个基于Java的开源代理,旨在通过JVM字节码收集Java应用程序的数据和控制功能,而无需修改应用程序代码。 * [Joylive Agent](https://github.com/jd-opensource/joylive-agent):用于多活(单元)场景下流量治理的Java字节码增强框架,由京东开源。 * [RelProxy](https://github.com/jmarranz/relproxy):RelProxy是一个简单的Java和Groovy热类重加载器,适用于Java和Groovy,提供透明的动态编译和类重新加载,以及纯Java代码的脚本支持和Shell。 +* [File Leak Detector](https://github.com/jenkinsci/lib-file-leak-detector):File Leak Detector是一个小型Java代理,可以跟踪在JVM中打开文件的位置/时间/人员。 ## 类加载 @@ -7715,6 +7722,10 @@ permalink: /javalibs * [OpenDCS](https://github.com/opendcs/opendcs):水文/气象数据开放数据采集系统。 * [Vortex](https://github.com/HydrologicEngineeringCenter/Vortex):Vortex是针对水文工程中心应用程序的数据处理实用程序的集合,例如HEC-HMS、HEC-RAS。 +## 物理库 + +* [FreeHEP](https://java.freehep.org/):FreeHEP库的目标是鼓励高能物理领域Java代码的共享和重用,由SLAC国家加速器实验室开源。 + ## 无人机 * [RosettaDrone](https://github.com/RosettaDrone/rosettadrone):RosettaDrone是一个用于开发和测试DJI无人机软件的框架。