Awesome ClojureScript
ClojureScriptを扱う資料や関連プロジェクトをまとめたAwesomeリストです。
リソース
書籍
- ClojureScript Unraveled – 言語機能全般、コンパイラーの使い方、アプリケーション・ライブラリ構築ツールを扱うClojureScriptのオープンソース書籍。
- ClojureScript Unraveled (2nd edition) – 言語機能全般、コンパイラーの使い方、アプリケーション・ライブラリ構築ツールを扱うClojureScriptのオープンソース書籍。
- ClojureScript: Up and Running – Clojureの第一人者であるStuart SierraとLuke VanderHartによるClojureScript入門。
- Clojure, The Essential Reference – Clojure言語と標準ライブラリのリファレンス書。
- Etudes for ClojureScript – ClojureScriptを紹介する30の練習問題(エチュード)からなる実践書。
- Learning ClojureScript – ClojureScriptによるアジャイルなシングルページWebアプリケーション開発を習得する。
- Transforming Data with ClojureScript – 「プログラミングの主な仕事はデータ変換」という観点に焦点を当てた、対話例と演習付きClojureScript入門。
コース
- ClojureScript Koans – 対話的な課題を通じてWeb上でClojure・ClojureScriptを学び始める優れた方法。
- Lambda Island – ClojureScriptによるフロントエンド、Clojureによるバックエンド、言語基礎、セキュリティ、インターネット標準、システム管理を含むフルスタックWeb開発コース。
- Learn Reagent – 開発者向けReagentを用いたClojureScript入門。1時間の無料コンテンツが利用可能で、続編はlearn re-frame。
- Learning ClojureScript – O’Really Online Learningによる2時間11分のClojureScript入門。Udemyでも利用可能。
動画
- ClojureScript for Skeptics – ClojureScriptがWeb開発で検討すべき非常に実用的な言語である多くの理由を論じる、Derek SlagerのClojure Conj 2015講演。
- Interactive programming Flappy Bird in ClojureScript – ClojureScriptの開発者体験の力を示す、2014年の5分動画。
Awesome ClojureScript
Canvas
クライアント/サーバー通信
- cljs-ajax – ClojureScript・Clojure向けのシンプルなAjaxクライアント。
- Fetch – クライアント/サーバー間の対話を容易にするClojureScriptライブラリ。
コード解析
- kibit – よりイディオマティックな関数・マクロで書き換えられるコードパターンを見つける静的コード解析器。
データシリアライゼーション
- Cljson – 高速なブラウザデータ逆シリアル化のためのClojure/ClojureScriptライブラリ。
- Transit – 異なるプログラミング言語で書かれたアプリケーション間で値を伝達するデータ交換形式とライブラリ群。
データ可視化
- C2 – データに基づくHTML・SVGマークアップを宣言的に作成できる。
データベース
- Datascript – ClojureScriptによる不変のインメモリデータベースおよびDatalogクエリーエンジン。
- Jaki – シンプルなClojureScript CouchDBクライアント。
- Konserve – core.asyncを備えるClojure風のキー値/ドキュメントストアプロトコル。
- specql – 名前空間付きキーで簡単なPostgreSQLクエリーを行うライブラリ。
開発
- Ambly – iOS JavaScriptCore内のClojureScript REPL。
- cljs-devtools – Chrome DevToolsでClojureScript値をより良く表示する。
- Devcards – ClojureScript向けの視覚的REPL体験を提供する。
- Instaparse – ClojureScriptでパーサーを構築する最も簡単な方法を目指す。
- lein-cljsbuild – ClojureScript開発を容易にするLeiningenプラグイン。
- lein-figwheel – ClojureScriptコードの変更をクライアントへ送るLeiningenプラグイン。
- Lumo – 高速、クロスプラットフォーム、スタンドアロンのClojureScript環境。
- Planck – JavaScriptCoreに基づくmacOS・Linux向けスタンドアロンClojureScript REPL。
- Ribol – Clojure/ClojureScript向けの条件付き再起動。
- shadow-cljs – ClojureScriptコンパイルを容易にする。
- Truss – Clojure/ClojureScript向けの意見を持つアサーションAPI。
ドキュメントオブジェクトモデル
- cljs-binding – HTML要素をClojureScript関数へバインドする。
- Crate – HiccupのClojureScript実装。
- Dominator – ClojureScriptによるVirtual DOM。
- Dommy – 実直なClojureScriptテンプレーティング・DOM操作ライブラリ。
- Enfocus – Enliveに着想を得たClojureScript向けDOM操作・テンプレーティングライブラリ。
- Freactive – Reagent、Om、Reflex、Hiccupに着想を得た高性能・純粋ClojureScriptの宣言型DOMライブラリ。
- Hiccups – HiccupのClojureScript移植版。
- Hickory – HTMLをClojureデータ構造へ解析し、分析、変換、HTMLへの再出力を可能にする。
- json-html – JSONを与えると、そのJSONを人が理解できる形で表すDOMノードを得る。
- Kioo – ClojureScriptでFacebookのReact・Om向けに使うDOM操作・テンプレーティングライブラリ。
- Respo – Reactに着想を得たレスポンシブDOMライブラリ。
- Sablono – ClojureScriptにおけるFacebook React向けLisp/Hiccupスタイルのテンプレーティング。
ドキュメント
- codox – ClojureまたはClojureScriptのソースコードからAPIドキュメントを生成するツール。
グラフィックス
HTTPハンドラー
- Castra – Clojure向けHTTPリモートプロシージャコールハンドラー。
国際化
JavaScript相互運用
- CLJSJS – ClojureScript開発者がJavaScriptライブラリへ容易に依存できるようにする。
- Jayq – jQuery用ClojureScriptラッパー。
- Purnam – より良いClojureScript/JavaScript相互運用、テスト、ドキュメントツールを提供するClojureScriptライブラリ。
- Pylon – 100% ClojureScriptで書かれたJavaScriptクラスシステム。
CSSツール
- Garden – Clojure・ClojureScriptでCSSをレンダリングするライブラリ。
- stylefy – CSSセレクターを書かずに、UIコンポーネントスタイルをClojureデータとして定義し、容易にコンポーネントへ付加できる。
その他
- Automat – Ragelに着想を得た、有限状態オートマトンを定義・利用するClojure(Script)ライブラリ。
- Bardo – 関数型補間とトランジションのためのClojure(Script)ライブラリ。
- core.async – 非同期プログラミングと通信の機能を提供するClojure(Script)ライブラリ。
- Entanglement – 他のatomからatomを作成し、データを結び付ける。
- inflections-clj – Clojure・ClojureScript向けRails風活用ライブラリ。
- Keybind – ブラウザー内のキーバインド(ショートカット)を扱うライブラリ。
- markdown-clj – Clojure/ClojureScriptによるMarkdownパーサー。
- namespacefy – A simple Clojure(Script) library which aims to make it easy to keep map keys namespaced, no matter where your data comes from.
- om-tools – It aims to provide higher-order abstractions and utilities frequently useful when building components with Om’s API.
- reforms – Beautiful Bootstrap 3 forms for Om and Reagent.
- reagent-forms – Bootstrap form components for Reagent.
- Sepal.clj – A library to generate Clojure code from a vector of strings and vectors with macro system.
React.js Interface
- Brutha – シンプルで関数型のReact向けClojureScriptインターフェース。
- cljsx – Clojure・ClojureScript向けJSX。Inferno、Nerv、Preact、Snabbdomeなどでも動作する。
- Helix – React上にほとんど意味論を追加せず、ClojureScriptでのReact開発を簡単にするライブラリ。
- hx – ClojureScriptでのReact開発向けの、もう一つのシンプルで使いやすいライブラリ。
- Om – オブジェクト指向構造を活用する強力なReactインターフェース。
- Quiescent – 完全にステートレスな関数型スタイルを重視する。
- re-com – Reagent向け再利用可能コンポーネントのClojureScriptライブラリ。
- Reagent – ミニマルで機能が充実している。
- Rum – 複雑さを解いた、拡張可能でシンプルなライブラリ。
リアクティブプログラミング
- Javelin – ClojureScript向け関数型リアクティブプログラミングライブラリ。
- Manifold-cljs – ManifoldのClojureScript移植版。
- Reagi – core.async上に構築されたClojure・ClojureScript向けFRPライブラリ。
- rx-cljs – JavaScript向けReactive Extensions(Rx)のClojureScriptラッパー。
- Yolk – bacon.jsを包む薄いClojureScriptラッパー。
ルーティング
- Bidi – Clojure(script)のデータ駆動ルーティングライブラリ。
- Router – REST指向のClojure/Script向け双方向Ringルーター。
- Secretary – ClojureScript向けクライアントサイドルーター。
- Silk – Clojure・ClojureScript向けアイソモーフィックルーティングライブラリ。
状態管理
- component – Clojure(Script)における状態を持つオブジェクトのライフサイクルを管理する。
- hodgepodge – HTML5 Storage向けのイディオマティックなClojureScriptインターフェース。
- mount – 美しくイディオマティックな状態管理ライブラリ。
- plato – ClojureScriptでatomの状態を段階的にLocal Storageへ永続化する。
- storage-atom – HTML5 Web StorageをバックエンドとするClojureScript atom。
- Tuck – ビューコードとイベント処理コードを明確に分離したReagentアプリを構築するマイクロフレームワーク。
- Waltz – 非決定性有限状態機械を使うクライアントサイドアプリケーションの状態管理を支援するClojureScriptライブラリ。
Testing
- cljs.test – ClojureScript統合テストフレームワーク(clojurescript.testから統合)。
- Expectations – ミニマリスト向けユニットテストフレームワーク。
- Speclj – Clojure・ClojureScript向けTDD/BDDフレームワーク。
- test.check – QuickCheckに着想を得た生成的プロパティベーステストツール。
Validation
- Bouncer – Clojure・ClojureScriptアプリケーション向け検証DSL。
- form-validator-cljs – specとfnでフォームを検証する。
- Validateur – RubyのActiveModelに着想を得たClojure検証ライブラリ。
Web Framework & Template
- atw-om – Clojure/Compojure、ClojureScript/Om、core.asyncを備えるWebアプリケーションテンプレート。
- Chestnut – ライブリロードを備えるClojureScript/Om向けアプリケーションテンプレート。
- Clops – 意見を持つ、フルスタックで使いやすいWebフレームワーク。
- descjop – Electronを使うWebベースデスクトップアプリケーションのテンプレート。
- electron-template – Electron、ClojureScript、ReagentでWebベースデスクトップアプリケーションを作るテンプレート。
- Fulcro – clj/cljsによるシングルページ・フルスタックWebアプリ開発ライブラリ。
- Hoplon – クライアント・サーバーのすべてをClojure・ClojureScriptで書く。
- Keechma – ClojureScript・Reagent向けマイクロフロントエンドフレームワーク。
- Luminus – 堅牢でスケーラブル、使いやすいプラットフォームを目指す。
- Macchiato – Node.js向けの使いやすいプラットフォームを目指す。
- Mies – ミニマルなClojureScriptプロジェクトテンプレート。
- Mr-Clean – react.js依存なしのReagent互換ライブラリ。
- Precept – 宣言型プログラミングフレームワーク。
- re-frame – ClojureScriptでSPAを書くためのReagentフレームワーク。
- Tenzing – Bootを使う、バックエンドなしのClojureScriptテンプレート。
- WebFUI – ClojureScript向けクライアントサイドWebフレームワーク。
WebSockets
- Chord – CLJ/CLJS、WebSocket、core.asyncの三者間の隔たりを埋めるよう設計された。
- Sente – Clojure(Script) + core.async + WebSocket/Ajax。
コントリビュート
すべてのコントリビューションを歓迎します。プルリクエストを開く前にContributingを読んでください。要約すると、箇条書きには-、リンクと説明の区切りには–を使い、リストはアルファベット順に並べます。
ライセンス
Han Tuzun has dedicated the work to the public domain by waiving all of his rights to the work worldwide under copyright law, including all related and neighboring rights, to the extent allowed by law.
You can copy, modify, distribute and perform the work, even for commercial purposes, all without asking permission.
