值得学习的C/C++语言开源项目

(1)ACE

庞大、复杂,适合大型项目。开源、免费,不依赖第三方库,支持跨平台。

http://www.cs.wustl.edu/~schmidt/ACE.html

(2)Asio

Asio基于Boost开发的异步IO库,封装了Socket,简化基于socket程序的开发。

开源、免费,支持跨平台。

http://think-async.com/

(3)POCO

POCO C++ Libraries 提供一套 C++ 的类库用以开发基于网络的可移植的应用程序,功能涉及线程、线程同步、文件系统访问、流操作、共享库和类加载、套接字以及网络协议包括:HTTP、 FTP、SMTP 等;其本身还包含一个 HTTP 服务器,提供 XML 的解析和 SQL 数据库的访问接口。POCO库的模块化、高效的设计及实现使得POCO特别适合嵌入式开发。在嵌入式开发领域,由于C++既适合底层(设备I/O、中断处理等)和高层面向对象开发,越来越流行。

http://pocoproject.org/

(4)libevent

Libevent是一个轻量级的开源高性能网络库,从它的官网标题:libevent-an event notification library就能知道它的机制是采用事件触发,封装了以下三种事件的响应:IO事件,定时器事件,信号事件。select模型来实现跨平台的操作,Windows环境下支持IOCP。

http://libevent.org/

(5)libev

libev和libevent很像,按照作者的介绍,可以作为libevent的替代者,能够提供更高的性能。

libev是一个高性能事件循环,所实现的功能就是一个强大的reactor。

http://software.schmorp.de/pkg/libev.html

(6)c++ sockets library

封装了sockets C API的C++类库。

支持SSL, IPv6, tcp 和 udp sockets, sctp sockets, http协议, 高度可定制的错误处理。

http://www.alhem.net/Sockets/

(7)libcurl

libcurl是免费的轻量级的客户端网络库,支持DICT, FILE, FTP, FTPS, Gopher, HTTP, HTTPS, IMAP, IMAPS, LDAP, LDAPS, POP3, POP3S, RTMP, RTSP, SCP, SFTP, SMTP, SMTPS, Telnet, TFTP. 支持SSL, HTTP POST, HTTP PUT, FTP上传, HTTP form上传,代理,cookies, 用户名与密码认证。

如果你开发的是客户端,libcurl是一个不错的选择。

http://curl.haxx.se/libcurl/

- 1. Webbench

Webbench是一个在Linux下使用的非常简单的网站压测工具。它使用fork()模拟多个客户端同时访问我们设定的URL,测试网站在压力下工作的性能,最多可以模拟3万个并发连接去测试网站的负载能力。Webbench使用C语言编写, 代码实在太简洁,源码加起来不到600行。

下载链接:http://home.tiscali.cz/~cz210552/webbench.html

- 2. Tinyhttpd

tinyhttpd是一个超轻量型Http Server,使用c语言开发,全部代码只有502行(包括注释),附带一个简单的Client,可以通过阅读这段代码理解一个 Http Server 的本质。

下载链接:http://sourceforge.net/projects/tinyhttpd/

- 3. cJSON

cJSON是C语言中的一个JSON编解码器,非常轻量级,C文件只有500多行,速度也非常理想。

cJSON也存在几个弱点,虽然功能不是非常强大,但cJSON的小身板和速度是最值得赞赏的。其代码被非常好地维护着,结构也简单易懂,可以作为一个非常好的C语言项目进行学习。

项目主页:http://sourceforge.net/projects/cjson/

- 4. CMockery

cmockery是google发布的用于C单元测试的一个轻量级的框架。它很小巧,对其他开源包没有依赖,对被测试代码侵入性小。cmockery的源代码行数不到3K,你阅读一下will_return和mock的源代码就一目了然了。

主要特点:

下载链接:http://code.google.com/p/cmockery/downloads/list

- 5. Libev

libev是一个开源的事件驱动库,基于epoll,kqueue等OS提供的基础设施。其以高效出名,它可以将IO事件,定时器,和信号统一起来,统一放在事件处理这一套框架下处理。基于Reactor模式,效率较高,并且代码精简(4.15版本8000多行),是学习事件驱动编程的很好的资源。

下载链接:http://software.schmorp.de/pkg/libev.html

- 6. Memcached

Memcached 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载。它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提供动态数据库驱动网站的速度。Memcached 基于一个存储键/值对的 hashmap。Memcached-1.4.7的代码量还是可以接受的,只有10K行左右。

下载地址:http://memcached.org/

- 7. Lua

Lua很棒,Lua是巴西人发明的,这些都令我不爽,但是还不至于脸红,最多眼红。

让我脸红的是Lua的源代码,百分之一百的ANSI C,一点都不掺杂。在任何支持ANSI C编译器的平台上都可以轻松编译通过。我试过,真是一点废话都没有。Lua的代码数量足够小,5.1.4仅仅1.5W行,去掉空白行和注释估计能到1W行。

下载地址:http://www.lua.org/

- 8. SQLite

SQLite是一个开源的嵌入式关系数据库,实现自包容、零配置、支持事务的SQL数据库引擎。 其特点是高度便携、使用方便、结构紧凑、高效、可靠。足够小,大致3万行C代码,250K。

下载地址:http://www.sqlite.org/ 。

- 9. UNIX v6

UNIX V6 的内核源代码包括设备驱动程序在内 约有1 万行,这个数量的源代码,初学者是能够充分理解的。有一种说法是一个人所能理解的代码量上限为1 万行,UNIX V6的内核源代码从数量上看正好在这个范围之内。看到这里,大家是不是也有“如果只有1万行的话没准儿我也能学会”的想法呢?

另一方面,最近的操作系统,例如linux 最新版的内核源代码据说超过了1000 万行。就算不是初学者,想完全理解全部代码基本上也是不可能的。

下载地址:http://minnie.tuhs.org/cgi-bin/utree.pl?file=V6

- 10. NETBSD

NetBSD是一个免费的,具有高度移植性的 UNIX-like 操作系统,是现行可移植平台最多的操作系统,可以在许多平台上执行,从 64bit alpha 服务器到手持设备和嵌入式设备。NetBSD计划的口号是:”Of course it runs NetBSD”。它设计简洁,代码规范,拥有众多先进特性,使得它在业界和学术界广受好评。由于简洁的设计和先进的特征,使得它在生产和研究方面,都有卓越的表现,而且它也有受使用者支持的完整的源代码。许多程序都可以很容易地通过NetBSD Packages Collection获得。

下载地址:http://www.netbsd.org/

C++ 资源大全

关于 C++ 框架、库和资源的一些汇总列表,内容包括:标准库、Web应用框架、人工智能、数据库、图片处理、机器学习、日志、代码分析等。

标准库

C++标准库,包括了STL容器,算法和函数等。

框架

C++通用框架和库

人工智能

异步事件循环

音频

音频,声音,音乐,数字化音乐库

生态学

生物信息,基因组学和生物技术

压缩

压缩和归档库

并发性

并发执行和多线程

容器

密码学

数据库

数据库,SQL服务器,ODBC驱动程序和工具

调试

调试库, 内存和资源泄露检测,单元测试

游戏引擎

图形用户界面

图形

图像处理

国际化

Jason

日志

机器学习

数学

多媒体

网络

物理学

动力学仿真引擎

机器人学

科学计算

脚本

序列化

视频

虚拟机

Web应用框架

XML

XML就是个垃圾,xml的解析很烦人,对于计算机它也是个灾难。这种糟糕的东西完全没有存在的理由了。-Linus Torvalds

多项混杂

一些有用的库或者工具,但是不适合上面的分类,或者还没有分类。

软件

用于创建开发环境的软件

编译器

C/C++编译器列表

在线编译器

在线C/C++编译器列表

调试器

C/C++调试器列表

集成开发环境(IDE)

C/C++集成开发环境列表

构建系统

静态代码分析

提高质量,减少瑕疵的代码分析工具列表

C++跨平台开源库 之二相关推荐

  1. C++跨平台开源库POCO学习笔记

    原文链接:http://grow.sinaapp.com/?p=1271 POCO(pocoproject.org)看起来是很不错的C++跨平台开源库,包含网络(HTTP.FTP等).正则.XML.Z ...

  2. C++跨平台开源库 之一

    在如下的库支持下,开发的系统可以很方便移植到当前大部分平台上运行 而无需改动,只需在对应的平台下 用你喜欢的编译器 重新编译即可 经典的C++库 STLport---SGI STL库的跨平台可移植版本 ...

  3. NTL密码算法开源库——模二整数上的矩阵(mat_GF2)

    2021SC@SDUSC 模二整数上的矩阵(mat_GF2) 矩阵运算 高斯消元 矩阵运算 具体代码 #include <NTL/matrix.h> #include <NTL/ve ...

  4. SEAL全同态加密开源库(十二) CKKS-源码浅析

    2021SC@SDUSC 2021-12-19 前言 前两篇我们讨论了SEAL对于BFV的实现.本篇开始我将开始讨论SEAL对于CKKS的实现. 照例我会先补充理论知识,然后分析源码native/ex ...

  5. 山东大学软件工程应用与实践——GMSSL开源库(二)——浅尝SM9

    2021SC@SDUSC 概述 为了降低公开密钥系统中密钥和证书管理的复杂性,以色列科学家.RSA算法发明人之一Adi Shamir在1984年提出了标识密码(Identity-Based Crypt ...

  6. 2021SC@SDUSC PALISADE开源库(二)CKKS讲解系列(一)普通编码和解码

    2021SC@SDUSC 目录 介绍 CKKS编码 普通编码 例子 相关代码执行(重要) 编码器和解码器的实现过程: 具体分析[假设输入的向量的(1,2,3,4)] 测试过程 同态操作(编码和解码) ...

  7. java cms 知乎_可能是史上最全面的学习资源 — VUE 开源库篇(二)

    原标题:可能是史上最全面的学习资源 - VUE 开源库篇(二) 原文:https://www.cnblogs.com/opendigg/p/6513510.html 作者:OpenDigg 最近做了一 ...

  8. 二维码扫描开源库ZXing定制化【转】

    转自:http://www.cnblogs.com/sickworm/p/4562081.html 最近在用ZXing这个开源库做二维码的扫描模块,开发过程的一些代码修改和裁剪的经验和大家分享一下. ...

  9. 二维码扫描开源库ZXing定制化

    最近在用ZXing这个开源库做二维码的扫描模块,开发过程的一些代码修改和裁剪的经验和大家分享一下. 建议: 如果需要集成到自己的app上,而不是做一个demo,不推荐用ZXing的Android外围开 ...

最新文章

  1. Windows下MySQL安装
  2. docker 安装nginx_Docker18安装Nginx和Apache实验
  3. 美团命名服务的挑战与演进
  4. redmine 邮件发送问题修复
  5. unknown bottom blob ‘data‘ (layer ‘data_fixed‘, boblob ‘data‘ (layer ‘data_fixed‘, bottom index 0)
  6. wordpress主题部署到github pages(调研+具体操作-还没有完成)
  7. css --- 清除浮动
  8. 十、eclipse快捷键大全
  9. 1.5万人!京东面向2021届高校毕业生开启最大规模校招
  10. 罗永浩直播成绩单:3小时带货超1.1亿元,近5000万人来听相声
  11. 对jfinal中enjoy的理解
  12. 信息系统项目管理师学习笔记13-项目合同管理
  13. Linux系统防火墙概述
  14. 人活着就是为了改变世界,不要把时间浪费在重复其他人的生活上。————乔布斯
  15. Latex、如何将word中的表格转换为Latex代码
  16. ASP:KU论坛跳转页面
  17. iOS 9-iPhone6s-iPadmini4企业证书信任
  18. 如何在linux系统之间共享文件
  19. 正则表达式习题解答-Python核心编程3 第一章
  20. JS流程控制语句 反反复复(while循环) 和for循环有相同功能的还有while循环, while循环重复执行一段代码,直到某个条件不再满足。...

热门文章

  1. chrome 浏览器 64位最新版 flash 无法加载插件 问题解决
  2. java下bin目下的exe
  3. python3注释_python3的注释
  4. 计算机主机是否接电源,如何检测电脑电源的故障
  5. [转]基于WorldWind平台的建筑信息模型在GIS中的应用
  6. Keil5_C51安装
  7. java错误代码1061_异常求解 小白
  8. 智慧时代正向我们走来(三)
  9. 超高清晰电影寻觅及下载技巧汇集
  10. 阿俊带你用Kotlin刷算法(四)