data serialization and deserialization library