smart-socket 是一个 AIO 通信框架,可以快速、轻松地开发 Client/Server 网络应用程序。它大大简化了网络编程难度和复杂度,可广泛应用与各类TCP/UDP的通信场景。
smart-socket 是从许多协议(Http、WebSocket、MQTT、二进制私有协议)的实践中积累了大量宝贵经验,从而凝练成了一款极简、易用、高性能的通信框架。
极简
- 支持各种传输类型、协议,且仅围绕着两大核心接口(MessageProcessor、Protocol)编程开发。
- 灵活且可扩展的状态机设计,可以清晰地分离关注点。
- 核心包代码 1457 行,编译后的jar包仅 41 KB(如果对此无明显感触,可以比较其他同类项目)。
易用
- 文档丰富的 Javadoc 、用户指南和示例。
- 没有额外的依赖,只要求JDK 8及以上版本。
- 高度可定制化的插件。已内置一些非常实用且开箱即用的插件:SSL/TLS通信、心跳、断链重连、服务指标统计、黑名单、内存池监测。
高性能
- 更好的吞吐量,更低的延迟
- 更少的资源消耗
- 最尽肯能减少不必要的内存拷贝
更新内容
- 内存池算法优化:精简代码,提升回收效率;
- 优化缓冲区 WriteBuffer,减少一次入队出队操作,提升 I/O 性能;
- WriteBuffer 支持 long 类型数据输出;
- 编码优化:引入 Java 8 的新特性;减少调用栈深度;checkstyle 问题处理;
- UDP 相关的一点小优化;
- 擦除 AioSession 的泛型设计,修复早期接口设计层面的缺陷(不兼容老版本)。
Maven
<dependency>
<groupId>org.smartboot.socket</groupId>
<artifactId>aio-core</artifactId>
<version>1.5.0</version>
</dependency>