====== std.zlib ====== DEFLATE-Kompression als native Lyx-Implementierung gemäß RFC 1950 (zlib-Format) und RFC 1951 (DEFLATE-Algorithmus). LZ77-Sliding-Window (32 KB) für Rückwärts-Referenzen, statische Huffman-Kodierung, zlib-Header/Trailer mit Adler-32-Prüfsumme sowie CRC32. Kompressionsgrade 0–9 (0 = keine Kompression, 6 = Standard, 9 = beste Kompression). Dekompression mit ''ZlibDecompress''/''InflateDEFLATE''. Einsatzbereiche: HTTP ''Content-Encoding: gzip'', Datei-Kompression, Datenbankblob-Speicherung (komprimierte JSON/XML), Netzwerkprotokoll-Kompression, Archivdateien. **Autor:** Andreas Röne\\ **Copyright:** 2024-2025 Andreas Röne ---- ===== Konstanten ===== ^ Name ^ Typ ^ Wert ^ Sichtbarkeit ^ | ''Z_NO_COMPRESSION'' | ''int64'' | ''0'' | pub | | ''Z_BEST_SPEED'' | ''int64'' | ''1'' | pub | | ''Z_DEFAULT_COMPRESSION'' | ''int64'' | ''6'' | pub | | ''Z_BEST_COMPRESSION'' | ''int64'' | ''9'' | pub | | ''DEFLATE_WINDOW_SIZE'' | ''int64'' | ''32768'' | pub | | ''DEFLATE_WINDOW_MASK'' | ''int64'' | ''32767'' | pub | | ''HASH_SIZE'' | ''int64'' | ''4096'' | pub | | ''HASH_MASK'' | ''int64'' | ''4095'' | pub | | ''MIN_MATCH'' | ''int64'' | ''3'' | pub | | ''MAX_MATCH'' | ''int64'' | ''258'' | pub | | ''MAX_DISTANCE'' | ''int64'' | ''32768'' | pub | ---- ===== Funktionen ===== ^ Signatur ^ Sichtbarkeit ^ Beschreibung ^ | ''BitWriteBit(output: pchar, pos: int64, bit: int64): int64'' | pub | Einzelnes Bit in Ausgabepuffer schreiben | | ''BitWriteBits(output: pchar, pos: int64, value: int64, num_bits: int64): int64'' | pub | Mehrere Bits in Ausgabepuffer schreiben | | ''BitFlush(output: pchar, pos: int64): int64'' | pub | Verbleibende Bits in Puffer flushen | | ''BitWriteByte(output: pchar, pos: int64, byte: int64): int64'' | pub | Einzelnes Byte in Ausgabepuffer schreiben | | ''Adler32(data: pchar, len: int64): int64'' | pub | Adler-32-Prüfsumme berechnen | | ''Adler32Update(current: int64, data: pchar, len: int64): int64'' | pub | Adler-32-Prüfsumme inkrementell aktualisieren | | ''CRC32(data: pchar, len: int64): int64'' | pub | CRC-32-Prüfsumme berechnen | | ''LITLEN_EOF'' | ''int64'' | ''256'' | pub | EOF-Symbol (256) für Literal/Length-Codes | | ''GetFixedLiteralCode(code: int64): int64'' | pub | Statischen Huffman-Code für Symbol liefern | | ''GetFixedDistCode(dist: int64): int64'' | pub | Statischen Huffman-Code für Distanz liefern | | ''EncodeLitLen(output: pchar, bit_pos: int64, symbol: int64): int64'' | priv | Literal-/Length-Symbol huffman-kodieren | | ''EncodeDist(output: pchar, bit_pos: int64, dist: int64): int64'' | priv | Distanzsymbol huffman-kodieren | | ''GetLengthCode(len: int64): int64'' | priv | DEFLATE-Length-Code für Länge ermitteln | | ''DeflateCompressLZ77(input: pchar, input_len: int64, output: pchar): int64'' | pub | LZ77-Sliding-Window-Kompression durchführen | | ''DeflateCompress(input: pchar, input_len: int64, output: pchar): int64'' | pub | DEFLATE-Kompression durchführen | | ''ZlibCompress(input: pchar, input_len: int64, output: pchar, level: int64): int64'' | pub | Zlib-Kompression mit Kompressionsgrad | | ''ZlibCompressDefault(input: pchar, input_len: int64, output: pchar): int64'' | pub | Zlib-Kompression mit Standardeinstellungen | | ''ZlibCompressBound(input_len: int64): int64'' | pub | Maximale Ausgabegröße für Kompression schätzen | | ''ReadBit(data: pchar, pos: int64, len: int64, bit_pos: int64): int64'' | priv | Einzelnes Bit aus Datenstrom lesen | | ''ReadBits(data: pchar, pos: int64, len: int64, bit_pos: int64, num_bits: int64): int64'' | priv | Mehrere Bits aus Datenstrom lesen | | ''DecodeLengthValue(code: int64): int64'' | priv | DEFLATE-Length-Code in Länge dekodieren | | ''DecodeDistanceValue(extra_bits: int64, extra: int64): int64'' | priv | DEFLATE-Distanzcode in Distanz dekodieren | | ''DecodeHuffmanSymbol(data: pchar, len: int64, bit_pos: int64): int64'' | priv | Huffman-Symbol aus Bitstream dekodieren | | ''InflateDEFLATE(input: pchar, input_len: int64, output: pchar): int64'' | pub | DEFLATE-komprimierte Daten dekomprimieren | | ''ZlibDecompress(input: pchar, input_len: int64, output: pchar): int64'' | pub | Zlib-Datenstrom dekomprimieren | | ''ZlibDecompressToBuffer(input: pchar, input_len: int64, output: pchar, max_out: int64): int64'' | pub | Zlib-Datenstrom in begrenzten Puffer dekomprimieren |