百度总括的JS脚本原理分析

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

首先,百度总括会要求我们在要总括的页面中放置一段js语句,类似如下:

0、机器学习体系 TensorFlow  ★Star 62533

<script type=”text/javascript”>
var _bdhmProtocol = ((“https:” == document.location.protocol) ? ”
https://” : ” http://”);
document.write(unescape(“%3Cscript src=’” + _bdhmProtocol +
“hm.baidu.com/h.js%3F3266e9d3684eaa1337dc7c4b4b64b0ae’
type=’text/javascript’%3E%3C/script%3E”));
</script>

 

 

图片 1

这段js,实质上是往页面中引入hm.baidu.com/h.js的这段代码,该代码的内容会遵照前边的参数有所不同,h.js?前面的参数就是您在百度总括里的id。

 

得到该h.js代码的还要,百度总结会往你的浏览器写入一个名字为“HMACCOUNT”的cookie,该cookie的晚点时间为2038年,所以只要您从未清空浏览器cookie,基本就不要过期。

TensorFlow
是Google的第二代机器学习系统,依据Google所说,在某些原则测试中,TensorFlow的显现比第一代的DistBelief快了2倍。TensorFlow
内建纵深学习的壮大援助,任何可以用总计流图形来表述的臆度,都得以动用TensorFlow。任何按照梯度的机械学习算法都可以获益于TensorFlow的自动分
化(auto-differentiation)。通过灵活的Python接口,要在TensorFlow中发挥想法也会很容易。(详情:https://github.com/tensorflow/tensorflow

h.js被下载后,便执行其脚本获取一些浏览器相关信息和走访来源,获取的音讯包括屏幕尺寸、颜色深浅、flash版本、用户语言等。

 

从js代码中得以获取,所有参数包括这一个:”cc,cf,ci,ck,cl,cm,cp,cw,ds,ep,et,fl,ja,ln,lo,lt,nv,rnd,sb,se,si,st,su,sw,sse,v”。这多少个参数的含义大致如下:

1、material-design-icons  ★Star 30315

cc: 不知道,一般为1
cf:url参数hmsr的值
ci:url参数hmci的值
ck:是否襄助cookie 1:0
cl:颜色深浅 如 “32-bit”
cm:url参数hmmd的值
cp:url参数hmpl的值
cw:url参数hmkw的值
ds:屏幕尺寸,如 ’1024×768′
ep:初阶值为’0′,时间变量,反映页面停留时间,格式大概是:现在光阴-载入时间+“,”+另一个很小的年月值
et:伊始值为’0′,假如ep时间变量不是0的话,它会变成任何
fl:flash版本
ja:java支持 1:0
ln:语言 zh-cn
lo: 不知道,一般为0
lt:日期 time.time(),如“1327847756”, 在第一次呼吁没有
nv: 不知道,一般为1或者0
rnd:十位随机数字
sb:如果是360se浏览器该值等于‘17’
se: 和查找引擎相关
si:总结代码id
st:
su:上一页document.referrer
sw: 不通晓,估量和查找引擎有关,一般为空
sse:不了然,估量和摸索引擎有关,一般为空
v:总结代码的版本 ,目前该值为“1.0.17”

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

当这个参数都设置完毕了(有些参数并从未赋值),筛选出已经赋值了的参数,并视作hm.baidu.com/hm.gif的参数拼凑出一个url,如:http://hm.baidu.com/hm.gif?cc=1&ck=1&cl=32-bit&ds=1366×768&ep=0&et=0&fl=11.0&ja=1&ln=zh-cn
  。然后请求该图片。

 

百度总括服务端,通过吸收到这多少个请求,并从那一个图形的网址附带的参数获取有关新闻,记录访客访问记录;当页面被用户关闭的时候,同样会触发四次呼吁hm.gif的经过,但这一个过程不是独具浏览器和装有关闭动作都协助。

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

 

图片 2

接下去通过程序模拟这一进程:

MDL (Material Design Lite) 是 Google 推出的网站前端开发工具组。Material
Design Lite (MDL)可以让你添加一个 Material Design
的外观和感觉到您的静态内容网站,不依靠于其他的 JavaScript 框架和库。MDL
可以优化跨设备的运用体验,可以在旧版的浏览器举办平整的切换,提供丰裕便捷的造访体验。(详情:https://github.com/google/material-design-lite

先是,使用Wireshark(一款网络抓包工具)对浏览器实际的历程举行捕获。首先是拔取ie打开一个有超链接链接到有百度总括的网站,加载完毕后关闭浏览器。最终在Wireshark上收获如此的网络数据包。

 

http://hm.baidu.com/h.js?3266e9d3684e7a1307dc7c4b4a64b0ae
http://hm.baidu.com/hm.gif?cc=1&ck=1&cl=32-bit&ds=1366×768&ep=0&et=0&fl=11.0&ja=1&ln=zh-cn&lo=0&lt;=1328171561&nv=1&rnd=2889921&si=3266e9d3684e7a1307dc7c4b4a64b0ae&st=3&su=http%3A%2F%2Fwww.zhanghangbo.com%2F&v=1.0.17
http://hm.baidu.com/hm.gif?cc=1&ck=1&cl=32-bit&ds=1366×768&ep=7289%2C115&et=3&fl=11.0&ja=1&ln=zh-cn&lo=0&lt;=1328171561&nv=1&rnd=1444115283&si=3266e9d3684e7a1307dc7c4b4a64b0ae&st=3&su=http%3A%2F%2Fwww.zhanghangbo.com%2F&v=1.0.17
http://hm.baidu.com/hm.gif?cc=1&ck=1&cl=32-bit&ds=1366×768&ep=212486%2C4614&et=3&fl=11.0&ja=1&ln=zh-cn&lo=0&lt;=1328171541&nv=1&rnd=1067394506&si=0f9e2caa14d6d0a51371b168d182314a&st=1&v=1.0.17

3、Web 前端框架 Angular  ★Star 25524

可以窥见,浏览器总共向服务器端发送了4次呼吁:

Angular 是一款卓殊流行且好用的 Web 前端框架,如今由 Google维护。官方已将 Angular 2 和事先的版本 Angular.js 分开维护(两者的 GitHub
地址和档次主页皆不一致)。渐进式 Web 应用,借助现代化 Web
平台的能力,交付 app
式体验。高性能、离线化、零安装。(详情:https://github.com/angular/angular

  1. 伸手一段js脚本。
  2. 加载完毕时候出发一遍呼吁,并传递参数
  3. 剥离页面时候,发出两回呼吁,并传递参数,与地点比较,发现ep参数有转移。

 

       
百度统计是遵照cookie的,当呼吁js脚本的时候,会在您电脑里保存一个永久cookie,该cookie作为你的用户标识。同时发现,但剥离时候参数ep从最开端的0变为了“7289%2C115”,转义后是“7289,115”这是几个毫秒单位,即7.2秒和0.1秒的意味。同时前两遍呼吁hm.gif的时候lt参数(时间,javascript:(new
Date).get提姆(Tim)e())是不变的。rnd随机数每一遍都变。

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

下边我们就来模拟三遍呼吁,这次使用的python语言。

Kubernetes 是源于 Google 云平台的开源容器集群管理体系。基于 Docker
构建一个器皿的调度服务。该连串可以自行在一个器皿集群中挑选一个工作容器供役使。其主导概念是
Container Pod。(详情:https://github.com/kubernetes/kubernetes

import urllib2
import urllib
import random
import math
import urlparse
import time
import cookielib

 

########################################################################
class Baidu:
“”””””
Referer=’http://www.lixin.me
TargetPage=’/www.lixin.me’
BaiduID=”
Hjs=”http://hm.baidu.com/h.js?
Hgif=”http://hm.baidu.com/hm.gif?
UserAgent=’Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1;
Trident/5.0)’ #IE9
MyData={‘cc’:’1′,’ck’:’1′,’cl’:’32-bit’,’ds’:’1024×768′,’et’:’0′,’ep’:’0′,’fl’:’11.0′,’ja’:’1′,’ln’:’zh-cn’,’lo’:’0′,’nv’:’1′,’st’:’3′,’v’:’1.0.17′}
#———————————————————————-

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

def __init__(self,baiduID,targetPage=None,refererPage=None):
“””Constructor”””
self.TargetPage=targetPage or self.TargetPage
self.Referer=refererPage or self.Referer
self.BaiduID=baiduID
self.MyData[‘si’]=self.BaiduID
self.MyData[‘su’]=urllib.quote(self.Referer)
pass
def run(self,timeout=5):
cj=cookielib.CookieJar()
opener=urllib2.build_opener(urllib2.HTTPCookieProcessor(cj))
opener.addheaders=[(“Referer”,self.TargetPage),(“User-Agent”,self.UserAgent)]
try:
response=opener.open(self.Hjs+self.BaiduID).info()
self.MyData[‘rnd’]=int(random.random()*2147483647 )
self.MyData[‘lt’]=int(time.time())
fullurl=self.Hgif+urllib.urlencode(self.MyData)
response2=opener.open(fullurl,timeout=timeout).info()
self.MyData[‘rnd’]=int(random.random()*2147483647 )
self.MyData[‘et’]=’3′
self.MyData[‘ep’]=’2000,100′
response3=opener.open(self.Hgif+urllib.urlencode(self.MyData),timeout=timeout).info()
pass
except urllib2.HTTPError ,ex:
print ex.code
pass
except urllib2.URLError,ex:
print ex.reason
pass
pass

Protocol Buffers (ProtocolBuffer/ protobuf
)是Google集团开发的一种多少描述语言,类似于XML可以将结构化数据连串化,可用于数据存储、通信协议等方面。现阶段援助C++、JAVA、Python等两种编程语言。同XML相相比,Protocol
buffers在类别化结构化数据方面有为数不少独到之处(详情:https://github.com/google/protobuf

if __name__ ==”__main__”:
a=Baidu(‘百度总计id’,’http://www.lixin.me/blog/test4','www.lixin.com.cn‘)
a.run()

 

 

6、Java 常用库 Guava  ★Star 17267

该品种是 Google 的一个开源项目,包含众多 Google 焦点的 Java
常用库。(详情:https://github.com/google/guava

 

7、Spark  ★Star 13378

图片 3

斯帕克(Spark)(Spark) 是Google商家生产的一款基于 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

图片 4

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

图片 5

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 是 谷歌 开源的一个可从另外 Python
代码自动生成命令行接口(CLI)的库。Python Fire 是一种在 Python 中创设CLI 的简单方法;是支付和调节 Python 代码的管用工具;能够使 Bash 和
Python
之间的转换更为容易;并且经过采纳你需要导入和开创的模块和变量来安装
REPL,使得应用 Python REPL 更便于

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

 

22、软硬件框架AnyPixel.js  ★Star 5906

图片 6

AnyPixel.js 是 Google开源的一个软件和硬件框架,可以用来构建各个由“像素”构成的突显,每个像素可以是此外一种可互相的实体对象,如
LED
灯、气球等。(详情:https://github.com/googlecreativelab/anypixel

 

23、物联网工具Physical Web  ★Star 5899

图片 7

Physical Web 是由 Chrome 团队为主的一个档次, 目的在于用 URL 连接世界,
方便用户接受多少。在Web世界中,各个URL能够说是链接的根基,也是去中央化的,所以“The
Physical
Web”要做的就是让每个智能设备用URL来标识自己,然后用户按照自己的内需经过URL和设施开展相互。这样一来,你使用智能装备的体验就和在网站上使
用各样超链接差不多了。(详情:https://github.com/google/physical-web

 

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

Advisor 是Google公司用来分析运行中的 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

 

图片 8

 

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 是 谷歌 出品的一个跨平台 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,是谷歌开源的一个ROS系统协理的2D和3D SLAM(simultaneous
localization and mapping)库。SLAM
算法结合来自四个传感器(比如,LIDAR、IMU 和
录像头)的多寡,同步总括传感器的职务并绘制传感器周围的条件。在产业界和学界常见的传感器配置上,Cartographer
能实时建立全局一致的地形图。(详情:https://github.com/googlecartographer/cartographer

 

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

图片 9

 

Battery Historian 是一个透过分析安卓 “bugreport”
进程文件来总括电量消费状态。它同意应用程序开发人士在时间线上可视化系统和行使程序级事件,具有活动和缩放功效,在设施上完全充电后得以轻松查看各类汇总总计音信,并能采用应用程序,检查影响应用程序特定电池的目标。
它还同意四个错误报告的A /
B相比,优秀显示紧要电池相关目的的出入。(详情:https://github.com/google/battery-historian

 

40、通用编码器&解码器框架 seq2seq  ★Star 2433

图片 10

 

seq2seq 是 Google 开源的一款用于 TensorFlow
的通用编码器&解码器框架(encoder-decoder
framework),可用于机器翻译、文本摘要、会话建模、图像描述等。(详情:https://github.com/google/seq2seq

 

41、Web应用 Tracing Framework   ★Star 2371

图片 11

 

Tracing Framework 是一套库、工具,用于跟踪和检察复杂的 Web
应用。它就足以帮您意识代码的性能问题,并且帮你打造异常通畅的 60 FPS Web
应用。它最近只得用于特定的施用场馆,并不是为使用于拥有场景而规划,借使你在动用过程中相见了问题,请呈递你的
Bug。(详情:https://github.com/google/tracing-framework

 

42、深度概率编程语言 爱德华(Edward)   ★Star 2395

爱德华 是一个用来概率建模、推理和评估的 Python
库。它是一个用以神速实验和探讨概率模型的测试平台,其富含的模型范围从在小数目集上的经典层次模型到在大数据集上的复杂深度概率模型。Edward融合了以下三个世界:贝叶斯总计学和机械学习、深度学习、概率编程。(详情:https://github.com/blei-lab/edward

 

43、JavaScript 库 Closure Library   ★Star 2257

Closure Library 是一个强劲的 JavaScript 库,用于复杂的常见的 Web
应用。它被广大 谷歌 Web 应用使用,比如 Gmail 和 GoogleDocs。(详情:https://github.com/google/closure-library

 

44、大型微服务系统管理工具 Istio   ★Star 2291

Istio 是一个由Google、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优化工具包括:约束编程解决方案;为线性规划和混合整数规划解决方案提供简单统一的接口,包括
CBC, CLP, GLOP, GLPK, Gurobi, SCIP, 和 Sulum;背包算法;图算法
(最短路径,线性和分配,最小费用流,最大流)(详情:https://github.com/google/or-tools

 

50、加密库安全测试套件 Wycheproof   ★Star 1722

Wycheproof
是Google开源的加密库测试项目,它涵盖一文山会海安全测试,用来检测加密库(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

 

喜好就收藏吧~

 

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图