ACE 網絡框架
CEGUI 界面庫
boost C++庫
cocos2d 遊戲庫
delta3d 遊戲引擎
OGRE 渲染引擎
facebook-hiphop php引擎
d2x-xl 遊戲
hadoop 分佈式文件系統
mangos wow 模擬server
opencv 圖形庫
tbb 併發庫
three。js js3d渲染引擎
v8 js引擎
monkeySpider js引擎
node js server端
wxwidget c++界面庫
qt c++界面庫
sgs client + server的解決方案
------------------------------------------------------------------------------------------------------------------------------------------------------------------
有一篇文章總結了一些Google比較著名的開源項目(該文全文已附在本文最後),本文在那篇文章基礎上又添加了幾個開源項目。
一個很著名的C++單元測試框架,簡稱gtest,有豐富的文檔可以參考。另外一些比較著名的C++測試框架有CppUnit, CxxTest, boost::test。
另外一個C++單元測試框架,在寫單元測試用例,經常需要編寫模擬對象來模擬測試單元的“上游”和“下游”程序邏輯和環境,googlemock就是用來mock這種對象的。據說google內部超過100個項目在使用它,可以和googletest一起使用
解析URL的一個類庫
該庫支持在程序運行的時候隨時生成coredump文件,而不同停止程序。
提供了一系列google API
是一個優化和編譯javascript的工具,常用來分析和解析javascript,被google search, google doc,gmail等項目廣泛使用。
一個模板工具。可以自己定義模板,並使用javascript或者java語言輔助生成HTML和UI元素,從而將程序邏輯層和展示層分開。被用於gmail和google doc等項目。
---------------------------------------------------------轉載全文--------------------------------------------------------
Google是支持開源運動的最大公司之一,它們現在總共發佈有超過500個的開源項目(大部分都是利用它們的API來完成),本文將列舉一些有趣的開源項目,其中很可能有不少你不知道的哦。
文本文件處理:
Google CRUSH (Custom Reporting Utilities for SHell)
CRUSH是爲命令行或shell scripts處理特定文字數據而製作的一系列工具,這裏有指南。
C++庫和源代碼:
一個開源的多平臺崩潰報告系統。
Gflags是一個命令行標記的處理庫,它可以替代“getopt()”,其內置對C++的支持比如string。指南在此。
Glog庫可執行應用級的日誌,提供基於C++式的日誌API,可用於Linux、BSD和Windows。指南見此。
這個工具可讓開發創建更強大的應用程序,特別是那些用C++模版開發的多線程應用程序,包括TCMalloc, heap-checker, heap-profiler 和cpu-profiler。指南見此還有這裏。
非常節省內存的hash-map。指南見此。
Omaha,也就是Google Update,它可以保證你的軟件隨時升級到最新版本,目前很多Windows下的Google軟件都是用Omaha升級的,包括Google Chrome和Google Earth,當然你也可以用於自己的應用程序。指南看這裏還有這裏。
Protocol Buffers是一種可擴展編碼序列數據的方式,Google在幾乎所有內部RPC協議和文件格式都使用了Protocol Buffers。指南見此。它可以用於很多語言而且被一些IDE所支持,比如NetBeans。
互聯網:
這是一個Javascript模塊和CSS文件,它可以讓HTML頁面裏的部分源碼高亮顯示,支持C/C++, Java, Python, Ruby, PHP, VisualBasic, AWK, Bash, SQL, HTML, XML, CSS, JavaScript, Makefiles和部分Perl,不支持Smalltalk和所有的CAML。例子見此。
SpriteMe使你可以更輕鬆的創造CSS Sprites(俗稱雪碧……)就是把網站要用到的圖片都堆在一張圖片裏,用CSS控制調用哪個區域。它有一個自己的官網在這裏。
Reducisaurus是一個壓縮CSS和JS文件的網絡服務,基於YUI壓縮算法,運行於App Engine。
JaikuEngine是一個運行於App Engine的微博系統,由jaiku.com運營。要查看移動客戶端的源碼可以看這裏,這裏還有介紹。
Selector Shell是一個基於瀏覽器的測試工具,它可以讓你看到CSS在不同瀏覽器裏的樣式,用Javascript寫的,你可以在這裏測試。
Google Feed Server是一個開源Atom發佈協議服務,基於Apache Abdera框架,允許開發者快速爲當前數據源(比如數據庫)配置feed。指南見這裏和這裏。
Melange, the Spice of Creation
這個項目的目標是創建出一個適合開源貢獻流程的框架,比如Google Summer of Code TM (GSoC)項目。使用這個框架你就可以用Google App Engine來運行Google Summer of Code項目,和其它類似項目比如Google Highly Open Participation TM Contest和GHOP。指南見此。
它可以查找最快的DNS服務器給你的電腦用,在Mac OS X、Windows和UNIX系統下都有命令行也有用戶界面可以幫你測試,這是Google工程師用20%自由時間寫出來的。
一個半自動化的大型被動網絡應用安全審查工具,專爲精確的探測而優化,文檔在此。
Top Draw是一個圖形生成程序,使用簡單的文字腳本,基於JavaScript編程語言,Top Draw可以創造出非常複雜和有趣的圖形。支持Mac OS 10.5以上系統,使用XCode開發。
開源的EtherPad,這是一個基於網絡的實時合作文檔編輯器,這個項目主要是爲了演示代碼而開發,幫助那些想在自己服務器部署Etherpad的人使用,這裏有如何安裝的指南。EtherPad使用JavaScript、Java和Comet服務器來建造實時協作服務。
Chromium是開源版的Chrome瀏覽器,Chromium的目標是建立一個新一代的強大網絡應用程序,它與Chrome有很多不同之處。這裏有指導如何在Linux上編譯Chromium。
V8 Google's open source JavaScript engine
V8是Google的開源JavaScript引擎,用C++寫成,用於Chrome瀏覽器之上。V8使用ECMAScript的ECMA-262第三版可運行於Windows XP、Vista、Mac OS 10.5和使用IA-32或ARM處理器的Linux。V8可獨立運行也可嵌入到任何C++程序裏使用,這裏有指南。
Chromium OS是開源版的Chrome OS操作系統,提供快速、簡單而安全的網絡體驗,源碼在此。
Android是第一個免費、開源而且可完全自定義的移動平臺,提供完整的堆棧:一個操作系統、中間件和重要的一用應用,它包含豐富的API可以讓第三方開發者開發出強大的應用程序。
MySQL工具:
各種管理、維護和改進MySQL數據庫性能的工具,由Google編寫,包括:
- mypgrep.py:一個類似pgrep的工具來管理MySQL連接
- compact_innodb.py:可導出和重載所有表格的密集型innodb數據文件
mMAIM的目標是對MySQL的監控和分析更簡單,且可以和任何環境整合使用。它可顯示主/從同步狀態,一些性能狀態,可以返回大量“show”命令的狀態等等。
其它:
Stressful Application Test (stressapptest)
Stressful Application Test試圖讓來自處理器和I/O到內存的數據儘量隨機化,以創造出模擬現實的環境來測試現在的硬件設備是否穩定,Google就在使用它,現在是Apache 2.0許可,這裏有介紹、安裝嚮導和指南。
它用於診斷並解決客戶端到郵件服務器的連接問題。
Openduckbill是一個Linux下簡單的命令行備份工具,可用於監視文件/目錄在有變化後是否標記爲備份,並傳輸這些變化到本地備份目錄、遠程NFS導出分卷或是用rsync命令導出到遠程SSH服務器。見安裝嚮導。
ZXing(發音類似Zebra crossing)是Java的開源多格式1D/2D條碼圖像處理庫,目的是使用內置在手機上的攝像頭拍照並對條碼進行解碼,而不必與服務器通訊,它被用於Android系統。這裏有嚮導和支持的設備列表。
Tesseract OCR引擎是1995年UNLV Accuracy測試的前三名之一,在1995和2006年之間它的進展不大,但依然是當前精度最高的OCR引擎。這個源碼可讀取二進制、灰階或彩色圖片並輸出文字,內置一個TIFF閱讀器可讀取非壓縮的TIFF文件,增加libtiff後也可讀取壓縮圖片。指南和問答。
Neatx是一個開源NX服務,類似NoMachine公司商業的NX服務。NX協議比VNX更強大,它們的區別主要在:
- NX是X11客戶端所以不會發送位圖
- NX可兼容X、VNC和Windows版的Remote Desktop
- NX可緩存數據
- NX安裝簡單
另外一個可選的項目可以看看Google的FreeNx。
它是這個文件的代碼,這是一個SVM的“支持所有核心”的版本,可多機並行運行,實例見此。
Google開發的新編程語言,谷奧有報道。
The Google Collections Library for Java
這是一系列與Java 5以及更高版本有關的庫,Google花錢給買過來了。
每個主流的開源項目都有它自己的嚮導形式,比如一系列的演示代碼。如果這些代碼都按照“Style”的形式來演示,會更友好。