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.
- Composable Builds for OCaml with Jbuilder
- MirageOS Hack Updates
- Algebraic Subtyping: PhD thesis
- Databox Launch Event: 24th March, Cambridge
- Formalizing the OCaml multicore memory model
- MirageOS Hack Event 2017 in Marrakech
- Scaling Software Modularization with Topkg
- MirageOS 3.0.0 Released!
- Making PPXs portable with ocaml-migrate-parsetree
- Feedback on cmdliner doc language changes