1. 程式人生 > >Google最熱門60款開源專案

Google最熱門60款開源專案

0、機器學習系統 TensorFlow  ★Star 62533

 

 

TensorFlow 是谷歌的第二代機器學習系統,按照谷歌所說,在某些基準測試中,TensorFlow的表現比第一代的DistBelief快了2倍。TensorFlow 內建深度學習的擴充套件支援,任何能夠用計算流圖形來表達的計算,都可以使用TensorFlow。任何基於梯度的機器學習演算法都能夠受益於TensorFlow的自動分 化(auto-differentiation)。通過靈活的Python介面,要在TensorFlow中表達想法也會很容易。(詳情:https://github.com/tensorflow/tensorflow

 

1、material-design-icons  ★Star 30315

Google 開源了 Material Design 系統圖標包其中的 750 個字形。該系統圖標包含常用的圖示,如用於媒體播放、通訊、內容編輯、連線等等。在 Web 應用,安卓和 iOS 設計均適用。(詳情:http://google.github.io/material-design-icons/

 

2、前端開發工具組 MDL  ★Star 27873

MDL (Material Design Lite) 是 Google 推出的網站前端開發工具組。Material Design Lite (MDL)可以讓你新增一個 Material Design 的外觀和感覺到你的靜態內容網站,不依賴於任何的 JavaScript 框架和庫。MDL 可以優化跨裝置的使用體驗,可以在舊版的瀏覽器進行平滑的切換,提供非常快速的訪問體驗。(詳情:

https://github.com/google/material-design-lite

 

3、Web 前端框架 Angular  ★Star 25524

Angular 是一款十分流行且好用的 Web 前端框架,目前由 Google 維護。官方已將 Angular 2 和之前的版本 Angular.js 分開維護(兩者的 GitHub 地址和專案主頁皆不相同)。漸進式 Web 應用,藉助現代化 Web 平臺的力量,交付 app 式體驗。高效能、離線化、零安裝。(詳情:https://github.com/angular/angular

 

4、容器叢集管理系統 Kubernetes  ★Star 24599

Kubernetes 是來自 Google 雲平臺的開源容器叢集管理系統。基於 Docker 構建一個容器的排程服務。該系統可以自動在一個容器叢集中選擇一個工作容器供使用。其核心概念是 Container Pod。(詳情:https://github.com/kubernetes/kubernetes

 

5、資料描述語言 protobuf  ★Star 18447

Protocol Buffers (ProtocolBuffer/ protobuf )是Google公司開發的一種資料描述語言,類似於XML能夠將結構化資料序列化,可用於資料儲存、通訊協議等方面。現階段支援C++、JAVA、Python等三種程式語言。同XML相比,Protocol buffers在序列化結構化資料方面有許多優點(詳情:https://github.com/google/protobuf

 

6、Java 常用庫 Guava  ★Star 17267

該專案是 Google 的一個開源專案,包含許多 Google 核心的 Java 常用庫。(詳情:https://github.com/google/guava

 

7、Spark  ★Star 13378

Spark 是谷歌公司推出的一款基於 Chrome 瀏覽器的開發環境。提供一組可重用的 UI 元件。採用 Dart 開發。(安裝方法:https://github.com/dart-lang/spark/tree/master/ide

 

8、RPC 框架 GRPC  ★Star 10363

GRPC 是一個高效能、開源和通用的 RPC 框架,面向移動和 HTTP/2 設計。目前提供 C、Java 和 Go 語言版本,分別是:grpc, grpc-java, grpc-go. 其中 C 版本支援 C, C++, Node.js, Python, Ruby, Objective-C, PHP 和 C# 支援.GRPC 基於 HTTP/2 標準設計,帶來諸如雙向流、流控、頭部壓縮、單 TCP 連線上的多複用請求等特。這些特性使得其在移動裝置上表現更好,更省電和節省空間佔用。(詳情:https://github.com/grpc/grpc

 

9、高質量壓縮圖片演算法工具Guetzli  ★Star 9959

Guetzli,是一個針對數碼影象和網頁影象的 JPEG 編碼器,能夠通過產生更小的 JPEG 檔案來達到更快的線上體驗,並且同時保持與當前瀏覽器,影象處理應用和 JPEG 標準的相容性。Google 稱 Guetzli 建立高質量的 JPEG 影象檔案的大小比當前的壓縮方法要再小 35%。上圖為 16x16 畫素樣本,是掛在藍天下的一根電話線,傳統 JPEG 演算法經常會遇到的失真狀況。左邊是未壓縮的原圖,中間為較小尺寸的 libjpeg,右邊是失真更少的 Guetzli 。(詳情:https://github.com/google/guetzli

 

10、k/v資料庫 Leveldb  ★Star 9799

Leveldb是一個google實現的非常高效的kv資料庫,目前的版本1.2能夠支援billion級別的資料量了。 在這個數量級別下還有著非常高的效能,主要歸功於它的良好的設計。特別是LSM演算法。(詳情:https://github.com/google/leveldb

 

11、自動化網路審查工具 Lighthouse  ★Star 9400

Lighthouse 是一個開源的自動化工具,用於改進網路應用的質量。 可以將其作為一個 Chrome 擴充套件程式執行,或從命令列執行。 當為 Lighthouse 提供一個要審查的網址,它將針對此頁面執行一連串的測試,然後生成一個有關頁面效能的報告。可以參考失敗的測試,看看可以採取哪些措施來改進應用。(詳情:https://github.com/GoogleChrome/lighthouse

 

12、Gson  ★Star 9261

Gson 是 Google 提供的用來在 Java 物件和 JSON 資料之間進行對映的 Java 類庫。可以將一個 JSON 字串轉成一個 Java 物件,或者反過來。(詳情:https://github.com/google/gson

 

13、最小系統載入工具 systemjs  ★Star 8356

systemjs 是一個最小系統載入工具,用來建立外掛來處理可替代的場景載入過程,包括載入 CSS 場景和圖片,主要執行在瀏覽器和 NodeJS 中。它是 ES6 瀏覽器載入程式的的擴充套件,將應用在本地瀏覽器中。通常建立的外掛名稱是模組本身,要是沒有特意指定用途,則預設外掛名是模組的副檔名稱。(詳情:https://github.com/systemjs/systemjs

 

14、序列化庫 FlatBuffers  ★Star 7991

FlatBuffers 是一個 Java 的序列化庫,用於遊戲和其他記憶體受限的應用。FlatBuffers 可以讓你直接訪問序列化後的資料,無需解壓並進行解析的過程。同時提供很強的向前和向後相容性。FlatBuffers 支援 C++ 和 Java 語言,無需依賴第三方庫支援。(詳情:https://github.com/google/flatbuffers

 

15、Xi 文字編輯器 Xi Editor  ★Star 8000

Xi Editor 是 Google 開源的一款用 Rust 語言編寫的文字編輯器,最初是為 Mac OS X 構建的,使用 Cocoa 作為使用者介面,已有計劃適配其它平臺。所有編輯操作都可以在 16ms 之內提交併處理。文字繪製使用最好的技術(如 Mac 上的 Core Text,Windows 上的 DirectWrite 等),並完全支援 Unicode。(詳情:https://github.com/google/xi-editor

 

16、Grumpy  ★Star 7760

Grumpy 是一個 Python  to Go 原始碼翻譯編譯器和執行時,旨在替代 CPython 2.7。 關鍵的區別是它將 Python 原始碼編譯為 Go 原始碼,然後將其編譯為本機程式碼,而不是位元組碼。這意味著 Grumpy 沒有 VM。編譯的 Go 原始碼是對 Grumpy 執行時的一系列呼叫,Go 庫服務與 Python C API 類似的目的(儘管不直接支援 C API)。(詳情:https://github.com/google/grumpy

 

17、Javascript 編譯器 Traceur  ★Star 7300

Traceur 是一個來自 Google 的 Javascript 編譯器,通過它可以體驗一些很新並且有趣的 Javascript 語言特性,這些多數是還沒有被當前瀏覽器實現的 ECMAScript 標準或草案,比如:陣列比較、類、模組、迭代器、方法引數預設值、Promise等。(詳情:https://github.com/google/traceur-compiler

 

18、媒體播放器 ExoPlayer  ★Star 7152

ExoPlayer 是 Android 上一個應用級的媒體播放器。它為 Android MediaPlayer 的 API 在播放本地或線上的視訊與音訊上提供了一個候選。ExoPlayer 支援一些 Android MediaPlayer API 無法提供的特性,包括 DASH 和 SmoothStreaming 自適應回放,持久的快取記憶體和自定義渲染器。不像 MediaPlayer API,EXOPlayer 很容易定製和擴充套件,而且它可以通過 Play Store 更新升級。(詳情:https://github.com/google/ExoPlayer

 

19、程式碼構建工具Bazel  ★Star 6641

Bazel 是 Google 的一款可再生的程式碼構建工具。它主要是用於構建 Google 的軟體,處理出現在谷歌的開發環境的構建問題,比如說:大規模資料構建問題,共享程式碼庫問題,從原始碼構建的軟體的相關問題。支援多種語言並且跨平臺,還支援自動化測試和部署、具有再現性(Reproducibility)和規模化等特徵。(詳情:https://github.com/bazelbuild/bazel

 

20、創作藝術和譜寫曲子的機器智慧 magenta  ★Star 6563

Google Brain團隊的一組研究人員釋出了一個專案Project Magenta,其主要目標是利用機器學習創作藝術和譜寫曲子。Project Magenta使用了 TensorFlow系統,研究人員在GitHub上開源了他們的模型和工具。(詳情:https://github.com/tensorflow/magenta

 

21、自動生成命令列介面的內容庫 Python Fire  ★Star 6500

Python Fire 是 Google 開源的一個可從任何 Python 程式碼自動生成命令列介面(CLI)的庫。Python Fire 是一種在 Python 中建立 CLI 的簡單方法;是開發和除錯 Python 程式碼的有用工具;能夠使 Bash 和 Python 之間的轉換更為容易;並且通過使用你需要匯入和建立的模組和變數來設定 REPL,使得使用 Python REPL 更容易

(詳情:https://github.com/google/python-fire

 

22、軟硬體框架AnyPixel.js  ★Star 5906

AnyPixel.js 是 Google 開源的一個軟體和硬體框架,可以用來構建各種由“畫素”構成的展示,每個畫素可以是任何一種可互動的實體物件,如 LED 燈、氣球等。(詳情:https://github.com/googlecreativelab/anypixel

 

23、物聯網工具Physical Web  ★Star 5899

Physical Web 是由 Chrome 團隊主導的一個專案, 意在用 URL 連線世界, 方便使用者接受資料。在Web世界中,各種URL可以說是連結的基礎,也是去中心化的,所以“The Physical Web”要做的就是讓每個智慧裝置用URL來標識自己,然後使用者按照自己的需要通過URL和裝置進行互動。這樣一來,你使用智慧裝置的體驗就和在網站上使 用各種超連結差不多了。(詳情:https://github.com/google/physical-web

 

24、Docker 容器效能分析工具cAdvisorc  ★Star 5853

Advisor 是谷歌公司用來分析執行中的 Docker 容器的資源佔用以及效能特性的工具。cAdvisor 是一個執行中的守護程序用來收集、聚合、處理和匯出執行容器相關的資訊,每個容器保持獨立的引數、歷史資源使用情況和完整的資源使用資料。當前支援 lmctfy 容器和 Docker 容器。(詳情:https://github.com/google/cadvisor

 

25、C++單元測試工具  ★Star 5755

Google的開源C++單元測試框架Google Test,簡稱gtest 是一個非常的不錯單元測試框架。支援跨平臺以及包括 Windows CE 和 Symbian 在內的一些手機作業系統。(詳情:https://github.com/google/googletest

 

26、IndexedDB 關係查詢引擎 lovefield  ★Star 5532

lovefield 是建立在 IndexedDB 上的關係查詢引擎。它提供了類似 SQL 的語法,並且可以跨瀏覽器工作(目前支援 Chrome 37 及以上版本,Firefox 31 及以上版本,IE 10 及以上版本)。(詳情:https://github.com/google/lovefield

 

27、 Java 生成器原始碼集合 Auto  ★Star 5295

Auto 是 Java 生成器原始碼集合,Java 有許多機械、重複、未經測試的程式碼,而且有時會出現一些微妙的 Bug 。Auto 專案是自動執行這些型別的任務的程式碼生成器的集合,他們可以無 Bug 建立你要編寫的程式碼。(詳情:https://github.com/google/auto

 

28、Python 程式碼格式化的工具  ★Star 5197

YAPF 是 Google 開發的一個用來格式化 Python 程式碼的工具。(詳情:https://github.com/google/yapf

 

29、基於 TensorFlow 的神經網路庫 Sonnet  ★Star 5000

 

 

Sonnet 庫使用面向物件的方法,允許建立定義一些前向傳導計算的模組。模組用一些輸入 Tensor 呼叫,新增操作到圖裡並返回輸出 Tensor。其中一種設計選擇是通過在隨後呼叫相同的模組時自動重用變數來確保變數分享被透明化處理。 該庫相容 Linux/Mac OS X 和 Python 2.7。TensorFlow 的版本必須至少為 1.0.1。Sonnet 支援 TensorFlow 的 virtualenv 安裝模式,以及 nativ pip 安裝。(詳情:https://github.com/deepmind/sonnet

 

30、無失真壓縮演算法Brotli  ★Star 4822

Brotli 是一個通用目的的無失真壓縮演算法,它通過用變種的 LZ77 演算法,Huffman 編碼和二階文字建模進行資料壓縮,是一種壓縮比很高的壓縮方法。在壓縮速度上跟 Deflate 差不多,但是提供了更密集的壓縮。(詳情:https://github.com/google/brotli

 

31、負載均衡系統 Seesaw  ★Star 4286

Seesaw 是 Google 開源的一個基於 Linux 的負載均衡系統。Seesaw 包含基本的負載均衡特性,同時支援一些高階的功能,諸如:anycast, Direct Server Return (DSR), 支援多個 VLANs 和集中式配置。同時其設計的宗旨是易於維護。(詳情:https://github.com/google/seesaw

 

32、Gumbo  ★Star 4060

Gumbo 是 Google 的一款用C語言實現的HTML5解析庫,無需任何外部依賴。(詳情:https://github.com/google/gumbo-parser

 

33、GXUI  ★Star 3803

GXUI 是 Google 出品的一個跨平臺 GO 語言的 UI 框架。(詳情:https://github.com/google/gxui

 

34、iOS UI 測試自動化框架 EarlGrey  ★Star 3721

遵從開源Apache授權的EarlGrey,由Objective-C編寫而成。Google也確實用的它來測試自家的iOS app。EarlGrey可支援和模擬回溯至iOS 8的裝置,有關該工具的詳細文件請戳這裡。除了EarlGrey,其它iOS UI測試自動化框架還包括Calabash和Sauce Labs的Appium。(詳情:https://github.com/google/EarlGrey

 

35、Blockly  ★Star 3520

Blockly 是一個基於 Web 的視覺化程式設計工具,只需要拖動幾個圖形就可以程式設計, 完全不需要打字. 根據專案FAQ介紹, 這個新語言的主要目的是為web應用提供巨集(或指令碼編 程)的支援. 可以把生成的指令碼輸出成javascript, python 等.已經有幾個利用Blockly的demo.(詳情:https://github.com/google/blockly

 

36、go-github  ★Star 2707

go-github  是 Google 對 Github 的開放 API 進行 Go 語言封裝的一個專案。(詳情:https://github.com/google/go-github

 

37、抓取bug工具 error-prone   ★Star 2708

error-prone 用來抓取 Java 編譯時的錯誤。通常使用編譯器只能做靜態型別的檢查。但使用此工具,能夠進行編譯器的型別分析,能夠檢測並抓取到編譯過程中的 Bug,能夠大大的節約開發者的時間。(詳情:https://github.com/google/error-prone

 

38、ROS 系統支援的 SLAM 庫 Cartographer   ★Star 2700

Cartographer,是Google開源的一個ROS系統支援的2D和3D SLAM(simultaneous localization and mapping)庫。SLAM 演算法結合來自多個感測器(比如,LIDAR、IMU 和 攝像頭)的資料,同步計算感測器的位置並繪製感測器周圍的環境。在產業界和學術界常見的感測器配置上,Cartographer 能實時建立全域性一致的地圖。(詳情:https://github.com/googlecartographer/cartographer

 

39、安卓電量分析工具 Battery Historian   ★Star 2579

 

Battery Historian 是一個通過分析安卓 "bugreport" 程序檔案來統計電量消費情況。它允許應用程式開發人員在時間線上視覺化系統和應用程式級事件,具有平移和縮放功能,在裝置上完全充電後可以輕鬆檢視各種彙總統計資訊,並能選擇應用程式,檢查影響應用程式特定電池的指標。 它還允許兩個錯誤報告的A / B比較,突出顯示關鍵電池相關指標的差異。(詳情:https://github.com/google/battery-historian

 

40、通用編碼器&解碼器框架 seq2seq  ★Star 2433

 

seq2seq 是 Google 開源的一款用於 TensorFlow 的通用編碼器&解碼器框架(encoder-decoder framework),可用於機器翻譯、文字摘要、會話建模、影象描述等。(詳情:https://github.com/google/seq2seq

 

41、Web應用 Tracing Framework   ★Star 2371

 

Tracing Framework 是一套庫、工具,用於跟蹤和調查複雜的 Web 應用。它就可以幫你發現程式碼的效能問題,並且幫你打造十分流暢的 60 FPS Web 應用。它目前只能用於特定的應用場合,並不是為應用於所有場景而設計,如果你在使用過程中遇到了問題,請呈遞你的 Bug。(詳情:https://github.com/google/tracing-framework

 

42、深度概率程式語言 Edward   ★Star 2395

Edward 是一個用於概率建模、推理和評估的 Python 庫。它是一個用於快速實驗和研究概率模型的測試平臺,其涵蓋的模型範圍從在小資料集上的經典層次模型到在大資料集上的複雜深度概率模型。Edward 融合了以下三個領域:貝葉斯統計學和機器學習、深度學習、概率程式設計。(詳情:https://github.com/blei-lab/edward

 

43、JavaScript 庫 Closure Library   ★Star 2257

Closure Library 是一個強大的 JavaScript 庫,用於複雜的大規模的 Web 應用。它被許多 Google Web 應用使用,比如 Gmail 和 Google Docs。(詳情:https://github.com/google/closure-library

 

44、大型微服務系統管理工具 Istio   ★Star 2291

Istio 是一個由谷歌、IBM 與 Lyft 共同開發的開源專案,旨在提供一種統一化的微服務連線、安全保障、管理與監控方式。Istio 專案能夠為微服務架構提供流量管理機制,同時亦為其它增值功能(包括安全性、監控、路由、連線管理與策略等)創造了基礎。這款軟體利用久經考驗的 Lyft Envoy 代理進行構建,可在無需對應用程式程式碼作出任何發動的前提下實現可視性與控制能力。(詳情:https://github.com/istio/istio

 

45、遠端現場取證系統 GRR   ★Star 2100

GRR 是 Google 開發的遠端現場事件取證系統。GRR 由一個代理(客戶端)和伺服器端組成,客戶端可以部署在一個任務系統中,伺服器可以管理客戶端,跟客戶端進行互動。(詳情:https://github.com/google/grr

 

46、Android 的懸浮操作欄 Hover   ★Star 2053

Hover 是一個用於 Android 的懸浮操作欄。該選單欄可以作為一個 service 啟動,從而跨程序使用,懸浮在桌面或者其他應用程式的前面,當然,這裡需要申請許可權。 Hover 仍處在開發階段,還有很多程式碼清理工作需要做,也就是說,Hover 現在僅僅處於可用狀態。(詳情:https://github.com/google/hover

 

47、模組化深度學習系統 Tensor2Tensor   ★Star 2000

Tensor2Tensor 是一個模組化和可擴充套件的庫和二進位制檔案,  能夠幫助人們為各種機器學習程式建立最先進的模型,可應用於多個領域,如翻譯、語法分析、影象資訊描述等,大大提高了研究和開發的速度。(詳情:https://github.com/tensorflow/tensor2tensor

 

48、Google 模糊測試服務 OSS-Fuzz   ★Star 1781

OSS-Fuzz 能夠針對開源軟體進行持續的模糊測試,它的目的是利用更新的模糊測試技術與可拓展的分散式執行相結合,提高一般軟體基礎架構的安全性與穩定性。OSS-Fuzz 結合了多種模糊測試技術/漏洞捕捉技術(即原來的libfuzzer)與清洗技術(即原來的 AddressSanitizer),並且通過 ClusterFuzz 為大規模可分散式執行提供了測試環境。(詳情:https://github.com/google/oss-fuzz

 

49、優化搜尋工具or-tools   ★Star 1771

or-tools 是 Google 的優化搜尋工具。Google 優化工具包括:約束程式設計解決方案;為線性規劃和混合整數規劃解決方案提供簡單統一的介面,包括 CBC, CLP, GLOP, GLPK, Gurobi, SCIP, 和 Sulum;揹包演算法;圖演算法 (最短路徑,線性和分配,最小費用流,最大流)(詳情:https://github.com/google/or-tools

 

50、加密庫安全測試套件 Wycheproof   ★Star 1722

Wycheproof 是谷歌開源的加密庫測試專案,它包含一系列安全測試,用來檢測加密庫(cryptographic libraries)軟體是否存在已知的攻擊漏洞。(詳情:https://github.com/google/wycheproof

 

51、Common Lisp Koans   ★Star 1695

Common Lisp Koans(lisp-koans)是一個語言學習練習程式,類似 ruby koans,python koans 等等。Common Lisp Koans 主要是幫助學習一些 lisp 規範特性和改進,可以學習到大量的 Common Lisp 語言特性。(詳情:https://github.com/google/lisp-koans

 

52、 3D 圖形開源壓縮庫 Draco   ★Star 1600

Draco 是一種庫,用於壓縮和解壓縮 3D 幾何網格(geometric mesh)和點雲(point cloud)。換句話說,它顯著縮小了 3D 圖形檔案的大小,同時對 3D 圖形的觀看者來說又根本不嚴重影響視覺效果。它還旨在改善 3D 圖形的壓縮和傳輸。Draco 是作為 C++ 原始碼釋出的,可以用來壓縮 3D 圖形,另外還發布了處理編碼資料的 C++ 和 Javascript 解碼器。(詳情:https://github.com/google/draco

 

 

53、 JavaScript 庫 Shaka Player   ★Star 1354

Shaka Player 它實現了 DASH 客戶端的功能。它的播放功能基於 HTML5 video、MediaSource Extensions,和 Encrypted Media Extensions 。一般的 DASH 客戶端功能很難實現。(詳情:https://github.com/google/shaka-player

 

54、TensorFlow 深度學習庫 Fold   ★Star 1192

TensorFlow Fold 是用於建立使用結構化資料的 TensorFlow 模型庫,其中計算圖的結構取決於輸入資料的結構。 TensorFlow Fold 使得處理不同資料尺寸和結構的深度學習模型更容易實現。(詳情:https://github.com/tensorflow/fold

 

55、Google 地球企業版 Earth Enterprise   ★Star 1161

Earth Enterprise 是 Google Earth Enterprise 的開源版本,是一個提供構建和託管自定義 3D 地球模型和 2D 地圖的地理空間應用,旨在讓社群繼續改進和推進該專案。(詳情:https://github.com/google/earthenterprise

 

 

56、影象差異比較庫 Butteraugli   ★Star 1100

Butteraugli 是用來評判兩個影象之間的相似度。通過識別影象之間一些最受關注的差異點並給出相似度分值。這個專案的一個主要動機是對差異受體的不同顏色的位置和密度的統計,特別是藍色的低密度錐窩。另一個動機來自於更準確的神經節細胞建模,特別是抑制頻率空間。目前該專案只提供了 C++ 介面。(詳情:https://github.com/google/butteraugli

 

57、Go 語言實現的網路協協議棧 Netstack   ★Star 1016

Netstack,使用 Go 語言編寫的網路協議棧。通過安裝 tun_tcp_echo demo 嘗試在 Linux 上使用 。(詳情:https://github.com/google/netstack

 

58、鋼琴二重奏 AI aiexperiments-ai-duet   ★Star 883

“鋼琴二重奏”的 A.I. Duet。該專案會在你彈出了幾個音符之後,通過 AI 自動計算來幫你“補完”旋律的重奏部分。A.I. Duet 運用了人工智慧技術,通曉音符的“編碼規則”。(詳情:https://github.com/googlecreativelab/aiexperiments-ai-duet

 

59、端到端加密系統 E2EMail   ★Star 704

E2EMail 是一個實驗性質的端到端加密系統。E2EMail由Google開發,內建JavaScript內部開發的JavaScript加密庫。它提供了一種通過Chrome擴充套件程式將OpenPGP整合到Gmail中的方法。訊息的明文單獨保留在客戶端上。(詳情:https://github.com/e2email-org/e2email