PackageTrack
Sign in Get early access

object

A unified interface for reading and writing object file formats.

0.40.0 578M downloads/mo #168 most downloaded on crates.io gimli-rs/object

What this package is like to depend on

Last release 22 days ago

01 Aug 2026

Release timing varies

gaps range from 9 days to 5 months

Most releases are documented

notes for 45 of 73 stable releases

Nothing withdrawn

no release was ever pulled

10 years old

73 releases · first in 2016

5 releases in the last 12 months

see the full history below

Release timeline

73 releases · Aug 2016 to Aug 2026
2017 2018 2019 2020 2021 2022 2023 2024 2025 2026
Release Pre-release

Releases

latest 60 of 73
  1. 0.40.0 01 Aug 2026
    Release notes

    Released 2026/08/01.

    Breaking changes

    • Changed many file format struct fields and constants to use newtypes. Newtypes for bit flags have methods such as contains and intersects. Some constants are fields within another newtype and have methods for conversion. The raw values are always accessible by .0. #894 #897 #898 #899 #900 #957 #958 #959 #970

    • Updated macho::DyldCacheHeader to dyld-1340. #885

    • Deleted SectionKind::Elf and added sh_type field to SectionFlags::Elf. #891

    • Added feature gates to variants of FileFlags, SegmentFlags, SectionFlags, SymbolFlags, and RelocationFlags. #891

    • Added p_type field to SegmentFlags::Elf. Added n_type field to SymbolFlags::MachO. Added typ and storage_class fields to SymbolFlags::CoffSection. Added n_type field to SymbolFlags::Xcoff. Added reserved2 field to SectionFlags::MachO. #891 #963

    • Renamed build::elf::AttributeTag to AttributeScope. #894

    • Changed write::elf::Writer::reserve_strtab/reserve_shstrtab/reserve_dynstr and write::coff::Writer::reserve_symtab_strtab to return an Error for null bytes in strings, or table size overflow. #905

    • Changed many write::elf::Writer methods to return u64 instead of usize. #909

    • Replaced name fields in write::elf::SectionHeader, write::elf::Sym, write::elf::Verdef and write::elf::Vernaux with string table offsets. Added write::elf::Writer methods to obtain these offsets. #910

    • Added hash fields to write::elf::Verdef and write::elf::Vernaux. Use elf::hash to calculate the hash values. #910

    • Replaced write::elf::Class with write::elf::Encoder, and replaced build::elf::Builder::class with encoder. #910

    • Deleted write::elf::Writer::reserve_*_section_index_with_name and write::elf::Writer::reserve_dynamics. There is no replacement for these. #912

    • Changed offsets from usize to u64 in write::WritableBuffer and low level writing APIs. #914

    • Improved overflow handling when writing. Some overflow handling for write::elf::Writer has been shifted to the caller, as indicated by narrowed parameter types for reserve_program_headers, reserve_gnu_verdef and reserve_gnu_verneed. #918

    • Added tool version data to read::macho::LoadCommandVariant::BuildVersion and endian parameter to read::macho::LoadCommandData::build_version. #920

    • Added offset parameter to read::macho::Section::file_range and data. Added read::macho::Segment::section_offsets to assist. #923 #968

    • Replaced write::WritableBuffer::resize with write_zeros and deleted write::WritableBuffer::len. Added write::CountingBuffer which can wrap WritableBuffer to provide resize and count methods. #930 #931

    • Moved write::WritableBuffer::write_pod and write_pod_slice to a new write::WritableBufferExt trait, and deleted the write and write_slice methods for dyn WritableBuffer. #930

    • Sealed low level parsing traits. #934

    • Renamed read::coff::ImageSymbol to read::coff::Symbol. #936

    • Added read::pe::ExportOrdinal and read::pe::ExportAddressIndex, and changed read::pe::ExportTable methods to use them. #942

    • Changed read::Object::imports and read::Object::exports to iterators, and expanded read::Import and read::Export to handle more types of imports and exports. Import::name and Export::name return NameOrOrdinal and Export::address is replaced by Export::target. #941 #945 #946 #949 #955 #956

    • Fixed handling of common symbols for Mach-O; it is now similar to other formats. Folded SectionKind::Common into SectionKind::UninitializedData and deleted write::StandardSection::Common, and write::Object::has_common. read::macho::Nlist::is_undefined now excludes common symbols. #964

    • Changed write::Symbol::value to hold the alignment for common symbols. This is supported for ELF and Mach-O. #964

    • Changed the return types of read::elf::FileHeader::phnum and shnum from usize to u32. #966

    Added

    • Added names feature to provide display names for file format constants. #876 #878 #902

    • Added relocation parsing for Wasm. #895

    • Added more PE constants definitions. #903

    • Added z/OS archive support. #904

    • Added write::elf::GrowableBuffer and write::elf::SinglePhaseWriter. #908 #909 #916 #917

    • Added write::StringTable. #910

    • Added write::macho::Encoder. #913 #967

    • Added build::macho::Builder. #921 #925

    • Added macho::DyldInfoCommand methods to parse rebases, binds, and exports. #922

    • Added macho::LinkeditDataCommand::chained_fixups. #924

    • Added macho::LinkeditDataCommand::code_signature. #932

    • Added initial GOFF definitions as an unstable feature. #926 #962

    • Added Architecture::Ia64. #927

    • Added RelocationKind support for macho::ARM64_RELOC_POINTER_TO_GOT. #929

    • Added read::macho::LoadCommandData::offset. #937

    • Added parsing support for macho::R_ABS. #938

    • Added read::Object::import_libraries. #960

    • Added from_raw methods for various write::elf structs. #966

    Changed

    • Changed the minimum supported rust version (MSRV) for the read feature and its dependencies to 1.85.0. #892

    • Changed the rust edition to 2024. #893

    • Fixed SectionKind for Wasm reloc.* sections. #896

    • Fixed ELF .symtab_shndx writing when st_shndx is not SHN_INDEX. #906

    • Changed write::elf::Writer to handle e_phnum overflow. #907

    • Fix ELF .gnu.attributes alignment when writing. #912

    • Fixed some malformed data handling. #939 #940 #961

    • Fixed COFF archive parsing of `/<ECSYMBOLS>' member when no names table is present. #947 #948

    • Fixed read::ObjectSymbol::address to return 0 for common symbols instead of the alignment. #964

    • Changed Mach-O SectionKind parsing to use flags where possible instead of segment and section names. #965

    • Updated ruzstd and wasmparser dependencies.


    Open source →
  2. 0.39.1 21 Apr 2026
    Release notes
    • Update wasmparser to 0.247.0

    • Ignore unused warning

    Open source →
    Release notes

    Released 2026/04/21.

    Changed

    • Changed read::PeFile::imports to return an error for empty import names. #873

    • Fixed read::PeFile::imports to handle import names in a different section. #881

    • Fixed the ELF section flags for write::StandardSection::EhFrame. #877

    • Updated hashbrown, indexmap, and wasmparser dependencies. #879

    Added

    • Added Android definitions for ELF. #875

    • Updated Mach-O definitions. #883

    • Added read::macho::LoadCommandData::dylib_use_flags. #887


    Open source →
  3. 0.39.0 29 Mar 2026
    Release notes

    Released 2026/03/29.

    Breaking changes

    • Changed read::NativeFile to use NativeEndian instead of Endianness. #851

    • Changed the type of elf::Dyn32/64::d_tag to signed (i32/i64). Changed the type of DT_* constants to i64. Changed write::elf::Writer::write_dynamic parameter to match. #852

    • Changed parsing to always support unaligned data. The unaligned feature now has no effect. #861

    • Changed read::SymbolMapName::new to accept a size parameter. #863

    Changed

    • Changed read::MachOFile::entry to handle LC_UNIXTHREAD load commands. #837

    • Reduced the size of read::elf::CrelIterator. #840

    • Improved debug output for read::*File by hiding the raw data bytes. #853

    • Removed DT_SYMBOLIC from the read::elf::Dyn::is_address check. #854

    • Changed read::macho to treat ltmp* symbols as section symbols. #856

    • Changed read::Relocation::encoding for unknown relocations to RelocationEncoding::Unknown. #857

    • Changed read::RelocationMap to handle RelocationKind::None and check for supported RelocationEncoding. #857

    • Changed read::elf to return RelocationKind::GotRelative for elf::R_X86_64_GOTPCRELX and elf::R_X86_64_REX_GOTPCRELX. #859

    • Changed elf::R_X86_64_PLT32 and macho::X86_64_RELOC_BRANCH to use RelocationKind::PltRelative and RelocationEncoding::X86Branch. #860

    • Changed read::macho and write::Object to handle macho::ARM64_RELOC_BRANCH26. #860

    • Changed read::SymbolMap to include symbol sizes. Deprecated read::SymbolMap::get. Use before or containing instead. #863

    • Changed read::elf to include unsized symbols in is_definition. #866

    • Changed pod::slice_from_all_bytes/_mut to handle zero-sized types. #868

    • Updated wasmparser dependency.

    Added

    • Added read::ObjectSegment::permissions. #838

    • Added elf::R_X86_64_CODE_* relocations. #839

    • Added read::macho::Section::reserved1 and Section::reserved2. #846

    • Added From implementations for fixed endian integers. #850

    • Added Native*File types for each file format. #851

    • Added read::elf::ElfFile::elf_dynamic_table. #854

    • Added read::Relocation::subtractor and write::Object::add_relocation_with_subtractor to handle macho::ARM64_RELOC_SUBTRACTOR and macho::X86_64_RELOC_SUBTRACTOR. #856 #860

    • Added write::StandardSection::EhFrame. #856

    • Added SymbolFlags::elf_visibility. #859

    • Added read::macho::Section::symbol_stub_size and indirect_symbols. #862

    • Added missing elf::DT_RELR* constants. #864

    • Added elf::R_AARCH64_PLT32 and elf::R_AARCH64_GOTPCREL32. #865


    Open source →
  4. 0.38.1 02 Jan 2026
    Release notes

    Released 2026/01/02.

    Changed

    • Updated wasmparser dependency.

    Added

    • Added basic PowerPC relocation support for Mach-O. #825

    • Added more ELF relocations for LoongArch. #826 #827

    • Added RelocationKind::None. #828

    • Added write::StreamingBuffer::flush. #829


    Open source →
  5. 0.38.0 21 Nov 2025
    Release notes

    Released 2025/11/21.

    Breaking changes

    • Changed the type of macho::EXPORT_SYMBOL_FLAGS constants to u8. #817

    • Fixed the type of the StringTable parameter for read::elf::Dyn::string. #812

    Changed

    • Updated hashbrown and wasmparser dependencies. #806

    • The minimum supported rust version with all features enabled has changed to 1.87.0. Changes to the minimum supported rust version are not considered breaking changes.

    Added

    • Added more RISC-V constants for ELF. #809

    • Added more AArch64 constants for ELF. #819

    • Added macho::LinkeditDataCommand::function_starts and associated parser. #814 #816

    • Added macho::LinkeditDataCommand::exports_trie and associated parser. #817


    Open source →
  6. 0.37.3 13 Aug 2025
    Release notes

    Release 0.37.3 (#804)

    Open source →
    Release notes

    Released 2025/08/13.

    Changed

    • Fixed MSVC weak extern symbol support in write::Object by using IMAGE_WEAK_EXTERN_SEARCH_ALIAS. #803

    Added

    • Added elf::SHT_GNU_SFRAME and elf::PT_GNU_SFRAME. #799

    • Added section_flags_mut and symbol_flags_mut to write::Object. #801


    Open source →
  7. 0.37.2 01 Aug 2025
    Release notes

    Released 2025/08/01.

    Added

    • Added elf::EF_RISCV_RV64ILP32. #779

    • Added pe::IMAGE_FILE_MACHINE_POWERPCBE and associated read support. #783

    • Added PowerPC support to write::coff. #795

    • Added support for COFF auxiliary weak external symbols to write::Object and write::coff::Writer. #791

    • Added methods to write::Object to obtain default section and symbol flags. #789

    • Added compact relocation support to read::elf. #782 #784 #785 #788

    • Added Architecture::Alpha. #790

    • Added Architecture::Hppa. #793

    Changed

    • Updated wasmparser dependency.

    • Changed write::Object to accept undefined symbols of unknown kind for COFF. #795


    Open source →
  8. 0.37.1 11 Jun 2025
    Release notes

    Released 2025/06/11.

    Changed

    • Removed compiler-builtins from rustc-dep-of-std dependencies. #777

    • Updated wasmparser dependency.


    Open source →
  9. 0.37.0 02 Jun 2025
    Release notes

    Released 2025/06/02.

    Breaking changes

    • Changed dyld cache definitions and API to support iterating mapping and slide information. #738 #753 #754 #775

    • Removed elf::R_RISCV_GNU_VTINHERIT and elf::R_RISCV_GNU_VTENTRY. #767

    • Changed the type of pe::IMAGE_WEAK_EXTERN_* constants. #770

    Added

    • Added support for generating ARM_RELOC_VANILLA in write::Object. #757

    • Added size_hint for read::archive::ArchiveSymbolIterator. #759

    • Added Architecture::SuperH. #762

    • Added Architecture::LoongArch32. #765

    • Added support for Wasm object files to read::WasmFile. #766

    • Added elf::R_RISCV_TLSDESC and elf::R_RISCV_GOT32_PCREL. #767 #768

    • Added read::pe::SymbolTable::aux_weak_external and read::pe::SymbolTable::has_aux_weak_external. #770

    • Added ELF relocations for LoongArch ABI v2.30. #773

    Changed

    • Changed ReadRef::read_bytes_at to allow zero size reads at any offset. This allows reading of empty sections in stripped ELF files. #758

    • Changed read::MachOFile::object_map to include static symbols. #764

    • Fixed read::pe::SymbolTable::has_aux_function to exclude weak externals. #772

    • Updated wasmparser and ruzstd dependencies.


    Open source →
  10. 0.36.7 21 Dec 2024
    Release notes

    Includes build.rs in package.

    Open source →
    Release notes

    Released 2024/12/21.

    Changed

    • Included build.rs in package.

    Open source →
  11. 0.36.6 21 Dec 2024
    Release notes

    Released 2024/12/21.

    Added

    • Added Architecuture::M68k. #742 #749

    • Added Architecuture::Mips64_N32. #743

    • Added elf::SHT_RELR, read::elf::SectionHeader::relr, and write::elf::Writer::write_relative_relocation_section_header. #746

    • Added core::error::Error implementation for Rust 1.81 onwards. #747

    Changed

    • Changed build::elf::Builder to support .annobin.notes, SHT_LLVM_DEPENDENT_LIBRARIES, and SHT_RELR sections. #735 #737 #746

    • Changed write::Object::add_subsection to omit the subsection name suffix if the subsection name is empty. #748


    Open source →
  12. 0.36.5 04 Oct 2024
    Release notes

    Released 2024/10/04.

    Added

    • Added Architecture::E2K32 and Architecture::E2K64. #727

    • Added read and write support for pe::IMAGE_REL_ARM64_BRANCH26. #731

    Changed

    • Fixed decompression of multi-frame Zstandard data in read::CompressedData::decompress. #730

    Open source →
  13. 0.36.4 30 Aug 2024
    Release notes

    Released 2024/08/30.

    Added

    • Added pe::IMAGE_FILE_MACHINE_ARM64X and pe::IMAGE_FILE_MACHINE_CHPE_X86. #717

    • Added elf::SHF_GNU_RETAIN and elf::SHF_GNU_MBIND. #720

    Changed

    • Fixed the checksum for COFF BSS section symbols in write::Object. #718

    • Changed read::CompressedData::decompress to validate the decompressed size. #723

    • Updated wasmparser dependency.


    Open source →
  14. 0.36.3 07 Aug 2024
    Release notes

    Released 2024/08/07.

    Added

    • Added Iterator implementations for various types in the low level read API. #713 #714

    Changed

    • Changed from_bytes constructors for integer endian types to const. #712

    • Changed next methods in the low level read API to fuse after returning an error. #714

    • Updated wasmparser dependency. #715


    Open source →
  15. 0.36.2 24 Jul 2024
    Release notes

    Released 2024/07/24.

    Changed

    • Improved writing of GNU symbol versioning in build::elf::Builder. #705

    • Fixed alignment of SHT_HASH/SHT_GNU_verdef/SHT_GNU_verneed sections in write::elf::Writer. #706

    • Fixed writing of GNU hash for absolute symbols in build::elf::Builder. #707

    • Fixed writing of empty ELF string table in write::Object. #710


    Open source →
  16. 0.36.1 29 Jun 2024
    Release notes

    Released 2024/06/29.

    Added

    • Added SectionKind::DebugString. #694

    • Added Architecture::Sparc and Architecture::Sparc32Plus. #699 #700

    • Added more RISC-V ELF relocation constants. #701

    Changed

    • Changed read::ElfFile::imports to return the library for versioned symbols. #693

    • Changed read::MachOFile to support Go's debug section compression. #697

    • Reversed the order of Mach-O relocations emitted by write::Object. #702


    Open source →
  17. 0.36.0 26 May 2024
    Release notes

    Released 2024/05/26.

    Breaking changes

    • Deleted data and align parameters for write::Object::add_subsection. Use add_symbol_data or add_symbol_bss instead. #676

    • Changed methods in the lower level read API to accept or return SectionIndex or SymbolIndex instead of usize. #677 #684 #685

    • Deleted SymbolKind::Null. Changed read::Object::sections and read::Object::symbols to no longer return null entries. This affects ELF and XCOFF. #679

    • Changed read::ObjectMap::object to return ObjectMapFile. This handles splitting the object file name into path and member. #686

    • Changed read::coff::ImageSymbol::address to only return an address for symbols that have an address. #689

    Added

    • Added pod::slice_from_all_bytes and pod::slice_from_all_bytes_mut. #672

    • Added write::Object::set_subsections_via_symbols. Changed write::Object::add_symbol_data and write::Object::add_symbol_bss to correctly handle zero size symbols when subsections are enabled. #676

    • Added methods in the unified read API to return the lower level API structures. Some existing methods were deprecated so that naming of these methods is more consistent. #678

    • Added methods in the lower level read API to return a SectionIndex or SymbolIndex. #684 #689

    • Implemented Display for read::SymbolIndex and read::SectionIndex. #684

    • Added is_common, is_absolute, is_local, and is_weak to read::elf::Sym. #685

    Changed

    • Changed read::ArchiveFile to skip the <ECSYMBOLS> member. #669

    • Fixed handling of segment data in the dyld shared cache. #673

    • Changed read::RelocationMap to handle Mach-O section relocations. #675

    • Changed read::elf::RelocationSections to ignore relocations that apply to relocations. #680

    • Removed a lifetime bound from an argument in read::elf::SectionTable::section_name, read::elf::SymbolTable::symbol_name, and read::elf::SymbolTable::symbol_section. #681


    Open source →
  18. 0.35.0 10 Apr 2024
    Release notes

    Released 2024/04/10.

    Breaking changes

    • Moved the 'file lifetime parameter from read::Object to its associated types. #655

    Added

    • Added support more section kinds in build::elf. #650

    • Added thin archive support to read::ArchiveFile. #651

    • Added read::ReadCacheOps and changed read::ReadCache bound from Read + Seek to ReadCacheOps. #652

    • Added read::ObjectSection::relocation_map #654

    • Added read::ArchiveFile::symbols. #658

    • Added BinaryFormat::native_object. #661

    Changed

    • The minimum supported rust version for the read feature and its dependencies has changed to 1.65.0. #655

    • Fixed sh_offset handling for SHT_NOBITS sections in build::elf. #645

    • Fixed handling of ELF files with dynamic symbols but no dynamic strings. #646

    • Fixed potential panics in read::WasmFile due to invalid function indices. #649

    • Fixed handling of Wasm components in read::WasmFile. #649

    • Fixed sh_entsize for 32-bit hash sections in write::elf. #650

    • Fixed sh_size for attribute sections in build::elf. #650

    • Fixed sh_info for SHT_DYNSYM sections in build::elf. #650

    • Fixed handling of dynamic relocations with invalid sh_link in build::elf. #650

    • Fixed parsing of member names containing '/' in read::ArchiveFile. #657

    • Fixed handling of load segment alignments in build::elf::Builder::read. #659


    Open source →
  19. 0.34.0 11 Mar 2024
    Release notes

    Released 2024/03/11.

    Breaking changes

    • Replaced macho::DyldSubCacheInfo with macho::DyldSubCacheEntryV1. Changed the return type of macho::DyldCacheHeader::subcaches. #642

    Changed

    • Added macho::DyldSubCacheEntryV2 and changed read::macho::DyldCache to handle both versions. This is needed for macOS 13 and above. #642

    Open source →
  20. 0.33.0 05 Mar 2024
    Release notes

    Released 2024/03/05.

    Breaking changes

    • Deleted file format variants in RelocationKind. Replaced their usage with read::Relocation::flags and write::Relocation::flags. #585

    • Replaced kind, encoding and size fields in write::Relocation with RelocationFlags::Generic in the flags field. #585

    • Replaced macho::FatHeader::parse, macho::FatHeader::parse_arch32, and macho::FatHeader::parse_arch64 with read::macho::MachOFatFile, read::macho::MachOFatFile32 and read::macho::MachOFatFile64. #623

    Added

    • Added macho::PLATFORM_XROS and macho::PLATFORM_XROSSIMULATOR. #626

    • Added build::elf::Builder and associated types. Extended write::elf::Writer to support this. #618

    Changed

    • Changed the lifetime to 'data for the return value of ObjectSection::name, ObjectSection::name_bytes, ObjectComdat::name, ObjectComdat::name_bytes. #620 #622

    • Checked that sizes are smaller than the file length in read::ReadCache. #630

    • Used Vec::try_reserve_exact for large allocations. #632


    Open source →
  21. 0.32.2 24 Dec 2023
    Release notes

    Released 2023/12/24.

    Added

    • Added ELF relocations for LoongArch ABI v2.20. #578 #589

    • Added ELF support for SHARC. #593

    • Added write::coff::Writer. #595

    • Added SubArchitecture::Arm64EC support for PE/COFF. #607

    • Added SubArchitecture::Arm64E support for Mach-O. #614

    • Added read::Object::symbol_by_name and read::Object::symbol_by_name_bytes. #602

    • Added more functions to the low level API in read::xcoff. #608

    • Added more functions to the low level API in read::macho. #584

    Changed

    • Fixes for AArch64 relocation addends for Mach-O. #581

    • Changes to write::Object output for Mach-O, including the addition of a LC_DYSYMTAB load command. #584

    • Changed write::Object to always use R_X86_64_PLT32 for x86-64 branches for ELF. #590

    • Fixed read::ObjectSymbol::kind for undefined section symbols for COFF. #592

    • Fixed write::Object to accept undefined section symbols for COFF. #594

    • Improved parsing of auxiliary section symbols for COFF. #603

    • Improved the selection of symbols for read::Object::symbol_map. This includes changes to read::Symbol::is_definition. #601 #606

    • Changed read::ObjectSymbol::kind for ELF STT_NOTYPE symbols to SymbolKind::Unknown. #604

    • Changed read::ObjectSymbol::scope for XCOFF C_HIDEXT symbols to SymbolScope::Compilation. #605


    Open source →
  22. 0.32.1 03 Sep 2023
    Release notes

    Released 2023/09/03.

    Added

    • Added write::Object::set_macho_cpu_subtype. #574

    Open source →
  23. 0.32.0 13 Aug 2023
    Release notes

    Released 2023/08/12.

    Breaking changes

    • Changed read::elf::Note::name to exclude all trailing null bytes. #549

    • Updated dependencies, and changed some optional dependencies to use the dep: feature syntax. #558 #569

    Changed

    • The minimum supported rust version for the read feature and its dependencies has changed to 1.60.0.

    • The minimum supported rust version for other features has changed to 1.65.0.

    • Changed many definitions from static to const. #549

    • Fixed Mach-O section alignment padding in write::Object. #553

    • Changed read::File to an enum. #564

    Added

    • Added elf::ELF_NOTE_GO, elf::NT_GO_BUILD_ID, and read::elf::Note::name_bytes. #549

    • Added read::FileKind::CoffImport and read::coff::ImportFile. #555 #556

    • Added Architecture::Csky and basic ELF support for C-SKY. #561

    • Added read::elf::ElfSymbol::raw_symbol. #562


    Open source →
  24. 0.31.1 10 May 2023
    Release notes

    Released 2023/05/09.

    Changed

    • Fixed address for global symbols in read::wasm. #539

    • Fixed writing of alignment for empty ELF sections. #540

    Added

    • Added more elf::GNU_PROPERTY_* definitions. Added read::elf::note::gnu_properties, write::StandardSection::GnuProperty, and write::Object::add_elf_gnu_property_u32. #537 #541

    • Added Mach-O support for Architecture::Aarch64_Ilp32. #542 #545

    • Added Architecture::Wasm64. #543


    Open source →
  25. 0.31.0 15 Apr 2023
    Release notes

    Released 2023/04/14.

    Breaking changes

    • Added a type parameter on existing COFF types to support reading COFF /bigobj files. #502

    • Changed PE symbols to support COFF /bigobj. Changed pe::IMAGE_SYM_* to i32. Changed pe::ImageSymbolEx::section_number to I32Bytes. Deleted a number of methods from pe::ImageSymbol. Use the read::pe::ImageSymbol trait instead. #502

    • Changed pe::Guid to a single array, and added methods to read the individual fields. #502

    • Added Symbol type parameter to SymbolFlags to support SymbolFlags::Xcoff. #527

    Changed

    • Fix alignment when reserving zero length sections in write::elf::Write::reserve. #514

    • Validate command size in read::macho::LoadCommandIterator. #516

    • Handle invalid alignment in read::macho::MachoSection::align. #516

    • Accept SymbolKind::Unknown in write::Object::macho_write. #519

    • Updated wasmparser dependency. #528

    Added

    • Added more elf::EF_RISCV_* definitions. #507

    • Added read::elf::SectionHeader::gnu_attributes and associated types. Added .gnu.attributes support to write::elf::Writer. #509 #525

    • Added write::Object::set_macho_build_version. #524

    • Added read::FileKind::Xcoff32, read::FileKind::Xcoff64, read::XcoffFile, and associated types. Added XCOFF support to write::Object. #469 #476 #477 #482 #484 #486 #527

    • Added read::FileKind::CoffBig, read::pe::CoffHeader and read::pe::ImageSymbol. #502

    • Added elf::PT_GNU_PROPERTY. #530

    • Added elf::ELFCOMPRESS_ZSTD, read::CompressionFormat::Zstandard, and Zstandard decompression in read::CompressedData::decompress using the ruzstd crate. #532

    • Added read::elf::NoteIterator::new. #533


    Open source →
  26. 0.30.4 06 Jun 2023
    Release notes

    Released 2023/06/05.

    Changed

    • Fixed Mach-O section alignment padding in write::Object. #553

    Open source →
  27. 0.30.3 23 Jan 2023
    Release notes

    Released 2023/01/23.

    Added

    • Added SectionKind::ReadOnlyDataWithRel for writing. #504

    Open source →
  28. 0.30.2 11 Jan 2023
    Release notes

    Released 2023/01/11.

    Added

    • Added more ELF constants for AVR flags and relocations. #500

    Open source →
  29. 0.30.1 04 Jan 2023
    Release notes

    Released 2023/01/04.

    Changed

    • Changed read::ElfSymbol::kind to handle STT_NOTYPE and STT_GNU_IFUNC. #498

    Added

    • Added read::CoffSymbol::raw_symbol. #494

    • Added ELF support for Solana Binary Format. #491

    • Added ELF support for AArch64 ILP32. #497


    Open source →
  30. 0.30.0 22 Nov 2022
    Release notes

    Released 2022/11/22.

    Breaking changes

    • The minimum supported rust version for the read feature has changed to 1.52.0. #458

    • The minimum supported rust version for the write feature has changed to 1.61.0.

    • Fixed endian handling in read::elf::SymbolTable::shndx. #458

    • Fixed endian handling in read::pe::ResourceName. #458

    • Changed definitions for LoongArch ELF header flags. #483

    Changed

    • Fixed parsing of multiple debug directory entries in read::pe::PeFile::pdb_info. #451

    • Changed the section name used when writing COFF stub symbols. #475

    Added

    • Added read::pe::DataDirectories::delay_load_import_table. #448

    • Added read::macho::LoadCommandData::raw_data. #449

    • Added ELF relocations for LoongArch ps ABI v2. #450

    • Added PowerPC support for Mach-O. #460

    • Added support for reading the AIX big archive format. #462 #467 #473

    • Added support for RelocationEncoding::AArch64Call when writing Mach-O files. #465

    • Added support for RelocationKind::Relative when writing RISC-V ELF files. #470

    • Added Xtensa architecture support for ELF. #481

    • Added read::pe::ResourceName::raw_data. #487


    Open source →
  31. 0.29.0 23 Jun 2022
    Release notes

    Released 2022/06/22.

    Breaking changes

    • The write feature now has a minimum supported rust version of 1.56.1. #444

    • Added os_abi and abi_version fields to FileFlags::Elf. #438 #441

    Changed

    • Fixed handling of empty symbol tables in read::elf::ElfFile::symbol_table and read::elf::ElfFile::dynamic_symbol_table. #443

    Added

    • Added more ELF_OSABI_* constants. #439

    Open source →
  32. 0.28.4 09 May 2022
    Release notes

    Released 2022/05/09.

    Added

    • Added read::pe::DataDirectories::resource_directory. #425 #427

    • Added PE support for more ARM relocations. #428

    • Added support for Architecture::LoongArch64. #430 #432

    • Added elf::EF_MIPS_ABI and associated constants. #433


    Open source →
  33. 0.28.3 19 Jan 2022
    Release notes

    Released 2022/01/19.

    Changed

    • For the Mach-O support in write::Object, accept RelocationKind::MachO for all architectures, and accept RelocationKind::Absolute for ARM64. #422

    Added

    • Added pe::ImageDataDirectory::file_range, read::pe::SectionTable::pe_file_range_at and pe::ImageSectionHeader::pe_file_range_at. #421

    • Added write::Object::add_coff_exports. #423


    Open source →
  34. 0.28.2 09 Jan 2022
    Release notes

    Released 2022/01/09.

    Changed

    • Ignored errors for the Wasm extended name section in read::WasmFile::parse. #408

    • Ignored errors for the COFF symbol table in read::PeFile::parse. #410

    • Fixed handling of SectionFlags::Coff in write::Object::coff_write. #412

    Added

    • Added read::ObjectSegment::flags. #416 #418

    Open source →
  35. 0.28.1 12 Dec 2021
    Release notes

    Released 2021/12/12.

    Changed

    • Fixed read::elf::SymbolTable::shndx_section. #405

    • Fixed build warnings. #405 #406


    Open source →
  36. 0.28.0 12 Dec 2021
    Release notes

    Released 2021/12/12.

    Breaking changes

    • write_core feature no longer enables std support. Use write_std instead. #400

    • Multiple changes related to Mach-O split dyld cache support. #398

    Added

    • Added write::pe::Writer::write_file_align. #397

    • Added support for Mach-O split dyld cache. #398

    • Added support for IMAGE_SCN_LNK_NRELOC_OVFL when reading and writing COFF. #399

    • Added write::elf::Writer::reserve_null_symbol_index. #402


    Open source →
  37. 0.27.1 22 Oct 2021
    Release notes

    Released 2021/10/22.

    Changed

    • Fixed build error with older Rust versions due to cargo resolver version.

    Open source →
  38. 0.27.0 17 Oct 2021
    Release notes

    Released 2021/10/17.

    Breaking changes

    • Changed read::elf to use SectionIndex instead of usize in more places. #341

    • Changed some read::elf section methods to additionally return the linked section index. #341

    • Changed read::pe::ImageNtHeaders::parse to return DataDirectories instead of a slice. #357

    • Deleted value parameter for write:WritableBuffer::resize. #369

    • Changed write::Object and write::Section to use Cow for section data. This added a lifetime parameter, which existing users can set to 'static. #370

    Changed

    • Fixed parsing when PE import directory has zero size. #341

    • Fixed parsing when PE import directory has zero for original first thunk. #385 #387

    • Fixed parsing when PE export directory has zero number of names. #353

    • Fixed parsing when PE export directory has zero number of names and addresses. #362

    • Fixed parsing when PE sections are contiguous. #354

    • Fixed std feature for indexmap dependency. #374

    • Fixed overflow in COFF section name offset parsing. #390

    Added

    • Added name_bytes methods to unified read traits. #351

    • Added read::Object::kind. #352

    • Added read::elf::VersionTable and related helpers. #341

    • Added read::elf::SectionTable::dynamic and related helpers. #345

    • Added read::coff::SectionTable::max_section_file_offset. #344

    • Added read::pe::ExportTable and related helpers. #349 #353

    • Added read::pe::ImportTable and related helpers. #357

    • Added read::pe::DataDirectories and related helpers. #357 #384

    • Added read::pe::RichHeaderInfo and related helpers. #375 #379

    • Added read::pe::RelocationBlocks and related helpers. #378

    • Added write::elf::Writer. #350

    • Added write::pe::Writer. #382 #388

    • Added write::Section::data/data_mut. #367

    • Added write::Object::write_stream. #369

    • Added MIPSr6 ELF header flag definitions. #372


    Open source →
  39. 0.26.2 28 Aug 2021
    Release notes

    Released 2021/08/28.

    Added

    • Added support for 64-bit symbol table names to read::archive. #366

    Open source →
  40. 0.26.1 19 Aug 2021
    Release notes

    Released 2021/08/19.

    Changed

    • Activate memchr's rustc-dep-of-std feature #356

    Open source →
  41. 0.26.0 26 Jul 2021
    Release notes

    Released 2021/07/26.

    Breaking changes

    • Changed ReadRef::read_bytes_at_until to accept a range parameter. #326

    • Added ReadRef type parameter to read::StringTable and types that contain it. String table entries are now only read as required. #326

    • Changed result type of read::elf::SectionHeader::data and data_as_array. #332

    • Moved pod::WritableBuffer to write::WritableBuffer. Renamed WritableBuffer::extend to write_bytes. Added more provided methods to WritableBuffer. #335

    • Moved pod::Bytes to read::Bytes. #336

    • Added is_mips64el parameter to elf::Rela64::r_info/set_r_info. #337

    Changed

    • Removed alloc dependency when no features are enabled. #336

    Added

    • Added read::pe::PeFile methods: section_table, data_directory, and data. #324

    • Added more ELF definitions. #332

    • Added read::elf::SectionTable methods for hash tables and symbol version information. #332

    • Added PE RISC-V definitions. #333

    • Added WritableBuffer implementation for Vec. #335


    Open source →
  42. 0.25.3 12 Jun 2021
    Release notes

    Released 2021/06/12.

    Added

    • Added RelocationEncoding::AArch64Call. #322

    Open source →
  43. 0.25.2 04 Jun 2021
    Release notes

    Released 2021/06/04.

    Added

    • Added Architecture::X86_64_X32. #320

    Open source →
  44. 0.25.1 03 Jun 2021
    Release notes

    Released 2021/06/03.

    Changed

    • write: Fix choice of SHT_REL or SHT_RELA for most architectures. #318

    • write: Fix relocation encoding for MIPS64EL. #318


    Open source →
  45. 0.25.0 02 Jun 2021
    Release notes

    Released 2021/06/02.

    Breaking changes

    • Added non_exhaustive to most public enums. #306

    • MachHeader::parse and MachHeader::load_commands now require a header offset. #304

    • Added ReadRef::read_bytes_at_until. #308

    • PeFile::entry, PeSection::address and PeSegment::address now return a virtual address instead of a RVA. #315

    Added

    • Added pod::from_bytes_mut, pod::slice_from_bytes_mut, pod::bytes_of_mut, and pod::bytes_of_slice_mut. #296 #297

    • Added Object::pdb_info. #298

    • Added read::macho::DyldCache, other associated definitions, and support for these in the examples. #308

    • Added more architecture support. #303 #309

    • Derive more traits for enums. #311

    • Added Object::relative_address_base. #315

    Changed

    • Improved performance for string parsing. #302

    • objdump example allows selecting container members. #308

    Open source →
  46. 0.24.0 01 May 2021

    Nothing published for this version

  47. 0.23.0 12 Dec 2020

    Nothing published for this version

  48. 0.22.0 27 Oct 2020

    Nothing published for this version

  49. 0.21.1 19 Aug 2020

    Nothing published for this version

  50. 0.21.0 13 Aug 2020

    Nothing published for this version

  51. 0.20.0 15 Jun 2020

    Nothing published for this version

  52. 0.19.0 12 May 2020

    Nothing published for this version

  53. 0.18.0 22 Mar 2020

    Nothing published for this version

  54. 0.17.0 23 Dec 2019

    Nothing published for this version

  55. 0.16.0 19 Nov 2019

    Nothing published for this version

  56. 0.15.0 30 Oct 2019

    Nothing published for this version

  57. 0.14.1 29 Oct 2019

    Nothing published for this version

  58. 0.14.0 10 Sep 2019

    Nothing published for this version

  59. 0.13.0 25 Aug 2019

    Nothing published for this version

  60. 0.12.0 26 Apr 2019

    Nothing published for this version

Every package, every release, already written down.

The archive is open and free. Watching your own project is what we are building next.

Browse the archive