Clojure での開発に役立つライブラリ一覧

More than 5 years have passed since last update.

プログラミング 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

設定がシンプルなロガー。

プロファイリングに必要なライブラリを含んでいる。


ひとまず、こんなところでしょうか。

使ってみて便利だと思ったライブラリがでてきた際には、追記していきたいと思います。