- 
                Notifications
    
You must be signed in to change notification settings  - Fork 791
 
Home
        David Nolen edited this page Aug 29, 2015 
        ·
        150 revisions
      
    ClojureScript is a dialect of Clojure that targets JavaScript as a deployment platform.
- Quick Start
 - Differences from Clojure
 - Reporting Issues
 - Rationale
 - Rich's Slides
 - Rich Hickey Unveils ClojureScript (video, 1.5 hr.)
 
- modern-cljs
 - ClojureScript Tutorial
 - ClojureScript Unraveled
 - Études for ClojureScript
 - ClojureScript Made Easy (blog)
 - Getting started with Figwheel
 
- mies Minimal ClojureScript project template
 - figwheel-template A Leinigen template for live coding with figwheel (includes Reagent and Om varients)
 - chestnut Application template for ClojureScript/Om with live reloading
 - cljs-start A lein template for creating ClojureScript lib with batteries included
 - mala A lein template for building UIs in 100% Clojurescript, with Om, Garden, and curated libs
 - reagent-template A Leiningen template for projects using Reagent
 - re-frame-template Leiningen template for reagent web app based on the re-frame pattern. Includes figwheel and optionally re-com and secretary
 - descjop A Leiningen template for Web based desktop application with Electron(atom-shell) and others
 
- tenzing Clojurescript application template using Boot
 
- IRC: 
#clojurescripton freenode.net - Slack: 
#clojurescripton clojurians 
- Compiler Options documents all of the options to compiler
 - REPL Options options to REPLs, only covers differences from compiler options
 - Dependencies, managing various kinds of dependencies
 - Packaging Foreign Dependencies, how to package non-Closure compatible JavaScript libraries.
 - Usage of Google Closure
 - Using Google Closure Library in ClojureScript
 - Testing
 - Optional Self-Hosting
 - Compile Time Type Checking
 
- Clojurescript [API Reference], and [offline docset] in Dash format [API Reference]:https://github.com/cljsinfo/cljs-api-docs/blob/catalog/INDEX.md [offline docset]:https://github.com/cljsinfo/cljs-api-docs#offline-docset-for-dash
 
- Running REPLs, without lein-cljsbuild
 
- Sublime Text 2
 - Emacs & Inferior Clojure Interaction Mode
 - Emacs & Inferior Clojure Interaction Mode w/Figwheel
 - Vim
 - Light Table
 - Cursive
 
- lein-cljsbuild: Allows you to easily build ClojureScript projects with multiple targets
 - lein-npm: For Node.js based projects, allows you to work with NPM dependencies.
 - figwheel Live coding support
 - cljsasset CSS asset support
 
- austin
 - weasel
 - lein-figwheel launches a REPL
 
- core.async, Communicating Sequential Processes
 - core.logic, miniKanren implementation
 - core.match, Efficient pattern matching
 - core.rrb-vector, concatenation and non-view slicing for vectors
 - data.avl, sorted maps and sets with O(log n) rank queries and splits
 - test.check, QuickCheck style property based testing
 - tools.reader, portable Clojure(Script) reader
 
- om, React bindings and state management
 - om-tools, Om extensions
 - reagent, React bindings
 - reagent-forms, Forms for Reagent
 - quiescent, React bindings
 - reacl, React bindings
 - rum, React bindings
 - brutha Simple ClojureScript interface to React
 - sablono Hiccup style wrapper for React DOM Elements
 - cljs-react-reload Writing reloadable React Classes
 
- sablono, Hiccup style HTML generation for React
 - sablono-tools, Enlive-style selector-based templating and transformations for Sablono
 - kioo, Enlive style HTML generation
 - hipo, Hiccup style templating
 - enfocus, Enlive templating for ClojureScript
 - hickory parses HTML into Hiccup vectors
 
- apogee SVG charting
 - gamma GLSL DSL
 - quil, Processing for Clojure & ClojureScript
 - thi.ng/geom Geometry primitives, mesh operations, SVG & WebGL rendering (CLJX)
 - thi.ng/color Color space conversion & manipulation (CLJX)
 - thi.ng/tweeny Interpolation of arbitrary nested value maps (CLJX)
 
- [klozzer] (https://github.com/ashercoren/klozzer), Http Caching and File System Api with core.async
 - [s3-cljs] (https://github.com/viebel/s3-cljs), aws s3 sdk wrapper
 - sente, core.async + websockets
 - cljs-ajax simple Ajax client for ClojureScript
 - cljs-http a ClojureScript HTTP library
 - [https://github.com/diligenceengine/clj-browserchannel](eal-time, bi-directional communication between ClojureScript and Clojure)
 - chord, core.async + WebSockets
 - matchbox, Firebase client for Clojure(Script)
 
- transit-cljs, efficient, extensible data exchange format
 
- datascript, Datomic-like in-memory database
 - konserve, KV store protocol
 - hodgepodge A idiomatic interface to local and session storage
 - thi.ng/trio Non-RDF triplestores & SPARQL like query engine (CLJX)
 
- reagi An FRP library for Clojure and ClojureScript
 - zelkova Elm-style FRP for Clojure and ClojureScript
 - re-frame A Reagent Framework For Writing SPAs, in Clojurescript.
 
- purnam is a clojurescript library designed to provide better clojurescript/javascript interop, testing and documentation tools to the programmer.
 - cuerdas, string manipulation
 - schema, Validation & contracts
 - bardo, transitions
 - lucuma, WebComponents
 - differ, data structure diffing
 - component-cljs, port of Stuart Sierra's Component library
 - cats, Monads
 - lively, Client-side live programming support
 - patterny, Extract imagine patterns
 - phalanges, Keyboard events
 - keybind, Key bindings
 - cljs-time, Date/time lib (almost) consistent API with clj-time
 - cljs-promises, Promises
 - markdown-clj extensible Clojure/Script Markdown parser
 - json-html generates a DOM node with a human representation of the JSON/EDN encoded data
 - historian a drop-in atom-state-management (UNDOs!!) for your clojurescript projects
 - thi.ng/validate Schema based validation of nested data (CLJX)
 - clara Rete-based rule engine
 
- cljs.test, a port of clojure.test built-in to the standard library
 - clojurescript.test a port of clojure.test that pre-dates the built-in version
 - clairvoyant, tracing
 - purnam.test, provides macros for testing with the karma test runner, works with async tests.
 - speclj A TDD/BDD framework for Clojure and Clojurescript, based on RSpec.
 
ClojureScript does not take pull requests. Please follow the links below to contribute to ClojureScript.
- Bug Reports
 - Design Docs
 - Dev Mailing List - membership restricted to those who have submitted a signed Clojure CA (Contributor Agreement)
 - ClojureScript Mailing List
 - Become a Contributor
 
- Rationale
 - Quick Start
 - Differences from Clojure
 - [Usage of Google Closure](Google Closure)