iOS compression_encode_buffer no incluye el encabezado zlib?

Estoy usando compression_encode_buffer con COMPRESSION_ZLIB para zlib-compress data en una aplicación iOS, pero el resultado falta el encabezado zlib.

Por ejemplo:

 size = compression_encode_buffer( destinationBuffer, destinationBufferSize, sourceBuffer, sourceBufferSize, nil, COMPRESSION_ZLIB ) 

Devolverá los bytes:

 AD 53 C1 8E 9B 30 … 

Mientras usa, por ejemplo, los datos de Python data.encode("zlib") en los mismos datos devolverán:

 78 9C AD 53 C1 8E 9B 30 … ^^ ^^ correct zlib header 

¿Que pasa con eso? ¿Por qué no se incluye el encabezado? ¿Y hay una manera "correcta" de agregarlo?

    Los dos bytes son un encabezado zlib, no un número mágico. Lo más probable es que te falten los 4 bytes finales de la secuencia (la sum de comprobación ADLER32) y solo tienes el flujo de datos "desinflado" que esperabas envolver en un flujo de datos zlib. La documentation de iOS dice tanto:

     ZLIB The encoded format is the raw DEFLATE format as described in IETF RFC 1951 Using the ZLIB library 

    Deberían haber llamado al método de compression "DEFLATE" y no a "ZLIB".

    Consulte esta pregunta relacionada sobre cómo lidiar con los datos de ZLIB vs DEFLATE.