Irmin is a library for persistent data stores with version-control following similar principles as Git. Irmin is written in pure OCaml (it does not depend on external C stubs) and runs on a variety of backends.
Work on Irmin started back in 2013 with partial funding from UCN, and early data structures were detailed in a JFLA paper in 2015. The original idea behind Irmin was to be able to apply the features of a distributed version-control system (DVCS) to big data. By using existing tools around source-code version control they were able to apply the same functionality as a library, therefore providing significant flexibility and efficiency at a reasonable cost.
Thomas Gazagnaire has matured the project extensively over the last 4 years, and this release seeks to build on feedback gathered from early users by delivering an API that is easier to use and more efficient than ever before.
Irmin use-cases are detailed in the GitHub repository.
- The functional innards of Docker for Mac and Windows
- CueKeeper: Getting things done in the browswer - CueKeeper is a TODO list that uses Irmin to manage history, reversion and synchronisation.
- What a distributed, version-controlled ARP cache gets you
- Persistent networking with Irmin and MirageOS
- Using Irmin to add fault-tolerance to the Xenstore database
- Introducing Irmin: Git-like distributed, branchable storage
- Mergeable persistent data structures
Development of Irmin was supported in part by the EU FP7 User-Centric Networking project, Grant No. 611001.
- Multicore OCaml ARM64 Backend
- Cambio, OCaml and Karaoke at the MirageOS Marrakech Hack Retreat 2017
- Using Menhir to Build Grammar Attributes
- OCaml 4.04.1 Released
- Parsing the Email Standard with TypeBeat
- An OCaml Backend for Agda with Malfunctional Programming
- Databox Open-Source Software Community Launch
- Composable Builds for OCaml with Jbuilder
- MirageOS Hack Updates
- Algebraic Subtyping: PhD thesis