Xapian Developer Guide 1.4

Xapian is an open source search engine library, which allows developers to add advanced indexing and search facilities to their own applications. This manual aims to explain how to work on and contribute to Xapian itself; if you want to use Xapian in your own project, you should look at our Xapian user manual.


This is very early days for this guide, so please let us know any issues you spot or how we can improve it in any way. There’s a lot of additional information about developing for Xapian in the HACKING file in xapian-core which we hope to move here in future, and in the meantime that’s a good place to look for information on writing and running tests, debugging, and options available when configuring the source tree. It also contains our documentation for making a Xapian release.

Since Xapian is an open source project, it is entirely dependent on contributions – many of them from people like you! These contributions come in many forms, from spotting when some documentation isn’t clear and maybe improving it, through fixing bugs up to designing and implementing completely new features. We need all types of contribution for Xapian to continue to evolve and serve its users.

This guide is intended to:

  • help you understand how to make and contribute changes to Xapian
  • lay out some of our “rules of the road”, which are there to make it easier for everyone to collaborate on Xapian

We recommend you at least skim through all of this guide, so you know what information is available to you. However, if you absolutely must jump in head first, you should at least read our advice for new contributors.


Talk about how to manage security issues.

Getting in touch

The Xapian community typically works “in the open”, via mailing lists and an IRC channel:

  • Our mailing lists are open for anyone to join, although (because we don’t want to relay spam to everyone) if you aren’t subscribed to the list someone will have to manually approve your message. Please be patient and don’t resend a message just because it doesn’t appear right away.
  • We’re on #xapian on irc.freenode.net. IRC is a simple text chat system where many members of the community hang out; although because we’re distributed around the world, you may not get an instant response. That doesn’t mean we’re ignoring you, so either hang on for a reply, or you can use the mailing list instead.