# getty **Repository Path**: loadingwork/getty ## Basic Information - **Project Name**: getty - **Description**: 一个完全基于java 实现的,长得有点像netty的aio网络框架 - **Primary Language**: Java - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 64 - **Created**: 2020-01-03 - **Last Updated**: 2020-12-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # getty 一个完全基于java 实现的aio框架。 ### 简介 1、getty是完全基于java nio封装的高性能网络框架。 2、getty可在项目中使用,也可以用于帮助你更好的学习java aio 3、getty完全开源,基于 Apache License 2.0 开源协议。 4、getty的目的是为了降低对java socket nio的使用成本,帮助提高工作效率。 5、欢迎大家提供建议或者提交代码分支帮助getty更好的完善提高,如果觉得getty对你有帮助,希望给一个start鼓励一下 ### getty名称的由来 取名getty主要是作者过去使用netty比较多,对netty表示尊敬,以及getty本身借鉴了netty的设计思想。 然后作者本人姓氏的拼音首字符是“G”,因而取名getty。 ### 说说写这个框架的原因: 1、作者本人是一名码农,平时比较喜欢研究代码,特别是网络通讯方面。 2、JDK1.7升级了NIO类库,升级后的NIO类库被称为NIO 2.0。正式提供了异步文件I/O操作,同时提供了与UNIX网络编程事件驱动I/O对应的AIO。AIO的发布使得实现一套网络通讯框架变得相对简单。 3、本人对netty比较喜欢,无论是其性能还是编程思想(JBOSS提供的一个java开源网络框架,可以说是java网络通讯里的一哥,极其稳定和强大的性能使得被广泛使用) 4、有了netty为何还要自己造轮子?这里有两个原因,其一是本人就喜欢造轮子,这是病,改不了。其二,netty经过多年的发展,其生态体系已经比较庞大,导致其代码比较臃肿,再者其高深的设计哲学我等凡夫俗子很难悟其精髓。因而索性造一个。 5、netty毕竟是老外的东西。并且国内也有许多优秀的开源框架,例如t-io、smark-socket也是非常优秀的网络框架。想想,为何不能直接搞一个呢,于是抽业余时间写了getty。 ### getty的特点: 1、完全基于java nio2封装,整体代码代码结构很轻量,也非常简单易用。 2、借鉴了netty和其他框架的部分优秀设计思想,如责任链、内存池化、零拷贝等优秀的设计模式。拥有媲美netty的高效性能(有自卖自夸嫌疑 :joy: )。 3、提供了常用的多个插件(String处理器,protobuf消息处理器,心跳超时处理器、ip过滤等)满足大部分开发场景。 4、getty可直接在安卓环境中使用(api 26+ 或 android 8.0+) 5、getty同时提供了TCP和UDP的支持,并且使用方式几乎一致,大大提高了易用性。 5、handler处理器支持使用过程中的热拔插设计,各处理器可以灵活组合,。 6、框架拥有非常好的拓展性,处理器拓展非常简单,大大降低了开发成本 7、高效的性能和靠谱的稳定性,在使用过程中得到了很好的验证 8、与netty结合使用。使用过程与netty非常类似,只要有netty是使用经验,使用getty几乎不需要额外学习。 ### 简单使用 **Maven** 在项目的pom.xml的dependencies中加入以下内容: ``` com.gettyio getty-core 1.2.0 ``` **Gradle** ``` compile group: 'com.gettyio', name: 'getty-core', version: '1.2.0' ``` **非Maven项目** 可直接到中央仓库下载jar包导入到工程中 链接:https://mvnrepository.com/artifact/com.gettyio/getty-core [点击跳转到中央仓库](https://mvnrepository.com/artifact/com.gettyio/getty-core) ### 更多详情与文档 更多详情,请点击 **wiki文档** :[跳转到wiki](https://gitee.com/kokjuis/getty/wikis/pages) ### 提供bug反馈或建议 - [码云Gitee issue](https://gitee.com/kokjuis/getty/issues) - [Github issue](https://github.com/gogym/getty/issues) ### create by **gogym** **email:189155278@qq.com**