开源巨献:Google最抢手60慢开源路

文章整理于互联网。
本文收集了 60款 Google 开源的项目,排名顺序按照 Github ★Star 数量排列。

简介
  CSRF(Cross-site
request forgery跨站请求伪造,也为名“One Click Attack”或者Session
Riding,通常缩写为CSRF或者XSRF,是同一栽对网站的恶心用。尽管放起像跨站脚本(XSS),但它们跟XSS非常不同,并且攻击方式几乎相左。XSS利用站点外的信赖用户,而CSRF则通过伪装来自于信赖用户的求来以吃信赖的网站。与XSS攻击相比,CSRF攻击往往无生流行(因此对那进展防范的资源为相当罕见)和难以防范,所以叫认为比较XSS更拥有危险性。

0、机器上系统 TensorFlow  ★Star 62533

场景

 

     
某程序员大神God在某个在线银行Online Bank给他的心上人Friend转账。

  

 

  

TensorFlow
是谷歌的老二替机上系统,按照谷歌所说,在一些规则测试中,TensorFlow的表现比较第一替之DistBelief快了2加倍。TensorFlow
内修深度上之扩张支持,任何能够用计量流图形来抒发的计算,都足以使TensorFlow。任何依据梯度的机上算法都能受益于TensorFlow的活动分
化(auto-differentiation)。通过灵活的Python接口,要当TensorFlow中发挥想法也会十分轻。(详情:https://github.com/tensorflow/tensorflow)

  转账后,出于好奇,大神God查看了网站的源文件,以及捕获到转会的求。

 

   

1、material-design-icons  ★Star 30315

  

Google 开源了 Material Design 系统图标包里的 750
只字形。该网图标包含常用之图标,如用于媒体播发、通讯、内容编排、连接等等。在
Web 应用,安卓以及 iOS
设计均适用。(详情:http://google.github.io/material-design-icons/)

  大神God发现,这个网站并未举行防止CSRF的方法,而且他好呢发一个出肯定访问量的网站,于是,他计划于和谐的网站及内嵌一个藏身的Iframe伪造请求(每10s发送一赖),来等鱼儿Fish上钩,给自己转账。

 

  网站源码:

2、前端开发工具组 MDL  ★Star 27873

 1 <html>
 2 <head>
 3     <meta http-equiv="Content-Type" content="text/html; charset=gb2312" /> 
 4     <title></title>
 5 </head>
 6 <body>
 7 <div>
 8     我是一个内容丰富的网站,你不会关闭我!
 9 </div>
10 
11 <iframe name="frame" src="invalid.html" sandbox="allow-same-origin allow-scripts allow-forms"  style="display: none; width: 800px; height: 1000px;"> </iframe> 
12 <script type="text/javascript">
13     setTimeout("self.location.reload();", 10000);
14 </script>
15 </body>
16 </html>

   伪造请求源码:

MDL (Material Design Lite) 是 Google 推出的网站前端开发工具组。Material
Design Lite (MDL)可以吃你补充加一个 Material Design
的外观以及发到公的静态内容网站,不靠让外的 JavaScript 框架和货栈。MDL
可以优化跨设备的使体验,可以于旧版的浏览器进行平整的切换,提供好快捷的访问体验。(详情:https://github.com/google/material-design-lite)

 1 <html>
 2 <head>
 3     <title></title>
 4 </head>
 5 <body>
 6 <form id="theForm" action="http://localhost:22699/Home/Transfer" method="post">
 7     <input class="form-control" id="TargetUser" name="TargetUser" placeholder="用户名" type="text" value="God" />
 8     <input class="form-control" id="Amount" name="Amount" placeholder="转账金额" type="text" value="100" />
 9 </form>
10 
11 <script type="text/javascript">
12     document.getElementById('theForm').submit();
13 </script>
14 </body>
15 </html>

 

   

3、Web 前端框架 Angular  ★Star 25524

  鱼儿Fish打开了大神God的网站,在方浏览丰富多彩的情。此时冒充请求的结果是这般的(为了演示效果,去丢了影):

Angular 是均等放缓很流行且好用的 Web 前端框架,目前是因为 Google
维护。官方已经以 Angular 2 跟事先的本 Angular.js 分开维护(两者的 GitHub
地址及类主页皆不等同)。渐进式 Web 应用,借助现代化 Web
平台的力,交付 app
式体验。高性能、离线化、零安装。(详情:https://github.com/angular/angular)

   

 

  因为鱼儿Fish没有登陆,所以,伪造请求一直无法履行,一直过反回登录页面。

4、容器集群管理体系 Kubernetes  ★Star 24599

  然后鱼儿Fish想起了使登录在线银行Online
Bank查询内容,于是他登录了Online Bank。

Kubernetes 是缘于 Google 云平台的开源容器集群管理网。基于 Docker
构建一个器皿的调度服务。该系统可活动在一个器皿集众多中摘一个做事容器供役使。其核心概念是
Container Pod。(详情:https://github.com/kubernetes/kubernetes)

  这假冒请求的结果是这么的(为了演示效果,去丢了隐形):

 

   

5、数据描述语言 protobuf  ★Star 18447

  鱼儿Fish每10秒会于大神God转账100冠。

Protocol Buffers (ProtocolBuffer/ protobuf
)是Google公司开发的同样栽多少描述语言,类似于XML能够用结构化数据序列化,可用以数据存储、通信协议等方面。现阶段支持C++、JAVA、Python等三栽编程语言。同XML相比,Protocol
buffers在序列化结构化数据方面有过多独到之处(详情:https://github.com/google/protobuf)

   

 

 

6、Java 常用库 Guava  ★Star 17267

防止CSRF

  CSRF能得逞是盖跟一个浏览器会共享Cookies,也就是说,通过权限认证与验证是无能为力防护CSRF的。那么相应什么防CSRF呢?其实防止CSRF的方法充分简单,只要确保请求是友好之站点来之就好了。那怎么确保请求是发于自己的站点也?ASP.NET以Token的花样来判断请求。

  我们用以咱们的页面生成一个Token,发请求的时把Token带上。处理要的下要验证Cookies+Token。

  

  

  这冒充请求的结果是这么的(为了演示效果,去丢了藏):

  

该型是 Google 的一个开源项目,包含多 Google 核心之 Java
常用库。(详情:https://github.com/google/guava)

$.ajax

  如果自身的要不是经过Form提交,而是经Ajax来交付,会怎样为?结果是说明不经。

  

  为什么会应声样子?我们回头看看加了@Html.AntiForgeryToken()后页面和乞求的变更。

  1.
页面多矣一个隐藏域,name为__RequestVerificationToken。

  

  2.
伸手被也大都矣一个字段__RequestVerificationToken。

  

  原来要加这么个字段,我哉加以一个请勿就是得了!

    

  啊!为什么要不行…逼我放大招,研究源码去!

  

  噢!原来token要打Form里面取。但是ajax中,Form里面连从未东西。那token怎么收拾呢?我把token放到碗里,不对,是坐header里。

   js代码:

 1 $(function () {
 2             var token = $('@Html.AntiForgeryToken()').val();
 3 
 4             $('#btnSubmit').click(function () {
 5                 var targetUser = $('#TargetUser').val();
 6                 var amount = $('#Amount').val();
 7                 var data = { 'targetUser': targetUser, 'amount': amount };
 8                 return $.ajax({
 9                     url: '@Url.Action("Transfer2", "Home")',
10                     type: 'POST',
11                     data: JSON.stringify(data),
12                     contentType: 'application/json',
13                     dataType: 'json',
14                     traditional: 'true',
15                     beforeSend: function (xhr) {
16                         xhr.setRequestHeader('__RequestVerificationToken', token);
17                     },
18                     success:function() {
19                         window.location = '@Url.Action("Index", "Home")';
20                     }
21                 });
22             });
23         });

   在服务端,参考ValidateAntiForgeryTokenAttribute,编写一个AjaxValidateAntiForgeryTokenAttribute:

 1 [AttributeUsage(AttributeTargets.Class | AttributeTargets.Method)]
 2     public class AjaxValidateAntiForgeryTokenAttribute : FilterAttribute, IAuthorizationFilter
 3     {     
 4         public void OnAuthorization(AuthorizationContext filterContext)
 5         {
 6             if (filterContext == null)
 7             {
 8                 throw new ArgumentNullException("filterContext");
 9             }
10 
11             var request = filterContext.HttpContext.Request;
12 
13             var antiForgeryCookie = request.Cookies[AntiForgeryConfig.CookieName];
14             var cookieValue = antiForgeryCookie != null ? antiForgeryCookie.Value : null;
15             var formToken = request.Headers["__RequestVerificationToken"];
16             AntiForgery.Validate(cookieValue, formToken);
17         }
18     }

   然后调用时拿ValidateAntiForgeryToken替换成AjaxValidateAntiForgeryToken。

   

  大功告成,好出成就感!

 

全局处理

  如果所有的操作请求都如加以一个ValidateAntiForgeryToken或者AjaxValidateAntiForgeryToken,不是大累呢?可以当有地方联合处理吧?答案是得的。

  ValidateAntiForgeryTokenAttribute继承IAuthorizationFilter,那便当AuthorizeAttribute里做联合处理吧。

  ExtendedAuthorizeAttribute:

 1 public class ExtendedAuthorizeAttribute : AuthorizeAttribute
 2     {
 3         public override void OnAuthorization(AuthorizationContext filterContext)
 4         {
 5             PreventCsrf(filterContext);
 6             base.OnAuthorization(filterContext);
 7             GenerateUserContext(filterContext);
 8         }
 9 
10         /// <summary>
11         /// http://www.asp.net/mvc/overview/security/xsrfcsrf-prevention-in-aspnet-mvc-and-web-pages
12         /// </summary>
13         private static void PreventCsrf(AuthorizationContext filterContext)
14         {
15             var request = filterContext.HttpContext.Request;
16 
17             if (request.HttpMethod.ToUpper() != "POST")
18             {
19                 return;
20             }
21 
22             var allowAnonymous = HasAttribute(filterContext, typeof(AllowAnonymousAttribute));
23 
24             if (allowAnonymous)
25             {
26                 return;
27             }
28 
29             var bypass = HasAttribute(filterContext, typeof(BypassCsrfValidationAttribute));
30 
31             if (bypass)
32             {
33                 return;
34             }
35 
36             if (filterContext.HttpContext.Request.IsAjaxRequest())
37             {
38                 var antiForgeryCookie = request.Cookies[AntiForgeryConfig.CookieName];
39                 var cookieValue = antiForgeryCookie != null ? antiForgeryCookie.Value : null;
40                 var formToken = request.Headers["__RequestVerificationToken"];
41                 AntiForgery.Validate(cookieValue, formToken);
42             }
43             else
44             {
45                 AntiForgery.Validate();
46             }
47         }
48 
49         private static bool HasAttribute(AuthorizationContext filterContext, Type attributeType)
50         {
51             return filterContext.ActionDescriptor.IsDefined(attributeType, true) ||
52                    filterContext.ActionDescriptor.ControllerDescriptor.IsDefined(attributeType, true);
53         }
54 
55         private static void GenerateUserContext(AuthorizationContext filterContext)
56         {
57             var formsIdentity = filterContext.HttpContext.User.Identity as FormsIdentity;
58 
59             if (formsIdentity == null || string.IsNullOrWhiteSpace(formsIdentity.Name))
60             {
61                 UserContext.Current = null;
62                 return;
63             }
64 
65             UserContext.Current = new WebUserContext(formsIdentity.Name);
66         }
67     }

   然后当FilterConfig注册一下。

    

  FAQ:

  1. BypassCsrfValidationAttribute凡呀不良?不是发出个AllowAnonymousAttribute吗?

  如果有点操作而免待举行CSRF的拍卖,比如附件上传,你可于对应之Controller或Action上添加BypassCsrfValidationAttribute。

  AllowAnonymousAttribute不仅会绕了CSRF的处理,还见面绕了证明和认证。BypassCsrfValidationAttribute绕过CSRF但非绕了证明和验证,

也就是BypassCsrfValidationAttribute作用为那些登录还是授权后的Action。

 

  2.
为何偏偏处理POST请求?

  我付出之时节有一个规则,查询都用GET,操作用POST,而对此查询的请求没有必要举行CSRF的处理。大家可遵循自己之消去安排!

  

  3.
我做了全局处理,然后还以Controller或Action上加了ValidateAntiForgeryToken或者AjaxValidateAntiForgeryToken,会冲吧?

  不见面冲,只是验证会做简单糟。

7、Spark  ★Star 13378

源码下载

  为了方便使用,我从不采用外数据库,而是用了一个文书来储存数据。代码下载后得以直接运行,无需配置。

  下载地址:https://github.com/ErikXu/CSRF

 

文章转载自:http://www.cnblogs.com/Erik_Xu/p/5481441.html

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%。上图为 16×16
像素样本,是挂在蓝天下的如出一辙干净电话线,传统 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)

 

喜欢就珍藏吧~