学习C语言的你知道这些C语言中的开源项目吗?

学习C语言的你知道这些C语言中的开源项目吗?
1. Webbench
Webbench是一个在linux下使用的非常简单的网站压测工具。它使用fork()模拟多个客户端同时访问我们设定的URL,测试网站在压力下工作的性能,最多可以模拟3万个并发连接去测试网站的负载能力。Webbench使用C语言编写,源码加来403行。

代码行数统计结果如下:

学习C语言的你知道这些C语言中的开源项目吗?

不是一个理想的服务器压力测试工具,因为能达到的并发连接数远远不够,后面我们可以考虑对它进行优化改进。

2. Tinyhttpd
tinyhttpd是一个超轻量型Http Server,使用C语言开发,全部代码只有356行(不包括注释和空行),附带一个简单的Client,可以通过阅读这段代码理解一个 Http Server 的本质,也可以学习linux套接字编程的基本流程。

3. Boa
boa是一个非常小巧的Web服务器,其可执行代码60KB不到。作为一种单任务Web服务器,Boa只能依次完成用户的请求,而不会fork出新的进程来处理并发连接请求。但Boa支持CGI,能够为CGI程序fork出一个进程来执行。Boa最初的设计目标是速度和安全。小巧也就意味着它的功能很简单,但至今为止还是有人会选用它作为嵌入式web服务器,因为它能满足基本的网页服务功能。代码量7000行不到,统计结果如下:

学习C语言的你知道这些C语言中的开源项目吗?

Boa源码编译时有些错误,关于debug这些错误网上有许多指导教程。

4. libevent
Libevent 是一个用C语言编写的、轻量级的开源高性能事件通知库,主要有以下几个亮点:事件驱动(event-driven),高性能,轻量级;源代码相当精炼、易读;跨平台,支持 Linux,*BSD, Mac OS X, Solaris, Windows;支持多种 I/O 多路复用技术,/dev/poll, kqueue(2), event ports, POSIX select(2), Windows select(), poll(2),and epoll(4)。
著名分布式缓存软件memcached也是基于libevent,而且libevent在使用上可以做到跨平台,而且根据libevent官方网站上公布的数据统计,似乎也有着非凡的性能。

代码统计如下:

学习C语言的你知道这些C语言中的开源项目吗?

代码量有点多,阅读起来会吃力一些。

5. Libev
libev是libevent之后的一个事件驱动的编程框架,其接口和libevent基本类似。据官方介绍,其性能比libevent还要高,bug比libevent还少,基于epoll,kqueue等OS提供的基础设施。其以高效出名,它可以将IO事件,定时器,和信号统一起来,统一放在事件处理这一套框架下处理。基于Reactor模式,效率较高,并且代码精简(4.22版本6000多行),是学习事件驱动编程的很好的资源。官网:http://software.schmorp.de/pkg/libev.html

代码统计如下:

学习C语言的你知道这些C语言中的开源项目吗?

6. Memcached
Memcached 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载。它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提供动态数据库驱动网站的速度。它是一个基于内存的“键值对”存储,用于存储数据库调用、API调用或页面引用结果的直接数据,如字符串、对象等。

代码统计:

学习C语言的你知道这些C语言中的开源项目吗?

不到2万行的代码,还是可以接受的。

7. CJSON
cJSON是C语言中的一个JSON编解码器,很是轻量级,C文件只有500多行,速度也很是理想。cJSON也存在几个弱点,虽然功能不是很是强大,但cJSON的小身板和速度是最值得赞赏的。其代码被很好地维护着,结构也简单易懂,可以作为一个很好的C语言项目进行学习。

8. SQLite
SQLite 是一个进程内库,实现了自给自足的、无服务器的、零配置的、事务性的 SQL 数据库引擎。SQLite 是在世界上最广泛部署的 SQL 数据库引擎。阅读其代码可以对关系型数据库的实现细节有深入的了解。特别是数据的组织、磁盘访问和数据一致性的保证等。

代码量统计:

学习C语言的你知道这些C语言中的开源项目吗?
13万行+的代码,有点可怕。

  1. GoAhead
    GoAhead是一个开源(商业许可)、简单、轻巧、功能强大、可以在多个平台运行的嵌入式Web Server。是目前为止最成熟、功能最全的嵌入式web服务器。它还有一个加强版叫appweb。

代码统计:

学习C语言的你知道这些C语言中的开源项目吗?
12万行+,看起来挺可怕。

  1. c-algorithms
    一个常用算法和数据结构的集合。

代码统计:

学习C语言的你知道这些C语言中的开源项目吗?
7000多行,小意思。
小编精心整理了C语言资料一份----点击这里领取