プログラミング Clojure の第2版が出版されました。
amazon で一時的に在庫切れになってたりと思っていたより人気がある(でてきた?) Clojure。
そんな Clojure をこれから使い始める人のため、自分が使っているライブラリをリストアップしておきます。
Web アプリケーション/フレームワーク
Ring
WSGI(Python)、Rack(Ruby) の Clojure 版。
Compojure
Ring をベースにした軽量 Web フレームワーク。
Sinatra(Ruby) の Clojure 版。
Ring と作者が同じ。
lib-noir
Ring ベースのアプリケーションで使えるユーティリティライブラリ。
Noir っていう Compojure を内部的に利用していたフレームワーク(開発終了)から便利な機能(セッション、バリデーション等)を切り出したライブラリ。
Compojure と一緒に使うことができます。
テンプレートエンジン
Hiccup
シンプルなテンプレートエンジンで Clojure のテンプレートエンジンとしては一番有名。
Ring, Compojure と同じ人が作っている。
Enlive
hiccup を使っているためほとんど使ったことないですが hiccup と共に Clojure のテンプレートエンジンとしてよく名前を見かけるのでリストアップしておきます。
HTTP ライブラリ
clj-http
HTTPリクエストを送るライブラリ。
データベース/SQL
Korma
DB アクセスに使えるライブラリ。
SQL を柔軟に組み立て発行することができ、とても使いやすい。
使う際には、利用する DB (mysql, postgres, sqlite3, oracle など) に合わせた JDBC ドライバも必要になる。
テストフレームワーク
Midje
repl で自動テストを走らせることができる。
自動テストを走らせている間も、repl としての機能をそのまま利用することができる。
メタタグにより、実行するテストを切り分けたりネストしてテストを書いたりでき、RSpec(Ruby)に似ている。
環境設定
Environ
環境設定を統一的に扱うライブラリ。
現状は、環境変数、Java のシステムプロパティ、Leininge の Profiles を扱える。
Ring, Compojure, Hiccup と同じ人が作っている。
日付/時間
clj-time
Java の Joda Time をラップした日付/時間処理を便利にするライブラリ。
JSON
Cheshire
JSON をエンコード、デコードを行うライブラリ。
高速で Custom Encoders という機能を持っている。
CSV
Clojure-CSV
CSV ファイルを読み書きするライブラリ。
ロガー
Timbre
設定がシンプルなロガー。
プロファイリングに必要なライブラリを含んでいる。
ひとまず、こんなところでしょうか。
使ってみて便利だと思ったライブラリがでてきた際には、追記していきたいと思います。