QDACDelphi開(kāi)源組件庫(kù)
QDAC 是由 QDAC 開(kāi)發(fā)組為大家提供的一套 Delphi/C++ Builder 跨平臺(tái)開(kāi)源組件庫(kù),名稱取自英文 Quick Data Access Components 的首字母。它支持 Delphi/C++ Builder 2007 以上的版本的開(kāi)發(fā)環(huán)境,目標(biāo)是為大家提供一套高效穩(wěn)定的跨平臺(tái)快速數(shù)據(jù)訪問(wèn)組件,替代系統(tǒng)實(shí)現(xiàn)的低效組件。
既然是快速數(shù)據(jù)訪問(wèn)組件,QDAC 對(duì)速度會(huì)比較重視,但出于跨平臺(tái)的考慮,QDAC 是用純 Pascal 源碼編寫,沒(méi)有使用任何匯編代碼,所以性能上,理論上不會(huì)比使用純匯編優(yōu)化的版本強(qiáng),但也遠(yuǎn)遠(yuǎn)高于一般的實(shí)現(xiàn)。同時(shí),QDAC 也很重視穩(wěn)定性,希望大家多多參與測(cè)試,保證在速度優(yōu)化的同時(shí),穩(wěn)定性上不會(huì)存在問(wèn)題。
QDAC 項(xiàng)目目前包含以下組件(QDB、QSocket、QScript 目前未完成):
QWorker
QWorker 是一個(gè)基于作業(yè)視角的跨平臺(tái)并行編程框架,提供豐富的功能和接口。進(jìn)一步了解可以瀏覽 QWorker 專題 。
QJson
QJson 是一套快速方便,兼容性好的 JSON 格式跨平臺(tái)管理單元,提供豐富功能的接口支持。與 SuperObject 等方案相比,速度更勝一籌。進(jìn)一步了解可以瀏覽 QJson 專題 的內(nèi)容。
QXML
QXML 是一套快速方便,兼容性好的 XML 格式跨平臺(tái)管理單元,提供豐富功能的接口支持。與 NativeXML 等方案相比,速度更勝一籌。更詳細(xì)的信息,可以參考源碼中相關(guān)注釋說(shuō)明。
QMsgPack
QMsgPack 是一套快速方便,兼容性好的 Message Pack 協(xié)議跨平臺(tái)管理單元,提供豐富功能的接口支持,并完整支持 Message Pack 協(xié)議的擴(kuò)展數(shù)據(jù)類型。速度依然很快,而且是目前 Delphi 下最完整的 Message Pack 協(xié)議實(shí)現(xiàn)。進(jìn)一步了解可以瀏覽 QMsgPack 專題 的內(nèi)容。
QLog
QLog 是一套跨平臺(tái)的異步日志記錄單元,支持Linux 標(biāo)準(zhǔn)的 SyslogD 協(xié)議。通過(guò)采用異步方式,將對(duì)程序速度的影響降低到最低。具備日志自動(dòng)分卷壓縮功能。
QMacros
QMacros 是一套跨平臺(tái)的模板替換庫(kù),與原始的 StringReplace 函數(shù)相比,要替換的內(nèi)容越多,性能優(yōu)勢(shì)越明顯。具體相關(guān)內(nèi)容可以查看QMacros 專題 。
QAES
QAES 是一套跨平臺(tái)的 Delphi 原生 AES 加密實(shí)現(xiàn),封裝的接口更加簡(jiǎn)單易用。更詳細(xì)的信息,可以參考源碼中相關(guān)注釋說(shuō)明。
QDigest
QDigest 是一套跨平臺(tái)的 Delphi 原生 MD5 和 SHA 哈希摘要實(shí)現(xiàn),同時(shí)也封裝了簡(jiǎn)單易用的各種接口。更詳細(xì)的信息,可以參考源碼中相關(guān)注釋說(shuō)明。
QMemStatics
QMemStatics 是一套 Windows 下的內(nèi)存分配分析工具,用于統(tǒng)計(jì)內(nèi)存中不同尺寸的內(nèi)存塊分配情況,方便用戶在設(shè)計(jì)服務(wù)程序時(shí),合理的規(guī)劃設(shè)計(jì)對(duì)象池的類型及大小。
QRBTree
QRBTree 包含了紅黑樹(shù)和哈希桶的 Delphi 實(shí)現(xiàn),這兩類數(shù)據(jù)結(jié)構(gòu)的信息,請(qǐng)自行百度。本項(xiàng)目中許多單元如 QWorker 都引用了 QRBTree 單元。
QSimplePool
QSimple 提供一個(gè)簡(jiǎn)單的池實(shí)現(xiàn),可以用于內(nèi)存池和對(duì)象池。
QPlugin
QPlugin 是由群友 冰晰空氣 為大家?guī)?lái)的一套開(kāi)源插件框架,目前暫時(shí)只支持 Windows 平臺(tái),將來(lái)會(huì)融合 天地弦 的 MyBean 等開(kāi)源框架思想和模式,形成跨平臺(tái)的開(kāi)源 Delphi 插件框架。
QDB
QDB 用于提供一套開(kāi)源的跨平臺(tái)數(shù)據(jù)庫(kù)直接訪問(wèn)解決方式,計(jì)劃支持 SQLite、 PostgreSQL、MSSQL、Oracle、MySQL 等常見(jiàn)數(shù)據(jù)庫(kù)在跨平臺(tái)直接訪問(wèn)。同時(shí)提供的 TQDataSet 會(huì)提供豐富復(fù)制、克隆、過(guò)濾、分組、導(dǎo)入、導(dǎo)出等接口的支持。目前該部分正在開(kāi)發(fā)中,預(yù)計(jì) 2015 年初能夠投入內(nèi)測(cè)中。
QSocket
QSocket 用于提供一套開(kāi)源的跨平臺(tái)網(wǎng)絡(luò)通訊支持框架,在 Windows 下將基于 IOCP ,在 Andriod 下將基于 EPoll,在OSX/iOS中將基于 KQueue 技術(shù)架構(gòu),同時(shí)會(huì)提供 P2P 和基于 UDP 的可靠網(wǎng)絡(luò)傳輸實(shí)現(xiàn)(模擬TCP)。QSocket 還將提供和 QWorker 的信號(hào)相結(jié)合的網(wǎng)絡(luò)信號(hào)解決方案,支持遠(yuǎn)程觸發(fā)廣播特定的信號(hào)。目前該框架在規(guī)劃中,計(jì)劃 2015 年投入開(kāi)發(fā)和測(cè)試中。
QScript
QScript 用于提供一套高效的開(kāi)源跨平臺(tái)腳本解釋引擎框架實(shí)現(xiàn),目標(biāo)是實(shí)現(xiàn)真編譯環(huán)境50%以上的效率。但目前該框架同樣只是在規(guī)劃中,計(jì)劃 2016 年投入研發(fā)。
