Seriously impressed with libpeas.
I think about my previous work adding plugins to things (some of them involved Bonobo) and I think how much easier it would have been if this technology was around back then.
It was very simple to put together some plugin GObject interfaces, annotate and add introspection for them, and then write some Javascript plugins that implement the interface. It looks like C on the C side, and Javascript on the Javascript side. No weird IDLs or custom file formats or generated bindings, just regular gobject-introspection.
Here’s an example of what I mean (needs to be run from the src/ dir, cause I was lazy about paths).
Cool stuff. Just had a quick look and saw a FIXME, try this:
http://developer.gnome.org/gi/unstable/gi-girepository.html#g-irepository-prepend-search-path