C基础 如何吃代码只实行同样赖

Physical Web 是出于 Chrome 团队中心的一个种类, 意在就此 URL 连接世界,
方便用户接受多少。在Web世界被,各种URL可以说凡是链接的根底,也是失去中心化的,所以“The
Physical
Web”要召开的就是让每个智能装备用URL来标识自己,然后用户以好之得经URL和装置进行互。这样一来,你利用智能装备的感受就和在网站及如果
用各种超链接差不多了。(详情:https://github.com/google/physical-web)

1.0 最简易, 最高效之主意


    C 代码运行起点 main 就是个大单例函数. 如果把函数注册在其里面, 那么一定很可以 :)

// 某个库需要初始化的函数
void log_init(void) {
    ... ... 
}

int main(int argc, char * argv[]) {
    ... ...
    extern void log_init(void);
    log_init()
    ... ...    
    return 0;
}

是不是, 很轻松的完成了初始化工作.
不妨赠送一个好用的宏, 用于处理这类事情

//
// EXTERN_RUN - 简单的声明, 并立即使用的宏
// ftest    : 需要执行的函数名称
// ...      : 可变参数, 保留
//
#define EXTERN_RUN(ftest, ...)  \
do {                            \
    extern void ftest();        \
    ftest (__VA_ARGS__);        \
} while(0)

用起来更简单, 可以插在代码的任何一处

EXTERN_RUN(log_run);

 

3.0 跳了锁问题, 尝试原子操作


    先举个小例子 

#include <stdio.h>

static void _once(void) {
    static long _cnt;

    printf("_once _cnt = %ld\n", ++_cnt);
}

//
// run once 感受
//
int main(int argc, char * argv[]) {
    puts("run once 感受开始 ... ");

    {
        static int _done;
        if (__sync_bool_compare_and_swap(&_done, 0, 1)) {
            _once();
        }

        if (__sync_bool_compare_and_swap(&_done, 0, 1)) {
            _once();
        }
    }

    puts("run once 感受结束 ... ");
    return 0;
}

运行展示:

这里通过 GCC 提供的 原子交换 __sync_bool_compare_and_swap 解决的. 

不妨继续赠送的封装宏, 来完成上面操作

#define ONCE_RUN(code) {                                    \
    static int _done;                                       \
    if (!_done) {                                           \
        if (__sync_bool_compare_and_swap(&_done, 0, 1)) {   \
            code                                            \
        }                                                   \
    }                                                       \
}

因为是原子操作, 没有锁那么重, 自然出了问题也不会引起死锁问题.  

当然有人说 pthread, __sync_xxx 都是和 GCC 绑定的, 那么 CL 能不能使用了. 当然也是可以的.

pthread 跨平台 –
https://github.com/wangzhione/structc/blob/master/structc/system/thread.h

atomic 跨平台 –
https://github.com/wangzhione/atomic/blob/master/atomic/atom.h

通过上面基础封装库支持, 用 C 写系统应用相关代码还是很好搞的.

举杯满达, 还会重复写几实施代码

    有问题, 是肯定的. 欢迎指正, 更新是共同提高的过程.

老鼠容易大米 –
http://music.163.com/m/song?id=308789&userid=16529894

回头看看, 时间好快呀.  那些个一块补习, 为了玩的伙伴们, 二胎孩子都快上学了. 
哈哈. 
咱们一线秃头兵还在为了 穷 而冲锋陷阵 (°ー°〃)

 

2.0 多线程模式, 如何为起啊


    继续看下面例子 once.c 

#include <stdio.h>
#include <pthread.h>

static void _once(void) {
    static long _cnt;

    printf("_once _cnt = %ld\n", ++_cnt);
}

//
// pthread_once 感受
//
int main(int argc, char * argv[]) {
    pthread_once_t once = PTHREAD_ONCE_INIT;

    puts("pthread_once 感受开始 ... ");
    pthread_once(&once, _once);
    pthread_once(&once, _once);
    puts("pthread_once 感受结束 ... ");

    return 0;
}

gcc -g -Wall -o once.out once.c -lpthread

最终运行结果, 也是如我们所料那样

pthread_once 实际开发中多用于初始化线程私有变量. 其内部实现加锁的.
不妨问个小问题, 如果需要你去实现 pthread_once 你会怎么分析呢 ? 

这个问题好解答也不好解答. 
核心亮点在于 pthread_once 运行的函数实体崩溃了. 多线程之间如何避免死锁. 
不妨参照下面 winds 上面 pthread_once 一位大佬的实现:

#include "pthread.h"
#include "implement.h"

/* [i_a] simple wrapper ensures correct calling convention for all */
static void PTW32_CDECL
ptw32_mcs_lock_cleanup(void *args)
{
    ptw32_mcs_local_node_t *node = (ptw32_mcs_local_node_t *)args;
    ptw32_mcs_lock_release(node);
}

int
pthread_once (pthread_once_t * once_control, void (PTW32_CDECL *init_routine) (void))
{
  if (once_control == NULL || init_routine == NULL)
    {
      return EINVAL;
    }

  if ((PTW32_INTERLOCKED_LONG)PTW32_FALSE ==
      (PTW32_INTERLOCKED_LONG)PTW32_INTERLOCKED_EXCHANGE_ADD_LONG((PTW32_INTERLOCKED_LONGPTR)&once_control->done,
                                                                  (PTW32_INTERLOCKED_LONG)0)) /* MBR fence */
    {
      ptw32_mcs_local_node_t node;

      ptw32_mcs_lock_acquire((ptw32_mcs_lock_t *)&once_control->lock, &node);

      if (!once_control->done)
    {

#if defined(PTW32_CONFIG_MSVC7)
#pragma inline_depth(0)
#endif

      pthread_cleanup_push(ptw32_mcs_lock_cleanup, &node);
      (*init_routine)();
      pthread_cleanup_pop(0);

#if defined(PTW32_CONFIG_MSVC7)
#pragma inline_depth()
#endif

      once_control->done = PTW32_TRUE;
    }

      ptw32_mcs_lock_release(&node);
    }

  return 0;

}               /* pthread_once */

核心是通过 pthread_cleanup_push 和  pthread_cleanup_pop 解决崩溃死锁问题.
当然还有一种思路, 可以解决上面问题. 不妨往下看.

MDL (Material Design Lite) 是 Google 推出的网站前端开发工具组。Material
Design Lite (MDL)可以让您上加一个 Material Design
的外观与感觉到公的静态内容网站,不借助于让任何的 JavaScript 框架和仓库。MDL
可以优化跨设备的利用体验,可以以旧版的浏览器进行平整的切换,提供十分高效的访体验。(详情:https://github.com/google/material-design-lite)

34、iOS UI 测试自动化框架 EarlGrey  ★Star 3721

 

30、无损压缩算法Brotli  ★Star 4822

 

0、机器上体系 TensorFlow  ★Star 62533

29、基于 TensorFlow 的神经网络库 Sonnet  ★Star 5000

11、自动化网络审批工具 Lighthouse  ★Star 9400

 

16、Grumpy  ★Star 7760

Gumbo 是 Google
的相同缓就此C语言实现之HTML5解析库,无需外外部依赖。(详情:https://github.com/google/gumbo-parser)

27、 Java 生成器源代码集合 Auto  ★Star 5295

 

Google Brain团队之等同组研究人员发表了一个类别Project
Magenta,其关键对象是采用机械上做方法和作曲曲子。Project
Magenta使用了
TensorFlow系统,研究人口以GitHub上起来源了他们之模子与工具。(详情:https://github.com/tensorflow/magenta)

 

 

Leveldb是一个google实现之百般快捷的kv数据库,目前之版1.2能支持billion级别的数据量了。
在这个数量级别下还有着充分大之性,主要归功给它的脍炙人口的计划性。特别是LSM算法。(详情:https://github.com/google/leveldb)

Angular 是一样舒缓大风行且好用的 Web 前端框架,目前由于 Google
维护。官方已用 Angular 2 同事先的本 Angular.js 分开维护(两者的 GitHub
地址和种类主页皆非同等)。渐进式 Web 应用,借助现代化 Web
平台的能力,交付 app
式体验。高性能、离线化、零安装。(详情:https://github.com/angular/angular)

 

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

YAPF 是 Google 开发的一个于是来格式化 Python
代码的家伙。(详情:https://github.com/google/yapf)

12、Gson  ★Star 9261

Blockly 是一个因 Web 的可视化编程工具,只待拖动几个图形就足以编程,
完全无需打字. 根据项目FAQ介绍,
这个新语言的重大目的是吗web应用提供宏(或脚本编 程)的支持.
可以管变化的本子输出成javascript, python
等.已经起几乎单下Blockly的demo.(详情:https://github.com/google/blockly)

go-github  是 Google 对 Github 的绽开 API 进行 Go
语言封装的一个型。(详情:https://github.com/google/go-github)

 

 

 

Google的开源C++单元测试框架Google Test,简称gtest
是一个格外之正确单元测试框架。支持逾平台以及包括 Windows CE 和 Symbian
在内的片段手机操作系统。(详情:https://github.com/google/googletest)

 

 

57、Go 语言实现之网络协协议栈 Netstack   ★Star 1016

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

 

 

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

19、代码构建工具Bazel  ★Star 6641

 

17、Javascript 编译器 Traceur  ★Star 7300

 

Tensor2Tensor 是一个模块化和而扩大的库房与二进制文件,
 能够扶助人们呢各种机器上程序创建最先进的型,可下被多个世界,如翻译、语法分析、图像信息描述等,大大提高了研讨以及支出的进度。(详情:https://github.com/tensorflow/tensor2tensor)

36、go-github  ★Star 2707

TensorFlow Fold 是用于创造以结构化数据的 TensorFlow
模型库,其中计算图的结构在输入数据的构造。 TensorFlow Fold
使得拍卖不同数量尺寸以及结构的深浅上型更易于实现。(详情:https://github.com/tensorflow/fold)

 

lovefield 是起家以 IndexedDB 上的关系查询引擎。它提供了类似 SQL
的语法,并且可过浏览器工作(目前支持 Chrome 37 以及以上版本,Firefox 31
及以上版本,IE 10
及以上版本)。(详情:https://github.com/google/lovefield)

Brotli 是一个通用目的的无损压缩算法,它经过用变种的 LZ77 算法,Huffman
编码和二阶文本建模进行数据压缩,是平栽减比非常高的缩减方法。在调减速度及跟
Deflate
差不多,但是提供了再度密集的回落。(详情:https://github.com/google/brotli)

 

 

Netstack,使用 Go 语言编写的网络协议栈。通过安装 tun_tcp_echo demo
尝试在 Linux 上使用 。(详情:https://github.com/google/netstack)

 

systemjs
是一个无限小网加载工具,用来创造插件来处理可代表的景加载过程,包括加载
CSS 场景以及图纸,主要运行在浏览器与 NodeJS 中。它是 ES6
浏览器加载程序的之扩大,将祭在本土浏览器中。通常创建的插件名称是模块本身,要是没有专门指定用途,则默认插件名是模块的扩大名称。(详情:https://github.com/systemjs/systemjs)

 

33、GXUI  ★Star 3803

Wycheproof
是谷歌开源之加密库测试项目,它包含一密密麻麻安全测试,用来检测加密库(cryptographic
libraries)软件是否有就了解之攻击漏洞。(详情:https://github.com/google/wycheproof)

 

Battery Historian 是一个由此分析安卓 “bugreport”
进程文件来统计电量消费状态。它同意应用程序开发人员在时光线达可视化系统及应用程序级事件,具有运动和缩放功能,在设备及全充电后得以轻松查看各种汇总统计信息,并能够选择应用程序,检查影响应用程序特定电池的指标。
它还同意两只错误报告的A /
B比较,突出展示主要电池相关指标的出入。(详情:https://github.com/google/battery-historian)

38、ROS 系统支持之 SLAM 库 Cartographer   ★Star 2700

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

 

 

42、深度概率编程语言 Edward   ★Star 2395

43、JavaScript 库 Closure Library   ★Star 2257

Lighthouse 是一个开源的自动化工具,用于改善网络使用的品质。
可以拿该作一个 Chrome 扩展程序运行,或从命执行运行。 当为 Lighthouse
提供一个一旦按的网址,它以本着是页面运行一连串的测试,然后生成一个有关页面性能的报告。可以参照失败的测试,看看好以怎样措施来改善以。(详情:https://github.com/GoogleChrome/lighthouse)

OSS-Fuzz
能够针对开源软件拓展不断的混淆测试,它的目的是以创新的混淆测试技术同可进展之分布式执行相结合,提高一般软件基础架构的安全性与稳定。OSS-Fuzz
结合了多歪曲测试技术/漏洞捕捉技术(即原的libfuzzer)与清洗技术(即原的
AddressSanitizer),并且经过 ClusterFuzz
为大面积可分布式执行提供了测试环境。(详情:https://github.com/google/oss-fuzz)

49、优化搜索工具or-tools   ★Star 1771

Tracing Framework 是同样模拟库、工具,用于跟踪和查证复杂的 Web
应用。它便足以辅助你发觉代码的属性问题,并且帮助你做大顺理成章的 60 FPS Web
应用。它目前不得不用来特定的动场合,并无是为下被拥有场景而规划,如果你以采取过程遭到相遇了问题,请呈递你的
Bug。(详情:https://github.com/google/tracing-framework)

Advisor 是谷歌公司之所以来分析运行着之 Docker
容器的资源占用和性能特点的家伙。cAdvisor
是一个运行着的守护进程之所以来集、聚合、处理及导出运行容器相关的音讯,每个容器保持独立的参数、历史资源以状况跟整的资源采取数据。当前支撑
lmctfy 容器和 Docker
容器。(详情:https://github.com/google/cadvisor)

GRR 是 Google 开发之远距离现场事件取证系统。GRR
由一个摄(客户端)和劳动器端组成,客户端可安排于一个职责系统被,服务器可以管理客户端,跟客户端进行相互。(详情:https://github.com/google/grr)

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

Sonnet
库使用面向对象的方式,允许创建定义有前方望传导计算的模块。模块用有输入
Tensor 调用,添加操作及图里连返回输出
Tensor。其中同样种植设计选择是经当随之调用相同之模块时自动重用变量来管变量分享给透明化处理。
该库兼容 Linux/Mac OS X 和 Python 2.7。TensorFlow 的版要至少也
1.0.1。Sonnet 支持 TensorFlow 的 virtualenv 安装模式,以及 nativ pip
安装。(详情:https://github.com/deepmind/sonnet)

56、图像差异比较库 Butteraugli   ★Star 1100

53、 JavaScript 库 Shaka Player   ★Star 1354

 

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

 

Edward 是一个用于概率建模、推理与评估的 Python
库。它是一个用于快速实验和钻研概率模型的测试平台,其涵盖的模子范围从当小数码集上的藏层次模型到在异常数量集上的错综复杂深度概率模型。Edward
融合了以下三独领域:贝叶斯统计学和机具上、深度上、概率编程。(详情:https://github.com/blei-lab/edward)

Gson 是 Google 提供的所以来当 Java 对象及 JSON 数据里面展开映射的 Java
类库。可以将一个 JSON 字符串转成为一个 Java
对象,或者转。(详情:https://github.com/google/gson)

 

 

14、序列化库 FlatBuffers  ★Star 7991

 

52、 3D 图形开源压缩库 Draco   ★Star 1600

 

 

8、RPC 框架 GRPC  ★Star 10363

 

28、Python 代码格式化的家伙  ★Star 5197

Auto 是 Java 生成器源代码集合,Java
有成千上万机械、重复、未经测试的代码,而且有时见面出现局部神秘的 Bug 。Auto
项目是机动执行这些项目的任务之代码生成器底聚集,他们得无 Bug
创建而而编制的代码。(详情:https://github.com/google/auto)

Spark 是谷歌公司出产的一律款款基于 Chrome 浏览器的付出环境。提供平等组而选用的
UI 组件。采用 Dart
开发。(安装方式:https://github.com/dart-lang/spark/tree/master/ide)

 

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

 

 

Draco 是相同栽库,用于压缩和解压缩 3D 几哪网格(geometric
mesh)和点云(point cloud)。换句话说,它显然缩小了 3D
图形文件的大大小小,同时对 3D
图形的观看者来说又历来不重影响视觉效果。它还旨在改善 3D
图形的减和传导。Draco 是当 C++ 源代码发布之,可以为此来压缩 3D
图形,另外还宣布了拍卖编码数据的 C++ 和 Javascript
解码器。(详情:https://github.com/google/draco)

Earth Enterprise 是 Google Earth Enterprise
的开源版本,是一个提供构建与托管自定义 3D 地球模型和 2D
地图的地理空间应用,旨在让社区继续改善与推进该品种。(详情:https://github.com/google/earthenterprise)

54、TensorFlow 深度上库 Fold   ★Star 1192

 

 

 

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

7、Spark  ★Star 13378

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

 

Hover 是一个用来 Android 的泛操作栏。该菜单栏可以视作一个 service
启动,从而超越进程使,悬浮于桌面或者其他应用程序的前,当然,这里需要申请权限。
Hover 仍处开发阶段,还有众多代码清理工作需要举行,也就是说,Hover
现在就处于可用状态。(详情:https://github.com/google/hover)

 

“钢琴二重奏”的 A.I. Duet。该类型会当你弹来了几单音符之后,通过 AI
自动测算来帮衬你“补了”旋律的重奏部分。A.I. Duet
运用了人工智能技术,通晓音符的“编码规则”。(详情:https://github.com/googlecreativelab/aiexperiments-ai-duet)

51、Common Lisp Koans   ★Star 1695

48、Google 模糊测试服务 OSS-Fuzz   ★Star 1781

 

 

遵循开源Apache授权的EarlGrey,由Objective-C编写而变成。Google也着实因此之其来测试自己的iOS
app。EarlGrey可支持和效仿回溯至iOS
8之装备,有关该工具的事无巨细文档请戳这里。除了EarlGrey,其它iOS
UI测试自动化框架还连Calabash和Sauce
Labs的Appium。(详情:https://github.com/google/EarlGrey)

FlatBuffers 是一个 Java
的排化库,用于打跟外内存受限的下。FlatBuffers
可以给您一直看序列化后的多寡,无需解压并拓展解析的经过。同时提供十分强之前行同于后兼容性。FlatBuffers
支持 C++ 和 Java
语言,无需依靠第三方库支持。(详情:https://github.com/google/flatbuffers)

 

ExoPlayer 是 Android 上一个应用级的媒体播放器。它吧 Android MediaPlayer
的 API 在播本地或在线的视频和节奏上提供了一个候选。ExoPlayer 支持部分
Android MediaPlayer API 无法提供的特色,包括 DASH 和 SmoothStreaming
自适应回放,持久的高速缓存和于定义渲染器。不像 MediaPlayer
API,EXOPlayer 很爱定制及壮大,而且它们可以经 Play Store
更新提升。(详情:https://github.com/google/ExoPlayer)

 

 

 

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

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

 

35、Blockly  ★Star 3520

 

20、创作方式及作曲曲子的机器智能 magenta  ★Star 6563

Closure Library 是一个雄的 JavaScript 库,用于复杂的宽泛的 Web
应用。它深受不少 Google Web 应用使用,比如 Gmail 和 Google
Docs。(详情:https://github.com/google/closure-library)

 

error-prone 用来查扣到手 Java
编译时的缪。通常使用编译器只能开静态类型的自我批评。但使用这个工具,能够进行编译器的类别分析,能够检测并查扣到手到编译过程被的
Bug,能够大大的节开发者的流年。(详情:https://github.com/google/error-prone)

TensorFlow
是谷歌的老二替机上系统,按照谷歌所说,在一些条件测试中,TensorFlow的变现于第一替的DistBelief快了2加倍。TensorFlow
内建深度上的扩张支持,任何能够用计量流图形来发表的乘除,都可行使TensorFlow。任何依据梯度的机器上算法都能受益于TensorFlow的机动分
化(auto-differentiation)。通过灵活的Python接口,要以TensorFlow中表述想法吗会见老容易。(详情:https://github.com/tensorflow/tensorflow)

9、高质量滑坡图片算法工具Guetzli  ★Star 9959

15、Xi 文本编辑器 Xi Editor  ★Star 8000

Python Fire 是 Google 开源的一个不过自另外 Python
代码自动生成命令行接口(CLI)的库房。Python Fire 是千篇一律栽于 Python 中开创
CLI 的简单方法;是出与调试 Python 代码的管用工具;能够如 Bash 和
Python
之间的换更为好;并且经过以你得导入和创的模块和变量来安装
REPL,使得应用 Python REPL 更易

 

1、material-design-icons  ★Star 30315

 

Cartographer,是Google开源的一个ROS系统支持之2D以及3D SLAM(simultaneous
localization and mapping)库。SLAM
算法结合来多只传感器(比如,LIDAR、IMU 和
摄像头)的数码,同步计算传感器的职并绘制传感器周围的条件。在产业界和学界常见的传感器配置达到,Cartographer
能实时建立全局一致的地形图。(详情:https://github.com/googlecartographer/cartographer)

Kubernetes 是根源 Google 云平台的开源容器集群管理体系。基于 Docker
构建一个容器的调度服务。该网可以自行在一个容器集众多被选取一个做事容器供下。其主干概念是
Container Pod。(详情:https://github.com/kubernetes/kubernetes)

Seesaw 是 Google 开源之一个基于 Linux 的载荷均衡系统。Seesaw
包含基本的载重均衡特性,同时支持部分高级的机能,诸如:anycast, Direct
Server Return (DSR), 支持多个 VLANs
和集中式配置。同时其计划之要旨是轻维护。(详情:https://github.com/google/seesaw)

 

 

46、Android 的悬浮操作栏 Hover   ★Star 2053

21、自动生成令行界面的内容库 Python Fire  ★Star 6500

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

Butteraugli
是为此来鉴定两单图像中的相似度。通过辨认图像里有最为给关注的差异点并受起彼此似度分值。这个类别的一个根本思想是指向出入受体的两样颜色之职务以及密度之统计,特别是蓝色之低密度锥窝。另一个念来自于重新可靠之神经节细胞建模,特别是杀频率空间。目前该项目就提供了
C++ 接口。(详情:https://github.com/google/butteraugli)

32、Gumbo  ★Star 4060

6、Java 常用库 Guava  ★Star 17267

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

 

 

 

 

 

 

Traceur 是一个出自 Google 的 Javascript
编译器,通过它们好体会有格外新又有趣的 Javascript
语言特色,这些大多数凡还尚未给当下浏览器实现之 ECMAScript
标准或者草案,比如:数组比较、类、模块、迭代器、方法参数默认值、Promise等。(详情:https://github.com/google/traceur-compiler)

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

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

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

10、k/v数据库 Leveldb  ★Star 9799

47、模块化深度上系统 Tensor2Tensor   ★Star 2000

41、Web应用 Tracing Framework   ★Star 2371

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

Shaka Player 它实现了 DASH 客户端的功能。它的播放效果基于 HTML5
video、MediaSource Extensions,和 Encrypted Media Extensions 。一般的
DASH
客户端功能十分麻烦落实。(详情:https://github.com/google/shaka-player)

18、媒体播放器 ExoPlayer  ★Star 7152

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

 

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

 

 

 

Guetzli,是一个针对性数码图像以及网页图像的 JPEG 编码器,能够透过产生重复粗之
JPEG 文件来上更快之在线体验,并且同时保持同时浏览器,图像处理下及
JPEG 标准的兼容性。Google 称 Guetzli 创建高质量的 JPEG
图像文件的大小比较当下的滑坡方法要重复稍加 35%。上图也 16×16
像素样本,是悬挂于蓝天下的同一到底电话线,传统 JPEG
算法经常会面遇见的失真状况。左边是免减的原图,中间也比较小尺码的
libjpeg,右边是失真更少的 Guetzli
。(详情:https://github.com/google/guetzli)

Common Lisp Koans(lisp-koans)是一个语言学习习程序,类似 ruby
koans,python koans 等等。Common Lisp Koans 主要是帮忙上有些 lisp
规范特性与改善,可以学习及大气底 Common Lisp
语言特征。(详情:https://github.com/google/lisp-koans)

欣赏就珍藏吧~

3、Web 前端框架 Angular  ★Star 25524

E2EMail
是一个试验性质的捧到端加密系统。E2EMail由Google开发,内置JavaScript内部支出之JavaScript加密库。它提供了一样种通过Chrome扩展程序将OpenPGP集成到Gmail中之方。消息之明单独保留在客户端上。(详情:https://github.com/e2email-org/e2email)

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

13、最小网加载工具 systemjs  ★Star 8356

Bazel 是 Google 的均等慢可再生的代码构建工具。它至关重要是用于构建 Google
的软件,处理出现于谷歌的开支环境的构建问题,比如说:大规模数据构建问题,共享代码库问题,从源代码构建的软件的相关题材。支持多种语言并且越平台,还支持自动化测试和配置、具有再现性(Reproducibility)和规模化等特色。(详情:https://github.com/bazelbuild/bazel)

31、葡京娱乐总站平台负载均衡系统 Seesaw  ★Star 4286

26、IndexedDB 关系查询引擎 lovefield  ★Star 5532

or-tools 是 Google 的优化搜索工具。Google
优化工具包括:约束编程解决方案;为线性规划及混合整数规划解决方案提供简单统一的接口,包括
CBC, CLP, GLOP, GLPK, Gurobi, SCIP, 和 Sulum;背包算法;图算法
(最缺乏路径,线性和分配,最小费用流,最可怜流动)(详情:https://github.com/google/or-tools)

 

25、C++单元测试工具  ★Star 5755

 

Istio 是一个由谷歌、IBM 与 Lyft
共同开发的开源项目,旨在提供平等栽统一化的微服务连接、安全保持、管理暨监督措施。Istio
项目能为微服务架构提供流量管理机制,同时也为其他增值效益(包括安全性、监控、路由、连接管理暨策略等)创造了基础。这款软件应用久经考验的
Lyft Envoy
代理进行构建,可当无需对应用程序代码作出任何发动的前提下促成可视性与控制能力。(详情:https://github.com/istio/istio)

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

 

Grumpy 是一个 Python  to Go 源代码翻译编译器和运行时,旨在替代 CPython
2.7。 关键的区别是它们用 Python 源代码编译为 Go
源代码,然后用那编译为本机代码,而无是配节码。这代表 Grumpy 没有
VM。编译的 Go 源代码是对准 Grumpy 运行时的相同多级调用,Go 库服务与 Python C
API 类似的目的(尽管未直支持 C
API)。(详情:https://github.com/google/grumpy)

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)

45、远程现场取证系统 GRR   ★Star 2100

Xi Editor 是 Google 开源之一样舒缓用 Rust 语言编写的文本编辑器,最初是吗 Mac
OS X 构建的,使用 Cocoa
作为用户界面,已发出计划适配其它平台。所有编辑操作都好在 16ms
之内提交并处理。文本绘制使用最好之技巧(如 Mac 上的 Core Text,Windows
上之 DirectWrite 等),并完全支持
Unicode。(详情:https://github.com/google/xi-editor)

 

GXUI 是 Google 出品的一个跨平台 GO 语言的 UI
框架。(详情:https://github.com/google/gxui)