Hyperion: 一个支持自定义编解码器的TCP通信框架

特性

  1. 支持自定义编解码器
  2. 高效的ByteBuffer实现,降低请求处理过程中数据拷贝
  3. 自带连接池支持,支持连接重建、连接空闲超时
  4. 易于扩展,可以积木式添加IoFilter处理入栈、出栈消息

组件

  1. hyperion.buffer: 支持扩容的ByteBuffer实现
  2. hyperion.logadapter:支持打印异常堆栈的日志实现,可以适配第三方日志系统
  3. hyperion.objectpool:对象池实现
  4. hyperion.threadpool:线程池实现
  5. hyperion.transport:支持自定义编解码器的TCP通信框架

Redis仓颉语言客户端SDK:[redis-sdk]项目使用了该TCP框架,并实现了RESP2、RESP3协议的编解码。
ActiveMQ仓颉语言客户端SDK:acitvemq4cj项目使用了该TCP框架。

1. 编译和测试

工程目录结构

|---samples  使用Hyperion TCP框架的示例目录
|---src      Hyperion TCP框架的源码目录
|---module.json
|---README.md

1.1 编译步骤

清理工程,在工程根目录下运行:
$> cjpm clean

编译工程,在工程根目录下运行:
$> cjpm build

编译的静态库位于:
build/release/hyperion/hyperion.buffer.cjo
build/release/hyperion/hyperion.logadapter.cjo
build/release/hyperion/hyperion.objectpool.cjo
build/release/hyperion/hyperion.threadpool.cjo
build/release/hyperion/hyperion.transport.cjo

1.2 单元测试

在工程根目录下运行:
$> cjpm test

1.3 运行示例程序

编译服务端示例程序,在samples/echo_server目录下运行:
$> cjpm build

启动服务端,在samples/echo_server目录下运行:
$>./build/release/bin/main

编译客户端示例程序,在samples/echo_client目录下运行:
$> cjpm build

启动服务端,在samples/echo_client目录下运行:
$>./build/release/bin/main

Logo

社区规范:仅讨论OpenHarmony相关问题。

更多推荐