GSoC 2020 Project: Improving and Extending Services Kit

Blog post by leorize on Sun, 2020-05-31 15:57

It’s pretty long overdue for the post, but here I am.

Introduction:

I’m Leorize, a past GCI participant and a former active member of HaikuPorts. If you hang around the #haiku IRC channel, chances are that you might know me :)

I started contributing to Haiku around 2017, when I joined GCI. Since then, I’ve authored many bug fixes and ports, including some notable ports like libuv, mandoc, pkgconf, and pyqt.

This year, I’m excited to be selected as a GSoC mentee! You may have noticed that a lot of my work were mainly focused on the developer side of things, so this year, I’m looking at improving the user experience on Haiku.


About the project:

My project revolves around Services Kit. For those of you who don’t know what this is, it’s the application networking library that powers many of the applications that you may use: HaikuDepot, WebPositive, Weather…

This project aims to improve the performance/reliability of Services Kit, to introduce better support for HTTP/1.1 and HTTP/2 (which should result in a huge uplift in Web+ performance), to add support for more Internet protocols (like FTP), and to make Services Kit easier to use for developers.

Project plan:

I am spending a lot of time researching and experimenting with different designs for Services Kit to iron out any bottlenecks. The plan as of now is:

  • Further evaluate the API design for inefficiencies
    • Currently we decided to stick to the current threading-based design.
    • I’m looking into possible overhead associated with having to serialize the received data into BMessages.
  • Implement HTTP/1.1 support.
    • Also get proxies implemented.
  • Implement FTP support.
  • Give the documentation a nice touchup.

Work done so far:

Some links: