經典開源C/C++項目

經典開源C/C++項目

C/C++ SOAP工具包 gSOAP


gSOAP一種跨平臺的C和 C++軟件開發工具包。生成C/C++的RPC代碼,XML數據綁定,對SOAP Web服務和其餘應用造成高效的具體架構解析器,它們都受益於一個XML接口。 這個工具包提供了一個全面和透明的XML數據綁定解決方案,Autocoding節省大量開發時間來執行SOAP/XML Web服務中的C/C++。此外,使用XML數據綁定大大簡化了XML自動映射。應用開發人員再也不須要調整應用程序邏輯的具體庫和XML爲中心的數據,如 交涉DOM。java

功能和特色
可移植性:gSOAP支持大多 數平臺,包括嵌入式系統和小系統(例如嵌入式Symbian,Palm)。可移植性測試Windows(98,XP,Vista),Linux,Unix 系統,Mac OS X,Solaris,HP-UX,AIX,FreeBSD,TRU64,Irix,QNX,VxWorks。
穩定性:該軟件已經成熟。自2001年以來通過幾年的發展和試驗。許多工業項目和產品都在使用該軟件。
普遍的用戶羣:自2003年以來超過150000次下載,成千上萬許可證/支持協議的公司,其中包括一些財富100強企業。
全部功能於一身的軟件包:獨立第三方工具和庫確保可靠的運行執行。
開源:可選擇自由和商業許可。
C和C++的支持:支持純粹的ANSI C和混合的C/C++應用開發。
綜合XML數據綁定: gSOAP是惟一的SOAP/XML工具包,支持一個純粹的本地的C/C++數據綁定到XML。該工具包是以自動序列指針爲基礎的數據結構。
行業標準協議: SOAP 1.1/1.2  WSDL 1.1,v2和UDDI 。支持XML架構原始XSD結構類型等等。
傳 輸:HTTP/S, TCP, UDP, MIME (SwA), DIME (streaming), MTOM (streaming), HTTP1.0/1.1, IPv4, IPv6, RSS, XML-RPC, WS-Addressing, WS-Enumeration等
安全:HTTPS和WS安全性:認證令牌,數字簽名。
速度:架構特定的編譯器生成的代碼速度快。基準測試代表速度優於最快的XML解析器。
佔用內存小:客戶端應用程序總運行內存佔用很小。內存管理使用垃圾收集,能夠自動清理。
許多例子:軟件包,包括許多代碼範例,其中包括獨立的HTTP/1.1和HTTPS安全的Web服務器。
Web服務器整合:包括Apache_mod, IIS, WinInet, CGI, FastCGI。c++

 

 

 

 

跨平臺C + +庫 CrissCross

 

CrissCross是一種小型的跨平臺C + +庫,用於處理控制檯和文件I / O , CPU的識別( CPUID ) ,散列( MD2 , MD4 , MD5編碼,了SHA - 1 ,SHA- 256 ,SHA- 512 ,Tiger) ,Socket( TCP和目前惟一的UDP )和數據結構( LList , DArray , RedBlackTree , AVLTree , SplayTree等) 。其目的是運行在Windows , Linux , FreeBSD的, OpenBSD系統, NetBSD的, Mac OS X的,甚至是NDS 。其餘平臺可能成爲支持的請求。其主要思想是提供的能力,寫一個程序使用相同的呼籲主要平臺,而無需重寫代碼。web

 

 

 

C++ Web工具包 Wt 

 

Wt(音同'witty')是一個C++庫,同時也是開發和部署web應用的服務器。 Wt不是所謂框架(framework),它只是一個庫,它不會將編程方式強加於開發者。算法

Wt的API是以widget爲中心(widget-centric)的,並受到現有C++圖形用戶界面(GUI) 的應用編程接口(APIs)的啓發。Wt爲開發者提供了幾乎全部web實現細節的抽象,其中 包括事件處理和圖像支持。編程

基於頁面的web應用開發框架(Page-based frameworks),如PHP、JSP/JSF (+servlets+struts)等,沒有實現對一些最基本技術的特性的抽象,這些技術包括 HTML/XHTML、JavaScript、CSS、AJAX、 Forms、DHTML、SVG/VML/Canvas等,顯然基 於頁面的開發框架(frameworks)必需要求開發者隨時熟悉和掌握這些基本技術。另外, 當選擇某一種基本技術時(如當前流行的AJAX),開發者則要對該技術的優雅降級 (graceful degradation)負責,好比當AJAX或JavaScript已經不復存在或某些功能失效 時。同時,應用程序結構還要遵循早期HTML以頁面爲基礎的開發範式。做爲一個AJAX開 發者,這就意味着他須要手工設計和維護客戶端/服務器端的通信。設計模式

儘管開發者有時不但願,但爲了生成HTML代碼或填充HTML模板會在頁面中插入 JavaScript,如此操做則會帶來安全風險,如跨站腳本(XSS:Cross-Site-Scripting)。 可是,模板框架(template frameworks)自己沒法避免這種狀況的發生,由於開發者老是 須要插入自定義的JavaScript來提升web應用。瀏覽器

相比之下,使用Wt開發的web應用就要好許多,由於這樣的應用只使用一種編譯 語言(C++),並且生成必要的HTML/XHTML、Javascript、CGI、SVG/VML/Canvas以及 AJAX代碼的任務都交給Wt庫完成。天然地,web開發的安全性和瀏覽器可移植性問題也都 交給了Wt。另外,在可能的狀況下,Wt將最大限度地使用JavaScript和AJAX;特別 地,在不支持AJAX的狀況下,採用Wt開發的web應用仍能正常工做,由於Wt採用了 轉回普通HTML/CGI的機制(reverting to a plain HTML/CGI mechanism),保證了 瀏覽器與服務器之間的正常通信。安全

典型應用舉隅:

  • 因爲Wt web應用服務器佔用較低的內存(low footprint),故而能夠爲 可聯網的嵌入式系統(web-enabled embedded systems)提供基於web的圖形 用戶界面(GUI);
  • Wt能夠爲須要整合現有C++庫的應用提供基於web的圖形用戶界面(GUI), 這些應用包括科學上的或工程上的應用;
  • Wt能夠建立從現有C++桌面應用到web的有效渠道(port)。

 

使用Wt的好處

  • 能夠象開發C++桌面應用同樣開發web應用;
  • Wt提供最基本的(plain)widgets,這些widgets能夠在運行 環境不支持 JavaScript的狀況下照常工做(固然,若是支持的話效果會更好)。同時Wt::Ext命名 空間下的widgets工做效果會更酷(more polished),並且能夠提供更高級的功能, 可是會須要對JavaScript的支持以及更爲流行的瀏覽器。以上兩類widgets在Wt中共享 同一套應用編程接口(API);
  • Wt提供兩種開發與部署模式,即便用Wt內置(build-in)httpd或者FastCGI鏈接器 (connector),前者在Wt內較容易實現,然後者則其實是在開發FastCGI應用;
  • 客 戶端與服務器端在驗證(validation)和事件處理(event handling)方面採用同 一原則(a single specification),即兩種應用下,開發者在服務器端使用C++編寫, Wt既在服務器端生成C++代碼,又同時在客戶端生成JavaScript代碼;其中事件處理特 指使用無狀態槽(stateless slot)實現的狀況;
  • 能夠產生標準的、符合HTML/XHTML規範的代碼;
  • 使用內聯VML、SVG、HTML 5 Canvas能夠提供可移植的(portable)、抗鋸齒圖像 (anti-aliased graphics);
  • 無跨站腳本(XSS)風險,由於Wt徹底控制表示層(presentation layer),並提早 (proactively)過濾掉活動(active) 標籤(tags)和屬性(attibutes),這樣很好地 隱藏了駐留在服務器端的業務邏輯(business logic);
  • 基於Wt的應用載入時間極短(ultra-fast load time),同時佔用較低帶寬 (low bandwidth usage),固然也會受到顯示內容複雜程度(screen complexity)的影響, 但確定不會是應用程序的大小。

common c++


commonc++ 是一個 C++ 類庫,用於在編寫跨平臺的程序時提供統一的接口和方法。commonc++ 封裝了例如線程、信號、網絡通信、進程調度、日誌、共享內存等等的功能,以便於編寫跨平臺的C++應用程序服務器

 

 

在以下的庫支持下,開發的系統能夠很方便移植到當前大部分平臺上運行
而無需改動,只需在對應的平臺下 用你喜歡的編譯器 從新編譯便可
經典的C++庫
STLport-------SGI STL庫的跨平臺可移植版本,在之前有些編譯器離符合
標準比較遠的狀況下 那時仍是有用的,固然目前vc71已經比較接近標準了,
故目前不怎麼用它了。
Boost---------準標準庫, 功能強大 涉及能想的到的大部分非特別領域的算法,
有一個大的C++社區支持
WxWindows-----功能強大的跨平臺GUI庫 ,它的功能和結構都相似 MFC,故原則上
能夠經過WxWindows把現有MFC程序移植到非Win平臺下
Blitz---------高效率的數值計算函數庫 ,你能夠訂製補充你須要的算法
Log4cpp-------日誌處理 ,功能相似java中的log4j
ACE-----------自適應通信環境, 重量級的通信環境庫。
Crypto++ -----加/解密算法庫, 很是專業的C++ 密碼學函式庫
CppUnit --- 一個c++的單元測試框架 相似 java 的JUnit
Loki ------- 一個實驗性質的庫,嘗試把相似設計模式這樣思想層面的東西經過
庫來提供,他是C++的一個模板庫,系C++"貴族", 它把C++模板的功能發揮到了極致

學術性的C++庫:
FC++ --------The Functional C++ Library ,用庫來擴充語言的一個表明做 ,模板庫
CGAL ------- Computational Geometry Algorithms Library計算幾何方面的大部分重要的
解決方案和方法以C++庫的形式提供給工業和學術界的用戶。網絡


wxWidgets和其它相似的GUI(圖形用戶界面,下同)庫好比MFC或者OWL一個最本質的區別在於,它是跨平臺的。
相關文章
相關標籤/搜索