GitHub star 数で見る Scala DB アクセスライブラリ事情
以前、こちらでお話しした時のネタだったのですが
http://playframeworkja.doorkeeper.jp/events/4219
GitHub、Google Code の star 数で Scala の DB アクセスライブラリのランキングをつくってみました。もちろんたくさん star がついているからといって必ずしも優れたライブラリとは限らないわけですが、ある程度の指標にはなるはずです。
スターの数は 6/26 23:30 頃、私が確認した時点での数字です。() つきになっているものはフレームワークの一部の機能として DB アクセスが提供されているものです。
そうすると、本来は Anorm がダントツ一位になるわけですが、Play2 の将来のバージョンで外される見込みなので除きました。また、Lift Framework の DB アクセスもありますが、こちらは Lift 前提なので除きました。私が認識しているものだけが候補として選択されているので、もし抜けているものがあればご指摘ください。
GitHub
順位 | 名前 | GitHub | star | 初コミット | 最終更新 |
---|---|---|---|---|---|
1 | Slick (旧 ScalaQuery) | slick/slick | 613 | 2009/02/20 | 2013/06/07 |
2 | Squeryl | max-l/Squeryl | 322 | 2010/01/30 | 2013/06/22 |
3 | postgresql-async & mysql-async | mauricio/postgresql-async | 159 | 2012/02/25 | 2013/05/26 |
4 | Querulous | twitter/querulous | 154 | 2010/02/04 | 2012/03/30 |
5 | Spring JDBC Scala | SpringSource/spring-scala | (154) | 2011/08/26 | 2013/05/16 |
6 | Circumflex ORM | inca/circumflex | (136) | 2009/09/24 | 2013/05/23 |
7 | ScalikeJDBC | seratch/scalikejdbc | 112 | 2011/11/17 | 2013/06/26 |
8 | sqltyped | jonifreeman/sqltyped | 109 | 2012/08/08 | 2013/06/26 |
9 | scala-activerecord | aselab/scala-activerecord | 92 | 2012/04/09 | 2013/06/26 |
10 | SORM | sorm/sorm | 91 | 2012/04/29 | 2013/05/20 |
11 | Activate | fwbrasil/activate | 85 | 2011/06/05 | 2013/06/09 |
12 | Prequel | jpersson/prequel | 35 | 2011/03/12 | 2013/05/11 |
13 | Scala SQL DSL | p3t0r/scala-sql-dsl | 28 | 2009/11/23 | 2010/11/04 |
14 | DataExpress | cbmi/dataexpress | 24 | 2013/04/13 | 2013/06/17 |
15 | Scweery | Synesso/scweery | 12 | 2009/08/23 | 2013/04/12 |
15 | ScalaSQL | chochos/scalasql | 12 | 2011/12/27 | 2012/03/08 |
17 | mirage-scala | takezoe/mirage-scala | 4 | 2012/06/20 | 2012/11/14 |
18 | MyBatis Scala | mybatis/scala | 1 | 2011/11/26 | 2013/05/27 |
Google Code
GitHub でホストされていないプロジェクトもあります。Google Code にも star をつける機能があるのでその数字を列挙してみました。
名前 | star | URL |
---|---|---|
MyBatis | 790 | https://code.google.com/p/mybatis/ |
O/R Broker | 58 | https://code.google.com/p/orbroker/ |
MapperDao | 18 | https://code.google.com/p/mapperdao/ |
雑感
GitHub で見るとやはり Slick と Squeryl の二強状態で、三位グループのライブラリがたくさんあるという状況です。
Scala の DB ライブラリは基本的には JDBC 経由で DB につなぐ感じになるかと思いますが、postgresql-async は JDBC ベースでない非同期ドライバーを独自実装したものです。こういったものはこれからももっと出てくると思いますし、できれば標準化されるといいですね。。
Scala コミュニティは GitHub と親和性が高いですが、ライブラリ作者の中には Google Code を好む方もいるので、こちらも見ておくべきかと思います。
MyBatis Scala は GitHub では全く注目されていませんが Google Code 上では(主に Java での評価とはいえ)人気がありますし、Scala の方も少なからずユーザがいるはずです。また O/R Broker は少し使ったことがあるのですが、実用で問題なく使える印象でした(ちょっと冗長ではありますが)。GitHub にいないからといって候補から外すのは早計かもしれません。
上記のような候補から自分のニーズと好みに合ったものを評価、選択されるのがよいかと思います*1。
(6/28: 追記)@okapies さんにご指摘いただきましたが、そういえばこんなものがありましたね。Twitter 社は今では Querulous よりもこっちで MySQL とやり取りしているのかな。
https://github.com/twitter/finagle/tree/master/finagle-mysql
と思ったけど、まだ experimental みたいなので Querulous は現役かな。こればっかりは外部からは分からないですね。
https://github.com/TechEmpower/FrameworkBenchmarks/pull/245
*1:もちろん、それが ScalikeJDBC であれば光栄ですが