WHL
application/octet-stream
Magic Bytes
Offset: 0
50 4B 03 04 50 4B 05 06 50 4B 07 08
The Wheel (WHL) format is a standard distribution package for Python, maintained by the Python Packaging Authority under the PEP 427 specification. It facilitates the efficient installation of libraries by providing a built format that bypasses the compilation stage required for source distributions. Replacing the legacy Egg format, WHL files are essentially ZIP archives; users should exercise caution as installing packages from untrusted sources executes code directly on the host system.
Validation Code
How to validate .whl files in Python
Python
def is_whl(file_path: str) -> bool:
"""Check if file is a valid WHL by magic bytes."""
signature = bytes([0x50, 0x4B, 0x03, 0x04, 0x50, 0x4B, 0x05, 0x06, 0x50, 0x4B, 0x07, 0x08])
with open(file_path, "rb") as f:
return f.read(12) == signature
How to validate .whl files in Node.js
Node.js
function isWHL(buffer: Buffer): boolean {
const signature = Buffer.from([0x50, 0x4B, 0x03, 0x04, 0x50, 0x4B, 0x05, 0x06, 0x50, 0x4B, 0x07, 0x08]);
return buffer.subarray(0, 12).equals(signature);
}
Go
func IsWHL(data []byte) bool {
signature := []byte{0x50, 0x4B, 0x03, 0x04, 0x50, 0x4B, 0x05, 0x06, 0x50, 0x4B, 0x07, 0x08}
if len(data) < 12 {
return false
}
return bytes.Equal(data[:12], signature)
}
API Endpoint
GET
/api/v1/whl
curl https://filesignature.org/api/v1/whl