A Leiningen template for projects using Luminus.
The template initializes a base Luminus application.
Luminus requires Leiningen version 2.5.3+
The Luminus template ships out of the box with your latest Leiningen. Run the following command to create a new Luminus project which uses the default profile template:
lein new luminus <your project name>However, if you would like to attach further functionality to your template you can append profile hints for these extended features:
To add a profile simply pass it as an argument after your application name, e.g.:
lein new luminus myapp +cljsYou can also mix multiple profiles when creating the application, e.g.:
lein new luminus myapp +auth +postgresTo build as a executable Java ARchive (JAR) standalone, run the following command:
lein uberjarOr if using the +boot profile:
boot uberjarTo run the resulting standalone executable .jar file, do as you would with any other:
user$ java -jar target/myapp.jar
15-Sep-14 16:06:21 APc47d.4f39.65e6.uhn.ca INFO [myapp.handler] -
-=[myapp started successfully]=-
16:06:21.685 INFO [org.projectodd.wunderboss.web.Web] (main) Registered web context /
15-Sep-14 16:06:21 APc47d.4f39.65e6.uhn.ca INFO [myapp.core] - server started on port: 3002The app can be stress tested by running the Apache benchmark command:
ab -c 10 -n 1000 http://127.0.0.1:3000/
The memory and CPU usage can be inspected by running either jconsole or jvisualvm and attaching them to a running Luminus server.
Using async ring handlers is possible but adds another layer of complexity. If things go wrong you'll see a blank screen, possibly without any error message.
The server (undertow, jetty, servlet) and every middleware in the chain has to support async request handling.
To enable: add :async? true to your config maps.
Tested combinations:
- default (undertow)
- +war
- +servlet +war (this implies jetty9): http://localhost:3000/your-ns instead of just /
- +jetty +war: http://localhost:3000/your-ns instead of just /
- +jetty: works
- +http-kit
- +aleph
- chestnut
- duct
- fulcro-template
- pedestal
- reagent-template
- re-frame-template
- reagent-figwheel
- reagent-seed
- vase
There is also a public comparison chart of the common templates.
Copyright © 2016 Dmitri Sotnikov
Distributed under the MIT License.
