学习一个框架前,要先明白它的是什么,为什么,怎么用.下面这些文字,是从中文poco官网上转过来的,正如poco c++库的特点,非常清晰,代码风格更是一目了然.
poco开发库的特点,非常适合写后台处理程序,效率也是很高的.前台界面程序使用Qt框架库,非常好,两个库相辅相成,可解决项目上的大部分问题.
一 概述
Poco C++库是:
- 一系列C++类库,类似Java类库,.Net框架,Apple的Cocoa;
- 侧重于互联网时代的网络应用程序
- 使用高效的,现代的标准ANSI/ISO C++,并基于STL
- 高可移值性,并可在多个平台下可用
- 开源,并使用Boost Software License发布
- 不管是否商用,都完全免费
Poco库概览
特性:
- 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生成器
时间: 2024-10-12 21:38:55