Xapian ported to WebAssembly for use in web browser

Geir Thomas Andersen | Runbox Solutions AS xapian at runbox.com
Wed Jun 20 03:54:40 BST 2018


Hi all,

First off, apologies if this list is not the correct place for this message. Although we have used Xapian with our email services for a long time (over 10 years) we haven't had the opportunity to contribute or participate in the Xapian community until now. We might therefore not be entirely familiar with acceptable protocol here, but we thought others might be interested in a new project of ours that integrates a fork of the Xapian project.

A brief introduction: We are Runbox Solutions AS, a company based in Norway that provides secure and privacy-oriented email services. As mentioned we have for a long time used Xapian as part of our email services, to index large amounts of messages on our servers and provide search capabilities through our webmail interface. We have always been impressed with Xapian's processing speed, reliability, and adaptability, and we continue to be grateful for choosing Xapian for our webmail service back in 2008.

Recently we have developed a client based webmail app utilizing a Xapian index that can be downloaded to and generated by the browser. We have done this by porting Xapian to WebAssembly using the C to WebAssembly compiler from emscripten.org. The Xapian database is stored in the browser using IndexedDB, which is available through the IDBFS file system of emscripten.

Our fork can be found at https://github.com/runbox/xapian, and the diff can be seen at https://github.com/xapian/xapian/compare/master...runbox:master.

The result is a very fast search experience, which can be demonstrated at https://runbox.com/app (please sign up a free trial account at https://runbox.com/signup first).

We hope our fork can be of interest to others, and welcome any comments or questions.


Best regards,

Geir Thomas Andersen
Managing Director
Runbox Solutions AS



More information about the Xapian-discuss mailing list