opam-version: "2.0" maintainer: "Anil Madhavapeddy " authors: "Anil Madhavapeddy " homepage: "https://github.com/mirage/ocaml-vmnet" bug-reports: "https://github.com/mirage/ocaml-vmnet/issues" dev-repo: "git+https://github.com/mirage/ocaml-vmnet.git" doc: "https://mirage.github.io/ocaml-vmnet/" license: "ISC" build: [ ["dune" "subst"] {dev} [ "dune" "build" "-p" name "-j" jobs ] [ "dune" "runtest" "-p" name "-j" jobs ] {with-test} ] depends: [ "ocaml" {>="4.04"} "dune" "ppx_sexp_conv" "sexplib" {>= "113.24.00"} "lwt-dllist" "macaddr" "lwt" {>="2.4.3"} "cstruct" {>="1.9.0"} "cstruct-unix" ] available: [ os = "macos" ] synopsis: "MacOS X `vmnet` NAT networking" description: """ macOS 10.10 (Yosemite) introduced the somewhat undocumented `vmnet` framework. This exposes virtual network interfaces to userland applications. There are a number of advantages of this over previous implementations: - Unlike [tuntaposx](http://tuntaposx.sourceforge.net/), this is builtin to MacOS X now and so is easier to package up and distribute for end users. - `vmnet` uses the XPC sandboxing interfaces and should make it easier to drop a hard dependency on running networking applications as `root`. - Most significantly, `vmnet` optionally supports NATing network traffic to the outside world, which was previously unsupported. These OCaml bindings are constructed against the documentation contained in the `` header file in Yosemite, and may not be correct due to the lack of any other example code. However, they do suffice to run [MirageOS](http://openmirage.org) applications that can connect to the outside world. Note the application must be configured to use DHCP: static IPs are not supported. """ url { src: "https://github.com/mirage/ocaml-vmnet/releases/download/v1.5.0/vmnet-v1.5.0.tbz" checksum: [ "sha256=7f99ac5da95340927a222267374727ff1a8f7333c89f06818984479cbb735921" "md5=1a74a48206920e1f750a90e20c812c72" ] }