Wikimedia CH/Grant apply/MHD2 for Kiwix
Infodata
[edit]- Name of the project: Migrating Kiwix to GNU libmicrohttpd v2
- Amount requested: 25,000 CHF
- Type of grantee: Organization / group
- Name of the contact: Christian Grothoff
- Contact: goc4 -at- bfh.ch
In case of questions, please write to grant
wikimedia.ch
The problem and the context
[edit]We've over the last 18 months made significant enhancements to the security, maintainability, performance and features of GNU libmicrohttpd resulting in a new version of the libary (MHD2). However, these significant changes --- for the first time in the 15 years of MHD existing --- completely break API compatibility.
GNU libmicrohttpd is a key dependency of Kiwix, a Wikipedia offline reader targeting billions of readers with limited Internet access. Kiwix is currently using the libmicrohttpd 1.x API (aka MHD1).
What is the problem you're trying to solve?
[edit]We propose to enhance Kiwix by porting it to MHD2, thus enabling it to benefit from the various improvements (security, code size, performance, improved crypto-libraries, maintainability) of MHD2. As maintainers of MHD2, we also want to make sure that all use-cases of Kiwix are well-supported by the new MHD2 API.
This will ensure that Kiwix continues to use the MHD2 API, which we are committed to supporting in the long-term and which brings advantages to clients.
What is your solution to this problem (please explain the context and the solution)?
[edit]We have talked to the Kiwix team and opened a ticket on their bug tracker, which received first positive feedback from the Kiwix maintainer:
https://github.com/kiwix/libkiwix/issues/1211
In the ticket, we give some more details on what the change would entail. Ultimately, beyond writing the actual code, we will of course work with the Kiwix developers to make sure that the patch meets their quality standards.
Project goals
[edit]A patch accepted by the Kiwix maintainers that ports the Kiwixe code (and build system) to MHD2.
Project impact
[edit]How will you know if you have met your goals?
[edit]Kiwix maintainers merge our patch.
Do you have any goals or metrics around participation or content?
[edit]Well, ultimately of course the new Kiwix version should then be deployed to the Kiwix users.
Project plan
[edit]Activities
[edit]Only software development, plus of course some coordination with the Kiwix developers.
Budget
[edit]25,000 CHF. The project should be "hosted" under the umbrella of the Bern University of Applied Sciences (bfh.ch), so as a grant (or contract) to the university. We cannot do this directly as individuals as Evgeny needs to be legally employed for his visa. BFH is a non-profit we can generally use for such work.
Community engagement
[edit]We've had e-mails and calls (and bug tracker interactions) with the Kiwix maintainers. We are the GNU libmicrohttpd maintainers ;-). All of us are in Switzerland.
Wikimedia CH decision
[edit]While the proposal is well written and addresses a valid technical need, Wikimedia CH cannot fund it at this time. With limited resources, we must prioritize grants that have a more direct and clearly measurable impact on Wikimedia projects. In this case, the expected impact is largely indirect and depends on external adoption timelines, which makes it difficult for us to justify funding compared to other requests currently under review. --Ilario (talk) 21:34, 15 February 2026 (UTC)