2011年12月12日
■githubを使ってるscalaを一部紹介
この記事はScala Advent Calendar jp 2011 - [PARTAKE]の12日目の記事です。
12/14追記:
xuweiさんからツッコミ&補足をいただきました。クゥエルァラス!
Scalaのライブラリについてごちゃごちゃと適当に説明 - scalaとか・・・
合わせて読んでくださいというか先に読んでください。
最近githubのページを見てる事が多いんですけど、Most Watched Scala Repositories ? GitHubを見てたら結構知らないプロジェクトがあったので簡単なリストにしてみました。僕は、勉強会とかで「○○を知ってる人?」って聞かれたときに知らないけど見栄張って挙手して後ろめたい気持ちになることが多いので、みなさん名前だけでも覚えておくといいかと思います。
- flockdb
- twitterで使っているライブラリで、ソーシャルグラフのデータ(誰が誰をフォローしてるとか誰が誰をブロックしているとか)を扱うのに適しているらしい。
- Kestrel
- メッセージキューを扱うライブラリです。
- Gizzard
- 分散フレームワーク。これもtwitter。githubのページに画像付きで説明があるのでそれ見ると早いです。
- akka
分散処理のためのフレームワーク。分散処理以外にもいろいろあるとのこと。(すみません、全然わかってないです)。JavaのAPIも用意されてるのでJavaからも使えそう。
- scalatra
- RubyのwebフレームワークSinatraからインスパイアされたフレームワーク。Example見るとかなりSinatraっぽい。
- Play 2.0
- フルスタックのwebフレームワーク。READMEには「beta」と書いてあります。playはバージョン1の時はプラグインを入れるとscalaをサポートという形だったのに、2.0は最初からscalaをサポートしているらしいです。
- finagle
- Asynchronous(非同期)でRPCクライアント&サーバーを作れるライブラリ。Asynchronousって単語は最近よく聞く。例として載っているのはHTTP、Thrift。その他HTTP streaming (Comet)、Memcached/Kestrelなどもサポート。
- goose
- HTMLコンテンツを解析して記事を抽出するライブラリ。元々Javaで書いてたっぽく「Regarding the port from JAVA to Scala」ってあるので後で訳したい。
- Snowflake
- またまたtwitterさん。「MysqlからCassandraに移行したんだけど、Cassandraってシーケンスを生成する仕組みが無かった。だからその部分を新しく作った。」って読める。
- scalaz
- Scalaのコアな部分を拡張するライブラリと聞いています。一人Scalaz Advent Calendar - [PARTAKE]面白いです。
- Lift Framework
- フルスタックのwebフレームワーク。MVCじゃなくてView Firstだよってことで独特の考え方したフレームワークでした。
- blueeyes
- Webフレームワーク。ただ「BlueEyes is intended only for creating RESTful web services」。RESTfulなサービスを作るのに特化していてHTML,、CSSやJavaScriptを生成するようなことには向いてない方向性。
- spark
- 「iterative and interactive cluster computing」。HP見たらHadoopとの性能比較グラフが載ってたんで、それに対応しているっぽい。
- spray
- これもRESTfulなweb services作るもの。Akkaの上に作られてるのかな(on top of Akkaをどう訳すかという問題)。
時間が迫ってきたので飛ばします。
- rogue
- MongoDBにアクセスするするためのライブラリ。
Liftの一部という位置づけなのかな。Liftの一部ではない。
- unfiltered
- webフレームワーク。これもRESTfulなサービス作るのに向いていそう。
- sbt-idea
- sbtでcreating IntelliJ IDEA project filesを作る。
- scala-query
- DBアクセス。2日目にありました。
- android-plugin
- Androidのプラグイン。
- Squeryl
- O/Rマッパー。
- querulous
- これもO/Rマッパー。読み方わからない。
- scala_school
- ドキュメント。これを読んでscalaの勉強してねって。
- configgy
- simple config and logging setup for scala
- scala-json
- JSON
パーサー。パースだけじゃないです。Odersky著Programming Scala bookをベースに作ったとか。twitterさん。
- sjson
- これもJSON
パーサー。パースだけじゃないです。
- scalate
- テンプレートエンジン。「JSPみたいなもんだけどScalaのクールさを忘れてないよ!」
- casbah
- Officially supported Scala Driver for MongoDB
- scala-time
- 俺の大好きJodaTimeのScalaラッパー。
- dispatch
- JavaのHttpClient的にどこかのデータを取ってくる時に使いますが、それ以外にもOauthできたりtwitterのAPI叩けたり機能が豊富。
まだまだたくさんあります。マイナーどころまで全然たどりつけなかった。あと、間違い等ありましたらご指摘下さい。