- 授权协议: Apache
- 开发语言: Java
- 操作系统: 跨平台
- 软件首页: https://git.oschina.net/darks/darks-codec
- 软件文档: https://git.oschina.net/darks/darks-codec
软件介绍
Darks Codec是一个轻量级的通信消息协议编解码框架。它支持将JAVA对象与绝大部分基于字节的消息协议之间进行互相转换,以此协助开发人员便捷有效的快速构建消息协议,并为TCP粘包断包等问题提供了有效的解决方案。它能让开发人员从消息协议的实现中解脱出来,让其更多的关注于消息通信协议的设计及优化,以便让软件消息通信的整体设计更加完善。
一、配置方便快捷
只需要几行参数设置便能实现基础的消息协议。例如一个基于LITTLE-ENDIAN的协议:
FB FA [ID 32bits] [VERSION 8bits] [COMMAND] FF
只需简单构建JAVA对象
public class SimpleMsg
{
int id;
byte version;
String command;
}
并在编码时配置
ObjectCoder coder = new ObjectCoder(); coder.getCodecConfig().setEndianType(EndianType.LITTLE); coder.getCodecConfig().addWrap(new IdentifyWrapper(new OCInt16(0xFAFB), new OCInt8(0xFF)));
SimpleMsg msg = new SimpleMsg(); msg.id = 32; msg.version = 1; msg.command = "running"; byte[] bytes = coder.encode(msg);
此编码会输出
FB FA 20 00 00 00 01 72 75 6E 6E 69 6E 67 FF
以上简单例子列举了增加前置及后置标识位的代码。详细文档请参见官网。
二、支持多种编码策略
Darks Codec可以对消息数据进行一种或同时多种封装处理。
支持对消息数据进行前置或后置标识的封装处理。
支持对消息数据进行校验码添加。例如CRC16、ADLER32、CRC32、自定义校验等。
支持针对较大的消息数据进行压缩处理。例如GZIP、JZLIB、BZIP、自定义压缩等。
支持针对机密消息数据进行加密处理。例如AES、RSA、BASE64、自定义加密等。
支持对消息数据总长度添加封装。
在后续的开发中,会支持新的序列化方式以替代JAVA序列化数据过于冗余庞大的问题。
The Art of UNIX Programming
Eric S. Raymond / Addison-Wesley / 2003-10-3 / USD 54.99
Writing better software: 30 years of UNIX development wisdom In this book, five years in the making, the author encapsulates three decades of unwritten, hard-won software engineering wisdom. Raymond b......一起来看看 《The Art of UNIX Programming》 这本书的介绍吧!
