I am incredibly happy because of three big things that are going
on in librsvg right now:

Paolo Borelli finished porting all the CSS properties to Rust.
What was once a gigantic RsvgState struct in C is totally gone,
along with all the janky C code to parse individual properties.
The process of porting RsvgState to Rust has been going on since
about two months ago, and has involved many multi-commit
merge requests and refactorings. This is a tremendous amount of
really good work! The result is all in Rust now in a State
struct, which is opaque from C's viewpoint. The only places in C
that still require accessors to the State are in the filter
effects code. Which brings me to...

Ivan Molodetskikh, my Summer of Code student, submitted his first
merge request and it's merged to master now. This ports
the bookkeeping infrastructure for SVG filters to Rust, and also
the feOffset filter is ported now. Right now the code doesn't do
anything fancy to iterate over the pixels of Cairo image surfaces;
that will come later. I am very happy that filters, which were a
huge barrier, are now starting to get chipped away into nicer code.

I have started to move librsvg's old representation of CSS
properties into something that can really represent properties that
are not specified, or explicitly set to inherit from an SVG
element's parent, or set to a normal value. Librsvg never had a
representation of property values that actually matched the SVG/CSS
specs; it just knew whether a property was specified or not for an
element. This worked fine for properties which the spec mandates
that they should inherit automatically, but those that don't,
were handled through special hacks. The new code makes this a lot
cleaner. It should also make it easier to copy Servo's idioms for
property inheritance.