There are many good open source projects in the open source world, and I've chosen 10 of the best and most lightweight C-language projects, and hope to provide a reference for C language developers.
1. Webbench
Webbench is a very simple web site pressure measurement tool that is used under Linux. It uses fork () to simulate multiple clients accessing the URL we set at the same time, testing the performance of the site under pressure, and simulating up to 30,000 concurrent connections to test the load capacity of the site. Webbench use C language, code is too concise, the source add up to less than 600 lines.
Download Link: http://home.tiscali.cz/~cz210552/webbench.html
2. tinyhttpd
TINYHTTPD is an ultra-lightweight HTTP server, developed in C language with only 502 lines (including comments), with a simple client that can read this code to understand the nature of an Http server.
Download Link: http://sourceforge.net/projects/tinyhttpd/
3. Cjson
Cjson is a JSON codec in the C language, very lightweight, C files only more than 500 lines, the speed is very ideal.
Cjson also has several weaknesses, although the function is not very powerful, but the Cjson small body and speed is the most commendable. Its code is very well maintained, the structure is easy to understand and can be learned as a very good C language project.
Project home: http://sourceforge.net/projects/cjson/
4. Cmockery
Cmockery is a lightweight framework that Google publishes for C unit testing. It is small, has no dependencies on other open source packages, and is less intrusive to the code being tested. Cmockery the source code line of less than 3K, you read the Will_return and mock source is at a glance.
Main Features:
- Free and open source, Google provides technical support;
- The lightweight framework makes testing faster and easier;
- Avoid the use of complex compiler features, the old version of the compiler, the compatibility is good;
- It is not mandatory to require the code to be tested to rely on the C99 standard, which is useful for the development of many embedded systems
Download Link: http://code.google.com/p/cmockery/downloads/list
5. Libev
Libev is an open source event-driven library based on the infrastructure provided by OS such as Epoll,kqueue. Known for its efficiency, it can unify IO events, timers, and signals to be processed in a single set of event-handling frameworks. Based on the reactor model, the efficiency is high, and the Code is streamlined (4.15 versions over 8,000 lines), which is a good resource for learning event-driven programming.
Download Link: http://software.schmorp.de/pkg/libev.html
6. Memcached
Memcached is a high-performance distributed memory object caching system for dynamic Web applications to mitigate database load. It provides the speed of a dynamic database-driven Web site by caching data and objects in memory to reduce the number of times the database is read. Memcached is based on a hashmap that stores key/value pairs. Memcached-1.4.7 's code volume is acceptable, only about 10K lines.
: http://memcached.org/
7. Lua
Lua was great, and Lua was invented by Brazilians, which made me uncomfortable, but not blushing, most jealous.
What makes me blush is the source code of LUA, 100% ANSI C, which is not doped at all. It is easy to compile on any platform that supports the ANSI C compiler. I've tried, it's a bit of crap. The number of LUA code is small enough, 5.1.4 only 1.5W lines, minus blank lines and comments can be estimated to 1W lines.
: http://www.lua.org/
8. SQLite
SQLite is an open-source, embedded relational database that implements a self-contained, 0 configuration, transactional SQL database engine. It is characterized by its high portability, ease of use, compact structure, high efficiency and reliability. Small enough, roughly 30,000 lines C code, 250K.
: http://www.sqlite.org/.
9. UNIX V6
UNIX V6 Kernel Source code includes device drivers, including about 10,000 lines, this number of source code, the beginner is able to fully understand. There is a saying that a person can understand the code limit of 10,000 lines, UNIX V6 kernel source code in terms of the number is exactly within this range. See here, do you have "if only 10,000 lines, maybe I can learn" idea?
On the other hand, recent operating systems, such as the latest version of Linux, are said to have more than 10 million lines of kernel source code. Even if you are not a beginner, it is virtually impossible to fully understand the entire code.
: http://minnie.tuhs.org/cgi-bin/utree.pl?file=V6
Ten. NETBSD
NetBSD is a free, highly-ported unix-like operating system that is the most current portable platform operating system and can be executed on many platforms, from 64bit Alpha servers to handheld devices and embedded devices. The slogan for the NetBSD program is: "Of course it runs NetBSD". Its simple design, code specification, and many advanced features make it highly acclaimed in the industry and academia. Due to its concise design and advanced features, it has excellent performance in both production and research, and it also has a complete source code supported by the user. Many programs can be easily obtained by NetBSD Packages collection.
: http://www.netbsd.org/
Copyright NOTICE: This article for Bo Master original article, without Bo Master permission not reproduced.
10 most notable C open source projects