DirectStruct 正在参加 2020 年度 OSC 中国开源项目评选,请投票支持!
DirectStruct 在 2020 年度 OSC 中国开源项目评选 中已获得 {{ projectVoteCount }} 票,请投票支持!
投票让它出道
已投票
授权协议 LGPL
开发语言 C/C++ 查看源码 »
操作系统 跨平台
软件类型 开源软件
所属分类 程序开发常用工具包
开发厂商
地区 国产
提 交 者 calvinwilliams
适用人群 未知
收录时间 2014-08-31

软件简介

DirectStruct是一个强有力的代码自动生成工具,它可以自动生成C结构体与XML、JSON、二进制(带压缩)等报文之间的转换代码,还能自动生成ESQL代码片段,在应用中直接使用自动化代码以提高开发效率,避免开发冗余和手工编码风险。

DirectStruct生成了哪些自动化代码?

  • C结构体定义
  • 批量初始化缺省值函数
  • 网络/主机字节序化函数
  • 二进制序列化/反序列化函数(可带压缩)
  • XML序列化/反序列化函数(依赖开源库fasterxml)
  • JSON序列化/反序列化函数(依赖开源库fasterjson)
  • 嵌入式SQL代码
  • 打印结构体内所有字段值函数

用DirectStruct自动生成的代码能干什么?

  • 直接C结构体通讯交换 : 在特定平台之间直接把C结构体变量通过TCP扔给对方是一个很诱人的想法,阻碍我们的主要是整型字段的字节序问题,手工编码是一件冗余的事情,DirectStruct可以帮助你自动化这一过程。解决了字节序问题后就可以直接交换报文,避免了通讯发送前的打包和通讯接收后的解包,所以速度非常快,是某些追求极端性能的场景中的首选报文格式。
  • 结构体序列化/反序列化 : 使用DirectStruct自动生成的序列化/反序列化函数,可以将C结构体打包成二进制报文或XML报文或JSON报文等,以及反向解包,是的,打包解包函数自动生成,省却了你不少麻烦吧。二进制报文如果启用了压缩选项,压缩后的二进制数据块大幅缩小,更便于通讯高效交换。
  • 基于嵌入式SQL的数据库映射接口的代码自动化生成
  • 快速打印结构体内所有字段值 : 对于一个大结构,编写他的打印所有字段值的函数是一件很无聊的事情,你可以用DirectStruct帮助你自动生成日志函数,输出到屏幕,或你自己的日志流中。

为什么使用DirectStruct?

  • 灵活的报文定义语法 : 命令行工具dsc读入定义文件,生成自动化代码,支持子结构嵌套、子结构数组、定义文件包含等灵活配置方式。
  • 跨平台:DirectStruct支持WINDOWS、Linux、AIX等主流操作系统,尤其是多平台中不同的表达方法,如64位整型,相同的IDL定义文件将生成不同平台的标准。

性能压测

压测结论:

  • DirectStruct序列化(带压缩)后的报文大小66字节,而Google Protocol Buffer为72字节,DirectStruct在序列化和压缩报文大小上险胜。
  • DirectStruct反复序列化/反序列化(带压缩)1000万次总耗时1.080s,而Google Protocol Buffer总耗时4.248s,DirectStruct在序列化性能上完胜。
  • DirectStruct编译客户应用代码时不需要额外的头文件和库文件,只需要工具dsc生成的IDL_AllTypes2.dsc.c、IDL_AllTypes2.dsc.h即可,而Google Protocol Buffer不仅需要PressProtobuf.pb.cc、PressProtobuf.pb.h,还需要/usr/local/include/google/protobuf下的一大堆头文件以及/usr/local/lib/libprotobuf.a(9MB),还依赖于-lpthread,编译环境复杂。
展开阅读全文

代码

的 Gitee 指数为
超过 的项目

评论 (2)

加载中
asn.1 ?
2017/02/04 15:25
回复
举报
怎么变成404了。。。 DirectStruct
2014/09/04 12:49
回复
举报
更多评论
发表了资讯
2015/03/14 00:00

DirectStruct 更新至 v1.3.0,C 结构体工具

ver 1.3.0 2015-03-14 calvin * 修正了SQL条件为<>,<=,>=时的ec自动代码生成问题 * 把dsc命令行参数包含pqsql改成pgsql * 把dsc命令行参数-sql拆成-sql-pgsql,-sql-oracle * 新增JSON紧缩风格的序列化函数 * 新增XML紧缩风格的序列化函数 ---------------------------------------------------------- 1.概述 DirectStru...

2
25
发表了资讯
2014/10/13 00:00

DirectStruct 更新至 v1.1.2,代码自动生成工具

ver 1.1.2 2014-10-10 calvin * ESQL新增自动生成SQLACTION代码 * 修正了XML、JSON序列化/反序列化函数中的一个BUG ver 1.1.1 2014-10-07 calvin * 新增综合示例 test_client,test_server * 新增综合示例 test_db2json ---------------------------------------------- DirectStruct是一个强有力的代码自动生成工具,它可...

0
28
发表了资讯
2014/10/08 00:00

C结构体工具 DirectStruct 更新至 v1.1.0

ver 1.1.1 2014-10-07 calvin * 新增综合示例 test_client,test_server * 新增综合示例 test_db2json ver 1.1.0 2014-09-20 calvin * 新增自动生成代码 : XML序列化/反序列化函数 * 新增自动生成代码 : JSON序列化/反序列化函数 * 新增自动生成代码 : ESQL代码 DirectStruct - C结构体工具 1.概述 DirectStruct是一个强有...

3
62
发表了资讯
2014/09/09 00:00

[开源]DirectStruct - C结构体工具 更新至v1.0.4

ver 1.0.4 2014-09-09 calvin * 修正了AIX上的编译问题 * 修正了浮点数的字节序问题 * 优化了自动生成代码的布局 * 自动生成代码前的工具版本信息 DirectStruct是一个C结构体工具,命令行工具dsc读入IDL定义文件,自动生成C结构体定义及常用函数代码,在应用中直接使用自动化代码以提高开发效率,避免开发冗余和编码风险...

0
33
发表了资讯
2014/09/08 00:00

[开源] DirectStruct v1.0.3 发布- C 结构体工具

DirectStruct - C结构体工具 1.概述 DirectStruct是一个C结构体工具,命令行工具dsc读入IDL定义文件,自动生成C结构体定义及常用函数代码,在应用中直接使用自动化代码以提高开发效率,避免开发冗余和编码风险。 DirectStruct生成了哪些自动化代码? * C结构体定义 * 批量初始化缺省值函数 * 网络/主机字节序化函数 * 序...

0
26
没有更多内容
加载失败,请刷新页面
点击加载更多
加载中
下一页
2014/10/08 21:29

C结构体工具DirectStruct(综合示例二)

综合示例二演示了应用从数据库表里读出一条记录,用DirectStruct自动生成的JSON转换函数打包成JSON报文,写入磁盘文件。通过示例,你可以看到中间的绝大多数令人头痛的代码都可以通过DirectStruct自动生成,这使得实际要编写的应用代码变得简洁和高效。

0
11
发表于服务端专区
2014/10/08 21:22

C结构体工具DirectStruct(综合示例一)

综合示例一演示了客户端把一个C结构体变量打包成XML报文,通过TCP发送给服务端,服务端解包XML报文成C结构体变量,然后通过ESQL方式登记到数据库表中。通过示例,你可以看到中间的绝大多数令人头痛的代码都可以通过DirectStruct自动生成,这使得实际要编写的应用代码变得简洁和高效。

0
1
没有更多内容
加载失败,请刷新页面
点击加载更多
加载中
下一页
暂无内容
2 评论
95 收藏
分享
返回顶部
顶部