A general purpose cache library