什麼是DRT專案,DRT專案的構想和目的

2022-10-11 04:48:14 字數 1322 閱讀 5318

ywthegod/drt (gitee.com)

不想多說什麼賣弄情懷的話,是的,就是那個快要死掉的delphi,drt這個專案,就是看著能不能再搶救一下,救不活就拉倒。

思路就是將一些優秀的c庫,移植到delphi上來,希望能打通delphi與c圈子的技術互通。

幾個問題:

1. delphi不是可以連線c的dll甚至obj嗎?還需要怎樣的互通呢?

答:還需要對c庫進行delphi風格的物件導向封裝,降低這些c庫的學習使用成本,這是drt專案的乙個主要目的。第二個目的,就是降低delphi專案的部署複雜度,在windows平台,drt庫盡量依賴單個自行編譯的dll,在非windows平台,drt庫盡量採用靜態連線,減少動態連線庫的依賴可以大幅度降低部署複雜度。

2. drt庫在windows上為何要帶乙個dll

答:因為delphi在windows平台上自身並不基於c執行時庫,所以delphi無法為c**提供各種變數初始化支援,單獨連線obj檔案無法保正穩定可靠,而編譯乙個帶有完整c執行時庫的dll可以完美解決這個問題,因此作為妥協drt採用只依賴單個dll的方案,drt的dll檔名清楚區分64位和32位版本,部署出錯的機會也會大大減少。

3. drt庫對比其他開源的delphi封裝庫有什麼優點

答:delphi移植庫都要提供預先編譯好的c**檔案,而由於delphi不支援c的靜態庫檔案,又不具備c執行時,靜態鏈結c**有可能需要對c**作較多調整更改,難以做到與c開源庫同步更新,而編譯成dll又會依賴dll過多容易造成版本混亂,drt庫實現了由指令碼整合編譯多個開源c庫**,從github上抓下**後能夠批量同步編譯更新。

4. drt庫當前支援哪些c庫

答:當前支援的c庫有:xxhash(高速hash演算法,md5替代品),zlib(intel優化版,預設壓縮級別下比delphi自帶快約30%), lz4(目前解壓效能最高的壓縮演算法), zstd(綜合性能最優的壓縮演算法), mimalloc和fastmm5(並行優化記憶體管理器, win平台下用fastmm5, 其他平台用mimalloc), 所有這些c演算法庫都帶有delphi風格的物件導向封裝。

5. drt庫的未來目標:

答:drt庫目前的移植目標是行業著名的非同步io庫libuv,完成後將立即具備非同步的tcp/udp/file非同步io能力,然後可以再以此為基礎,將node.js世界的許多優秀擴充套件移植進來,設想中的目標是:整合乙個支援非同步io,支援http 2.0/3.0的高效能高可靠高知名度http server,徹底取代拉跨的indy webserver

我所希望的是:在實現了http server的移植目標後,能使delphi可以輕鬆搭建乙個完秒tomcat的中介軟體服務,我希望到了那時候,delphi圈子都能夠一起用起來,吹起來。

什麼是軟體專案的成功

傳統觀念上的成功是指基於給定的財政預算,按照需求規格按時交付產品。standish 中給出了一些經典的定義 成功的 successful 按時完成,費用不超出預算,而且所有特性和功能都符合原先的設計規格。不太成功的 challenged 已完成而且可以執行,但費用超出了預算,沒有如期完成,擁有 的特...

什麼是專案與專案管理

什麼是專案與專案管理 一 什麼是專案 所謂專案,簡單地說,就是在既定的資源和要求的約束下,為實現某種目的而相互聯絡的一次性工作任務。一般來說,專案具有如下的基本特徵 1 明確的目標 其結果只可能是一種期望的產品,也可能是一種所希望得到的服務。2 獨特的性質 每乙個專案都是唯一的。3 資源成本的約束性...

我是賣家專案的重構

專案停滯好久的了,今天回來心裡特別難受,最近這些天,天天在學習日語沒有多少時間來想專案上面的事情,可是心裡還是總是牽掛著,不管怎麼說這個項 目都是我的夢想我的心血啊,歷時一年多的了,一定不能夠放棄的。可是做的還是很累感覺,回家了,心情更是沉重了許多,生活的壓力越來越大,原來在學校,在 外面不管怎麼樣...