HackerReposA FIELD GUIDE TO OPEN SOURCE
ProSponsor the shelf♧ 0
← Back to top all-time
avsm
mirage
OCaml2010–2011
avsm / mirage

mirage

Cloud programming platform

4Distinct people
5Mentions
0Explicit recommenders
2GitHub stars
REPOSITORY AT A GLANCE

What to know before exploring

What it is

Cloud programming platform

GitHub

Where it is used

No documented product use has been verified yet.

What people are saying

No recommendation phrase was found in the indexed comments.

No classified warning is attached to this page. Read the discussions before treating silence as approval.

Also in these discussions

No other repository is repeatedly linked in the same discussions.

This week on Hacker News

Nov 7–Nov 14 UTC · Direct repository links and separately labeled related project stories. Indexed through 11/14/2026, 3:56:07 PM UTC.

No direct repository links were found in the indexed HN discussions over the past seven days. Older discussions are available below.

Mentions over time

HN mentions by month5 dated mentions

Observed mentions: 2010-07-16 17:25:50 UTC to 2011-04-06 08:32:59 UTC.

012010-07-01 00:00:00 UTC to 2010-08-01 00:00:00 UTC (exclusive): 1 mentions; 1 submissions, 0 commentsJul 20102010-08-01 00:00:00 UTC to 2010-09-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2010-09-01 00:00:00 UTC to 2010-10-01 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 comments2010-10-01 00:00:00 UTC to 2010-11-01 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 comments2010-11-01 00:00:00 UTC to 2010-12-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 commentsNov 20102010-12-01 00:00:00 UTC to 2011-01-01 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 comments2011-01-01 00:00:00 UTC to 2011-02-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2011-02-01 00:00:00 UTC to 2011-03-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2011-03-01 00:00:00 UTC to 2011-04-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2011-04-01 00:00:00 UTC to 2011-05-01 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 commentsApr 2011

Counts come from the repository’s dated source evidence. Index cutoff: 2026-11-02 08:16:59 UTC.

View mention counts and date ranges
UTC ranges include their start and exclude their end. Select a period to filter the source evidence.
PeriodStart (UTC)End (exclusive, UTC)MentionsSubmissionsComments
Jul 20102010-07-01 00:00:00 UTC2010-08-01 00:00:00 UTC110
Aug 20102010-08-01 00:00:00 UTC2010-09-01 00:00:00 UTC000
Sep 20102010-09-01 00:00:00 UTC2010-10-01 00:00:00 UTC101
Oct 20102010-10-01 00:00:00 UTC2010-11-01 00:00:00 UTC101
Nov 20102010-11-01 00:00:00 UTC2010-12-01 00:00:00 UTC000
Dec 20102010-12-01 00:00:00 UTC2011-01-01 00:00:00 UTC101
Jan 20112011-01-01 00:00:00 UTC2011-02-01 00:00:00 UTC000
Feb 20112011-02-01 00:00:00 UTC2011-03-01 00:00:00 UTC000
Mar 20112011-03-01 00:00:00 UTC2011-04-01 00:00:00 UTC000
Apr 20112011-04-01 00:00:00 UTC2011-05-01 00:00:00 UTC101

What Hacker News says

5 sources
I write a lot of ocaml code (for money, even!) and haven't touched haskell for about four years. I still find the haskell version here easier to read. I imagine what's tripping you up is the operator soup. Whilst ugly (one of the things that turned me off haskell) it is a lot easier to read once you are familiar with basic haskell typeclasses (applicative, functor etc). That said, the ocaml version could definitely be a lot nicer. Check out eg Yojson (search for 'let positive_int') http://forge.ocamlcore.org/scm/browser.php?group_id=153 Mirage (using MPL for zero copy parsing) https://github.com/avsm/mirage/blob/master/lib/net/direct/mp...
In High-Performance Web Applications in Haskell
(author here) Yes, the principles described here could easily be applied to a full Linux kernel. In fact, one of the hacks on my TODO list is to statically link a Mirage application against a Linux kernel (without a userspace) to run them on the bare metal. The point of defining a single address space and the smallest possible C runtime is to start from the other end: rather than stripping away 14 million lines of C code, I preferred writing a few thousand lines and jumping straight into my runtime. It is an awful lot easier to experiment with something like http://github.com/avsm/mirage/tree/master/runtime/xen/kernel... the full Linux kernel by quite a long way. Note that the current tree isn't finished yet; I'm pulling out dietlibc entirely at the moment, so the final kernel binaries float around the ~200KB mark for a typical webserv
Read the rest
er. Then, also consider hypervisor-only features like live migration or PV suspend/resume that can be further optimised heavily and more easily in a minios instead of Linux. Or that Mirage is single-vCPU and event-driven only (no interrupts), and it starts to look quite different from Linux. The Mirage IO library is also very portable; an application which uses only TCP/UDP (instead of the lower level Ethernet) will compile on Linux/*BSD using select/epoll/kqueue sockets to be "just" a high performance webserver. The cool thing is that by using these APIs, we can also build applications that compile to small specialised operating systems, while developing them as usual on UNIX. For a final entertaining hack, they are also portable enough to run directly in the browser as Javascript applications thanks to Jake Donham's ocamljs project. We're still integrating the Websocket code in to make this properly finished, but it's a fine side experiment into portability :-)
In Compiling OCaml directly to a new cloud operating system

MAKE YOURSELF AT HOME

A few shortcuts

/
Search the collection
?
Open this guide
Esc
Close dialogs and navigation

Your saved repositories and interests stay in this browser.