common lispは歴史長いからライブラリおおいけど、clojureはあたらしいほうだから、ライブラリどうせすくないんでしょ? とおもっていたら、それは大きな間違いでした。
ClojarsというClojure専用のパッケージリポジトリがあり、2024年時点で約3万以上のライブラリが公開されています
Clojureは比較的新しい言語でありながら、予想以上に豊富なライブラリエコシステムを持っています。これは主に以下の要因によるものです:
JVMベース言語としてのメリット 独自のパッケージリポジトリの存在 JavaScript?生態系へのアクセス(ClojureScript?)
Javaの膨大なライブラリ資産をシームレスに利用可能。これにより:
エンタープライズでの実用に耐える堅牢性 既存Javaシステムとの連携が容易 実績のあるJavaライブラリの再利用
2024年時点で30,000以上のライブラリが公開されており、活発なコミュニティによって維持されています。
現代的な開発に必要な主要分野を網羅:
Ring:HTTPサーバ抽象化 Compojure:ルーティング Luminus:フルスタックフレームワーク
next.jdbc:JDBCラッパー Honey SQL:SQLジェネレータ
tech.ml:機械学習ライブラリ
reagent:ReactラッパーでSPAを構築 re-frame:SPAのための状態管理
Leiningen:プロジェクト管理 deps.edn:依存関係管理 clojure.test:テストフレームワーク
ClojureScript?を通じて:
npmパッケージの利用が可能 モダンなフロントエンド開発のツールチェーンにアクセス Reactなどのメジャーなフレームワークとの連携
Common Lispの長い歴史に基づくライブラリ群とは異なる形で、Clojureは現代のソフトウェア開発に必要な充実したライブラリエコシステムを確立しています。JVMプラットフォームとJavaScript?エコシステムの両方にアクセスできる特徴は、特に実務での採用において大きな利点となっています。
fileserverという名前で作ってみる
lein.bat new app fileserver
(defproject fileserver "0.1.0-SNAPSHOT" :description "Simple file server" :dependencies [[org.clojure/clojure "1.11.1"] [ring/ring-core "1.10.0"] [ring/ring-jetty-adapter "1.10.0"] [org.clojure/tools.cli "1.0.219"]] :main fileserver.core)
カスタマイズとかしやすそうな感じで何よりです。