/roll

Roll — backend for Clojure

Primary LanguageClojureMIT LicenseMIT

Roll framework

roll /ˈrōl/

informal. to begin to move or operate; start; commence. Let's roll at sunrise.


Roll makes it easy for your project to include a Webserver (Http-kit or Aleph), Websockets (Sente), REPL (nREPL), Routing (Reitit), Task Scheduling (Chime), File Watching (Hawk) and Logging (Timbre). Configure and manage them using a simple config file (Integrant).


Leiningen

roll is published on Clojars. Add the following to your project.clj's :dependencies:

[dimovich/roll "0.3.337"]

Clojure CLI/deps.edn

dimovich/roll {:mvn/version "0.3.337"}

Example

(To run this you'll need to install Clojure CLI tools.)

deps.edn

{:paths ["src"]

 :deps {dimovich/roll {:mvn/version "0.3.337"}}}

config.edn

{:roll/httpkit {:port 5000}

 :roll/handler {:routes [["/" example.server/index]]}}

src/example/server.clj

(ns example.server
  (:require [roll.core]))


(defn index [req]
  {:status 200 :body "Hello World!"})


(defn -main []
  (roll.core/init "config.edn"))

Start

clj -m example.server

Navigate to localhost:5000.


Example Projects

Basic and Descryptors.


For all possible options see config.edn.

For Aleph support see this git branch.