Google ChromeAs everyone already knows, Google released a new open-source web browser called Chrome.

Having interest in code reuse, I downloaded the source code and examined all the open-source libraries used.

Google Chrome browser shows excellent example of code reuse. I found that they use at least 25 different software libraries!

Here is the full list of libraries, along with relative paths to source code and short library descriptions. Many of the libraries have been patched by googlers; look for files in each library directory for information about changes.

Library Relative Path Description
Google Breakpad /src/breakpad An open-source multi-platform crash reporting system.
Google URL /src/googleurl A small library for parsing and canonicalizing URLs.
Skia /src/skia Vector graphics engine.
Google v8 /src/v8 Google's open source JavaScript engine. V8 implements ECMAScript as specified in ECMA-262, 3rd edition, and runs on Windows XP and Vista, Mac OS X 10.5 (Leopard), and Linux systems that use IA-32 or ARM processors. V8 can run standalone, or can be embedded into any C++ application.
Webkit /src/webki Open source web browser engine.
Netscape Portable Runtime (NSPR) /src/base/third_party/nspr Netscape Portable Runtime (NSPR) provides a platform-neutral API for system level and libc like functions.
Network Security Services (NSS) /src/base/third_party/nss Network Security Services (NSS) is a set of libraries designed to support cross-platform development of security-enabled client and server applications. Applications built with NSS can support SSL v2 and v3, TLS, PKCS #5, PKCS #7, PKCS #11, PKCS #12, S/MIME, X.509 v3 certificates, and other security standards.
Hunspell /src/chrome/third_
Spell checker and morphological analyzer library and program designed for languages with rich morphology and complex word compounding or character encoding.
Windows Template Library /src/chrome/third_party/wtl C++ library for developing Windows applications and UI components. It extends ATL (Active Template Library) and provides a set of classes for controls, dialogs, frame windows, GDI objects, and more.
Google C++ Testing Framework /src/testing/gtest Google's framework for writing C++ tests on a variety of platforms (Linux, Mac OS X, Windows, Windows CE, and Symbian). Based on the xUnit architecture. Supports automatic test discovery, a rich set of assertions, user-defined assertions, death tests, fatal and non-fatal failures, various options for running the tests, and XML test report generation.
bsdiff and bspatch /src/third_party/bsdiff and /src/third_party/bspatch bsdiff and bspatch are tools for building and applying patches to binary files.
bzip2 /src/third_party/bzip2 bzip2 compresses files using the Burrows-Wheeler block sorting text compression algorithm, and Huffman coding.
International Components for Unicode (ICU) /src/third_party/icu38 ICU is a mature, widely used set of C/C++ and Java libraries providing Unicode and Globalization support for software applications.
libjpeg /src/third_party/libjpeg Library for handling the JPEG (JFIF) image format.
libpng /src/third_party/libpng PNG image format library. It supports almost all PNG features, is extensible, and has been extensively tested for over 13 years.
libxml /src/third_party/libxml XML C parsing library.
libxslt /src/third_party/libxslt XSLT C library.
LZMA /src/third_party/lzma_sdk LZMA is the default and general compression method of 7z format in the 7-Zip program.
stringencoders /src/third_party/modp_b64 A collection of high performance c-string transformations (in this case, base 64 encoding/decoding), frequently 2x faster than standard implementations (if they exist at all).
Netscape Plugin Application Programming Interface (NPAPI) /src/third_party/npapi Cross-platform plugin architecture used by many web browsers.
Pthreads-w32 /src/third_party/pthread Application programming interface (API) for writing multithreaded applications
SCons - a software construction tool /src/third_party/scons Open Source software construction tool—that is, a next-generation build tool. Think of SCons as an improved, cross-platform substitute for the classic Make utility with integrated functionality similar to autoconf/automake and compiler caches such as ccache.
sqlite /src/third_party/sqlite Software library that implements a self-contained, serverless, zero-configuration, transactional SQL database engine.
TLS Lite /src/third_party/tlslite Free Python library that implements SSL 3.0, TLS 1.0, and TLS 1.1. TLS Lite supports non-traditional authentication methods such as SRP, shared keys, and cryptoIDs in addition to X.509 certificates. Note: Python is not a part of Chrome. It's used for testing various parts of Chrome browser, such as code coverage, dependencies, measures page load times, compares generated html, etc.
zlib /src/third_party/zlib zlib is designed to be a free, general-purpose, legally unencumbered -- that is, not covered by any patents -- lossless data-compression library for use on virtually any computer hardware and operating system.

They have done a really good job making these libraries work together. As someone said, "good coders code, great reuse."

I also found some other exciting things in the source, which I will soon post about. I recommend that you subscribe to my rss feed, if you are interested!

Talking about Chrome, I am waiting for Google to add capability to write extensions for their browser! I already made a list of extensions that I will try to create as soon as they add this feature.