client-side library