本文档来自以下github资源的翻译和整理,一个社区驱动的ClojureScript框架、库和包装器列表。



Books

Canvas

  • Monet – A small ClojureScript library to make it easier to work with canvas and visuals.
  • Quamolit – A tiny declarative animation library , inspired by React.

Client/Server Communication

  • cljs-ajax – A simple Ajax client for ClojureScript and Clojure.
  • Cumulo server/client – A pair of libries to sync data among clients, based on WebSocets and diff/patch.
  • Fetch – A ClojureScript library that makes client/server interaction painless.

Code Analysis

  • kibit — Static code analyzer to find patterns of code that could be rewritten with a more idiomatic function or macro.

Data Serialization

  • Cljson – Clojure/ClojureScript library for accelerated browser data deserialization.
  • Transit – A data interchange format and set of libraries for conveying values between applications written in different programming languages.

Data Visualization

  • C2 – It lets you declaratively create HTML and SVG markup based on data.

Database

  • Datascript – An immutable in-memory database and Datalog query engine in ClojureScript.
  • Jaki – A simple ClojureScript CouchDB client.
  • Konserve – A clojuresque key-value/document store protocol with core.async.
  • specql – Library for simple PostgreSQL queries with namespaced keys.

Development

  • Ambly — A ClojureScript REPL into iOS JavaScriptCore.
  • cljs-devtools – Better presentation of ClojureScript values in Chrome Devtools.
  • Devcards – Devcards aims to provide a visual REPL experience for ClojureScript.
  • lein-cljsbuild — A Leiningen plugin to make ClojureScript development easy.
  • lein-figwheel – Leiningen plugin that pushes ClojureScript code changes to the client.
  • Lumo – Fast, cross-platform, standalone ClojureScript environment.
  • Planck – A stand-alone ClojureScript REPL for macOS and Linux based on JavaScriptCore.
  • Ribol – Conditional restarts for clojure/clojurescript.
  • shadow-cljs - ClojureScript compilation made easy

Document Object Model

  • cljs-binding – It binds html elements to ClojureScript functions.
  • Crate – A ClojureScript implementation of Hiccup.
  • Dominator – Virtual-Dom in ClojureScript.
  • Dommy – A no-nonsense ClojureScript templating and DOM manipulation library.
  • Enfocus – A DOM manipulation and templating library for ClojureScript inspired by Enlive.
  • Freactive – A high-performance, pure Clojurescript, declarative DOM library inspired by reagent, om, reflex and hiccup.
  • Hiccups – A ClojureScript port of the Hiccup.
  • Hickory – It parses HTML into Clojure data structures, so you can analyze, transform, and output back to HTML.
  • json-html – Provide JSON and get a DOM node with a human representation of that JSON.
  • Kioo – DOM manipulation and templating library for Facebook's React and Om in ClojureScript.
  • Sablono – Lisp/Hiccup style templating for Facebook's React in ClojureScript.

Documentation

  • codox – A tool for generating API documentation from Clojure or ClojureScript source code.

Graphics

  • geom – A 2D/3D geometry toolkit for Clojure/Clojurescript.

HTTP Handler

  • Castra – An HTTP remote procedure call handler for Clojure.

Internationalization

  • Tower – A Clojure(Script) i18n & L10n library.
  • Tempura - A Clojure(Script) i18n library, succeeding Tower

JavaScript Interoperability

  • CLJSJS – An easy way for Clojurescript developers to depend on Javascript libraries.
  • Jayq – A ClojureScript wrapper for jQuery.
  • Purnam – A ClojureScript library designed to provide better clojurescript/javascript interop, testing and documentation tools.
  • Pylon – A Javascript class system in 100% Clojurescript.

Miscellaneous

  • Automat – A Clojure(Script) library for defining and using finite-state automata, inspired by Ragel.
  • Bardo – A Clojure(Script) library for functional interpolation and transitions.
  • core.async – A Clojure(Script) library designed to provide facilities for async programming and communication.
  • Entanglement – It creates atoms from other atoms and links the data together.
  • Garden – A library for rendering CSS in Clojure and ClojureScript.
  • inflections-clj – Rails-like inflection library for Clojure and ClojureScript.
  • Instaparse – It aims to be the simplest way to build parsers in ClojureScript.
  • Keybind – Library for handling key bindings (shortcuts) in browser.
  • markdown-clj – Markdown parser in Clojure/ClojureScript.
  • om-tools – It aims to provide higher-order abstractions and utilities frequently useful when building components with Om's API.
  • Quil – A processing and graphics programming library.
  • reforms – Beautiful Bootstrap 3 forms for Om and Reagent.
  • reagent-forms – Bootstrap form components for Reagent.
  • Respo – A Responsive DOM library, inspired by React.
  • Sepal.clj – A library to generate Clojure code from a vector of strings and vectors with macro system.
  • Truss – An opinionated assertions API for Clojure/ClojureScript.

React.js Interface

  • Brutha – A simple and functional ClojureScript interface to React.
  • Om — A powerful interface to React, makes use of its object oriented structures.
  • Quiescent — It favors functional style, fully stateless.
  • re-com – A ClojureScript library of reusable components for Reagent.
  • Reagent — Minimalistic, feature complete.
  • Rum — Decomplected, extensible, simple.

Reactive Programming

  • Javelin – A Functional Reactive Programming library for ClojureScript.
  • Manifold-cljs — A port of Manifold to ClojureScript.
  • Reagi – An FRP library for Clojure and ClojureScript, built on top of core.async.
  • rx-cljs – A ClojureScript wrapper for Reactive Extensions (Rx) for Javascript.
  • Yolk – A thin ClojureScript wrapper around bacon.js.

Routing

  • Bidi – A Clojure(script) data driven routing library.
  • Router – Bidirectional Ring router for Clojure/Script. REST oriented.
  • Secretary – A client-side router for ClojureScript.
  • Silk – An isomorphic routing library for Clojure & ClojureScript.

State Management

  • component – Managed lifecycle of stateful objects in Clojure(Script).
  • hodgepodge – A idiomatic ClojureScript interface to HTML5 Storage.
  • mount – A beautifl idiomatic state management library.
  • plato – Incrementally persists atom state to Local Storage in ClojureScript.
  • storage-atom – ClojureScript atoms backed by HTML5 web storage.
  • Waltz – A ClojureScript library that helps manage state in client-side applications using non-deterministic finite state machines.

Testing

  • cljs.test – Integrated test framework for ClojureScript (merged from clojurescript.test)
  • Expectations – A minimalist's unit testing framework.
  • Speclj – A TDD/BDD framework for Clojure and ClojureScript.
  • test.check – A generative property-based testing tool inspired by QuickCheck.

Validation

  • Bouncer – A validation DSL for Clojure & Clojurescript applications.
  • Validateur – A Clojure validation library inspired by Ruby's ActiveModel.

Web Framework & Template

  • atw-om – A web application template with Clojure/Compojure, ClojureScript/Om & core.async.
  • Chestnut – An Application template for ClojureScript/Om with live reloading.
  • Clops – An opinionated, full stack and easy to use web framework.
  • descjop – A template for Web based desktop application with Electron.
  • electron-template – A template for creating web based desktop applications with Electron, ClojureScript and Reagent.
  • Fulcro - A library for development of single-page full-stack web applications in clj/cljs.
  • Hoplon – Write everything in Clojure and ClojureScript, clientside and serverside.
  • Keechma – Micro frontend framework for ClojureScript and Reagent.
  • Luminus – It aims to provide a robust, scalable, and easy to use platform.
  • Macchiato – It aims to provide an easy to use platform for Node.js.
  • Mies – A minimal ClojureScript project template.
  • Precept - A declarative programming framework.
  • re-frame – A Reagent Framework For Writing SPAs, in Clojurescript.
  • Tenzing – A ClojureScript template with no backend that uses Boot.
  • WebFUI – Client-Side Web Framework for ClojureScript.

WebSockets

  • Chord – Designed to bridge the gap between the triad of CLJ/CLJS, web-sockets and core.async.
  • Sente – Clojure(Script) + core.async + WebSockets/Ajax.