functoria

A DSL to organize functor applications
README


About

MirageOS is a library operating system that constructs unikernels for
secure, high-performance network applications across various cloud
computing and mobile platforms. Developers can write code on a
traditional OS such as Linux or macOS. They can then compile their
code into a fully-standalone, specialised unikernel that runs under
the Xen or KVM hypervisors and lightweight hypervisors like FreeBSD's
BHyve, OpenBSD's VMM. These unikernels can deploy on public clouds,
like Amazon's Elastic Compute Cloud and Google Compute Engine, or
private deployments.

The most up-to-date documentation can be found at the
homepage. The site is a self-hosted
unikernel
. Simpler skeleton
applications
are also
available online. MirageOS unikernels repositories are also available
here or
there.

This repository

This repository contains the mirage command-line tool to create and
deploy applications with MirageOS. This tool wraps the specialised
configuration and build steps required to build MirageOS on all the
supported targets.

Local install

You will need the following:

  • a working OCaml compiler (4.08.0 or higher).

  • the Opam source package manager (2.1.0 or higher).

  • an x86_64 or armel Linux host to compile Xen kernels, or FreeBSD, OpenBSD or
    MacOS X for the solo5 and userlevel versions.

Then run:

$ opam install mirage
$ mirage --version

This should display at least version 4.0.0.

Using mirage

There are multiple stages to using mirage:

  • write config.ml to describe the components of your applications;

  • call mirage configure to generate the necessary code and metadata;

  • optionally call make depends to install external dependencies and
    download Opam packages in the current dune workspace.

  • call dune build to build a unikernel.

You can find documentation, walkthroughs and tutorials over on the
MirageOS website.
The install instructions
are a good place to begin!

Install
Published
26 Aug 2022
Maintainers
Sources
mirage-4.2.1.tbz
sha256=ef037cd8e661ecb0d2ccbe9236ebbf267a24b13fcf80cb3c25fe6fd2b9cd6678
sha512=e99a630f594941c79d41bc028195e495708c9d4ae6f93152c7118d0b5e85e01a36119af19a9853da16fbc4860fd74e3026b9d81f85188ccacc8f99525cfe3a60
Dependencies
functoria-runtime
= version & with-test
alcotest
with-test
uri
>= "4.2.0"
emile
>= "1.1"
fmt
>= "0.8.7"
result
>= "1.5"
rresult
>= "0.7.0"
cmdliner
>= "1.1.1"
dune
with-test & >= "3.0.0"
dune
>= "2.9.0"
ocaml
>= "4.08.0"
Reverse Dependencies
mirage
= "4.2.1"