QDAC是由QDAC开发组为大家提供的一套Delphi/C++Builder跨平台开源组件库,名称取自英文QuickDataAccessComponents的首字母。它支持Delphi/C++Builder2007以上的版本的开发环境,目标是为大家提供一套高效稳定的跨平台快速数据访问组件,替代系统实现的低效组件。
既然是快速数据访问组件,QDAC对速度会比较重视,但出于跨平台的考虑,QDAC是用纯Pascal源码编写,没有使用任何汇编代码,所以性能上,理论上不会比使用纯汇编优化的版本强,但也远远高于一般的实现。同时,QDAC也很重视稳定性,希望大家多多参与测试,保证在速度优化的同时,稳定性上不会存在问题。
QDAC项目目前包含以下组件(QDB、QSocket、QScript目前未完成):
QWorker
QWorker是一个基于作业视角的跨平台并行编程框架,提供丰富的功能和接口。进一步了解可以浏览 QWorker专题 。
QJson
QJson是一套快速方便,兼容性好的JSON格式跨平台管理单元,提供丰富功能的接口支持。与SuperObject等方案相比,速度更胜一筹。进一步了解可以浏览 QJson专题 的内容。
QXML
QXML是一套快速方便,兼容性好的XML格式跨平台管理单元,提供丰富功能的接口支持。与NativeXML等方案相比,速度更胜一筹。更详细的信息,可以参考源码中相关注释说明。
QMsgPack
QMsgPack是一套快速方便,兼容性好的MessagePack 协议跨平台管理单元,提供丰富功能的接口支持,并完整支持MessagePack协议的扩展数据类型。速度依然很快,而且是目前Delphi下最完整的MessagePack协议实现。进一步了解可以浏览 QMsgPack专题 的内容。
QLog
QLog是一套跨平台的异步日志记录单元,支持Linux标准的SyslogD协议。通过采用异步方式,将对程序速度的影响降低到最低。具备日志自动分卷压缩功能。
QMacros
QMacros是一套跨平台的模板替换库,与原始的StringReplace函数相比,要替换的内容越多,性能优势越明显。具体相关内容可以查看QMacros专题 。
QAES
QAES是一套跨平台的Delphi原生AES加密实现,封装的接口更加简单易用。更详细的信息,可以参考源码中相关注释说明。
QDigest
QDigest是一套跨平台的Delphi原生MD5和SHA哈希摘要实现,同时也封装了简单易用的各种接口。更详细的信息,可以参考源码中相关注释说明。
QMemStatics
QMemStatics是一套Windows下的内存分配分析工具,用于统计内存中不同尺寸的内存块分配情况,方便用户在设计服务程序时,合理的规划设计对象池的类型及大小。
QRBTree
QRBTree包含了红黑树和哈希桶的Delphi实现,这两类数据结构的信息,请自行百度。本项目中许多单元如QWorker都引用了QRBTree单元。
QSimplePool
QSimple提供一个简单的池实现,可以用于内存池和对象池。
QPlugin
QPlugin是由群友冰晰空气为大家带来的一套开源插件框架,目前暂时只支持Windows平台,将来会融合天地弦的MyBean等开源框架思想和模式,形成跨平台的开源Delphi插件框架。
QDB
QDB用于提供一套开源的跨平台数据库直接访问解决方式,计划支持SQLite、PostgreSQL、MSSQL、Oracle、MySQL等常见数据库在跨平台直接访问。同时提供的TQDataSet会提供丰富复制、克隆、过滤、分组、导入、导出等接口的支持。目前该部分正在开发中,预计2015年初能够投入内测中。
QSocket
QSocket用于提供一套开源的跨平台网络通讯支持框架,在Windows下将基于IOCP,在Andriod下将基于EPoll,在OSX/iOS中将基于KQueue技术架构,同时会提供P2P和基于UDP的可靠网络传输实现(模拟TCP)。QSocket还将提供和QWorker的信号相结合的网络信号解决方案,支持远程触发广播特定的信号。目前该框架在规划中,计划2015年投入开发和测试中。
QScript
QScript用于提供一套高效的开源跨平台脚本解释引擎框架实现,目标是实现真编译环境50%以上的效率。但目前该框架同样只是在规划中,计划2016年投入研发。
评论