Skip to content

Minimalize HTTP modules

Carlos Garnacho requested to merge wip/carlosg/remote-module-reduction into master

As the split of HTTP modules currently works, these contain the implementations of a substantial portion of the libtracker-sparql library. Implementing this large portion as a module with limited access to the internal API requires these modules to be larger than they actually need to be, and incurs in code being doubly compiled or statically linked.

This MR makes these modules more constrained, implementing 2 objects (TrackerHttpClient and TrackerHttpServer) that remote connection code uses underneath. These modules do no longer require access to other tracker internals, and all the parts that do (remote implementations for TrackerSparqlConnection, TrackerSparqlStatement and TrackerEndpoint) are compiled together in libtracker-sparql, thus have unconstrained access without weird tricks.

This also means a considerable size reduction of the module .so files.

Merge request reports