I released another version of mongo-glib over the weekend. It works on a few more platforms. It also has better support for working with and generating BSON documents and ObjectIds.
Additionally, there is a fairly simple way to get a decent speedup when you are building protocols that need to complete asynchronous results in a main loop. Most people seem to be using GSimpleAsyncResult and gsimpleasyncresultcompleteinidle(), which is great for situations like this. However, every time you want to complete your async result it creates a new GIdleSource which has to be allocated and added to your GMainContext. For my case, I got about a 20% speedup by going to a single custom GSource that is not repeatedly created and removed from the GMainContext. Of course, this only really matters when you are trying to complete large numbers of asynchronous requests.
-- Christian Hergert 2012-05-21