给程序员新年巨献:Google最热门60款开源项目

TensorFlow是谷歌的第二代机器学习系统,据谷歌说,在某些基准测试中,TensorFlow的表现比第一代的DistBelief快了2倍。TensorFlow内建深度学习的扩展支持,任何能够用计算流图形来表达的计算,都可以使用TensorFlow。任何基于梯度的机器学习算法都能够受益于TensorFlow的自动分化(auto-differentiation)。通过灵活的Python接口,要在TensorFlow中表达想法也会很容易。

2material-design-icons

Google开源了MaterialDesign系统图标包其中的750个字形。该系统图标包含常用的图标,如用于媒体播放、通讯、内容编辑、连接等等。在Web应用,安卓和iOS设计均适用。

3前端开发工具组MDL

MDL(MaterialDesignLite)是Google推出的网站前端开发工具组。MaterialDesignLite(MDL)可以让你添加一个MaterialDesign的外观和感觉到你的静态内容网站,不依赖于任何的Java框架和库。MDL可以优化跨设备的使用体验,可以在旧版的浏览器进行平滑的切换,提供非常快速的访问体验。

4Web前端框架Angular

Angular是一款十分流行且好用的Web前端框架,目前由Google维护。官方已将Angular2和之前的版本Angular.js分开维护(两者的GitHub地址和项目主页皆不相同)。渐进式Web应用,借助现代化Web平台的力量,交付app式体验。高性能、离线化、零安装。

5容器集群管理系统Kubernetes

Kubernetes是来自Google云平台的开源容器集群管理系统。基于Docker构建一个容器的调度服务。该系统可以自动在一个容器集群中选择一个工作容器供使用。其核心概念是ContainerPod。

6数据描述语言protobuf

ProtocolBuffers(ProtocolBuffer/protobuf)是Google公司开发的一种数据描述语言,类似于XML能够将结构化数据序列化,可用于数据存储、通信协议等方面。现阶段支持C++、JAVA、Python等三种编程语言。同XML相比,Protocolbuffers在序列化结构化数据方面有许多优点。

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

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文本编辑器XiEditor

XiEditor是Google开源的一款用Rust语言编写的文本编辑器,最初是为MacOSX构建的,使用Cocoa作为用户界面,已有计划适配其它平台。所有编辑操作都可以在16ms之内提交并处理。文本绘制使用最好的技术(如Mac上的CoreText,Windows上的DirectWrite等),并完全支持Unicode。

17Grumpy

Grumpy是一个PythontoGo源代码翻译编译器和运行时,旨在替代CPython2.7。关键的区别是它将Python源代码编译为Go源代码,然后将其编译为本机代码,而不是字节码。这意味着Grumpy没有VM。编译的Go源代码是对Grumpy运行时的一系列调用,Go库服务与PythonCAPI类似的目的(尽管不直接支持CAPI)。

18Java编译器Traceur

Traceur是一个来自Google的Java编译器,通过它可以体验一些很新并且有趣的Java语言特性,这些多数是还没有被当前浏览器实现的ECMA标准或草案,比如:数组比较、类、模块、迭代器、方法参数默认值、Promise等。

19媒体播放器ExoPlayer

ExoPlayer是Android上一个应用级的媒体播放器。它为AndroidMediaPlayer的API在播放本地或在线的视频与音频上提供了一个候选。ExoPlayer支持一些AndroidMediaPlayerAPI无法提供的特性,包括DASH和SmoothStreaming自适应回放,持久的高速缓存和自定义渲染器。不像MediaPlayerAPI,EXOPlayer很容易定制和扩展,而且它可以通过PlayStore更新升级。

20代码构建工具Bazel

21创作艺术和谱写曲子的机器智能magenta

GoogleBrain团队的一组研究人员发布了一个项目ProjectMagenta,其主要目标是利用机器学习创作艺术和谱写曲子。ProjectMagenta使用了TensorFlow系统,研究人员在GitHub上开源了他们的模型和工具。

22自动生成命令行界面的内容库PythonFire

PythonFire是Google开源的一个可从任何Python代码自动生成命令行接口(CLI)的库。PythonFire是一种在Python中创建CLI的简单方法;是开发和调试Python代码的有用工具;能够使Bash和Python之间的转换更为容易;并且通过使用你需要导入和创建的模块和变量来设置REPL,使得使用PythonREPL更容易。

23软硬件框架AnyPixel.js

AnyPixel.js是Google开源的一个软件和硬件框架,可以用来构建各种由“像素”构成的展示,每个像素可以是任何一种可交互的实体对象,如LED灯、气球等。

24物联网工具PhysicalWeb

PhysicalWeb是由Chrome团队主导的一个项目,意在用URL连接世界,方便用户接受数据。在Web世界中,各种URL可以说是链接的基础,也是去中心化的,所以“ThePhysicalWeb”要做的就是让每个智能设备用URL来标识自己,然后用户按照自己的需要通过URL和设备进行交互。这样一来,你使用智能设备的体验就和在网站上使用各种超链接差不多了。

25Docker容器性能分析工具cAdvisorc

26C++单元测试工具

Google的开源C++单元测试框架GoogleTest,简称gtest是一个非常的不错单元测试框架。支持跨平台以及包括WindowsCE和Symbian在内的一些手机操作系统。

27IndexedDB关系查询引擎lovefield

lovefield是建立在IndexedDB上的关系查询引擎。它提供了类似SQL的语法,并且可以跨浏览器工作(目前支持Chrome37及以上版本,Firefox31及以上版本,IE10及以上版本)。

28Java生成器源代码集合Auto

Auto是Java生成器源代码集合,Java有许多机械、重复、未经测试的代码,而且有时会出现一些微妙的Bug。Auto项目是自动执行这些类型的任务的代码生成器的集合,他们可以无Bug创建你要编写的代码。

29Python代码格式化的工具

YAPF是Google开发的一个用来格式化Python代码的工具。

30基于TensorFlow的神经网络库Sonnet

31无损压缩算法Brotli

Brotli是一个通用目的的无损压缩算法,它通过用变种的LZ77算法,Huffman编码和二阶文本建模进行数据压缩,是一种压缩比很高的压缩方法。在压缩速度上跟Deflate差不多,但是提供了更密集的压缩。

32负载均衡系统Seesaw

Seesaw是Google开源的一个基于Linux的负载均衡系统。Seesaw包含基本的负载均衡特性,同时支持一些高级的功能,诸如:anycast,DirectServerReturn(DSR),支持多个VLANs和集中式配置。同时其设计的宗旨是易于维护。

33Gumbo

Gumbo是Google的一款用C语言实现的HTML5解析库,无需任何外部依赖。

34GXUI

GXUI是Google出品的一个跨平台GO语言的UI框架。

35iOSUI测试自动化框架EarlGrey

36Blockly

Blockly是一个基于Web的可视化编程工具,只需要拖动几个图形就可以编程,完全不需要打字.根据项目FAQ介绍,这个新语言的主要目的是为web应用提供宏(或脚本编程)的支持.可以把生成的脚本输出成java,python等.已经有几个利用Blockly的demo。

37go-github

go-github是Google对Github的开放API进行Go语言封装的一个项目。

38抓取bug工具error-prone

39ROS系统支持的SLAM库Cartographer

Cartographer,是Google开源的一个ROS系统支持的2D和3DSLAM(simultaneouslocalizationandmapping)库。SLAM算法结合来自多个传感器(比如,LIDAR、IMU和摄像头)的数据,同步计算传感器的位置并绘制传感器周围的环境。在产业界和学术界常见的传感器配置上,Cartographer能实时建立全局一致的地图。

40安卓电量分析工具BatteryHistorian

41通用编码器&解码器框架seq2seq

seq2seq是Google开源的一款用于TensorFlow的通用编码器&解码器框架(encoder-decoderframework),可用于机器翻译、文本摘要、会话建模、图像描述等。

42Web应用TracingFramework

TracingFramework是一套库、工具,用于跟踪和调查复杂的Web应用。它就可以帮你发现代码的性能问题,并且帮你打造十分流畅的60FPSWeb应用。它目前只能用于特定的应用场合,并不是为应用于所有场景而设计,如果你在使用过程中遇到了问题,请呈递你的Bug。

43深度概率编程语言Edward

Edward是一个用于概率建模、推理和评估的Python库。它是一个用于快速实验和研究概率模型的测试平台,其涵盖的模型范围从在小数据集上的经典层次模型到在大数据集上的复杂深度概率模型。Edward融合了以下三个领域:贝叶斯统计学和机器学习、深度学习、概率编程。

44Java库ClosureLibrary

ClosureLibrary是一个强大的Java库,用于复杂的大规模的Web应用。它被许多GoogleWeb应用使用,比如Gmail和GoogleDocs。

45大型微服务系统管理工具Istio

Istio是一个由谷歌、IBM与Lyft共同开发的开源项目,旨在提供一种统一化的微服务连接、安全保障、管理与监控方式。Istio项目能够为微服务架构提供流量管理机制,同时亦为其它增值功能(包括安全性、监控、路由、连接管理与策略等)创造了基础。这款软件利用久经考验的LyftEnvoy代理进行构建,可在无需对应用程序代码作出任何发动的前提下实现可视性与控制能力。

46远程现场取证系统GRR

GRR是Google开发的远程现场事件取证系统。GRR由一个代理(客户端)和服务器端组成,客户端可以部署在一个任务系统中,服务器可以管理客户端,跟客户端进行交互。

47Android的悬浮操作栏Hover

Hover是一个用于Android的悬浮操作栏。该菜单栏可以作为一个service启动,从而跨进程使用,悬浮在桌面或者其他应用程序的前面,当然,这里需要申请权限。Hover仍处在开发阶段,还有很多代码清理工作需要做,也就是说,Hover现在仅仅处于可用状态。

48模块化深度学习系统Tensor2Tensor

Tensor2Tensor是一个模块化和可扩展的库和二进制文件,能够帮助人们为各种机器学习程序创建最先进的模型,可应用于多个领域,如翻译、语法分析、图像信息描述等,大大提高了研究和开发的速度。

49Google模糊测试服务OSS-Fuzz

OSS-Fuzz能够针对开源软件进行持续的模糊测试,它的目的是利用更新的模糊测试技术与可拓展的分布式执行相结合,提高一般软件基础架构的安全性与稳定性。OSS-Fuzz结合了多种模糊测试技术/漏洞捕捉技术(即原来的libfuzzer)与清洗技术(即原来的AddressSanitizer),并且通过ClusterFuzz为大规模可分布式执行提供了测试环境。

50优化搜索工具or-tools

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

51加密库安全测试套件Wycheproof

Wycheproof是谷歌开源的加密库测试项目,它包含一系列安全测试,用来检测加密库(cryptographiclibraries)软件是否存在已知的攻击漏洞。

52CommonLispKoans

CommonLispKoans(lisp-koans)是一个语言学习练习程序,类似rubykoans,pythonkoans等等。CommonLispKoans主要是帮助学习一些lisp规范特性和改进,可以学习到大量的CommonLisp语言特性。

533D图形开源压缩库Draco

Draco是一种库,用于压缩和解压缩3D几何网格(geometricmesh)和点云(pointcloud)。换句话说,它显著缩小了3D图形文件的大小,同时对3D图形的观看者来说又根本不严重影响视觉效果。它还旨在改善3D图形的压缩和传输。Draco是作为C++源代码发布的,可以用来压缩3D图形,另外还发布了处理编码数据的C++和Java解码器。

54Java库ShakaPlayer

ShakaPlayer它实现了DASH客户端的功能。它的播放功能基于HTML5video、MediaSourceExtensions,和EncryptedMediaExtensions。一般的DASH客户端功能很难实现。

55TensorFlow深度学习库Fold

TensorFlowFold是用于创建使用结构化数据的TensorFlow模型库,其中计算图的结构取决于输入数据的结构。TensorFlowFold使得处理不同数据尺寸和结构的深度学习模型更容易实现。

56Google地球企业版EarthEnterprise

EarthEnterprise是GoogleEarthEnterprise的开源版本,是一个提供构建和托管自定义3D地球模型和2D地图的地理空间应用,旨在让社区继续改进和推进该项目。

57图像差异比较库Butteraugli

58Go语言实现的网络协协议栈Netstack

Netstack,使用Go语言编写的网络协议栈。通过安装tun_tcp_echodemo尝试在Linux上使用。

59钢琴二重奏AIaiexperiments-ai-duet

“钢琴二重奏”的A.I.Duet。该项目会在你弹出了几个音符之后,通过AI自动计算来帮你“补完”旋律的重奏部分。A.I.Duet运用了人工智能技术,通晓音符的“编码规则”。

60端到端加密系统E2EMail

E2EMail是一个实验性质的端到端加密系统。E2EMail由Google开发,内置Java内部开发的Java加密库。它提供了一种通过Chrome扩展程序将OpenPGP集成到Gmail中的方法。消息的明文单独保留在客户端上。

THE END
1.盘点那些学习c++的好网页免费的编程查询网站如oiwiki盘点那些学习c++的好网页 本文介绍了六个不同的技术社区,包括CSDN(面向开发者的资源)、牛客网(求职者必备的题库与面试平台)、打字练习网站、OIWiki(百科全书)、黑客工具以及JOYSKID(竞赛训练OJ)。这些平台覆盖了编程学习、求职准备和技能提升的不同方面。https://blog.csdn.net/BK321/article/details/132445587
2.有无推荐C++初学者的网站?传送门:在线编程_编程学习|练习题_C++|系统设计题库 其实除了上面这些,对于学习 C++ 的网站,我们国内https://www.zhihu.com/question/521012343/answer/2946260084
3.C++算法学习之贪心算法的应用C语言上述数字的第一次删除就应该删除数字8. 以上就是C++算法学习之贪心算法的应用的详细内容,更多关于C++贪心算法的资料请关注脚本之家其它相关文章! 您可能感兴趣的文章: C语言算法练习之抓交通肇事犯 C++学习之多态的使用详解 C++算法学习之回溯法的应用 C/C++后端学习与练习深入微信https://www.jb51.net/article/249292.htm
4.《C++STL数据结构与算法实现》全册课后习题参考答案.pdf二、上机练习题 1.NSP::a 2.using namespace NSP; 概念理解题: 1 泛型编程:编写一般化并可重复使用的算法,C++通过使用模板template技术 来实现 2 函数模板:函数的模子,不指定特定的数据结构或对象类型,可用于生成若干 逻辑相同,功能类似、参数类型和返回类型不同的函数。 使用templateclass T或templatetypename Thttps://m.book118.com/html/2022/0716/6151242051004212.shtm
5.中学生C++创意编程本书采用单元和课的形式,通过30个寓教于乐且贴近中学生学习和生活,符合中学生认知的编程案例,帮助学生学习和掌握C++的编程思维和方法。 本书利用流程图厘清编程思路,进而剖析解决问题必须的C++知识,包括常量、变量、顺序结构、选择结构、循环结构、数组、函数、文件操作、算法等。在此过程中,学生可以通过探索体会到编程https://www.epubit.com/bookDetails?id=UB7da3ec87a344a
6.学习C++冒泡排序小习题腾讯云开发者社区学习|C++冒泡排序小习题 前言 最近也是自己在学习数据结构和算法,个人觉得学习最好的方法就是输出倒逼输入,所以这段时间文章可能也会以一些算法的习题为主吧,主要现在也没有什么存货文章了。 这篇主要是因为在五一长假中,同事的亲戚一个大学的考试题给了我,然后看了一下有点小意思,就把他做了,顺便分享一下。https://cloud.tencent.com/developer/article/1628149?areaSource=102001.2&traceId=D8Gk7xB0C2OHpsZdAd9ne
7.清华大学出版社图书详情1.6 C++和面向对象程序设计 20 1.7 标准模板库 20 1.7.1 容器 21 1.7.2 迭代器 21 1.7.3 算法 21 1.7.4 函数对象 22 1.8 标准模板库中的向量 24 1.9 数据结构与面向对象编程 29 1.10 案例分析:随机访问文件 30 1.11 习题 38 1.12 编程练习 40 参考书目 42 第2章 复杂度分析 43 2.1 计算复杂度以及http://www.tup.tsinghua.edu.cn/booksCenter/book_05725003.html
8.书籍资源包括C/C++JavaPythonGo语言数据结构与算法超过1000本的计算机经典书籍、个人笔记资料以及本人在各平台发表文章中所涉及的资源等。书籍资源包括C/C++、Java、Python、Go语言、数据结构与算法、操作系统、后端架构、计算机系统知识、数据库、计算机网络、设计模式、前端、汇编以及校招社招各种面经~ - wantdeehttps://github.com/wantdeeptester/CS-Books
9.支持C++,Java,Python,Go,JavaScript等多语言版本,从此算法学习如果你是算法老手,这篇攻略也是复习的最佳资料,如果把每个系列对应的总结篇,快速过一遍,整个算法知识体系以及各种解法就重现脑海了。 这里每一篇题解,都是精品,值得仔细琢磨。 我在题目讲解中统一使用C++,但你会发现下面几乎每篇题解都配有其他语言版本,Java、Python、Go、JavaScript等等,正是这些热心小伙们贡献的代码https://portrait.gitee.com/programmercarl/leetcode-master
10.算法竞赛入门经典第二章上机练习(C++代码)1.曲待续算法竞赛入门经典 第二章 上机练习(C++代码) //习题2-1 位数(digit) //输入一个不超过10^9的正整数,输出它的位数。例如12735的位数是5. #include<iostream> using namespace std; int main() { int n,i=0; cin>>n; for(;n>0;) { n=n/10;https://www.cnblogs.com/wwj9413/archive/2012/03/27/2638621.html
11.算法(algorithm)CS入门技能树测评和使用体验3、算法选择题里的代码单一 选择题里只提供C++代码的选项,但是也有很多其他同学只会Java、Python、JS等其他语言,并没有接触过C/C++,所以这些选项里的代码可能理解比较吃力。所以建议能在算法练习题里自己选择语言展示选项。 4、知识技能学习规划 学生都渴望能有一个明确的目标,例如C++工程师、Java工程师、算法工程师https://www.jianshu.com/p/90d7d34fd70b
12.算法第四版高清中文版pdf第4版具体给出了每位程序员应知应会的50个算法,提供了实际代码,而且这些Java代码实现采用了模块化的编程风格,读者可以方便地加以改造。本书配套网站提供了本书内容的摘要及更多的代码实现、测试数据、练习、教学课件等资源。 算法 中文版 2018-11-03 上传 大小:85.00MB https://www.iteye.com/resource/xtldwdfd-10762097
13.算法学习笔记1语法(C++组)51CTO博客包含printf();和scanf();c++中printf、scanf比cout、cin效率高很多算法题里cin、cout可能超时,虽然可以优化,但是优化之后还是比不上scanf和printf。第一章 算法入门及简单的顺序结构 编程是一种控制计算机的方式,和我们平时双击打开文件、关机、重启没有任何区别。 1.变量的定义 变量必须先定义,才可以使用。不能重名https://blog.51cto.com/15127589/2799861
14.送你一个励志故事——涵盖20多所互联网公司的校招C++面经2. C++研发高频笔/面试题目 笔试: 笔试这一块想不到特别好说的,很多时候只是公司筛选人的第一步,分数高低代表意义不大(尤其是大公司,现身说法,我的腾讯笔试真的是呵呵哒),当然笔试是一个门槛,不过后面很可能就不用谈了。我笔试经验也不足,感觉笔试考察最重点的就是算法的熟悉程度,代码能力,我笔试成绩通常不太https://www.nowcoder.com/discuss/55353
15.50个c/c++源代码网站16、http://www.cplusplus.com/src/--C++写的通用控制台程序和Windows程序代码清单。 17、http://users.cs.fiu.edu/~weiss/dsaa_c++/code/--C++语言数据结构与算法分析(第二版)的源代码。 18、http://c.snippets.org/--C源代码片段。 19、http://www.bbdsoft.com/downloads.html--C++源代码。 https://www.bilibili.com/read/cv13113516/