Irmin is a key-value store based on the same principles as Git. This means that for existing Git users it provides many familiar features: branching/merging, history and the ability to restore to any previous state.

Typically Irmin is used by embedding it into an OCaml application, but can also be accessed using HTTP using irmin-http or GraphQL using irmin-graphql. It is most often used to store application data, like configuration values, shared state or checkpoint data, but there is nothing stopping you from using it as a general purpose key-value store too. Additionally, since it is compatible with Git, Irmin can be used to interact with Git repositories directly from within your application.

Take a moment to skim the README to familiarize yourself with some of the concepts. This tutorial should always be up to date with the latest opam release. If you find that anything is outdated, missing or unclear then please file an issue!