- Code Reading--10 C open Source projects
- 1. Webbench
- 2. Cmockery
- 3. Libev
- 4. Memcached
- 5. Lua
- 6. SQLite
- 7. Redis
- 8. Nginx
- 9. UNIXv6
- Ten. NETBSD
Code Reading-10 C open Source projects 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. 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
3. 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
4. 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/
5. 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/
6. 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/.
7. Redis
Redis is an open source data structure server written in ANSI C. Redis code is very easy to read, the code is neat, and the code is relatively small (4.5w lines, in fact, is not very small). Most are single-threaded, with little reliance on other libraries. : redis.io/
8. Nginx
Nginx ("Engine X") is a high-performance HTTP and reverse proxy server, also a IMAP/POP3/SMTP proxy server. Nginx was developed by Igor Sysoev, the second-most visited rambler.ru site in Russia, which has been in operation for more than four years. Igor release the source code in the form of a BSD-like license. Since Nginx was released for four years, Nginx has been known for its stability, rich feature set, sample configuration files and low system resource consumption.
Nginx Excellent In addition to the program structure and code style, Nginx source organization is also concise and clear, the structure of the directory hierarchy is clear, it is worth learning. : http://nginx.org/en/download.html.
9. UNIXv6
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/
(EXT) 10 C Open Source projects