值得实践的开源库
来源:互联网 发布:文泰刻绘2002解密软件 编辑:程序博客网 时间:2024/05/21 22:22
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. Lua
Lua很棒,Lua是巴西人发明的,脚本语言.让我脸红的是Lua的源代码,百分之一百的ANSI C,一点都不掺杂。在任何支持ANSI C编译器的平台上都可以轻松编译通过。我试过,真是一点废话都没有。Lua的代码数量足够小,5.1.4仅仅1.5W行,去掉空白行和注释估计能到1W行。
下载地址:http://www.lua.org/
7. SQLite
SQLite是一个开源的嵌入式关系数据库,实现自包容、零配置、支持事务的SQL数据库引擎。 其特点是高度便携、使用方便、结构紧凑、高效、可靠。足够小,大致3万行C代码,250K。
下载地址:http://www.sqlite.org/
值得学习的C++项目代码
1、MFC
大名鼎鼎的微软基础类库(Microsoft Foundation Class)。大凡学过VC++的人都应该知道这个库。虽然从技术角度讲,MFC是不大漂亮的,但是它构建于Windows API 之上,能够使程序员的工作更容易,编程效率高,减少了大量在建立 Windows 程序时必须编写的代码,同时它还提供了所有一般 C++ 编程的优点,例如继承和封装。MFC 编写的程序在各个版本的Windows操作系统上是可移植的,例如,在Windows 3.1下编写的代码可以很容易地移植到 Windows NT 或 Windows 95 上。但是在最近发展以及官方支持上日渐势微。
2、QT
参考网站:http://www.trolltech.com
Qt是Trolltech公司的一个多平台的C++图形用户界面应用程序框架。它提供给应用 程序开发者建立艺术级的图形用户界面所需的所用功能。Qt是完全面向对象的很容易扩展,并且允许真正地组件编程。自从1996年早些时候,Qt 进入商业领域,它已经成为全世界范围内数千种成功的应用程序的基础。Qt也是流行的Linux桌面环境KDE 的基础,同时它还支持Windows、Macintosh、Unix/X11等多种平台。
3、StreamModule
参考网站:http://www.omnifarious.org/StrMod
设计用于简化编写分布式程序的库。尝试着使得编写处理异步行为的程序更容易,而不是用同步的外壳包起异步的本质。
4、SimpleSocket
参考网站:http://home.hetnet.nl/~lcbokkers/simsock.htm
这个类库让编写基于socket的客户/服务器程序更加容易。
5、A Stream Socket API for C++
参考网站:http://www.pcs.cnu.edu/~dgame/sockets/socketsC++/sockets.html
又一个对Socket的封装库。
其他
libuv libcurl libutp jsoncpp boost zlib protobuf http-parser libevent opencv
- 值得实践的开源库
- 值得思考的 J2EE 架构的6个最佳实践
- Mysql监控指南(实践的好文章值得收藏)
- 值得关注的议题:12306,架构设计最佳实践
- 值得推荐的51.com产品设计实践(值得所有产品经理参考)
- 多多实践,多多思考,多多提问,CSDN的Community还是非常值得关注和参与的!
- 给信管专业学生的一封信:【分享】在线教育 及 终身学习,值得大家实践
- 拥抱大前端 盘点那些值得你了解的最佳开发实践
- 拥抱大前端 盘点那些值得你了解的最佳开发实践
- 拥抱大前端 盘点那些值得你了解的最佳开发实践
- 值得学习的C/C++开源库整理
- 推荐阅读Java并发性领域编程最值得一读的力作《JAVA并发编程实践》
- 值得收藏的BLOG
- 值得收藏的短信
- 值得记忆的短信
- 值得收藏的代码
- 值得纪念的日子
- 值得纪念的日子
- ORA-00979:不是GROUP BY表达式
- Faster_rcnn训练自己的数据集(2)
- 树形DP之王 balabalabala
- phpMyAdmin创建数据库无权限解决方案
- connect by 用法小议
- 值得实践的开源库
- ds解题报告
- [struts2]struts2中action接收参数的方法
- Java基本语法
- 关于作者与本站
- Java4android学习笔记25
- 基于会话的临时表和基于事务的临时表浅析
- 洛谷P1106 删数问题
- JSP笔记 No.1