This commit is contained in:
swrup 2025-11-06 19:24:23 +01:00
parent 6318be5aad
commit 24c7ec2b17
8 changed files with 113 additions and 21 deletions

View file

@ -1,20 +1,33 @@
(* mirage >= 4.9.0 & < 4.11.0 *)
open Mirage
let pgx_setup = runtime_arg ~pos:__POS__ "Unikernel.pgx_setup"
let packages =
[
package "digestif"; package ~min:"0.0.9" "mimic-happy-eyeballs";
package "hxd" ~sublibs:[ "core"; "string" ]; package "rresult";
package ~min:"0.13.0" "h2"; package ~min:"10.0.0" "dns-client";
package "pgx"; package "pgx_lwt"; package "pgx_lwt_mirage"; package "logs";
package "mirage-logs"; package "conduit"; package "duration";
]
let mte =
main "Unikernel.Make" ~local_libs:[ "mte" ]
~packages:
[
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" ];
]
(kv_ro @-> kv_ro @-> kv_ro @-> tcpv4v6 @-> http_server @-> job)
main "Unikernel.Make" ~local_libs:[ "mte" ] ~packages
~runtime_args:[ pgx_setup ]
(kv_ro
@-> kv_ro
@-> kv_ro
@-> tcpv4v6
@-> http_server
@-> stackv4v6
@-> happy_eyeballs
@-> job)
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
let happy_eyeballs = generic_happy_eyeballs stackv4v6
(*let dns = generic_dns_client stackv4v6 happy_eyeballs*)
let certificates = crunch "../data/tls/certificates"
let keys = crunch "../data/tls/keys"
let assets = crunch "../data/assets"
@ -22,4 +35,15 @@ let port = Runtime_arg.create ~pos:__POS__ "Unikernel.port"
let http_server = paf_server ~port tcpv4v6
let () =
register "mte" [ mte $ assets $ certificates $ keys $ tcpv4v6 $ http_server ]
register "mte"
[
mte
$ assets
$ certificates
$ keys
$ tcpv4v6
$ http_server
(* TODO maybe we can avoid to repeat the stack? *)
$ stackv4v6
$ happy_eyeballs;
]