Page:
Home
Pages
Advanced Compilation
Atom
Bootstrapped ClojureScript FAQ
Bootstrapping the Compiler
Building the compiler
ClojureScript Puppet Manifest
Common Problems
Companies Using ClojureScript
Comparators
Compile Time Type Checking
Compiler Options
Cursive
Custom Build Tools
Custom REPLs
Dependencies
Developers
Differences from Clojure
Emacs & Inferior Clojure Interaction Mode
Emacs & Inferior Clojure Interaction Mode
Enhanced JavaScript Module Support
Enhanced Node.js Modules Support
Exception Handling
FAQ (for JavaScript developers)
Google Closure Library
Google Closure
Google Summer of Code 2015
Home
JavaScript Library Preprocessing
JavaScript Module Support (Alpha)
Launch Plan
Light Table
Optional Self hosting
Packaging Foreign Dependencies
Patches
Providing IO utilities
Quick Start
REPL Options
REPL stack traces
Rationale
Reader
Release plans
Remote REPL
Reporting Bootstrap Issues
Reporting Issues
Road Map
Running REPLs
Running the tests
Singleton Pattern Externs Inference Support
Source maps
Sublime Text 2
Testing
The REPL and Evaluation Environments
Underpinnings
Using cljc
Vim
Windows Setup
Working with Javascript classes
_Sidebar.md
lein cljsbuild
No results
150
Home
Aziz Zaeny edited this page 2017-03-21 22:25:56 +07:00
Table of Contents
- Read These First
- Tutorials
- Online Clojurescript REPLs
- Project Templates
- Getting Help
- Reference
- Tips & Tricks
- Tooling
- Tools
- Compatible Clojure Contrib libraries
- Libraries
- Dom Manipulation
- React Wrappers
- HTML Templating
- CSS Generation
- Graphics
- Client-side Routing
- Networking
- Data formats
- Datastores
- iOS/Android
- FRP
- Misc
- Testing
- Feedback
- Additional Information
DEPRECATION NOTICE: Please do not edit this wiki. Instead submit pull requests to https://github.com/clojure/clojurescript-site
ClojureScript is a dialect of Clojure that targets JavaScript as a deployment platform.
Read These First
- Quick Start
- Differences from Clojure
- Reporting Issues
- Rationale
- Rich's Slides
- Rich Hickey Unveils ClojureScript (video, 1.5 hr.)
Tutorials
- modern-cljs
- ClojureScript Unraveled (book)
- ClojureScript Made Easy (blog)
- Getting started with Figwheel
- Reagent Phonecat : official AngularJS 1.X tutorial, re-written for ClojureScript + Reagent.
Online Clojurescript REPLs
- [KLIPSE] (http://app.klipse.tech)
- [clojurescript.io] (http://clojurescript.io/)
- [clojurescript.net] (http://clojurescript.net/)
Project Templates
Leiningen
- 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
- electron-template A Leiningen template for creating Electron based ClojureScript projects with support for Reagent
Boot
- tenzing Clojurescript application template using Boot
- jamal Basic ClojureScript frontend repo with testing using Boot
- saapas A complete frontend and backend example using Boot
Getting Help
Chat
- IRC:
#clojurescripton freenode.net - Slack:
#clojurescripton clojurians
Mailing Lists
Reference
- 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
Tips & Tricks
Tooling
- Running REPLs, without lein-cljsbuild
Tools
Editors
- Sublime Text 2
- Atom
- Cursive
- Emacs & Inferior Clojure Interaction Mode
- Emacs & Inferior Clojure Interaction Mode w/Figwheel
- Vim
- Light Table
Leiningen plugins
- 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
REPLs
- lein-figwheel launches a REPL
- austin, (warning: inactive development)
- weasel (warning: inactive development)
- Remote REPL: REPL to a remote machine
Learning Tools
- Planck Stand-alone OS X ClojureScript REPL
- Replete ClojureScript REPL iOS app
- Replify Standalone Clojurescript REPL and minimalist build tool
- Mancy Electron based NodeJS REPL with ClojureScript Support + (Data Visualisation, Transpiled JS View & more…)
Compatible Clojure Contrib libraries
- 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
Libraries
Dom Manipulation
React Wrappers
- 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
HTML Templating
- 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
CSS Generation
- garden, CSS generation
- mesh, Responsive Grid & Typography library built on Garden
- boot-atomizer Parse and Generate Atomic CSS
Graphics
- 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)
Client-side Routing
- secretary, Routing
- bidi, Routing
- silk, Routing
- router, Bidirectional Ring router. REST oriented. Rails inspired.
Networking
- [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
- happy a Clojure(Script) HTTP async client library
- clj-browserchannel Real-time, bi-directional communication between ClojureScript and Clojure
- chord, core.async + WebSockets
- matchbox, Firebase client for Clojure(Script)
Data formats
- transit-cljs, efficient, extensible data exchange format
Datastores
- 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)
iOS/Android
FRP
- 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.
Misc
- 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
Testing
- cljs.test, a port of clojure.test built-in to the standard library
- DEPRECATED: 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.
Feedback
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
Additional Information
- Developers (Contributing to ClojureScript)
- FAQ (for JavaScript developers)
- Source Maps
- The REPL and Evaluation Environments