ocaml
open Lwt.Infix
let main () =
let http_callback _conn req _body =
let headers = Cohttp.Request.headers req in
let response_body = "Hello, Mirage!" in
let response = Cohttp.Response.make ~status:`OK ~headers () in
Cohttp_lwt_unix.Server.respond_string ~status:`OK ~body:response_body ~headers:response.headers ()
in
let server = Cohttp_lwt_unix.Server.make_response_action http_callback in
Cohttp_lwt_unix.Server.create ~mode:(`TCP (`Port 8080)) server
>>= fun _server -> Lwt.return_unit
let () = Lwt_main.run (main ())
ocaml
open Mirage
let main =
foreign
~packages:[package "mirage-http"; package "cohttp-lwt-unix"]
"Unikernel.Main" (stackv4 @-> job)
let stack = generic_stackv4 default_network
let () =
register "mirage_http_example" [main $ stack]