(local server (require :http.server)) (local headers (require :http.headers)) (fn on-stream [handler sv out] (let [hdrs (out:get_headers) method (hdrs:get ":method") path (or (hdrs:get ":path") "/")] (let [body (handler (out:get_body_as_string))] (doto (headers.new) (: :append ":status" :200) (: :append :content-type :text/plain) (out:write_headers false)) (out:write_chunk body true)))) (fn new-server [handler] (server.listen { :host :localhost :port 8201 :onstream (partial on-stream handler) })) { :new new-server } ;(srv:listen) ;(srv:loop)