Google's C + + open source project
V8-V8 JavaScript Engine
V8 is Google's open source JavaScript engine.
V8 is written in C + + and can be used in Google Chrome (an open source browser from Google).
V8 uses ECMAScript as described in ECMA-262 Third 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 be run standalone or embedded in any C + + application.
Nativeclient-native code for Web Apps
The Native client is an open-source, research-only technology that runs native code in a Web application (currently supporting only the x86 architecture), providing a better "rich client" user experience. It allows web developers to write more powerful web programs that run directly through the system without having to go through a browser, which, according to Google, will eventually allow web developers to develop and desktop-like software that will deliver faster speeds. Native client is similar to Microsoft's ActiveX technology, and it can also run under Linux and Mac OS x. Currently it does not support IE and only supports Google Chrome, Firefox, Safari and opera.
Tesseract-ocr-an OCR Engine that is developed at HP Labs between 1985 and 1995 ... And now at Google.
OCR (Optical Character recognition): Optical character recognition refers to the process of analyzing and identifying the text in a picture file and acquiring it.
Tesseract: Open source OCR recognition engine, the initial tesseract engine was developed by HP Labs, later contributed to the open source software industry, and then improved by Google, eliminating bugs, optimizing, republishing. The current version is 3.01.
Google-glog-logging Library for C + +
Google Glog is a C + + library based on program-level logging information that is programmed to be used in a similar way to the C + + stream operation, for example:
LOG (INFO) << "Found" << num_cookies << "cookies";
Double-conversion-binary-decimal and Decimal-binary routines for IEEE doubles.
Code related to numerical calculations drawn from the V8 engine, including large number calculations, numeric to string conversions, etc.
Googletest-google C + + testing Framework
The Gtest test framework [1] is generated on different platforms (Linux,mac OS x,windows,cygwin,windows CE and Symbian) for writing C + + tests. It is a test framework based on the Xunit architecture that supports automated discovery testing, a rich set of assertions, user-defined assertions, death tests, fatal and non-fatal failures, type parameterization tests, various options for running tests, and test reports for XML.
Googlemock-google C + + Mocking Framework
Googlemock mock technology, in C + + unit testing can be arbitrarily modified function behavior of the technology.
Googlemock is a mock-up framework developed by Google Gtest for C + + unit testing.
Libphonenumber-google ' s phone number handling library, powering Android and more
A library dedicated to handling phone numbers
Google-diff-match-patch-diff, match and patch libraries for Plain Text
Google-diff-match-patch This class library provides a powerful algorithm for the differential comparison of plain text content, matching, patching, and implementing some of the actions required to synchronize plain text. Multiple languages are supported: Java, JavaScript, C + +, C #, Objective C, Lua, and Python.
Libkml-a KML Library written in C + + bindings to other languages
LIBKML is a library that parses, generates, and operates KML. Use the OGC KML2.2 standard.
KML, an abbreviation for the Keyhole Markup Language (Keyhole Markup Language), is a language that uses XML syntax and formatting to describe and preserve geographic information, such as points, lines, images, polygons, and models, and can be used by Google Earth and Google Maps is recognized and displayed. You can use KML to share landmarks and information with other Google Earth or Google Maps users. Of course, you can also get interesting KML files from relevant websites such as the Google Earth community. The way Google Earth and Google Maps work with KML files is similar to how Web browsers handle HTML and XML files. Like HTML, KML uses a label (tag) that contains the name and attributes to determine how it is displayed. As a result, you can treat Google Earth and Google Maps as a KML file browser. Click here to get more information.
Gdata-cpp-util-google Data APIs C + + utility Library
A tool library for Google Data APIs that can be get/post/put/delete
Lutok-lightweight C + + API for Lua
is a Lua C + + Wrapper
Lua is a small scripting language. A research group in the Catholic University of Rio de Janeiro, Brazil (Pontifical Catholic University of Rio de Janeiro), by Roberto Ierusalimschy, Waldemar Celes and Luiz Henr Ique de Figueiredo was formed and developed in 1993. It is designed to be embedded in the application, providing flexible extension and customization capabilities for the application. LUA is written in standard C and can be compiled and run on almost all operating systems and platforms. LUA does not provide a powerful library, which is determined by its positioning. So Lua is not suitable as a language for developing standalone applications. Lua has a simultaneous JIT project that provides instant compilation capabilities on a specific platform.
Dcs-bwt-compressor-data Compressor Program and library
DCSBWT is a library of data compression programs based on the Burrower-wheeler transform
Treetree-generic n-ary Trees for C + +
Treetree (http://code.google.com/p/treetree/) is a C + + Library that contains only header files. It implements a generic tree-structured container class (adhering to STL conventions) and implements operator >> and operator <<.
Its bottom layer contains a doubly linked list. In addition to the preceding pointer and the latter pointer, each tree node also contains a third pointer-a list that points to all child nodes. This implementation is efficient and the API is very clear. Treetree can express anything that can be expressed using Lisp S-expressions (such as the reasoning tree (inference trees, programs), etc.).
You can use the preamble and post-order traversal to traverse only the child nodes of a node, or simply traverse the leaf nodes. The options for the example also include traversing a subtree (such as f (g (x, y), z) before the sequence traversal, which is f (g (x, y), z), g (x, Y), X, Y, and Z.
Ctemplate-powerful but simple template language for C + +
The design philosophy of Ctemplate (Google-ctemplate) is lightweight, fast, and separate from logic and interface, so there are some differences between clearsilver and Teng. For example, Ctemplate does not have a template function, there is no conditional judgment and Loop statement (of course, it can be implemented in a flexible manner). Ctemplate is broadly divided into two parts, one for templates and one for data dictionaries. The template defines the form of the interface presentation (V), the data dictionary is the data that fills the template (M), and you write your own business logic to control the interface presentation (C), a typical MVC model.
Sparsehash-an Extremely memory-efficient Hash_map implementation
Google Sparse Hash is Google a very memory-saving hash map implementation
Gflags-commandline Flags Module for C + +
Google GFlags is a command-line tag processing library that can replace "getopt ()" with built-in support for C + + such as String.
Protobuf-protocol Buffers-google ' s Data Interchange Format
Google Protocol Buffer is a platform-independent, language-independent serialization and deserialization tool for structured data.
Protocol buffer, which can be used for data exchange across processes, across machines, different operating systems, and different programming languages. Similar to Microsoft's COM IDL or XML, but parsing is faster and requires fewer bytes to transmit. (c+
+, Java, Python)
Gperftools-fast, multi-threaded malloc () and nifty performance analysis tools
Tcmalloc,heap detection is a tool that Google uses for performance testing. (c + +)
Google-breakpad-crash reporting
Breakpad, the beginning of a project needs to do some kind of infrastructure, crash dump and run logging is undoubtedly the right thing to do, this project is responsible for gathering information in crash, send crash dump report.
The classic C + + library
STLport-------A cross-platform portable version of the SGI STL Library, which was useful at a time when some compilers were far from conforming to the standard, although vc71 is now relatively close to the standard, so it is not used at the moment.
Boost---------quasi-standard library, powerful for most of the non-special domain algorithms that can be thought of, with a large C + + community support
Wxwindows-----A powerful cross-platform GUI library, its functions and structure are similar to MFC, so in principle can be wxwindows to the existing MFC program to the non-win platform
Blitz---------Efficient numerical calculation function library, you can customize the algorithm you need to add
log4cpp-------log processing, functions similar to log4j in Java
ACE-----------Adaptive Communication Environment, heavyweight communication Environment Library.
crypto++-----Encryption/decryption algorithm library, a very professional C + + Cryptographic function library
CppUnit---A C + + unit Test framework similar to Java's JUnit
Loki-------An experimental library, trying to make things like design patterns such as the idea of a library to provide, he is a template Library of C + +, is the C + + "Aristocrat", it has the function of C + + template to play to the extreme
The academic C + + library:
fc++--------The functional c++library, with a library to expand the language of a masterpiece, template Library
Cgal-------Computational Geometryalgorithms The most important solutions and methodologies for computational geometry of the library are available to industrial and academic users in the form of C + + libraries.
Other now I'm not feeling very cool C + + library:
Doxygen----Comment document generation tool, hateful is I can't find the version of Windows
QT----------name Top top of a multi-platform C + + graphical user Interface application framework (GUI library) exasperating is that his Windows edition is commercially released to pay for
XML4C--------IBM-developed XML Parser, the ultra-heavyweight, for large applications, its DLL 12M, Scary Bar, lightweight tinyxml
Xerces C + +--apache XML project, but supports only a small number of character encodings, such as ascii,utf-8,utf-16, that cannot handle XML documents that contain Chinese characters
Xmlbooster-----is also a parsing tool for XML
Fox-------Another Open source (c + +) GUI library, not very powerful
C + + development environment (except visualc++ and Borland C + + in the win platform):
Cygwin--------A UNIX emulation environment under Windows
MinGW--------A Windows ported version of GCC
Dev C + +--------an integrated development environment for C/s + +, when the C + + compiler on Windows has been at a distance from the standard, GCC is a compiler that lets Windows developers drool.
ECLIPSE-CDT----An integrated development environment developed by IMB, which is generally used as a Java development environment, but since eclipse extends functionality through the plug-in system, here we install the CDT plugin, which can be used as a C + + integrated development environment tool.
50 well-known open source sites
1, http://snippets.dzone.com/tag/c/--Thousands of useful C language source code fragments
2, Http://www.hotscripts.com/category/c-cpp/scripts-programs/Hotscripts-provides hundreds of C and C + + scripts and programs. All programs are categorized into different categories.
3, http://www.planetsourcecode.com/vb/default.asp?lngwid=3--more than million lines C and C + + Free source code
4, http://freshmeat.net/browse/164/--more than 9,000 C-written projects.
5, Http://www.daniweb.com/code/c.html--DANIWEB provides a practical code snippet.
6, C programming resources on the http://www.programmersheaven.com/tags/C/--programmersheaven.com.
7. Source code of Http://www.ddj.com/code/ddj.html--Dr. Dobb ' s journal.
8, Http://www.cprogramming.com/cgi-bin/source/source.cgi--C and C + + programming resources.
9. Http://www.codecogs.com/--CodeCogs is a collaborative open source library, a component of the numerical aspects of C/s.
10, http://www.google.com/codesearch?q=programming++lang:c&cs_r=lang:c--Google code C source code.
11. Http://www.codepedia.com/1/C--CodePedia is an open question about system programming and other computer-related issues.
12, http://www.cis.temple.edu/~ingargio/cis71/code/--for students to provide a simple list of C language programs.
13. Http://www.codeproject.com/?cat=2--codeproject provides a C + + resource code project.
14, http://www.thefreecountry.com/sourcecode/cpp.shtml--below are some C and C + + libraries of dll,vcls, source code, components, modules, application framework, class library, source code snippets, etc. You can use it in your project without paying fees and royalties.
15. http://people.sc.fsu.edu/~burkardt/cpp_src/cpp_src.html--This is a comprehensive list of 345 source codes for C + +.
16, http://www.cplusplus.com/src/--C++ write the General console program and Windows program code list.
17, http://users.cs.fiu.edu/~weiss/dsaa_c++/code/--C++ language data structure and algorithm Analysis (second edition) of the source code.
18, Http://c.snippets.org/--C source code fragment.
19, http://www.bbdsoft.com/downloads.html--C++ source code.
20. http://www.moshier.net/Astronomy and numerical software source code
21, http://cplus.about.com/od/cgames/c_games_with_source_code.htm--game about the C + + source code.
22, http://cliodhna.cop.uop.edu/~hetrick/c-sources.html--free of C + + numerical calculation source code.
23, http://www.mathtools.net/C_C__/Utilities/index.html--C/C++ tools.
24, http://www.programmerworld.net/resources/c_library.htm--free C + + source code and other useful tools.
25, http://www.cmcrossroads.com/bradapp/links/cplusplus-links.html--Brad Appleton C + + links-resources, projects, libraries, teaching and coding.
26. http://www.robertnz.net/cpp_site.html--This is a Web page that collects a list of links to a number of C + + websites.
27, http://www.josuttis.com/libbook/examples.html--here, you can see and download all the books of the C + + standard library example.
28. ftp://66.77.27.238/sourcecode/cuj/--C/C++ User Magazine
29. Ftp://66.77.27.238/sourcecode/wd/--Windows Developer Network
30. Http://www.einet.net/directory/65892/Developers.htm--C procedure
31, http://www.daniweb.com/code/cplusplus.html--practical code segment.
32. http://snippets.dzone.com/tag/c--C++ Source Code
33, http://www.programmersheaven.com/tags/C--C++ programming resources, programmersheaven.com
34, http://www.google.com/codesearch?hl=en&lr=&q=programming--Google Code search-c++ programming language
35. Http://www.codepedia.com/1/Cpp--CodePedia is an open Web site on system programming and other computer-related issues.
36, http://www.codebeach.com/index.asp?TabID=1&CategoryID=3--C++ source code, Codebeach provide
37. C + + programming language written by http://freshmeat.net/browse/165/--5000 project
38, http://cplus.about.com/od/codelibrary/code_library_for_c_c_and_c.htm--code base C, C + + and C #.
39, Http://www.c.happycodings.com/--Visual Basic, PHP, ASP technology, C, C + + Daquan.
40, Http://www.blueparrots.com/--Borland C game, image and sound source code example.
41, http://www.java2s.com/Code/Cpp/CatalogCpp.htm--C++ source code.
42. Http://www.yeohhs.com/modules/mydownloads/--C and C + + ebook and source code examples.
43, http://www.brpreiss.com/books/opus4/programs/index.htmlC++ the mathematical equation and formula source code.
44, http://users.cs.fiu.edu/C++.
45. http://www.josuttis.com/libbook/examples.html--C++ Standard Library-tutorials and references.
46, Http://emr.cs.uiuc.edu/~reingold/calendars.shtmlEdward M. Reingold ' s Calendar book, Papers, and Code.
47, http://cpp.snippets.org/--c++ source code files.
48, http://ubiety.uwaterloo.ca/~tveldhui/papers/techniques/--with C and C + + to solve scientific problems.
49. http://c.ittoolbox.com/topics/core-c/--C/C++ It tool box.
50. http://www.le.ac.uk/cc/tutorials/c/ccccdbas.html--This file contains a large number of C sample programs
The following combination of their own years of development experience, think where to write where, I hope that the new people have some help.
First, the network
The network library must master aces and Libevent, one is a heavyweight network library, and the other is a lightweight network library. Think about it, now that app doesn't use the Internet. Do not understand the network, you will be unable to move AH. Familiar with the two open Source Library premise is that you must understand the principle of socket, to recommend the good Book is "UNIX Network Programming", read this book can be, and other what "Windows network Programming" These do not have to look, because network programming, you learned the Berkeley socket, You can do network programming on any platform, do not need to learn what the network programming under Windows, because the network under Windows is also from the Berkeley socket, if you learn "Windows network Programming", then you Linux,unix the day under the network programming, You'll have to study a bit. There is no need for that.
Second, the database
Database well, open source MySQL and open source PostgreSQL as long as understand one of them, business database in mastering an Oracle can, file database Master SQLite. But please note, do not be confused by the database name above, the nature of the database is SQL statement, must understand the basic principles of the database, proficient in the use of SQL language, understand the optimization of the database, stored procedures. The principle of the database to understand, take what database come easy to master, will not care whether it is MySQL or Oracle.
Third, the log operation
Log operations recommended that you are familiar with Log4cpp this log library, support multi-threading, log redirection to the network, and so on, anyway you can think of the functions of the log have. Log, one is convenient to find the problem, easy to record the operation of some cases. This is a must.
Iv. Management Background
As we all know, writing programs is for others to use, not their own use, so in the program's ease of use, more to the other side to provide some direct view of the management interface, appears to be divided into important. For the program to provide a Web management interface, convenient for users to log on to view the program's various information, it is necessary.
V. Read the configuration file
All programs must have a configuration file that facilitates configuration of projects and provides flexibility for the program. So write a program that must have a wrapper class to read the configuration file.
Six, Memory pool
All processes need to allocate memory, and allocating and managing memory is a challenging task for C + +. We recommend Nedmalloc this open source memory pool library. Nedmalloc is a cross-platform, high-performance multi-threaded memory allocation library that is used by many libraries.
Vii. Cache Library
As we all know, the most used cache library is memcache. This is especially useful when doing database development.
Eight, the script
Script is a very interesting thing, a lot of features, in fact, we just write a script can be done, the code is small, development speed. The scripts that have to be mastered are more commonly used to count Perl, very old languages, but the features are too powerful. I can assure you that. Net,java can do a good job, and it's sure to get Perl to do it. C capable, Perl is not necessarily capable. Perl, as a Linux,unix system-integrated scripting language, must learn.
The LUA language is used more in the game industry.
Python script, very powerful, recommended to learn.
These are some of the more common features that all programs will use.
In different application areas, need to master different open source libraries, such as game development, may need to master the open source UI library Cegui, Duilib, open source 3D engine ogre and so on.
Google's C + + open source project