Zurück zum Ranking

anmonteiro/lumo

Clojure

Fast, cross-platform, standalone ClojureScript environment

clojurescriptlumoclojurejavascriptreplself-hostedcross-platform
Sterne-Wachstum
Sterne
1.9k
Forks
82
Wochenwachstum
Issues
85
5001k1.5k
Jan. 2023März 2024Mai 2025Juli 2026
README
lumo logo

Lumo

Backers on Open Collective Sponsors on Open Collective

Lumo is a standalone ClojureScript environment that runs on Node.js and the V8 JavaScript engine. It starts up instantaneously and provides out-of-the-box access to the entire Node.js ecosystem, including a ClojureScript REPL.

Lumo also provides a ClojureScript build API, making it possible to compile ClojureScript projects entirely without the JVM, thanks to the experimental JavaScript version of the Google Closure Compiler.

Read the announcement blog post and our pledge!

If you enjoy Lumo, consider backing or sponsoring the project on Open Collective

Build status

Platform Status
macOS CircleCI
Linux Build Status
Windows Build status

Contents

Installation

Via NPX

npx is a package runner that comes with node6+. You can try lumo "without install" with:

npx -p lumo-cljs lumo

Via NPM

$ npm install -g lumo-cljs

If you get a permission failure, try this:

$ npm install -g lumo-cljs --unsafe-perm

Note: the installed binary will be named lumo rather than lumo-cljs

Via Homebrew (macOS)

$ brew install lumo

Note: If you want to install a binary built from master, run brew install --HEAD lumo (at your own responsibility).

Docker

$ docker pull anmonteiro/lumo:latest
$ docker run -it anmonteiro/lumo

Manual

  1. Download the latest release.
  2. Move it to somewhere in your $PATH.

Using Lumo

Interactive ClojureScript REPL

Enter lumo at the command line to launch the ClojureScript REPL.

$ npm init -y && npm install express request request-promise
$ lumo
Lumo 1.10.1
ClojureScript 1.10.520
...
cljs.user=> (require 'express)
cljs.user=> (require '[request-promise :as rp])
cljs.user=> (def port 3000)
#'cljs.user/port
cljs.user=> (-> (express)
       #_=>     (.get "/" (fn [req res] (.send res "Hello Lumo")))
       #_=>     (.listen port))
#object[Server [object Object]]
cljs.user=> (-> (str "http://localhost:" port)
       #_=>     rp
       #_=>     (.then (fn [body] (println "\nReceived:" body)))
       #_=>     (.catch (fn [err] (println "\nOops:" (.-stack err)))))
#object[Promise [object Promise]]
Received: Hello Lumo

Check out lumo -h for usage instructions and supported command line options. Also, see the announcement blog post.

Compile ClojureScript

Lumo can compile ClojureScript code as of version 1.2.0. See the introductory blog post. It is still considered experimental, given the relatively new Google Closure Compiler port to JavaScript, but it aims to be at feature parity with the JVM ClojureScript compiler.

The build API mirrors the ClojureScript one. Please reference its Quick Start and the Compiler Options. You can basically just replace the namespace with lumo.build.api:

(require 'lumo.build.api)

(lumo.build.api/build "src" {:output-to "out/main.js"})

The following example also shows how to use multiple source folders.

(require '[lumo.build.api :as b])

(b/build
 (b/inputs "src1" "src2") ;; variadic
 {:output-to "out/main.js"})

Building

To build Lumo from source:

  1. Make sure you have installed Boot, Yarn and Node.js (version >= 8).
  2. At the root of the repository, run: boot release.
  3. The resulting binary can be found in build/lumo (or build\lumo.exe if you're on Windows).

Contributing

See CONTRIBUTING.md.

Backers

Support us with a monthly donation and help us continue our activities. [Become a backer]

Sponsors

Become a sponsor and get your logo on our README on Github with a link to your site. [Become a sponsor]

Copyright © 2016-2017 António Nuno Monteiro

Distributed under the Eclipse Public License (see LICENSE).

Ähnliche Repositories
penpot/penpot

Penpot: The open-source design platform for Product teams that need scalable collaboration.

ClojureMozilla Public License 2.0ux-designux-experience
penpot.app
57.1k3.8k
logseq/logseq

A privacy-first, open-source platform for knowledge management and collaboration. Download link: http://github.com/logseq/logseq/releases. roadmap: https://logseq.io/p/NX4mc_ggEV

ClojureGNU Affero General Public License v3.0knowledge-basegraph
logseq.com
44k2.7k
LightTable/LightTable

The Light Table IDE ⛺

ClojureMIT Licenseclojurescriptide
lighttable.com
11.7k911
tonsky/datascript

Immutable database and Datalog query engine for Clojure, ClojureScript and JS

ClojureEclipse Public License 1.0clojuredatabase
5.8k317
day8/re-frame

A ClojureScript framework for building user interfaces, leveraging React

ClojureMIT Licensereagentclojurescript
day8.github.io/re-frame/
5.5k711
reagent-project/reagent

A minimalistic ClojureScript interface to React.js

ClojureMIT Licensereagentclojurescript
reagent-project.github.io
4.9k412
status-im/status-legacy

a free (libre) open source, mobile OS for Ethereum

ClojureMozilla Public License 2.0ethereummessenger
status.app
4k993
status-im/status-mobile

a free (libre) open source, mobile OS for Ethereum

ClojureMozilla Public License 2.0ethereummessenger
status.app
3.9k989
viebel/klipse

Klipse is a JavaScript plugin for embedding interactive code snippets in tech blogs.

HTMLGNU General Public License v3.0clojureclojurescript
blog.klipse.tech
3.1k150
bhauman/lein-figwheel

Figwheel builds your ClojureScript code and hot loads it into the browser as you are coding!

ClojureEclipse Public License 1.0clojurescriptclojure
2.9k204
thheller/shadow-cljs

ClojureScript compilation made easy

ClojureEclipse Public License 1.0clojurescriptcljs
github.com/thheller/shadow-cljs
2.4k189
Olical/conjure

Interactive evaluation for Neovim (Clojure, Fennel, Scheme, Python, JavaScript, PHP, R, Lua, Rust and more!)

FennelThe Unlicenseclojureclojurescript
conjure.oli.me.uk
2.1k146