1. 程式人生 > >30個谷歌開源專案

30個谷歌開源專案

更多內容訪問omegaxyz.com
1機器學習系統 TensorFlow
TensorFlow 是谷歌的第二代機器學習系統,據谷歌說,在某些基準測試中,TensorFlow 的表現比第一代的 DistBelief 快了 2 倍。TensorFlow 內建深度學習的擴充套件支援,任何能夠用計算流圖形來表達的計算,都可以使用 TensorFlow。任何基於梯度的機器學習演算法都能夠受益於 TensorFlow 的自動分化(auto-differentiation)。通過靈活的 Python 介面,要在 TensorFlow 中表達想法也會很容易。
這裡寫圖片描述
中文社群:http://www.tensorfly.cn/

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

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

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

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

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

7Java 常用庫 Guava
該專案是 Google 的一個開源專案,包含許多 Google 核心的 Java 常用庫。

8Spark
Spark 是谷歌公司推出的一款基於 Chrome 瀏覽器的開發環境。提供一組可重用的 UI 元件。採用 Dart 開發。

9RPC 框架 GRPC
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 連線上的多複用請求等特。這些特性使得其在移動裝置上表現更好,更省電和節省空間佔用。

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

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

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

13Gson
Gson 是 Google 提供的用來在 Java 物件和 JSON 資料之間進行對映的 Java 類庫。可以將一個 JSON 字串轉成一個 Java 物件,或者反過來。

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

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

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

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

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

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

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

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

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

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

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

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

26C++單元測試工具
Google 的開源 C++ 單元測試框架 Google Test,簡稱 gtest 是一個非常的不錯單元測試框架。支援跨平臺以及包括 Windows CE 和 Symbian 在內的一些手機作業系統。

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

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

29Python 程式碼格式化的工具
YAPF 是 Google 開發的一個用來格式化 Python 程式碼的工具。

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