Are you a student qualified to run for Summer of Code 2020? I'm willing to mentor the following project for librsvg.
Project: Revamp the text engine in librsvg
Librsvg supports only a few features of the SVG Text specification. It requires extra features to be really useful:
Proper bidirectional support. Librsvg supports the
unicode-bidiproperties for text elements, among others, but in a very rudimentary fashion. It just translates those properties to Pango terminology and asks
PangoLayoutto lay out the text. SVG really wants finer control of that, for which...
... ideally you would make librsvg use Harfbuzz directly, or a wrapper that is close to its level of operation. Pango is a bit too high level for the needs of SVG.
Manual layout of text glyphs. After a text engine like Harfbuzz does the shaping, librsvg would need to lay out the produced glyphs in the way of the SVG attributes
dx, dy, x, y, etc. The SVG Text specification has the algorithms for this.
The cherry on top: text-on-a-path. Again, the spec has the details. You would make Wikimedia content creators very happy with this!
Requirements: Rust for programming language; some familiarity with Unicode concepts and text layout. Familiarity with Cairo and Harfbuzz would help a lot. Preference will be given to people who can write a right-to-left human language, or a language that requires complex shaping.