Skip to content
Branch: master
Find file Copy path
Find file Copy path
Fetching contributors…
Cannot retrieve contributors at this time
52 lines (47 sloc) 1.94 KB
opam-version: "2.0"
maintainer: "Anil Madhavapeddy <>"
authors: "Anil Madhavapeddy <>"
homepage: ""
bug-reports: ""
dev-repo: "git+"
doc: ""
license: "ISC"
build: [
[ "dune" "subst"] {pinned}
[ "dune" "build" "-p" name "-j" jobs ]
[ "dune" "runtest" "-p" name "-j" jobs ] {with-test}
depends: [
"ocaml" {>="4.04"}
"dune" {build}
"ppx_sexp_conv" {< "v0.13"}
"sexplib" {>= "113.24.00" & < "v0.13"}
"lwt" {>="2.4.3"}
"cstruct" {>="1.9.0"}
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](, 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 `<vmnet.h>` 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]( applications that can connect to the
outside world.
Note the application must be configured to use DHCP: static IPs are not supported.
url {
checksum: "md5=13234e26d22260cdbcb90428de6ff755"
You can’t perform that action at this time.