Places for improvement, ordered by difficulty / effectiveness: * Pack.get_object_at() does an open; perhaps just keep it open? (3.43%) * read_zlib() should have a C equivalent (~ 4% overhead atm) * unpack_object() should have a C equivalent