1. 程式人生 > >Poco C++庫簡介

Poco C++庫簡介

學習一個框架前,要先明白它的是什麼,為什麼,怎麼用.下面這些文字,是從中文poco官網上轉過來的,正如poco 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生成器