Skip to main content

List of Google's 60 open source projects

 

List of Google's 60 open source projects

 



1. Machine learning system TensorFlow

details: https://github.com/tensorflow/tensorflow

 2. Material-design-icons

details: http://google.github.io/material-design-icons/

 3. Front-end development tool group MDL

details: https://github.com/google/material-design-lite

 4. Web front-end framework Angular

details: https://github.com/angular/angular

 5. Container cluster management system Kubernetes

details: https:// github.com/kubernetes/kubernetes

 6. Data description language protobuf

details: https://github.com/google/protobuf

 7. Java common library Guava

details: https://github.com/google/guava

 8. Spark

installation method Https://github.com/dart-lang/spark/tree/master/ide

 9. RPC framework GRPC

details: https://github.com/grpc/grpc

 10. High-quality compressed image algorithm tool Guetzli

Details: https://github.com/google/guetzli

 11.k/v Database Leveldb

details: https://github.com/google/leveldb

 12. Automatic network review tool Lighthouse

details: https://github.com/ GoogleChrome/lighthouse

 13. Gson

details: https://github.com/google/gson

 14. Minimum system loading tool systemjs

details: https://github.com/systemjs/systemjs

 15. Serialization library FlatBuffers

details: https:/ /github.com/google/flatbuffers

 16.Xi text editor Xi Editor

details: https://github.com/google/xi-editor

 17. Grumpy

details: https://github.com/google/grumpy

 18.Java Compiler Traceur

details: https://github.com/google/traceur-compiler

 19. Media player ExoPlayer

details: https://github.com/google/ExoPlayer

 20. Code construction tool Bazel

Details: https://github.com/bazelbuild/bazel

 21. magenta

Details of magenta, a machine intelligence for creating art and composing music : https://github.com/tensorflow/magenta

 22. Python Fire

Details of Python Fire, a content library that automatically generates a command line interface : https://github.com/google/python-fire

 23. Software and hardware framework AnyPixel.js

details: https://github.com/googlecreativelab/anypixel

 24. Internet of Things tools Physical Web

details: https://github.com /google/physical-web

 25. Docker container performance analysis tool cAdvisorc

details: https://github.com/google/cadvisor

 26. C++ unit test tool

details: https://github.com/google/googletest

 27. IndexedDB Relationship Query engine lovefield

details: https://github.com/google/lovefield

 28. Java generator source code collection Auto

details: https://github.com/google/auto

 29. Python code formatting tools

details: https: //github.com/google/yapf

 30. TensorFlow-based neural network library Sonnet

details: https://github.com/deepmind/sonnet

 31. Lossless compression algorithm Brotli

details: https://github.com/google/brotli

 32. Load balancing system Seesaw

details: https ://github.com/google/seesaw

 33.Gumbo

details: https://github.com/google/gumbo-parser

 34.GXUI

details: https://github.com/google/gxui

 35. iOS UI test automation Framework EarlGrey

details: https://github.com/google/EarlGrey

 36. Blockly

details: https://github.com/google/blockly

 37.go-github

details: https://github.com/google/go- github

 38. error-prone, a bug crawling tool

Details of error-prone, a bug crawling tool : https://github.com/google/error-prone

 39.Cartographer, a SLAM library supported

Details of Cartographer, a SLAM library supported by the ROS system : https://github.com/googlecartographer/cartographer

 40.Battery Historian, an Android power analysis tool

Details of Battery Historian, an Android power analysis tool : https://github.com/google/battery-historian

 41. seq2seq, a universal encoder & decoder framework

Details of seq2seq, a universal encoder & decoder framework : https://github.com/google/seq2seq

 42. Web applications Tracing Framework

details: https://github.com/google/tracing-framework

 43. In-depth probabilistic programming language Edward

details: https://github.com/blei-lab/edward

 44. Java library Closure Library

details: https:/ /github.com/google/closure-library

 45. Istio, a large-scale microservice system management tool

Details of Istio, a large-scale microservice system management tool : https://github.com/istio/istio

 46. GRR, a remote on-site forensics system

Details of GRR, a remote on-site forensics system : https://github.com/google /grr 

  47. Android's floating operation bar Hover

details: https://github.com/google/hover

 48. Modular deep learning system Tensor2Tensor

details: https://github.com/tensorflow/tensor2tensor)

 49. Google Fuzzing Service OSS-Fuzz

Details: https://github.com/google/oss-fuzz

 50. Optimization search tool or-tools

details: https://github.com/google/or-tools

 51. Encryption library security test suite Wycheproof

details: https: //github.com/google/wycheproof

 52.Common Lisp Koans

details: https://github.com/google/lisp-koans

 53.3D Graphics open source compression library Draco

details: https://github.com/google/draco

54 . Java library Shaka Player

details: https://github.com/google/shaka-player

 55. TensorFlow deep learning library Fold

details: https://github.com/tensorflow/fold

 56. Google Earth Enterprise Edition Earth Enterprise

details: https://github.com/google/earthenterprise

 57. image difference comparison library Butteraugli

Details of image difference comparison library Butteraugli : https://github.com/google/butteraugli 

58.  network protocol stack Netstack

Details of network protocol stack Netstack implemented in Go language

: https://github. com/google/netstack

 59. Piano Duo AI aiexperiments-ai-duet

details: https://github.com/googlecreativelab/aiexperiments-ai-duet

 60. End-to-end encryption system E2EMail

details: https://github.com/e2email-org/e2email


1. Machine learning system TensorFlow

TensorFlow is Google's second-generation machine learning system. According to Google, TensorFlow performs 2 times faster than the first-generation DistBelief in some benchmark tests. TensorFlow has built-in deep learning extension support, and any calculation that can be expressed with computational flow graphs can use TensorFlow. Any gradient-based machine learning algorithm can benefit from TensorFlow's auto-differentiation. Through the flexible Python interface, it will be easy to express ideas in TensorFlow.

 2.material-design-icons

Google has open sourced 750 glyphs in the Material Design system icon pack. The system icons include commonly used icons, such as those used for media playback, communication, content editing, connection, and so on. In web applications, both Android and iOS designs are applicable.

 3. Front-end development tool group MDL

MDL (Material Design Lite) is a website front-end development tool set launched by Google. Material Design Lite (MDL) allows you to add a Material Design look and feel to your static content website without relying on any Java frameworks and libraries. MDL can optimize the cross-device user experience, and can smoothly switch in the old version of the browser, providing a very fast access experience.

 4. Web front-end framework Angular

Angular is a very popular and easy-to-use web front-end framework, currently maintained by Google. Officially, Angular 2 and the previous version Angular.js have been maintained separately (the GitHub address and project home page of the two are different). Progressive web applications, with the help of modern web platforms, deliver app-style experiences. High performance, offline, zero installation.

 5. Container cluster management system Kubernetes

Kubernetes is an open source container cluster management system from Google Cloud Platform. Build a container scheduling service based on Docker. The system can automatically select a working container for use in a container cluster. The core concept is Container Pod.

 6. Data description language protobuf

Protocol Buffers (ProtocolBuffer/protobuf) is a data description language developed by Google, similar to XML, which can serialize structured data and can be used for data storage, communication protocols, etc. At this stage, three programming languages ​​such as C++, JAVA, and Python are supported. Compared with XML, Protocol buffers have many advantages in serializing structured data.

 7. Java Common Libraries Guava

This project is an open source project of Google, which contains many Google core Java common libraries.

 8.Spark 

Spark is a Chrome browser-based development environment launched by Google. Provide a set of reusable UI components. Developed using Dart.

 9. RPC framework GRPC

GRPC is a high-performance, open source and general-purpose RPC framework designed for mobile and HTTP/2. Currently, C, Java and Go language versions are provided, respectively: grpc, grpc-java, grpc-go. The C version supports C, C++, Node.js, Python, Ruby, Objective-C, PHP and C#. GRPC is based on The HTTP/2 standard design brings features such as bidirectional streaming, flow control, header compression, multiple multiplexing requests on a single TCP connection, etc. These features make it perform better on mobile devices, save power and save space.

 10. Guetzli

Guetzli, a high-quality compressed image algorithm tool , is a JPEG encoder for digital images and web images. It can produce a smaller JPEG file to achieve a faster online experience, and at the same time keep the current browser, image processing Compatibility of the application and the JPEG standard. Google claims that Guetzli creates high-quality JPEG image files that are 35% smaller than current compression methods. The picture above is a 16x16 pixel sample, which is a phone line hung under the blue sky. The distortion situation often encountered in traditional JPEG algorithms. On the left is the uncompressed original image, in the middle is the smaller libjpeg, and on the right is the Guetzli with less distortion.

 11.k/v database Leveldb

Leveldb is a very efficient kv database implemented by Google. The current version 1.2 can support billions of data. There is still a very high performance at this level, mainly due to its good design. Especially the LSM algorithm.

 12. The automated web review tool Lighthouse

Lighthouse is an open source automated tool used to improve the quality of web applications. It can be run as a Chrome extension or from the command line. When you provide Lighthouse with a URL to review, it will run a series of tests on this page, and then generate a report on the page's performance. You can refer to the failed test to see what measures can be taken to improve the application.

 13.Gson

Gson is a Java class library provided by Google for mapping between Java objects and JSON data. You can convert a JSON string into a Java object, or vice versa.

 14. Minimal system loading tool systemjs

systemjs is a minimal system loading tool used to create plug-ins to handle alternative scene loading processes, including loading CSS scenes and pictures, mainly running in browsers and NodeJS. It is an extension of the ES6 browser loader and will be used in the local browser. Usually the name of the created plug-in is the module itself. If there is no specific purpose, the default plug-in name is the extension name of the module.

 15. Serialization library FlatBuffers

FlatBuffers is a Java serialization library for games and other memory-constrained applications. FlatBuffers allows you to directly access the serialized data without the need to decompress and parse it. Provides strong forward and backward compatibility at the same time. FlatBuffers supports C++ and Java languages ​​without relying on third-party library support.

 16.Xi text editor Xi Editor

Xi Editor is Google's open source text editor written in Rust language. It was originally built for Mac OS X, using Cocoa as the user interface, and there are plans to adapt to other platforms. All editing operations can be submitted and processed within 16ms. Text drawing uses the best technology (such as Core Text on Mac, DirectWrite on Windows, etc.), and fully supports Unicode.

17. Grumpy 

Grumpy is a Python to Go source code translation compiler and runtime, designed to replace CPython 2.7. The key difference is that it compiles Python source code into Go source code, and then compiles it into native code instead of bytecode. This means that Grumpy does not have a VM. The compiled Go source code is a series of calls to the Grumpy runtime. The Go library serves a similar purpose to the Python C API (although it does not directly support the C API).

 

 

18.Java compiler Traceur 

Traceur is a Java compiler from Google, through which you can experience some very new and interesting Java language features, most of which are ECMA standards or drafts that have not been implemented by current browsers, such as: array comparison , Classes, modules, iterators, method parameter default values, Promises, etc.

 19. Media player ExoPlayer

ExoPlayer is an application-level media player on Android. It provides a candidate for the Android MediaPlayer API to play local or online video and audio. ExoPlayer supports some features that the Android MediaPlayer API cannot provide, including DASH and SmoothStreaming adaptive playback, persistent cache and custom renderers. Unlike the MediaPlayer API, EXOPlayer is easy to customize and extend, and it can be updated through the Play Store.

 20. Code construction tool Bazel

Bazel is a renewable code construction tool from Google. It is mainly used to build Google's software to deal with the construction problems that appear in Google's development environment, such as: large-scale data construction problems, shared code base problems, and related problems of software built from source code. It supports multiple languages ​​and cross-platforms, and also supports automated testing and deployment, with features such as reproducibility and scale.

 21. Machine intelligence magenta for creating art and composing music

A group of researchers from the Google Brain team released a project Project Magenta whose main goal is to use machine learning to create art and compose music. Project Magenta uses the TensorFlow system, and researchers open source their models and tools on GitHub.

 22. Automatically generate content library Python Fire for command line interface

Python Fire is a Google open source library that can automatically generate a command line interface (CLI) from any Python code. Python Fire is a simple way to create CLI in Python; it is a useful tool for developing and debugging Python code; it can make the conversion between Bash and Python easier; and by using the modules and variables you need to import and create Setting up the REPL makes it easier to use the Python REPL. 

23. Software and hardware framework AnyPixel.js

 AnyPixel.js is a software and hardware framework open sourced by Google. It can be used to construct various displays composed of "pixels". Each pixel can be any kind of interactive entity object, such as LED lights, balloons, etc.

 24. The Internet of Things tool Physical Web

Physical Web is a project led by the Chrome team. It is intended to connect the world with URLs to facilitate users to receive data. In the web world, various URLs can be said to be the basis of links and are also decentralized, so what "The Physical Web" has to do is to let each smart device use URL to identify itself, and then users can pass the URL according to their needs Interact with the device. In this way, your smart device experience is similar to using various hyperlinks on a website.

 25. Docker container performance analysis tool cAdvisorc

Advisor is a tool used by Google to analyze the resource usage and performance characteristics of running Docker containers. cAdvisor is a running daemon process used to collect, aggregate, process and export information related to running containers. Each container maintains independent parameters, historical resource usage, and complete resource usage data. Currently supports lmctfy container and Docker container. 

26. C++ unit test tool

Google's open source C++ unit testing framework Google Test, referred to as gtest, is a very good unit testing framework. It supports cross-platform and some mobile operating systems including Windows CE and Symbian. 

27. IndexedDB relational query engine lovefield

lovefield is a relational query engine built on IndexedDB. It provides SQL-like syntax and can work across browsers (currently supports Chrome 37 and above, Firefox 31 and above, IE 10 and above).

 

28. Java generator source code collection Auto

Auto is a Java generator source code collection. Java has a lot of mechanical, repetitive, untested code, and some subtle bugs sometimes appear. The Auto project is a collection of code generators that automatically perform these types of tasks. They can create the code you want to write without bugs.

 29. Python code formatting tool

YAPF is a tool developed by Google to format Python code.

 30. Sonnet, a neural network library based on TensorFlow 

Sonnet library uses an object-oriented approach, allowing the creation of modules that define some forward conduction calculations. The module is called with some input Tensor, adds operations to the graph and returns the output Tensor. One design choice is to ensure that variable sharing is handled transparently by automatically reusing variables when the same module is subsequently called. The library is compatible with Linux/Mac OS X and Python 2.7. The version of TensorFlow must be at least 1.0.1. Sonnet supports TensorFlow's virtualenv installation mode and nativ pip installation. 

31. Lossless compression algorithm Brotli

Brotli is a general purpose lossless compression algorithm. It compresses data by using a variant of the LZ77 algorithm, Huffman coding and second-order text modeling. It is a compression method with a high compression ratio. The compression speed is similar to Deflate, but it provides denser compression. 

32. Load balancing system Seesaw

Seesaw is a Linux-based load balancing system open sourced by Google. Seesaw includes basic load balancing features, while supporting some advanced features, such as anycast, Direct Server Return (DSR), support for multiple VLANs and centralized configuration. At the same time, it is designed to be easy to maintain. 

33. Gumbo

 Gumbo is a Google HTML5 parsing library implemented in C language without any external dependencies.  

34. GXUI

GXUI is a cross-platform GO language UI framework produced by Google.

 35. The iOS UI test automation framework EarlGrey

complies with the EarlGrey authorized by the open-source Apache and is written by Objective-C. Google does use it to test its own iOS apps. EarlGrey can support and simulate devices dating back to iOS 8. For detailed documentation about the tool, please click here. In addition to EarlGrey, other iOS UI test automation frameworks include Calabash and Sauce Labs' Appium. 

36.Blockly

Blockly is a web-based visual programming tool that can be programmed by dragging a few graphics without typing. According to the project FAQ, the main purpose of this new language is to provide macro (or script programming) support for web applications You can output the generated script into java, python, etc. There are already several demos using Blockly.

37.go-github

go-github is a project that Google encapsulates the open API of Github in the Go language. 

38. Crawl bug tool error-prone

error-prone is used to capture errors during Java compilation. Usually the compiler can only do static type checking. However, using this tool can perform type analysis of the compiler, detect and capture bugs in the compilation process, which can greatly save developers' time. 

39. The SLAM library Cartographer

supported by the ROS system Cartographer is a 2D and 3D SLAM (simultaneous localization and mapping) library supported by the ROS system open sourced by Google. The SLAM algorithm combines data from multiple sensors (for example, LIDAR, IMU, and camera) to synchronously calculate the position of the sensor and map the environment around the sensor. In the sensor configuration common in industry and academia, Cartographer can build a globally consistent map in real time. 

40. Android battery analysis tool Battery Historian

Battery Historian is a tool that analyzes the Android "bugreport" process file to count the power consumption. It allows application developers to visualize system and application-level events on the timeline, with pan and zoom functions, and can easily view various summary statistics after the device is fully charged, and can select applications to check the impact of application specific The indicator of the battery. It also allows A/B comparison of two error reports, highlighting differences in key battery-related indicators. 

41. Universal encoder & decoder framework seq2seq

seq2seq is a universal encoder & decoder framework for TensorFlow open sourced by Google (encoder-decoder framework), which can be used for machine translation, text summarization, session modeling, image description, etc. 

42. Web Application Tracing Framework

Tracing Framework is a set of libraries and tools for tracking and investigating complex Web applications. It can help you find performance problems in your code and help you build a very smooth 60 FPS web application. It can only be used in specific applications at present, and is not designed to be used in all scenarios. If you encounter problems during use, please submit your bug.

 43. The deep probabilistic programming language Edward

Edward is a Python library for probabilistic modeling, inference, and evaluation. It is a test platform for rapid experimentation and research on probability models. It covers models ranging from classic hierarchical models on small data sets to complex deep probability models on large data sets. Edward combines the following three fields: Bayesian statistics and machine learning, deep learning, and probabilistic programming. 

44. Java library Closure Library

Closure Library is a powerful Java library for complex and large-scale Web applications. It is used by many Google Web applications, such as Gmail and Google Docs.

 45. Istio, a large-scale microservice system management tool 

Istio is an open source project jointly developed by Google, IBM and Lyft. It aims to provide a unified microservice connection, security assurance, management and monitoring method. The Istio project can provide a flow management mechanism for the microservice architecture, while also creating a foundation for other value-added functions (including security, monitoring, routing, connection management and policies, etc.). This software is built using the proven Lyft Envoy generation {over}{filtering} theory to achieve visibility and control without any activation of the application code.

 46. ​​Remote on-site forensics system GRR

GRR is a remote on-site event forensics system developed by Google. GRR is composed of a proxy (client) and a server. The client can be deployed in a task system, and the server can manage the client and interact with the client.

 47. Hover

Hover is a floating action bar for Android. The menu bar can be started as a service, so that it can be used across processes, hovering in front of the desktop or other applications. Of course, you need to apply for permission here. Hover is still in the development stage, and there is still a lot of code cleanup work to be done, that is, Hover is only in a usable state now.

 48. Modular deep learning system Tensor2Tensor

Tensor2Tensor is a modular and extensible library and binary file that can help people create the most advanced models for various machine learning programs, which can be applied to many fields, such as translation, syntax analysis, Image information description, etc., greatly improve the speed of research and development.

 49. Google Fuzzing Service OSS-Fuzz

OSS-Fuzz can carry out continuous fuzzing for open source software. Its purpose is to use updated fuzzing technology combined with scalable distributed execution to improve the security and stability of general software infrastructure. OSS-Fuzz combines a variety of fuzzing technology/vulnerability capture technology (the original libfuzzer) and cleaning technology (the original AddressSanitizer), and provides a test environment for large-scale distributed execution through ClusterFuzz.

 50. Optimized search tool or-tools

or-tools is Google’s optimized search tool. Google optimization tools include: constraint programming solutions; providing simple and unified interfaces for linear programming and mixed integer programming solutions, including CBC, CLP, GLOP, GLPK, Gurobi, SCIP, and Sulum; knapsack algorithm; graph algorithm (shortest path, Linear sum distribution, minimum cost flow, maximum flow).

 51. Encryption library security test suite Wycheproof

Wycheproof is Google's open source encryption library test project. It contains a series of security tests to detect whether there are known attack vulnerabilities in cryptographic library software.

 52. Common Lisp Koans 

Common Lisp Koans (lisp-koans) is a language learning practice program, similar to ruby ​​koans, python koans and so on. Common Lisp Koans is mainly to help learn some lisp specification features and improvements, you can learn a lot of Common Lisp language features.

 53.3D graphics open source compression library Draco

Draco is a library for compressing and decompressing 3D geometric meshes and point clouds. In other words, it significantly reduces the size of the 3D graphics file, and at the same time does not seriously affect the visual effect for the viewer of the 3D graphics. It also aims to improve the compression and transmission of 3D graphics. Draco is released as C++ source code, which can be used to compress 3D graphics, and C++ and Java decoders for processing encoded data have also been released.

 54. Java library Shaka Player

Shaka Player It realizes the function of DASH client. Its playback function is based on HTML5 video, MediaSource Extensions, and Encrypted Media Extensions. General DASH client functions are difficult to implement.

 55. TensorFlow Deep Learning Library Fold

TensorFlow Fold is used to create a TensorFlow model library using structured data, where the structure of the calculation graph depends on the structure of the input data. TensorFlow Fold makes it easier to implement deep learning models that deal with different data sizes and structures.

 56. Google Earth Enterprise Edition 

Earth Enterprise is the open source version of Google Earth Enterprise. It is a geospatial application that provides the construction and hosting of custom 3D earth models and 2D maps, and aims to allow the community to continue to improve and advance the project.

 57. Image difference comparison library Butteraugli

Butteraugli is used to judge the similarity between two images. By identifying some of the most noticeable differences between images and giving similarity scores. One of the main motivations of this project is the statistics of the location and density of different colors of different receptors, especially blue low-density cones. Another motivation comes from more accurate modeling of ganglion cells, especially the suppression frequency space. Currently the project only provides C++ interface.

 58. Netstack

Netstack, a network protocol stack implemented in Go language, is a network protocol stack written in Go language. Try to use it on Linux by installing tun_tcp_echo demo.

 59. Piano Duet AI aiexperiments-ai-duet

"Piano Duet" AI Duet. After you play a few notes, this project uses AI to automatically calculate to help you “finish” the ensemble part of the melody. AI Duet uses artificial intelligence technology to understand the "coding rules" of musical notes.

60. End-to-end encryption system E2EMail

E2EMail is an experimental end-to-end encryption system. E2EMail is developed by Google, with a built-in Java encryption library developed in-house by Java. It provides a way to integrate OpenPGP into Gmail via a Chrome extension. The plaintext of the message is kept separately on the client.

Comments

Popular posts from this blog

Defination of the essential properties of operating systems

Define the essential properties of the following types of operating sys-tems:  Batch  Interactive  Time sharing  Real time  Network  Parallel  Distributed  Clustered  Handheld ANSWERS: a. Batch processing:-   Jobs with similar needs are batched together and run through the computer as a group by an operator or automatic job sequencer. Performance is increased by attempting to keep CPU and I/O devices busy at all times through buffering, off-line operation, spooling, and multi-programming. Batch is good for executing large jobs that need little interaction; it can be submitted and picked up later. b. Interactive System:-   This system is composed of many short transactions where the results of the next transaction may be unpredictable. Response time needs to be short (seconds) since the user submits and waits for the result. c. Time sharing:-   This systems uses CPU scheduling and multipro-gramming to provide economical interactive use of a system. The CPU switches rapidl

What is a Fair lock in multithreading?

  Photo by  João Jesus  from  Pexels In Java, there is a class ReentrantLock that is used for implementing Fair lock. This class accepts optional parameter fairness.  When fairness is set to true, the RenentrantLock will give access to the longest waiting thread.  The most popular use of Fair lock is in avoiding thread starvation.  Since longest waiting threads are always given priority in case of contention, no thread can starve.  The downside of Fair lock is the low throughput of the program.  Since low priority or slow threads are getting locks multiple times, it leads to slower execution of a program. The only exception to a Fair lock is tryLock() method of ReentrantLock.  This method does not honor the value of the fairness parameter.

How do clustered systems differ from multiprocessor systems? What is required for two machines belonging to a cluster to cooperate to provide a highly available service?

 How do clustered systems differ from multiprocessor systems? What is required for two machines belonging to a cluster to cooperate to provide a highly available service? Answer: Clustered systems are typically constructed by combining multiple computers into a single system to perform a computational task distributed across the cluster. Multiprocessor systems on the other hand could be a single physical entity comprising of multiple CPUs. A clustered system is less tightly coupled than a multiprocessor system. Clustered systems communicate using messages, while processors in a multiprocessor system could communicate using shared memory. In order for two machines to provide a highly available service, the state on the two machines should be replicated and should be consistently updated. When one of the machines fails, the other could then take‐over the functionality of the failed machine. Some computer systems do not provide a privileged mode of operation in hardware. Is it possible t