platform independent bufbuilder