2025-10-29 18:51:46 +01:00
|
|
|
(* mirage >= 4.9.0 & < 4.11.0 *)
|
|
|
|
|
open Mirage
|
|
|
|
|
|
2025-11-02 13:32:06 +01:00
|
|
|
let mte =
|
|
|
|
|
main "Unikernel.Make" ~local_libs:[ "mte" ]
|
2025-10-29 18:51:46 +01:00
|
|
|
~packages:
|
|
|
|
|
[
|
2025-10-30 15:51:03 +01:00
|
|
|
package "digestif"; package ~min:"0.0.9" "mimic-happy-eyeballs";
|
|
|
|
|
package "hxd" ~sublibs:[ "core"; "string" ]; package "rresult";
|
|
|
|
|
package "h2" ~min:"0.13.0"; package "base64" ~sublibs:[ "rfc2045" ];
|
2025-10-29 18:51:46 +01:00
|
|
|
]
|
2025-11-05 19:41:38 +01:00
|
|
|
(kv_ro @-> kv_ro @-> kv_ro @-> tcpv4v6 @-> http_server @-> job)
|
2025-10-29 18:51:46 +01:00
|
|
|
|
|
|
|
|
let stackv4v6 = generic_stackv4v6 default_network
|
|
|
|
|
let tcpv4v6 = tcpv4v6_of_stackv4v6 stackv4v6
|
|
|
|
|
let he = generic_happy_eyeballs stackv4v6
|
|
|
|
|
let dns = generic_dns_client stackv4v6 he
|
2025-11-02 13:32:06 +01:00
|
|
|
let certificates = crunch "../data/tls/certificates"
|
|
|
|
|
let keys = crunch "../data/tls/keys"
|
2025-11-04 18:18:47 +01:00
|
|
|
let assets = crunch "../data/assets"
|
2025-10-29 18:51:46 +01:00
|
|
|
let port = Runtime_arg.create ~pos:__POS__ "Unikernel.port"
|
|
|
|
|
let http_server = paf_server ~port tcpv4v6
|
|
|
|
|
|
|
|
|
|
let () =
|
2025-11-05 19:41:38 +01:00
|
|
|
register "mte" [ mte $ assets $ certificates $ keys $ tcpv4v6 $ http_server ]
|