Skip to content

Instantly share code, notes, and snippets.

@mikeknep
Created August 15, 2015 19:46
Show Gist options
  • Save mikeknep/5104a391ad764426b97d to your computer and use it in GitHub Desktop.
Save mikeknep/5104a391ad764426b97d to your computer and use it in GitHub Desktop.
Basic http server with http-kit and boot

Start server with boot run (task) or ./build.boot (run entire script as executable)

#!/usr/bin/env boot
(set-env! :dependencies '[[http-kit/http-kit "2.1.18"]])
(require '[org.httpkit.server :refer [run-server]])
(defn handler
[request]
(prn request)
{:status 200
:headers {}
:body "hello there!"})
(deftask run
[]
(let [shutdown (promise)
stop-server (run-server handler {:port 3000})]
(do
(.addShutdownHook (.. Runtime getRuntime)
(Thread. (fn []
(do
(println "shutting down...")
(@stop-server)
(deliver shutdown nil)))))
(println "listening on 3000")
@shutdown)))
(defn -main [& args]
(run))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment