开源巨献:Google最热门40款开源项目
ZacharyLaue
7年前
<p>本文为大家整理了 Google 开源的项目,看看有没有感兴趣的,排名顺序按照 Github ★Star 数排列。</p> <p>0、机器学习系统 TensorFlow ★Star 62533</p> <p><img src="https://simg.open-open.com/show/45b4e0005c1c197bdfe5e7363609d537.jpg"></p> <p>TensorFlow 是谷歌的第二代机器学习系统,按照谷歌所说,在某些基准测试中,TensorFlow的表现比第一代的DistBelief快了2倍。TensorFlow 内建深度学习的扩展支持,任何能够用计算流图形来表达的计算,都可以使用TensorFlow。任何基于梯度的机器学习算法都能够受益于TensorFlow的自动分 化(auto-differentiation)。通过灵活的Python接口,要在TensorFlow中表达想法也会很容易。(详情: <a href="/misc/goto?guid=4958971874275225039" rel="nofollow,noindex">https://github.com/tensorflow/tensorflow</a> )</p> <p>1、material-design-icons ★ Star 30315</p> <p>Google 开源了 Material Design 系统图标包其中的 750 个字形。该系统图标包含常用的图标,如用于媒体播放、通讯、内容编辑、连接等等。在 Web 应用,安卓和 iOS 设计均适用。(详情: <a href="/misc/goto?guid=4959616765408357548" rel="nofollow,noindex">http://google.github.io/material-design-icons/</a> )</p> <p>2、前端开发工具组 MDL ★ Star 27873</p> <p><img src="https://simg.open-open.com/show/c92953d4c4a468d4d31f2fc45b1cc2ec.jpg"></p> <p>MDL (Material Design Lite) 是 Google 推出的网站前端开发工具组。Material Design Lite (MDL)可以让你添加一个 Material Design 的外观和感觉到你的静态内容网站,不依赖于任何的 Java 框架和库。MDL 可以优化跨设备的使用体验,可以在旧版的浏览器进行平滑的切换,提供非常快速的访问体验。(详情: <a href="/misc/goto?guid=4958960904886874251" rel="nofollow,noindex">https://github.com/google/material-design-lite</a> )</p> <p>3、Web 前端框架 Angular ★ Star 25524</p> <p>Angular 是一款十分流行且好用的 Web 前端框架,目前由 Google 维护。官方已将 Angular 2 和之前的版本 Angular.js 分开维护(两者的 GitHub 地址和项目主页皆不相同)。渐进式 Web 应用,借助现代化 Web 平台的力量,交付 app 式体验。高性能、离线化、零安装。(详情: <a href="/misc/goto?guid=4958965670069748477" rel="nofollow,noindex">https://github.com/angular/angular</a> )</p> <p>4、容器集群管理系统 Kubernetes ★ Star 24599</p> <p>Kubernetes 是来自 Google 云平台的开源容器集群管理系统。基于 Docker 构建一个容器的调度服务。该系统可以自动在一个容器集群中选择一个工作容器供使用。其核心概念是 Container Pod。(详情: <a href="/misc/goto?guid=4958970139250825279" rel="nofollow,noindex">https://github.com/kubernetes/kubernetes</a> )</p> <p>5、数据描述语言 protobuf ★ Star 18447</p> <p>Protocol Buffers (ProtocolBuffer/ protobuf )是Google公司开发的一种数据描述语言,类似于XML能够将结构化数据序列化,可用于数据存储、通信协议等方面。现阶段支持C++、JAVA、Python等三种编程语言。同XML相比,Protocol buffers在序列化结构化数据方面有许多优点(详情: <a href="/misc/goto?guid=4959638318680559631" rel="nofollow,noindex">https://github.com/google/protobuf</a> )</p> <p>6、Java 常用库 Guava ★ Star 17267</p> <p>该项目是 Google 的一个开源项目,包含许多 Google 核心的 Java 常用库。(详情: <a href="/misc/goto?guid=4958973085838435916" rel="nofollow,noindex">https://github.com/google/guava</a> )</p> <p>7、Spark ★ Star 13378</p> <p><img src="https://simg.open-open.com/show/c1630f10fc3a276e5450e3f1dc13eb0e.jpg"></p> <p>Spark 是谷歌公司推出的一款基于 Chrome 浏览器的开发环境。提供一组可重用的 UI 组件。采用 Dart 开发。(安装方法: <a href="/misc/goto?guid=4959548070262561204" rel="nofollow,noindex">https://github.com/dart-lang/spark/tree/master/ide</a> )</p> <p>8、RPC 框架 GRPC ★ Star 10363</p> <p>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 连接上的多复用请求等特。这些特性使得其在移动设备上表现更好,更省电和节省空间占用。(详情: <a href="/misc/goto?guid=4959627144347606207" rel="nofollow,noindex">https://github.com/grpc/grpc</a> )</p> <p>9、高质量压缩图片算法工具Guetzli ★ Star 9959</p> <p><img src="https://simg.open-open.com/show/610d90a1e4f2b85ababa98295e3eb4a8.jpg"></p> <p>Guetzli,是一个针对数码图像和网页图像的 JPEG 编码器,能够通过产生更小的 JPEG 文件来达到更快的在线体验,并且同时保持与当前浏览器,图像处理应用和 JPEG 标准的兼容性。Google 称 Guetzli 创建高质量的 JPEG 图像文件的大小比当前的压缩方法要再小 35%。上图为 16x16 像素样本,是挂在蓝天下的一根电话线,传统 JPEG 算法经常会遇到的失真状况。左边是未压缩的原图,中间为较小尺寸的 libjpeg,右边是失真更少的 Guetzli 。(详情: <a href="/misc/goto?guid=4959756223481257128" rel="nofollow,noindex">https://github.com/google/guetzli</a> )</p> <p>10、k/v数据库 Leveldb ★ Star 9799</p> <p>Leveldb是一个google实现的非常高效的kv数据库,目前的版本1.2能够支持billion级别的数据量了。 在这个数量级别下还有着非常高的性能,主要归功于它的良好的设计。特别是LSM算法。(详情: <a href="/misc/goto?guid=4958848609595082581" rel="nofollow,noindex">https://github.com/google/leveldb</a> )</p> <p>11、自动化网络审查工具 Lighthouse ★ Star 9400</p> <p>Lighthouse 是一个开源的自动化工具,用于改进网络应用的质量。 可以将其作为一个 Chrome 扩展程序运行,或从命令行运行。 当为 Lighthouse 提供一个要审查的网址,它将针对此页面运行一连串的测试,然后生成一个有关页面性能的报告。可以参考失败的测试,看看可以采取哪些措施来改进应用。(详情: <a href="/misc/goto?guid=4959756223597087873" rel="nofollow,noindex">https://github.com/GoogleChrome/lighthouse</a> )</p> <p>12、Gson ★ Star 9261</p> <p>Gson 是 Google 提供的用来在 Java 对象和 JSON 数据之间进行映射的 Java 类库。可以将一个 JSON 字符串转成一个 Java 对象,或者反过来。(详情: <a href="/misc/goto?guid=4958964956010997959" rel="nofollow,noindex">https://github.com/google/gson</a> )</p> <p>13、最小系统加载工具 systemjs ★ Star 8356</p> <p>systemjs 是一个最小系统加载工具,用来创建插件来处理可替代的场景加载过程,包括加载 CSS 场景和图片,主要运行在浏览器和 NodeJS 中。它是 ES6 浏览器加载程序的的扩展,将应用在本地浏览器中。通常创建的插件名称是模块本身,要是没有特意指定用途,则默认插件名是模块的扩展名称。(详情: <a href="/misc/goto?guid=4958870939760375721" rel="nofollow,noindex">https://github.com/systemjs/systemjs</a> )</p> <p>14、序列化库 FlatBuffers ★ Star 7991</p> <p>FlatBuffers 是一个 Java 的序列化库,用于游戏和其他内存受限的应用。FlatBuffers 可以让你直接访问序列化后的数据,无需解压并进行解析的过程。同时提供很强的向前和向后兼容性。FlatBuffers 支持 C++ 和 Java 语言,无需依赖第三方库支持。(详情: <a href="/misc/goto?guid=4958860117426284531" rel="nofollow,noindex">https://github.com/google/flatbuffers</a> )</p> <p>15、Xi 文本编辑器 Xi Editor ★ Star 8000</p> <p>Xi Editor 是 Google 开源的一款用 Rust 语言编写的文本编辑器,最初是为 Mac OS X 构建的,使用 Cocoa 作为用户界面,已有计划适配其它平台。所有编辑操作都可以在 16ms 之内提交并处理。文本绘制使用最好的技术(如 Mac 上的 Core Text,Windows 上的 DirectWrite 等),并完全支持 Unicode。(详情: <a href="/misc/goto?guid=4959756223791882358" rel="nofollow,noindex">https://github.com/google/xi-editor</a> )</p> <p>16、Grumpy ★ Star 7760</p> <p>Grumpy 是一个 Python to Go 源代码翻译编译器和运行时,旨在替代 CPython 2.7。 关键的区别是它将 Python 源代码编译为 Go 源代码,然后将其编译为本机代码,而不是字节码。这意味着 Grumpy 没有 VM。编译的 Go 源代码是对 Grumpy 运行时的一系列调用,Go 库服务与 Python C API 类似的目的(尽管不直接支持 C API)。(详情: <a href="/misc/goto?guid=4959756223874519426" rel="nofollow,noindex">https://github.com/google/grumpy</a> )</p> <p>17、Java 编译器 Traceur ★ Star 7300</p> <p>Traceur 是一个来自 Google 的 Java 编译器,通过它可以体验一些很新并且有趣的 Java 语言特性,这些多数是还没有被当前浏览器实现的 ECMA 标准或草案,比如:数组比较、类、模块、迭代器、方法参数默认值、Promise等。(详情: <a href="/misc/goto?guid=4958829429496724175" rel="nofollow,noindex">https://github.com/google/traceur-compiler</a> )</p> <p>18、媒体播放器 ExoPlayer ★ Star 7152</p> <p><img src="https://simg.open-open.com/show/2b356a794470bb8b461002135c33412c.jpg"></p> <p>ExoPlayer 是 Android 上一个应用级的媒体播放器。它为 Android MediaPlayer 的 API 在播放本地或在线的视频与音频上提供了一个候选。ExoPlayer 支持一些 Android MediaPlayer API 无法提供的特性,包括 DASH 和 SmoothStreaming 自适应回放,持久的高速缓存和自定义渲染器。不像 MediaPlayer API,EXOPlayer 很容易定制和扩展,而且它可以通过 Play Store 更新升级。(详情: <a href="/misc/goto?guid=4958988895825998016" rel="nofollow,noindex">https://github.com/google/ExoPlayer</a> )</p> <p>19、代码构建工具Bazel ★ Star 6641</p> <p>Bazel 是 Google 的一款可再生的代码构建工具。它主要是用于构建 Google 的软件,处理出现在谷歌的开发环境的构建问题,比如说:大规模数据构建问题,共享代码库问题,从源代码构建的软件的相关问题。支持多种语言并且跨平台,还支持自动化测试和部署、具有再现性(Reproducibility)和规模化等特征。(详情: <a href="/misc/goto?guid=4959653417088136794" rel="nofollow,noindex">https://github.com/bazelbuild/bazel</a> )</p> <p>20、创作艺术和谱写曲子的机器智能 magenta ★ Star 6563</p> <p>Google Brain团队的一组研究人员发布了一个项目Project Magenta,其主要目标是利用机器学习创作艺术和谱写曲子。Project Magenta使用了 TensorFlow系统,研究人员在GitHub上开源了他们的模型和工具。(详情: <a href="/misc/goto?guid=4959727450678557991" rel="nofollow,noindex">https://github.com/tensorflow/magenta</a> )</p> <p>21、自动生成命令行界面的内容库 Python Fire ★ Star 6500</p> <p>Python Fire 是 Google 开源的一个可从任何 Python 代码自动生成命令行接口(CLI)的库。Python Fire 是一种在 Python 中创建 CLI 的简单方法;是开发和调试 Python 代码的有用工具;能够使 Bash 和 Python 之间的转换更为容易;并且通过使用你需要导入和创建的模块和变量来设置 REPL,使得使用 Python REPL 更容易(详情: <a href="/misc/goto?guid=4959001192055872954" rel="nofollow,noindex">https://github.com/google/python-fire</a> )</p> <p>22、软硬件框架AnyPixel.js ★ Star 5906</p> <p><img src="https://simg.open-open.com/show/cdab025598778b23f0fe9814471a5f33.jpg"></p> <p>AnyPixel.js 是 Google 开源的一个软件和硬件框架,可以用来构建各种由“像素”构成的展示,每个像素可以是任何一种可交互的实体对象,如 LED 灯、气球等。(详情: <a href="/misc/goto?guid=4959756224239682007" rel="nofollow,noindex">https://github.com/googlecreativelab/anypixel</a> )</p> <p>23、物联网工具Physical Web ★ Star 5899</p> <p><img src="https://simg.open-open.com/show/7c69084225613b8bd1e5c78dbdda0953.jpg"></p> <p>Physical Web 是由 Chrome 团队主导的一个项目, 意在用 URL 连接世界, 方便用户接受数据。在Web世界中,各种URL可以说是链接的基础,也是去中心化的,所以“The Physical Web”要做的就是让每个智能设备用URL来标识自己,然后用户按照自己的需要通过URL和设备进行交互。这样一来,你使用智能设备的体验就和在网站上使 用各种超链接差不多了。(详情: <a href="/misc/goto?guid=4958870675080833096" rel="nofollow,noindex">https://github.com/google/physical-web</a> )</p> <p>24、Docker 容器性能分析工具cAdvisorc ★ Star 5853</p> <p>Advisor 是谷歌公司用来分析运行中的 Docker 容器的资源占用以及性能特性的工具。cAdvisor 是一个运行中的守护进程用来收集、聚合、处理和导出运行容器相关的信息,每个容器保持独立的参数、历史资源使用情况和完整的资源使用数据。当前支持 lmctfy 容器和 Docker 容器。(详情: <a href="/misc/goto?guid=4958863528768582628" rel="nofollow,noindex">https://github.com/google/cadvisor</a> )</p> <p>25、C++单元测试工具 ★ Star 5755</p> <p>Google的开源C++单元测试框架Google Test,简称gtest 是一个非常的不错单元测试框架。支持跨平台以及包括 Windows CE 和 Symbian 在内的一些手机操作系统。(详情: <a href="/misc/goto?guid=4959652556716741716" rel="nofollow,noindex">https://github.com/google/googletest</a> )</p> <p>26、IndexedDB 关系查询引擎 lovefield ★ Star 5532</p> <p>lovefield 是建立在 IndexedDB 上的关系查询引擎。它提供了类似 SQL 的语法,并且可以跨浏览器工作(目前支持 Chrome 37 及以上版本,Firefox 31 及以上版本,IE 10 及以上版本)。(详情: <a href="/misc/goto?guid=4959756224411295957" rel="nofollow,noindex">https://github.com/google/lovefield</a> )</p> <p>27、 Java 生成器源代码集合 Auto ★ Star 5295</p> <p>Auto 是 Java 生成器源代码集合,Java 有许多机械、重复、未经测试的代码,而且有时会出现一些微妙的 Bug 。Auto 项目是自动执行这些类型的任务的代码生成器的集合,他们可以无 Bug 创建你要编写的代码。(详情: <a href="/misc/goto?guid=4958860111598733497" rel="nofollow,noindex">https://github.com/google/auto</a> )</p> <p>28、Python 代码格式化的工具 ★ Star 5197</p> <p>YAPF 是 Google 开发的一个用来格式化 Python 代码的工具。(详情: <a href="/misc/goto?guid=4958976761916412877" rel="nofollow,noindex">https://github.com/google/yapf</a> )</p> <p>29、基于 TensorFlow 的神经网络库 Sonnet ★ Star 5000</p> <p><img src="https://simg.open-open.com/show/e9c03548e609e1f091cc9d85c266e651.jpg"></p> <p>Sonnet 库使用面向对象的方法,允许创建定义一些前向传导计算的模块。模块用一些输入 Tensor 调用,添加操作到图里并返回输出 Tensor。其中一种设计选择是通过在随后调用相同的模块时自动重用变量来确保变量分享被透明化处理。 该库兼容 Linux/Mac OS X 和 Python 2.7。TensorFlow 的版本必须至少为 1.0.1。Sonnet 支持 TensorFlow 的 virtualenv 安装模式,以及 nativ pip 安装。(详情: <a href="/misc/goto?guid=4959005356038440155" rel="nofollow,noindex">https://github.com/deepmind/sonnet</a> )</p> <p>30、无损压缩算法Brotli ★ Star 4822</p> <p>Brotli 是一个通用目的的无损压缩算法,它通过用变种的 LZ77 算法,Huffman 编码和二阶文本建模进行数据压缩,是一种压缩比很高的压缩方法。在压缩速度上跟 Deflate 差不多,但是提供了更密集的压缩。(详情: <a href="/misc/goto?guid=4958979738195364253" rel="nofollow,noindex">https://github.com/google/brotli</a> )</p> <p>31、负载均衡系统 Seesaw ★ Star 4286</p> <p>Seesaw 是 Google 开源的一个基于 Linux 的负载均衡系统。Seesaw 包含基本的负载均衡特性,同时支持一些高级的功能,诸如:anycast, Direct Server Return (DSR), 支持多个 VLANs 和集中式配置。同时其设计的宗旨是易于维护。(详情: <a href="/misc/goto?guid=4959661369622540384" rel="nofollow,noindex">https://github.com/google/seesaw</a> )</p> <p>32、Gumbo ★ Star 4060</p> <p>Gumbo 是 Google 的一款用C语言实现的HTML5解析库,无需任何外部依赖。(详情: <a href="/misc/goto?guid=4959550803628816837" rel="nofollow,noindex">https://github.com/google/gumbo-parser</a> )</p> <p>33、GXUI ★ Star 3803</p> <p>GXUI 是 Google 出品的一个跨平台 GO 语言的 UI 框架。(详情: <a href="/misc/goto?guid=4959631990308118638" rel="nofollow,noindex">https://github.com/google/gxui</a> )</p> <p>34、iOS UI 测试自动化框架 EarlGrey ★ Star 3721</p> <p>遵从开源Apache授权的EarlGrey,由Objective-C编写而成。Google也确实用的它来测试自家的iOS app。EarlGrey可支持和模拟回溯至iOS 8的设备,有关该工具的详细文档请戳这里。除了EarlGrey,其它iOS UI测试自动化框架还包括Calabash和Sauce Labs的Appium。(详情: <a href="/misc/goto?guid=4958986209639572826" rel="nofollow,noindex">https://github.com/google/EarlGrey</a> )</p> <p>35、Blockly ★ Star 3520</p> <p>Blockly 是一个基于 Web 的可视化编程工具,只需要拖动几个图形就可以编程, 完全不需要打字. 根据项目FAQ介绍, 这个新语言的主要目的是为web应用提供宏(或脚本编 程)的支持. 可以把生成的脚本输出成java, python 等.已经有几个利用Blockly的demo.(详情: <a href="/misc/goto?guid=4959756224721632851" rel="nofollow,noindex">https://github.com/google/blockly</a> )</p> <p>36、go-github ★ Star 2707</p> <p>go-github 是 Google 对 Github 的开放 API 进行 Go 语言封装的一个项目。(详情: <a href="/misc/goto?guid=4959615893348427764" rel="nofollow,noindex">https://github.com/google/go-github</a> )</p> <p>37、抓取bug工具 error-prone ★ Star 2708</p> <p>error-prone 用来抓取 Java 编译时的错误。通常使用编译器只能做静态类型的检查。但使用此工具,能够进行编译器的类型分析,能够检测并抓取到编译过程中的 Bug,能够大大的节约开发者的时间。(详情: <a href="/misc/goto?guid=4959646057977272031" rel="nofollow,noindex">https://github.com/google/error-prone</a> )</p> <p>38、ROS 系统支持的 SLAM 库 Cartographer ★ Star 2700</p> <p>Cartographer,是Google开源的一个ROS系统支持的2D和3D SLAM(simultaneous localization and mapping)库。SLAM 算法结合来自多个传感器(比如,LIDAR、IMU 和 摄像头)的数据,同步计算传感器的位置并绘制传感器周围的环境。在产业界和学术界常见的传感器配置上,Cartographer 能实时建立全局一致的地图。(详情: <a href="/misc/goto?guid=4959756224863995484" rel="nofollow,noindex">https://github.com/googlecartographer/cartographer</a> )</p> <p>39、安卓电量分析工具 Battery Historian ★ Star 2579</p> <p><img src="https://simg.open-open.com/show/3e8ac03b1575067cf5337941b8284cc7.jpg"></p> <p>Battery Historian 是一个通过分析安卓 "bugreport" 进程文件来统计电量消费情况。它允许应用程序开发人员在时间线上可视化系统和应用程序级事件,具有平移和缩放功能,在设备上完全充电后可以轻松查看各种汇总统计信息,并能选择应用程序,检查影响应用程序特定电池的指标。 它还允许两个错误报告的A / B比较,突出显示关键电池相关指标的差异。(详情: <a href="/misc/goto?guid=4958860265658930737" rel="nofollow,noindex">https://github.com/google/battery-historian</a> )</p> <p>40、通用编码器&解码器框架 seq2seq ★ Star 2433</p> <p><img src="https://simg.open-open.com/show/b4c3d9df3c55216487536b6d5f5e474d.gif"></p> <p>seq2seq 是 Google 开源的一款用于 TensorFlow 的通用编码器&解码器框架(encoder-decoder framework),可用于机器翻译、文本摘要、会话建模、图像描述等。(详情: <a href="/misc/goto?guid=4959005661367133784" rel="nofollow,noindex">https://github.com/google/seq2seq</a> )</p> <p> </p> <p>来自:http://www.iteye.com/news/32840</p> <p> </p>