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