病みつきエンジニアブログ

機械学習、Python、Scala、JavaScript、などなど

年の瀬なのでGoogle作ったソフトのリポジトリ(github.com/google)まとめてみた!

google (Google)には、いろいろとすごいソフトウェアがあるようだったので、まとめてみました。ぜひとも開発に活かしたいです。

photo by Aray Chen

★の多い順に紹介してみます。ちなみに1つも使ったことがないので、そこは割り引いてください。

Gumbo - A pure-C HTML5 parser.

google/gumbo-parser

Cで書かれたHTML5のためのパーサーです(PythonでいうBeautifulSoup、RubyでいうNokogiriに対応するソフトウェア)。当たり前ですがC言語(C++)で使うことができますが、Pythonバインディングが公式に提供されているようです。Ruby用、JS用、Objective-C用などもあります。

lmctfy - Let Me Contain That For You

google/lmctfy

疎くて自信がないのですが、「コンテナ」的な、VM界隈的な、OS仮想化的なアプリケーションみたいです。lmctfy を試す (1) - TenForwardの日記に詳しいですが、LXCと同じレイヤーに位置するそうです。

Web Tracing Framework

google/tracing-framework

公式サイトもあります。デバッグなどのためWebアプリケーショのトレースをするためのエクステンションです。メソッド呼び出しのタイミングを測れるようで、GC(ガベージコレクション)のタイミングなども測れるようです。JSを使ったリッチなゲーム制作に、とても有用そうです。

Traceur

google/traceur-compiler

次の世代の言語仕様のJS(EcmaScript 6)を、現行の仕様にコンパイルするコンパイラーです。例えば、ES6では、次のような代入が許可されています(参考:JavaScript (ECMAScript) 2013)。

[a, b] = [1, 2];

これを次のような現行仕様にコンパイルします(デモ)。

var $__2;
($__2 = [1, 2], a = $__2[0], b = $__2[1], $__2);

Lisp Koans

google/lisp-koans

神の言語ことLISPRuby Koansの要領でテストケースを通じて学ぶみたい。

iOS WebKit Debug Proxy

google/ios-webkit-debug-proxy

ChromeのDevToolみたいなものを、iOSWebkitデバッグのために使うためのProxy。インスペクター的な

Module Server

google/module-server

効率よく依存関係を解消してJavascriptを提供するためのサーバーの、デモ実装です。JSConf EU: A novel, efficient approach to JavaScript loadingのプレゼンテーションにて、どういった手法なのか説明されています。

LiquidFun

google/liquidfun

公式ページもあります。Box2Dをベースにして作られた、C++で書かれた物理エンジンです。

Hesokuri

google/hesokuri

Gitのリポジトリを、複数のPCに複製したり、バックアップしたり(=同期)するためのソフトウェアです。例えば家のPCと、個人のサーバーがあったとして、サーバーの方に同期したりできるようです。私はよく、家のPCでソフトウェアを書いて、サーバー側にデプロイして、サーバーの方で手直しして、家のPCにpullしたりするのですが、どちらも個人のPCなので、いちいち中央のリポジトリを経由するのはあほらしいです。

scpで同期するみたいなので、global環境でも問題ないはずです。

Web Latency Benchmark

google/latency-benchmark

ブラウザのベンチマークツールです。

Pinject

google/pinject

PythonでDependency Injection(DI)をするためのライブラリです。

Maktaba

google/maktaba

VIM SCRIPT!!!!!!

Vim pluginを書くためのプラグインです。

Kratu

google/kratu

公式ページもあります。構造化されたデータを分析するためのプロダクトです。使いどころがむずかしい感じがしますが、各カラムに重みをつけたスコアでソートしたりできます。

pepper.js

google/pepper.js

Pepper API向けに書かれたCのソースをJavascriptに変換するためのソフトウェアです。このあたりの話は、Google Native Client - Wikipediaに詳しいです。

Patchfield

google/patchfield

Android用のAudio系ライブラリです。シンセや音声エフェクトアプリのように、focusedなアプリケーションを、パッチのように組み合わせるためのライブラリ(?)

Signet

google/signet

Ruby向けのOAuthの実装

namebench 2.0

google/namebench

自分のブラウザ閲覧履歴を使って、一番良いDNSをレコメンドしてくれるらしい。なんかすごい。

devtoolsExtended

google/devtoolsExtended

Devtoolの実験的なエクステンション、という位置づけみたいです。

その他

行列分解の実装とか、音声エフェクトの実装とか、特に「Googleっぽい」ということもなく、20%プロジェクトで作ったものを上げているようですね。