Forewarning: this API assumes one is familiar with the Fossil SCM, ideally in detail. The Fossil SCM can be found at:

libfossil is an experimental/prototype library API for the Fossil SCM. This API concerns itself only with the components of fossil which do not need user interaction or the display of UI components (including HTML and CLI output). It is intended only to model the core internals of fossil, off of which user-level applications could be built.

The project's repository and additional information can be found at:

This code is 100% hypothetical/potential, and does not represent any Official effort of the Fossil project. It is up for any amount of change at any time and does not yet have a stable API.

All Fossil users are encouraged to participate in its development, but if you are reading this then you probably already knew that :).

This effort does not represent "Fossil Version 2", but provides an alternate method of accessing and manipulating fossil(1) repositories. Whereas fossil(1) is a monolithic binary, this API provides library-level access to (some level of) the fossil(1) feature set (that level of support grows approximately linearly with each new commit).

Current status: alpha. Some bits are basically finished but there is a lot of work left to do. The scope is pretty much all Fossil-related functionality which does not require a user interface or direct user interaction, plus some range of utilities to support those which require a UI/user.