All Projects → anmonteiro → Lumo

anmonteiro / Lumo

Licence: epl-1.0
Fast, cross-platform, standalone ClojureScript environment

Programming Languages

javascript
184084 projects - #8 most used programming language
clojure
4091 projects
Batchfile
5799 projects
shell
77523 projects

Projects that are alternatives of or similar to Lumo

Sparkleshare
Share and collaborate by syncing with any Git repository instantly. Linux, macOS, and Windows.
Stars: ✭ 4,661 (+150.46%)
Mutual labels:  self-hosted, cross-platform
Myazo
Self-hosted, cross-platform Gyazo alternative
Stars: ✭ 154 (-91.72%)
Mutual labels:  self-hosted, cross-platform
Finkel
Haskell in S-expression
Stars: ✭ 146 (-92.15%)
Mutual labels:  repl
Discord Musicbot
Very simple discord music bot with the discord.js with Song Name playing. It can able to play music with the song name
Stars: ✭ 148 (-92.05%)
Mutual labels:  repl
Stitch
Python Remote Administration Tool (RAT)
Stars: ✭ 2,018 (+8.44%)
Mutual labels:  cross-platform
Spiral
Emacs Clojure IDE based on UNREPL
Stars: ✭ 146 (-92.15%)
Mutual labels:  repl
Imguifontstudio
Font Helper Gui Tool for programming
Stars: ✭ 149 (-91.99%)
Mutual labels:  cross-platform
Rpcx Gateway
http gateway for rpcx services. Clients in any programming languages can call them
Stars: ✭ 145 (-92.21%)
Mutual labels:  cross-platform
Nana
a modern C++ GUI library
Stars: ✭ 1,961 (+5.37%)
Mutual labels:  cross-platform
Commafeed
Google Reader inspired self-hosted RSS reader.
Stars: ✭ 1,842 (-1.02%)
Mutual labels:  self-hosted
Dgle
Powerful independent cross-platform engine for 2D/3D games and visualizations. Young, strong and crazy!
Stars: ✭ 149 (-91.99%)
Mutual labels:  cross-platform
Android Debugport
A Read-Eval-Print-Loop server for Android and SQLite
Stars: ✭ 147 (-92.1%)
Mutual labels:  repl
Siris
DEPRECATED: The community driven fork of Iris. The fastest web framework for Golang!
Stars: ✭ 146 (-92.15%)
Mutual labels:  cross-platform
Algernon
🎩 Small self-contained pure-Go web server with Lua, Markdown, HTTP/2, QUIC, Redis and PostgreSQL support
Stars: ✭ 1,880 (+1.02%)
Mutual labels:  cross-platform
Downline
Free cross-platform desktop app to download videos and music from YouTube and many other sites
Stars: ✭ 146 (-92.15%)
Mutual labels:  cross-platform
Kastri
Cross-platform library for Delphi
Stars: ✭ 148 (-92.05%)
Mutual labels:  cross-platform
Photoprism
Photos App powered by Go and Google TensorFlow 🌈
Stars: ✭ 17,946 (+864.32%)
Mutual labels:  self-hosted
Omnigui
A cross-platform GUI framework from scratch just to learn
Stars: ✭ 147 (-92.1%)
Mutual labels:  cross-platform
Janet
A dynamic language and bytecode vm
Stars: ✭ 2,216 (+19.08%)
Mutual labels:  repl
Cpu features
A cross platform C99 library to get cpu features at runtime.
Stars: ✭ 1,945 (+4.51%)
Mutual labels:  cross-platform

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 & License

Copyright © 2016-2017 António Nuno Monteiro

Distributed under the Eclipse Public License (see LICENSE).

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].