CrystFEL is distributed under the GNU GPL, which means that you can, and should get involved with its development!

Git repository

The very latest pre-release version of CrystFEL can be found in the public Git repository. The best way to contribute changes is to make commits on top of the 'master' branch and either email them (see here) or publish them via your own repository. To get access, install Git and run:

$ git clone

You can browse the repository on the web.

To compile CrystFEL from Git, there is one extra step to perform. Here is the 'recipe':

$ git clone
$ ./
$ ./configure
$ make
$ make install

The "" step requires some extra packages to be installed on your system, such as libtool, autoconf and gtk-doc.

Structure of CrystFEL and libcrystfel

The core functions of CrystFEL are contained in a shared library called libcrystfel. The aim of libcrystfel is not to be a full crystallographic library, though it does a reasonable job of that anyway. libcrystfel contains, amongst other things:

Outside programs can make use of libcrystfel without being parts of CrystFEL themselves. Possible uses might include: detector geometry refinement, visualisation of results, import and export of data to/from other programs, use of CrystFEL's functionality in other programs, and many more.