poco c++感性認識
學習一個框架前,要先明白它的是什麼,為什麼,怎麼用.下面這些文字,是從中文poco官網上轉過來的,正如poco c++庫的特點,非常清晰,代碼風格更是一目了然.
poco開發庫的特點,非常適合寫後台處理程序,效率也是很高的.前台界面程序使用Qt框架庫,非常好,兩個庫相輔相成,可解決項目上的大部分問題.
一 概述
Poco C++庫是:
一系列C++類庫,類似Java類庫,.Net框架,Apple的Cocoa;
側重於互聯網時代的網絡應用程序
使用高效的,現代的標准ANSI/ISO C++,並基於STL
高可移值性,並可在多個平台下可用
開源,並使用Boost Software License發布
不管是否商用,都完全免費
Poco庫概覽
Overview
特性:
DynamicAny與Any類
Cache框架
基於OpenSSL的密碼系統
日期,時間類庫
事件和通知框架
FTP客戶端
跨平台的文件系統類庫
HTML表單類庫
HTTP客戶端和服務端(支持SSL),C++ 服務器頁面編譯器
日志框架
多線程框架(線程池,活動對象,工作隊列等)
POP3客戶端類庫
跨平台,一次編寫,多平台編譯和運行
進程管理和進程間通信類庫
反射框架
基於PCRE的正則表達式
SMTP客戶端類庫
數據庫訪問類庫(SQLite,MySQL, ODBC)
支持SSL/TLS,基於OpenSSL
動態類庫加載
先進的內存和指針管理(Buffer, Pool)
Socket類庫
網絡數據流類庫,支持Base64,HexBinary編解碼,壓縮等等
字符串格式化和其它字符串工具類庫
TCP服務器框架(多線程)
文本編碼和轉換
Tuples
URI支持
支持UTF8和Unicode編碼
UUID生成器
XML生成和解析器
Zip文件操作類庫
Poco的使命
Poco是一個強大的類庫,並易於構建自己的應用程序
Poco幫助你創建跨平台的應用程序(一次編寫,多平台編譯和運行)
模塊化和可擴展,可應用於嵌入式到企業級程序
提供全面,易懂的編程接口
使用C++語言,快速且高效
Poco崇尚簡易
在設計,代碼風格和文檔上保持一致
Poco強調代碼質量,包括可讀性,綜合性,一致性,編碼風格和可測試性
Poco使得C++編程更加容易
指導方針
高度關注代碼質量,編碼風格,一致性,可讀性
高度關注測試
注重實用性
基於現有的,可靠的組件開發
版本歷史
Summer 2004: Günter Obiltschnig started development
February 2005: First release on SourceForge
(Release 0.91 under Sleepycat license)
May 2005: First contributions by Aleksandar Fabijanic
January 2006: Release 1.0
March 2006: Release 1.1
July 2006: Moved to Boost license, POCO Community Website
August 2006: Release 1.2
May 2007: Release 1.3
July 2010: Stable Release 1.3.7,
about 20 contributors, used in 100s of projects
支持平台
Microsoft Windows
Linux
Mac OS X
HP-UX, Solaris, AIX*
Embedded Linux (uClibc, glibc)
iOS
Windows Embedded CE
QNX
Poco應用場景
創建自動化的中間件和設備
工業自動化和工業設備
流量控制系統
健康系統
測量,數據收集和測試系統
消費電子產品和家庭自動化產品
測量
航空交通管理系統
VoIP
票務和入口控制系統
包裝應用程序
Poco的優勢
全面的,完整的C++框架,可減少開發工作,快速讓產品走向市場
易學易使用,以及相當多的示例代碼和良好的文檔
原生的C++代碼,性能優秀,低內存占用
平台無關,一處編寫,跨平台編譯和運行
大多數情況下,可以開發機上完成開發和調試工作
可以非常容易的遷移到新平台
設計 & 實現
基於現代的、標准的ANSI C++編寫,使用C++ STL庫。模塊化設計,極少的外部依賴,易於編譯和使用。結合傳統的面向對象與現代的C++設計,代碼易讀,代碼風格統一,以及相當全面的測試用例。
支持平台
桌面/服務器: Windows, Linux, Mac OS X, Solaris, HP-UX, AIX
嵌入式系統: Windows Embedded CE, Embedded Linux (uClibc or glibc), iOS, QNX, VxWorks, Android
最低系統要求: 75 MHz ARM9, 8 MB RAM (Embedded Linux).
License
Boost Software License 1.0
核心特性
支持Any 和 DynamicAny 的動態類型
提供緩存框架
日期和時間
事件與通知框架
(libPoco.com翻譯,轉載請注明)
基於PCRE的正則表達式
動態庫加載
完美的指針和內存管理 (buffer, pool)
字符串格式化和工具
tuples
壓縮
基於zlib的壓縮/解壓類
創建和解壓ZIP文件
加密
支持多種hash算法
支持X509數字證書
對稱的和 RSA算法
支持streams加解密
基於OpenSSL
數據庫
不同的數據庫提供了統一的訪問接口(SQLite, MySQL, ODBC)
自動數據類型匹配
支持集合類 (std::vector, std::set, std::map, etc.)
支持記錄集和tuples
支持連接池
文件系統
跨平台的文件路徑操作
目錄列表
通配符支持
文件屬性管理
日志
可擴展的日志框架,可拔插的日志通道和消息格式化
日志可輸出到終端,日志文件,syslog,遠程syslog,Windows事件服務
多線程
線程和線程同步類庫
線程池
工作隊列
活動對象
任務管理
定時器
網絡
流,數據報,多播,服務器和原生socket.
TCP服務器框架(多線程)
反射服務器框架
HTTP(S)客戶和服務器框架
HTTP認證
CSP(C++ Server Page)編譯器
FTP客戶端
SMTP和POP3客戶端
(libPoco.com翻譯,轉載請注明)
支持URI, UUID
HTML表單處理
MIME支持
基於 OpenSSL支持SSL/TLS
WebSocket (RFC 6455) 客戶和服務器
進程管理和 IPC
進程啟停
進程間同步
共享內存
流
Base64 和 HexBinary 編解碼
壓縮(zlib)
行結束符車換
內存stream
文本編碼轉換
URI流讀取
文本編碼
支持UTF-8 和 Unicode
文本編碼和轉換
字符分類
工具類
支持命令行和服務器程序框架
命令行參數解析器
配置文件解析
支持Unix和Windows後台服務
XML
基於 Expat 的XML解析
SAX2 (Simple API for XML, version 2) 解析器
DOM (Document Object Model, Level 1-3) 解析器
XML生成器