1 line
No EOL
23 KiB
JSON
1 line
No EOL
23 KiB
JSON
{"slug": "hantuzun--awesome-clojurescript", "title": "Awesome Clojurescript", "description": "A community driven list of ClojureScript frameworks, libraries and wrappers.", "github_url": "https://github.com/hantuzun/awesome-clojurescript", "stars": "967", "tag": "Programming Languages", "entry_count": 126, "subcategory_count": 27, "subcategories": [{"name": "General", "parent": "", "entries": [{"name": "Resources", "url": "#resources", "description": ""}, {"name": "Awesome ClojureScript", "url": "#awesome-clojurescript-1", "description": ""}, {"name": "Contributing", "url": "#contributing", "description": ""}, {"name": "License", "url": "#license", "description": ""}]}, {"name": "Books", "parent": "Resources", "entries": [{"name": "ClojureScript Unraveled", "url": "https://leanpub.com/clojurescript-unraveled", "description": "An open source book about the ClojureScript language that covers all the language features, how to use the compiler and the tooling for building applications and libraries."}, {"name": "ClojureScript Unraveled (2nd edition)", "url": "https://funcool.github.io/clojurescript-unraveled/", "description": "An open source book about the ClojureScript language that covers all the language features, how to use the compiler and the tooling for building applications and libraries."}, {"name": "ClojureScript: Up and Running", "url": "https://shop.oreilly.com/product/0636920025139.do", "description": "An introduction to ClojureScript written by big guns of Clojure Stuart Sierra and Luke VanderHart."}, {"name": "Clojure, The Essential Reference", "url": "https://www.manning.com/books/clojure-the-essential-reference", "description": "A reference book on the Clojure language and standard library."}, {"name": "Etudes for ClojureScript", "url": "https://shop.oreilly.com/product/0636920043584.do", "description": "A hands-on-book of 30 companion exercises or études for introducing ClojureScript."}, {"name": "Learning ClojureScript", "url": "https://www.packtpub.com/web-development/learning-clojurescript", "description": "Master the art of agile single page web application development with ClojureScript."}, {"name": "Transforming Data with ClojureScript", "url": "https://langintro.com/cljsbook", "description": "A beginner's guide to ClojureScript with interactive examples and exercises, \"focusing on the main task that programming does—transforming data\"."}]}, {"name": "Courses", "parent": "Resources", "entries": [{"name": "ClojureScript Koans", "url": "http://clojurescriptkoans.com/", "description": "A great way to start learning Clojure and ClojureScript on the web with interactive challanges."}, {"name": "Lambda Island", "url": "https://lambdaisland.com/", "description": "A full-stack web development course including front-end with ClojureScript, back-end with Clojure, language essentials, security, internet standards and system administration."}, {"name": "Learn Reagent", "url": "https://www.learnreagent.com/", "description": "An introduction to ClojureScript with Reagent for developers. 1 hour free content is available. [learn re-frame](https://www.learnreframe.com/) is its follow up."}, {"name": "Learning ClojureScript", "url": "https://purelyfunctional.tv/", "description": "A 2h 11m long introduction to Clojurescript by O'Really Online Learning. Also available on [Udemy](https://www.udemy.com/course/learning-clojurescript/)."}]}, {"name": "Videos", "parent": "Resources", "entries": [{"name": "ClojureScript for Skeptics", "url": "https://www.youtube.com/watch?v=gsffg5xxFQI", "description": "Derek Slager's talk for Clojure Conj 2015 where he is Discussing the many reasons why ClojureScript is in fact a very pragmatic language to consider for web development."}, {"name": "Interactive programming Flappy Bird in ClojureScript", "url": "https://www.youtube.com/watch?v=KZjFVdU8VLI", "description": "A 5 minutes video from 2014 demostrating the power of ClojureScript's developer experience."}]}, {"name": "Canvas", "parent": "Awesome ClojureScript", "entries": [{"name": "Monet", "url": "https://github.com/rm-hull/monet", "description": "A small ClojureScript library to make it easier to work with canvas and visuals.", "stars": "165"}, {"name": "Quamolit", "url": "https://github.com/Quamolit/quamolit", "description": "A tiny declarative animation library , inspired by React.", "stars": "3"}]}, {"name": "Client/Server Communication", "parent": "Awesome ClojureScript", "entries": [{"name": "cljs-ajax", "url": "https://github.com/JulianBirch/cljs-ajax", "description": "A simple Ajax client for ClojureScript and Clojure.", "stars": "653"}, {"name": "Fetch", "url": "https://github.com/LightTable/fetch", "description": "A ClojureScript library that makes client/server interaction painless.", "stars": "209"}]}, {"name": "Code Analysis", "parent": "Awesome ClojureScript", "entries": [{"name": "kibit", "url": "https://github.com/jonase/kibit", "description": "Static code analyzer to find patterns of code that could be rewritten with a more idiomatic function or macro.", "stars": "1.7k"}]}, {"name": "Data Serialization", "parent": "Awesome ClojureScript", "entries": [{"name": "Cljson", "url": "https://github.com/tailrecursion/cljson", "description": "Clojure/ClojureScript library for accelerated browser data deserialization.", "stars": "63"}, {"name": "Transit", "url": "https://github.com/cognitect/transit-cljs", "description": "A data interchange format and set of libraries for conveying values between applications written in different programming languages.", "stars": "319"}]}, {"name": "Data Visualization", "parent": "Awesome ClojureScript", "entries": [{"name": "C2", "url": "https://keminglabs.com/c2", "description": "It lets you declaratively create HTML and SVG markup based on data."}]}, {"name": "Database", "parent": "Awesome ClojureScript", "entries": [{"name": "Datascript", "url": "https://github.com/tonsky/datascript", "description": "An immutable in-memory database and Datalog query engine in ClojureScript.", "stars": "5k"}, {"name": "Jaki", "url": "https://github.com/pandeiro/jaki", "description": "A simple ClojureScript CouchDB client.", "stars": "16"}, {"name": "Konserve", "url": "https://github.com/replikativ/konserve", "description": "A clojuresque key-value/document store protocol with core.async.", "stars": "289"}, {"name": "specql", "url": "https://github.com/tatut/specql", "description": "Library for simple PostgreSQL queries with namespaced keys.", "stars": "125"}]}, {"name": "Development", "parent": "Awesome ClojureScript", "entries": [{"name": "Ambly", "url": "https://github.com/omcljs/ambly", "description": "A ClojureScript REPL into iOS JavaScriptCore.", "stars": "535"}, {"name": "cljs-devtools", "url": "https://github.com/binaryage/cljs-devtools", "description": "Better presentation of ClojureScript values in Chrome Devtools.", "stars": "1.1k"}, {"name": "Devcards", "url": "https://github.com/bhauman/devcards", "description": "Devcards aims to provide a visual REPL experience for ClojureScript.", "stars": "1.5k"}, {"name": "Instaparse", "url": "https://github.com/lbradstreet/instaparse-cljs", "description": "It aims to be the simplest way to build parsers in ClojureScript.", "stars": "89"}, {"name": "lein-cljsbuild", "url": "https://github.com/emezeske/lein-cljsbuild", "description": "A Leiningen plugin to make ClojureScript development easy.", "stars": "1.1k"}, {"name": "lein-figwheel", "url": "https://github.com/bhauman/lein-figwheel", "description": "Leiningen plugin that pushes ClojureScript code changes to the client.", "stars": "2.9k"}, {"name": "Lumo", "url": "https://github.com/anmonteiro/lumo", "description": "Fast, cross-platform, standalone ClojureScript environment.", "stars": "1.9k"}, {"name": "Planck", "url": "https://github.com/mfikes/planck", "description": "A stand-alone ClojureScript REPL for macOS and Linux based on JavaScriptCore.", "stars": "1k"}, {"name": "Ribol", "url": "http://docs.caudate.me/ribol/", "description": "Conditional restarts for clojure/clojurescript."}, {"name": "shadow-cljs", "url": "https://github.com/thheller/shadow-cljs", "description": "ClojureScript compilation made easy", "stars": "2k"}, {"name": "Truss", "url": "https://github.com/ptaoussanis/truss", "description": "An opinionated assertions API for Clojure/ClojureScript.", "stars": "274"}]}, {"name": "Document Object Model", "parent": "Awesome ClojureScript", "entries": [{"name": "cljs-binding", "url": "https://github.com/fluentsoftware/cljs-binding", "description": "It binds html elements to ClojureScript functions.", "stars": "57"}, {"name": "Crate", "url": "https://github.com/ibdknox/crate", "description": "A ClojureScript implementation of Hiccup.", "stars": "216"}, {"name": "Dominator", "url": "https://github.com/dubiousdavid/dominator", "description": "Virtual-Dom in ClojureScript.", "stars": "73"}, {"name": "Dommy", "url": "https://github.com/plumatic/dommy", "description": "A no-nonsense ClojureScript templating and DOM manipulation library.", "stars": "758"}, {"name": "Enfocus", "url": "http://ckirkendall.github.io/enfocus-site/", "description": "A DOM manipulation and templating library for ClojureScript inspired by Enlive."}, {"name": "Freactive", "url": "https://github.com/aaronc/freactive", "description": "A high-performance, pure Clojurescript, declarative DOM library inspired by reagent, om, reflex and hiccup.", "stars": "394"}, {"name": "Hiccups", "url": "https://github.com/teropa/hiccups", "description": "A ClojureScript port of the Hiccup.", "stars": "200"}, {"name": "Hickory", "url": "https://github.com/davidsantiago/hickory", "description": "It parses HTML into Clojure data structures, so you can analyze, transform, and output back to HTML.", "stars": "573"}, {"name": "json-html", "url": "https://github.com/yogthos/json-html", "description": "Provide JSON and get a DOM node with a human representation of that JSON.", "stars": "158"}, {"name": "Kioo", "url": "https://github.com/ckirkendall/kioo", "description": "DOM manipulation and templating library for Facebook's React and Om in ClojureScript.", "stars": "403"}, {"name": "Respo", "url": "https://github.com/mvc-works/respo", "description": "A responsive DOM library, inspired by React.", "stars": "232"}, {"name": "Sablono", "url": "https://github.com/r0man/sablono", "description": "Lisp/Hiccup style templating for Facebook's React in ClojureScript.", "stars": "683"}]}, {"name": "Documentation", "parent": "Awesome ClojureScript", "entries": [{"name": "codox", "url": "https://github.com/weavejester/codox", "description": "A tool for generating API documentation from Clojure or ClojureScript source code.", "stars": "641"}]}, {"name": "Graphics", "parent": "Awesome ClojureScript", "entries": [{"name": "geom", "url": "https://github.com/thi-ng/geom", "description": "A 2D/3D geometry toolkit for Clojure/Clojurescript.", "stars": "900"}, {"name": "Quil", "url": "https://github.com/quil/quil", "description": "A processing and graphics programming library.", "stars": "2.8k"}]}, {"name": "HTTP Handler", "parent": "Awesome ClojureScript", "entries": [{"name": "Castra", "url": "https://github.com/hoplon/castra", "description": "An HTTP remote procedure call handler for Clojure.", "stars": "167"}]}, {"name": "Internationalization", "parent": "Awesome ClojureScript", "entries": [{"name": "Tempura", "url": "https://github.com/ptaoussanis/tempura", "description": "A Clojure(Script) i18n library, succeeding Tower", "stars": "242"}, {"name": "Tower", "url": "https://github.com/ptaoussanis/tower", "description": "A Clojure(Script) i18n & L10n library.", "stars": "272"}]}, {"name": "JavaScript Interoperability", "parent": "Awesome ClojureScript", "entries": [{"name": "CLJSJS", "url": "http://cljsjs.github.io/", "description": "An easy way for Clojurescript developers to depend on Javascript libraries."}, {"name": "Jayq", "url": "https://github.com/ibdknox/jayq", "description": "A ClojureScript wrapper for jQuery.", "stars": "410"}, {"name": "Purnam", "url": "https://github.com/zcaudate/purnam", "description": "A ClojureScript library designed to provide better clojurescript/javascript interop, testing and documentation tools."}, {"name": "Pylon", "url": "https://github.com/bodil/pylon", "description": "A Javascript class system in 100% Clojurescript.", "stars": "49"}]}, {"name": "CSS tools", "parent": "Awesome ClojureScript", "entries": [{"name": "Garden", "url": "https://github.com/noprompt/garden", "description": "A library for rendering CSS in Clojure and ClojureScript.", "stars": "1.3k"}, {"name": "stylefy", "url": "https://github.com/jarzka/stylefy", "description": "stylefy makes it possible to define UI component styles as Clojure data and attach them into components easily without writing CSS selectors", "stars": "309"}]}, {"name": "Miscellaneous", "parent": "Awesome ClojureScript", "entries": [{"name": "Automat", "url": "https://github.com/ztellman/automat", "description": "A Clojure(Script) library for defining and using finite-state automata, inspired by Ragel.", "stars": "580"}, {"name": "Bardo", "url": "https://github.com/pleasetrythisathome/bardo", "description": "A Clojure(Script) library for functional interpolation and transitions.", "stars": "93"}, {"name": "core.async", "url": "https://github.com/clojure/core.async/", "description": "A Clojure(Script) library designed to provide facilities for async programming and communication.", "stars": "1.9k"}, {"name": "Entanglement", "url": "https://github.com/Frozenlock/entanglement", "description": "It creates atoms from other atoms and links the data together.", "stars": "42"}, {"name": "inflections-clj", "url": "https://github.com/r0man/inflections-clj", "description": "Rails-like inflection library for Clojure and ClojureScript.", "stars": "204"}, {"name": "Keybind", "url": "https://github.com/piranha/keybind", "description": "Library for handling key bindings (shortcuts) in browser.", "stars": "85"}, {"name": "markdown-clj", "url": "https://github.com/yogthos/markdown-clj", "description": "Markdown parser in Clojure/ClojureScript.", "stars": "521"}, {"name": "namespacefy", "url": "https://github.com/Jarzka/namespacefy", "description": "A simple Clojure(Script) library which aims to make it easy to keep map keys namespaced, no matter where your data comes from.", "stars": "19"}, {"name": "om-tools", "url": "https://github.com/plumatic/om-tools", "description": "It aims to provide higher-order abstractions and utilities frequently useful when building components with Om's API.", "stars": "437"}, {"name": "reforms", "url": "https://github.com/bilus/reforms", "description": "Beautiful Bootstrap 3 forms for Om and Reagent.", "stars": "170"}, {"name": "reagent-forms", "url": "https://github.com/reagent-project/reagent-forms/", "description": "Bootstrap form components for Reagent.", "stars": "338"}, {"name": "Sepal.clj", "url": "https://github.com/Cirru/sepal.clj", "description": "A library to generate Clojure code from a vector of strings and vectors with macro system.", "stars": "28"}]}, {"name": "[React.js](https://facebook.github.io/react/) Interface", "parent": "Awesome ClojureScript", "entries": [{"name": "Brutha", "url": "https://github.com/weavejester/brutha", "description": "A simple and functional ClojureScript interface to React.", "stars": "138"}, {"name": "cljsx", "url": "https://github.com/peterhudec/cljsx", "description": "[JSX](https://reactjs.org/docs/introducing-jsx.html) for Clojure and ClojureScript, also works with [Inferno](https://infernojs.org), [Nerv](https://nerv.aotu.io/), [Preact](https://preactjs.com/), [Snabbdome (⭐11k)](https://github.com/snabbdom/snabbdom) and others.", "stars": "10"}, {"name": "Helix", "url": "https://github.com/lilactown/helix", "description": "A simple, easy to use library for React development in ClojureScript with very few semantics on top of React.", "stars": "472"}, {"name": "hx", "url": "https://github.com/Lokeh/hx", "description": "Another simple, easy to use library for React development in ClojureScript.", "stars": "245"}, {"name": "Om", "url": "https://github.com/omcljs/om", "description": "A powerful interface to React, makes use of its object oriented structures.", "stars": "6.7k"}, {"name": "Quiescent", "url": "https://github.com/levand/quiescent", "description": "It favors functional style, fully stateless.", "stars": "609"}, {"name": "re-com", "url": "https://github.com/Day8/re-com", "description": "A ClojureScript library of reusable components for Reagent.", "stars": "761"}, {"name": "Reagent", "url": "http://reagent-project.github.io/", "description": "Minimalistic, feature complete."}, {"name": "Rum", "url": "https://github.com/tonsky/rum", "description": "Decomplected, extensible, simple.", "stars": "1.7k"}]}, {"name": "Reactive Programming", "parent": "Awesome ClojureScript", "entries": [{"name": "Javelin", "url": "https://github.com/hoplon/javelin", "description": "A Functional Reactive Programming library for ClojureScript.", "stars": "762"}, {"name": "Manifold-cljs", "url": "https://github.com/dm3/manifold-cljs", "description": "A port of [Manifold (⭐948)](https://github.com/ztellman/manifold) to ClojureScript.", "stars": "46"}, {"name": "Reagi", "url": "https://github.com/weavejester/reagi", "description": "An FRP library for Clojure and ClojureScript, built on top of core.async.", "stars": "227"}, {"name": "rx-cljs", "url": "https://github.com/leonardoborges/rx-cljs", "description": "A ClojureScript wrapper for Reactive Extensions (Rx) for Javascript.", "stars": "44"}, {"name": "Yolk", "url": "https://github.com/Cicayda/yolk", "description": "A thin ClojureScript wrapper around bacon.js."}]}, {"name": "Routing", "parent": "Awesome ClojureScript", "entries": [{"name": "Bidi", "url": "https://github.com/juxt/bidi", "description": "A Clojure(script) data driven routing library.", "stars": "974"}, {"name": "Router", "url": "https://github.com/darkleaf/router", "description": "Bidirectional Ring router for Clojure/Script. REST oriented.", "stars": "79"}, {"name": "Secretary", "url": "https://github.com/gf3/secretary", "description": "A client-side router for ClojureScript.", "stars": "774"}, {"name": "Silk", "url": "https://github.com/DomKM/silk", "description": "An isomorphic routing library for Clojure & ClojureScript.", "stars": "218"}]}, {"name": "State Management", "parent": "Awesome ClojureScript", "entries": [{"name": "component", "url": "https://github.com/stuartsierra/component", "description": "Managed lifecycle of stateful objects in Clojure(Script).", "stars": "2k"}, {"name": "hodgepodge", "url": "http://funcool.github.io/hodgepodge/", "description": "A idiomatic ClojureScript interface to HTML5 Storage."}, {"name": "mount", "url": "https://github.com/tolitius/mount", "description": "A beautifl idiomatic state management library.", "stars": "1.2k"}, {"name": "plato", "url": "https://github.com/eneroth/plato", "description": "Incrementally persists atom state to Local Storage in ClojureScript.", "stars": "29"}, {"name": "storage-atom", "url": "https://github.com/alandipert/storage-atom", "description": "ClojureScript atoms backed by HTML5 web storage.", "stars": "187"}, {"name": "Tuck", "url": "https://github.com/tatut/tuck", "description": "A micro framework for building Reagent apps that have a clean separation of view code and event processing code.", "stars": "28"}, {"name": "Waltz", "url": "https://github.com/ibdknox/waltz", "description": "A ClojureScript library that helps manage state in client-side applications using non-deterministic finite state machines.", "stars": "91"}]}, {"name": "Testing", "parent": "Awesome ClojureScript", "entries": [{"name": "cljs.test", "url": "https://github.com/clojure/clojurescript/wiki/Testing", "description": "Integrated test framework for ClojureScript (merged from [clojurescript.test (⭐166)](https://github.com/cemerick/clojurescript.test))", "stars": "9k"}, {"name": "Expectations", "url": "http://jayfields.com/expectations/", "description": "A minimalist's unit testing framework."}, {"name": "Speclj", "url": "https://github.com/slagyr/speclj", "description": "A TDD/BDD framework for Clojure and ClojureScript.", "stars": "424"}, {"name": "test.check", "url": "https://github.com/clojure/test.check", "description": "A generative property-based testing tool inspired by QuickCheck.", "stars": "1.1k"}]}, {"name": "Validation", "parent": "Awesome ClojureScript", "entries": [{"name": "Bouncer", "url": "https://github.com/leonardoborges/bouncer", "description": "A validation DSL for Clojure & Clojurescript applications.", "stars": "360"}, {"name": "form-validator-cljs", "url": "https://github.com/kwladyka/form-validator-cljs", "description": "Validate forms with spec and fn.", "stars": "54"}, {"name": "Validateur", "url": "http://clojurevalidations.info/", "description": "A Clojure validation library inspired by Ruby's ActiveModel."}]}, {"name": "Web Framework & Template", "parent": "Awesome ClojureScript", "entries": [{"name": "atw-om", "url": "https://github.com/zaiste/atw-om", "description": "A web application template with Clojure/Compojure, ClojureScript/Om & core.async.", "stars": "40"}, {"name": "Chestnut", "url": "https://github.com/plexus/chestnut", "description": "An Application template for ClojureScript/Om with live reloading.", "stars": "1.3k"}, {"name": "Clops", "url": "https://github.com/sveri/closp", "description": "An opinionated, full stack and easy to use web framework.", "stars": "172"}, {"name": "descjop", "url": "https://github.com/karad/lein_template_descjop", "description": "A template for Web based desktop application with Electron.", "stars": "392"}, {"name": "electron-template", "url": "https://github.com/ducky427/electron-template", "description": "A template for creating web based desktop applications with Electron, ClojureScript and Reagent.", "stars": "113"}, {"name": "Fulcro", "url": "http://fulcrologic.github.io/fulcro", "description": "A library for development of single-page full-stack web applications in clj/cljs."}, {"name": "Hoplon", "url": "http://hoplon.io", "description": "Write everything in Clojure and ClojureScript, clientside and serverside."}, {"name": "Keechma", "url": "http://keechma.com", "description": "Micro frontend framework for ClojureScript and Reagent."}, {"name": "Luminus", "url": "http://www.luminusweb.net/", "description": "It aims to provide a robust, scalable, and easy to use platform."}, {"name": "Macchiato", "url": "https://github.com/macchiato-framework/macchiato-core", "description": "It aims to provide an easy to use platform for Node.js.", "stars": "375"}, {"name": "Mies", "url": "https://github.com/swannodette/mies", "description": "A minimal ClojureScript project template.", "stars": "370"}, {"name": "Mr-Clean", "url": "https://bitbucket.org/sonwh98/mr-clean", "description": "A reagent compatible library without react.js dependency."}, {"name": "Precept", "url": "https://github.com/CoNarrative/precept", "description": "A declarative programming framework.", "stars": "642"}, {"name": "re-frame", "url": "https://github.com/Day8/re-frame", "description": "A Reagent Framework For Writing SPAs, in Clojurescript.", "stars": "5.2k"}, {"name": "Tenzing", "url": "http://martinklepsch.github.io/tenzing/", "description": "A ClojureScript template with no backend that uses Boot."}, {"name": "WebFUI", "url": "https://github.com/drcode/webfui", "description": "Client-Side Web Framework for ClojureScript.", "stars": "236"}]}, {"name": "WebSockets", "parent": "Awesome ClojureScript", "entries": [{"name": "Chord", "url": "https://github.com/jarohen/chord", "description": "Designed to bridge the gap between the triad of CLJ/CLJS, web-sockets and core.async.", "stars": "434"}, {"name": "Sente", "url": "https://github.com/ptaoussanis/sente", "description": "Clojure(Script) + core.async + WebSockets/Ajax.", "stars": "1.7k"}]}]} |