(local server (require :http.server)) (local headers (require :http.headers)) (local json (require :dkjson)) (fn on-stream [handler sv out] (let [hdrs (out:get_headers) method (hdrs:get ":method") path (or (hdrs:get ":path") "/") rh (headers.new)] (rh:append ":status" :200) (rh:append :content-type :text/plain) (out:write_headers rh false) (print "got oune" handler) (let [(obj pos err) (json.decode (out:get_body_as_string) 1 nil) ret (handler obj)] (out:write_chunk ret true)))) (fn new-server [handler] (server.listen { :host :localhost :port 8201 :onstream (partial on-stream handler) })) { :new new-server } ;(srv:listen) ;(srv:loop)