Cargo Features

goblin = { version = "0.7.1", default-features = false, features = ["std", "alloc", "endian_fd", "elf32", "elf64", "mach32", "mach64", "pe64", "archive"] }
default = archive, elf32, elf64, endian_fd, mach32, mach64, pe32, pe64, std

These default features are set whenever goblin is added without default-features = false somewhere in the dependency tree.

std default = alloc

Enables std of scroll

Affects goblin::peek

alloc archive endian_fd mach32 mach64 pe32 pe64 std = log

Enables derive of scroll

Affects goblin::error, elf::symver

endian_fd default mach32 mach64 pe32 pe64 = alloc
elf32 default

Affects goblin::elf32, goblin::elf, elf::symver

elf64 default

Affects goblin::elf64, goblin::elf, elf::symver

mach32 default = alloc, archive, endian_fd

for now we will require mach and pe to be alloc + endian_fd

Affects goblin::mach

mach64 default = alloc, archive, endian_fd

Affects goblin::mach

pe32 pe64 default = alloc, endian_fd

Affects goblin::pe

archive default mach32 mach64 = alloc

Affects goblin::archive

Features from optional dependencies

In crates that don't use the dep: syntax, optional dependencies automatically become Cargo features.

log alloc?