Git is one of the most popular tools for developers and -- while this is usually little known -- part of the power of Git comes from functional concepts.
ocaml-git is a re-implementation of the Git protocol(s) in pure OCaml: it can synchronize (push and pull) with remote Git servers and it can inspect, create and modify local Git repositories (all Git object kinds are supported, including compressed PACK files).
Using Git as a library with
ocaml-git unlocked a new ecosystem of Git-based applications, including
Irmin, a Git-like database or
datakit, a Git-like orchestration tool (both used in production at Docker Inc).. Blockchain ledger such as
Tezos, tamper-evident logging system, or conflict-free replicated datatypes have also been built using
In this tutorial, we will learn more about Git using OCaml. The first part of the talk will be dedicated to understanding the on-disk Git format and to explaining the functional concepts that Git uses to be really efficient: immutability, radix/patricia tree, etc.
In the second part of this talk, we will implement a simple application to display the history of local Git repositories on a webpage, using
The main goal of this tutorial is to understand the core of Git; where, why and how Git uses functional concepts; and how to interface Git repositories with OCaml applications.
The tutorial will primarily focus on using
js_of_ocaml. At the end of the tutorial, people will have built a web interface to show the history of Git repositories.
This tutorial uses OCaml and it is therefore expected that attendees will have prior understanding of OCaml language and concepts. Having experience will
js_of_ocaml will also help, but is not necessary as templates for the toolchain workflow will be provided.
A working dev environment for OCaml, using your favorite text editor.
js_of_ocaml can be installed beforehand using opam.