Skip to main content

Crate dvpl_engine

Crate dvpl_engine 

Source
Expand description

DVPL file format engine for World of Tanks Blitz.

Provides encode and decode for the DVPL container format used by WoT Blitz game assets. Usable as a pure Rust library (cargo add dvpl-engine) or as a Python extension via PyO3 (pip install dvpl-converter).

§DVPL format

A .dvpl file is a payload followed by a 20-byte footer:

FieldSizeEncoding
original_size4 byteslittle-endian
compressed_size4 byteslittle-endian
crc324 byteslittle-endian
compression4 byteslittle-endian
magic4 bytesb"DVPL"

Compression types: COMP_NONE (0), COMP_LZ4 (1), COMP_LZ4_HC (2).

§Examples

use dvpl_engine::COMP_LZ4_HC;
use dvpl_engine::decode;
use dvpl_engine::encode;

let original = b"Hello DVPL!";
let dvpl_blob = encode(original, COMP_LZ4_HC).unwrap();
let decoded = decode(&dvpl_blob).unwrap();
assert_eq!(original.as_slice(), &decoded);

Enums§

DvplError
All failure modes during DVPL encode/decode.

Constants§

COMP_LZ4
Standard LZ4 block compression.
COMP_LZ4_HC
LZ4 high-compression mode (better ratio, slower compression).
COMP_NONE
No compression - payload stored as-is.

Functions§

decode
Decode a DVPL blob: validate footer, verify CRC32, decompress payload.
encode
Encode raw data into a DVPL blob: compress, compute CRC32, append footer.