2025-10-29 18:51:46 +01:00
|
|
|
open Mirage
|
|
|
|
|
|
2025-11-06 19:24:23 +01:00
|
|
|
let pgx_setup = runtime_arg ~pos:__POS__ "Unikernel.pgx_setup"
|
|
|
|
|
|
|
|
|
|
let packages =
|
|
|
|
|
[
|
2025-11-08 01:38:06 +01:00
|
|
|
package ~min:"0.0.9" "mimic-happy-eyeballs"; package ~min:"0.13.0" "h2";
|
|
|
|
|
package "logs"; package "mirage-logs";
|
|
|
|
|
package "rresult";
|
2025-11-06 19:24:23 +01:00
|
|
|
]
|
2025-11-08 01:38:06 +01:00
|
|
|
(*
|
|
|
|
|
@ [
|
|
|
|
|
package "pgx"; package "pgx_lwt"; package "pgx_lwt_mirage";
|
|
|
|
|
package "conduit";
|
|
|
|
|
]
|
|
|
|
|
*)
|
|
|
|
|
(*
|
|
|
|
|
@ [ package ~min:"10.0.0" "dns-client"; package "dns-client-mirage" ]
|
|
|
|
|
*)
|
|
|
|
|
(*
|
|
|
|
|
@ [
|
|
|
|
|
package ~min:"2.2.4" "caqti"; package ~min:"2.2.4" "caqti-tls";
|
|
|
|
|
package "caqti-driver-pgx"; package "caqti-mirage"; package "caqti-lwt";
|
|
|
|
|
package "dns-client-mirage";
|
|
|
|
|
]
|
|
|
|
|
*)
|
2025-11-06 19:24:23 +01:00
|
|
|
|
2025-11-02 13:32:06 +01:00
|
|
|
let mte =
|
2025-11-06 19:24:23 +01:00
|
|
|
main "Unikernel.Make" ~local_libs:[ "mte" ] ~packages
|
|
|
|
|
~runtime_args:[ pgx_setup ]
|
|
|
|
|
(kv_ro
|
|
|
|
|
@-> kv_ro
|
|
|
|
|
@-> kv_ro
|
|
|
|
|
@-> tcpv4v6
|
|
|
|
|
@-> http_server
|
|
|
|
|
@-> stackv4v6
|
|
|
|
|
@-> happy_eyeballs
|
|
|
|
|
@-> job)
|
2025-10-29 18:51:46 +01:00
|
|
|
|
|
|
|
|
let stackv4v6 = generic_stackv4v6 default_network
|
|
|
|
|
let tcpv4v6 = tcpv4v6_of_stackv4v6 stackv4v6
|
2025-11-06 19:24:23 +01:00
|
|
|
let happy_eyeballs = generic_happy_eyeballs stackv4v6
|
|
|
|
|
|
|
|
|
|
(*let dns = generic_dns_client stackv4v6 happy_eyeballs*)
|
2025-11-02 13:32:06 +01:00
|
|
|
let certificates = crunch "../data/tls/certificates"
|
|
|
|
|
let keys = crunch "../data/tls/keys"
|
2025-11-02 18:28:11 +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-06 19:24:23 +01:00
|
|
|
register "mte"
|
|
|
|
|
[
|
|
|
|
|
mte
|
|
|
|
|
$ assets
|
|
|
|
|
$ certificates
|
|
|
|
|
$ keys
|
|
|
|
|
$ tcpv4v6
|
|
|
|
|
$ http_server
|
|
|
|
|
(* TODO maybe we can avoid to repeat the stack? *)
|
|
|
|
|
$ stackv4v6
|
|
|
|
|
$ happy_eyeballs;
|
|
|
|
|
]
|