QDACDelphi開源組件庫(kù)
QDAC 是由 QDAC 開發(fā)組為大家提供的一套 Delphi/C++ Builder 跨平臺(tái)開源組件庫(kù),名稱取自英文 Quick Data Access Components 的首字母。它支持 Delphi/C++ Builder 2007 以上的版本的開發(fā)環(huán)境,目標(biāo)是為大家提供一套高效穩(wěn)定的跨平臺(tái)快速數(shù)據(jù)訪問組件,替代系統(tǒng)實(shí)現(xiàn)的低效組件。
既然是快速數(shù)據(jù)訪問組件,QDAC 對(duì)速度會(huì)比較重視,但出于跨平臺(tái)的考慮,QDAC 是用純 Pascal 源碼編寫,沒有使用任何匯編代碼,所以性能上,理論上不會(huì)比使用純匯編優(yōu)化的版本強(qiáng),但也遠(yuǎn)遠(yuǎn)高于一般的實(shí)現(xiàn)。同時(shí),QDAC 也很重視穩(wěn)定性,希望大家多多參與測(cè)試,保證在速度優(yōu)化的同時(shí),穩(wěn)定性上不會(huì)存在問題。
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)注釋說明。
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é)議。通過采用異步方式,將對(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)注釋說明。
QDigest
QDigest 是一套跨平臺(tái)的 Delphi 原生 MD5 和 SHA 哈希摘要實(shí)現(xiàn),同時(shí)也封裝了簡(jiǎn)單易用的各種接口。更詳細(xì)的信息,可以參考源碼中相關(guān)注釋說明。
QMemStatics
QMemStatics 是一套 Windows 下的內(nèi)存分配分析工具,用于統(tǒng)計(jì)內(nèi)存中不同尺寸的內(nèi)存塊分配情況,方便用戶在設(shè)計(jì)服務(wù)程序時(shí),合理的規(guī)劃設(shè)計(jì)對(duì)象池的類型及大小。
QRBTree
QRBTree 包含了紅黑樹和哈希桶的 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ī)淼囊惶组_源插件框架,目前暫時(shí)只支持 Windows 平臺(tái),將來會(huì)融合 天地弦 的 MyBean 等開源框架思想和模式,形成跨平臺(tái)的開源 Delphi 插件框架。
QDB
QDB 用于提供一套開源的跨平臺(tái)數(shù)據(jù)庫(kù)直接訪問解決方式,計(jì)劃支持 SQLite、 PostgreSQL、MSSQL、Oracle、MySQL 等常見數(shù)據(jù)庫(kù)在跨平臺(tái)直接訪問。同時(shí)提供的 TQDataSet 會(huì)提供豐富復(fù)制、克隆、過濾、分組、導(dǎo)入、導(dǎo)出等接口的支持。目前該部分正在開發(fā)中,預(yù)計(jì) 2015 年初能夠投入內(nèi)測(cè)中。
QSocket
QSocket 用于提供一套開源的跨平臺(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 年投入開發(fā)和測(cè)試中。
QScript
QScript 用于提供一套高效的開源跨平臺(tái)腳本解釋引擎框架實(shí)現(xiàn),目標(biāo)是實(shí)現(xiàn)真編譯環(huán)境50%以上的效率。但目前該框架同樣只是在規(guī)劃中,計(jì)劃 2016 年投入研發(fā)。
