Poco C++庫簡介

學習一個框架前,要先明白它的是什麼,爲何,怎麼用.下面這些文字,是從中文poco官網上轉過來的,正如poco c++庫的特色,很是清晰,代碼風格更是一目瞭然.c++

   poco開發庫的特色,很是適合寫後臺處理程序,效率也是很高的.前臺界面程序使用Qt框架庫,很是好,兩個庫相輔相成,可解決項目上的大部分問題.正則表達式

一 概述算法

Poco C++庫是:

  • 一系列C++類庫,相似Java類庫,.Net框架,Apple的Cocoa;數據庫

  • 側重於互聯網時代的網絡應用程序編程

  • 使用高效的,現代的標準ANSI/ISO C++,並基於STL緩存

  • 高可移值性,並可在多個平臺下可用服務器

  • 開源,並使用Boost Software License發佈網絡

  • 無論是否商用,都徹底免費多線程

Poco庫概覽

wKioL1YaXD7Ars-jAAKHkrkB11Q612.jpg

特性:

  • 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生成器

相關文章
相關標籤/搜索