PackageTrack
Sign in Get early access

capstone-sys

System bindings to the capstone disassembly library

0.18.0 5.7M downloads/mo #4275 most downloaded on crates.io capstone-rust/capstone-rs

What this package is like to depend on

Last release 7 months ago

04 Jan 2026

Release timing varies

gaps range from 4 weeks to 1.8 years

Nearly every release is documented

notes for 18 of 18 stable releases

2 versions withdrawn

withdrawn after publishing

10 years old

20 releases · first in 2016

1 release in the last 12 months

see the full history below

Release timeline

20 releases · Nov 2016 to Jan 2026
2017 2018 2019 2020 2021 2022 2023 2024 2025 2026
Release Pre-release Withdrawn

Releases

latest 20
  1. 0.18.0 04 Jan 2026
    Release notes

    Added

    • Support for TriCore arch
    • Support for MOS65XX arch
    • Support for SH arch
    • Arch-specific features flags to enable/disable arch support
    • Add check_only feature to speed up cargo check by building without native code

    Changed

    • Bump bundled capstone to 5.0.6
    • Change cs_regs_access() regs_read/regs_write args to take *mut cs_regs (instead of *mut u16)
      • makes it more clear that args should be fixed size arrays
    Open source →
  2. 0.17.0 04 Feb 2025
    Release notes

    Fixed

    • Segfault when running on s390x (AKA SystemZ)

    Added

    • Support for BPF arch

    Changed

    • Bump MSRV to 1.70
    Open source →
  3. 0.16.0 25 Feb 2024
    Release notes

    Fixed

    • Make builds more reproducible

    Added

    • full feature (enabled by default) which disables diet mode for the Capstone C library

    Changed

    • Upgraded bundled capstone to from f278de39 to 3b298421
    • Merged enums arm64_tlbi_op, arm64_at_op, arm64_dc_op, arm64_ic_op into single enum arm64_sys_op (based on upstream 3e23b60af0)
    Open source →
  4. 0.15.0 02 May 2022
    Release notes

    Fixed

    • Document that minimum supported Rust version is actually 1.50.0
      • Improperly documented as 1.40.0 in 0.14.0 release
    • Suppress C compiler warning
    Open source →
  5. 0.14.0 09 Aug 2021
    Release notes

    Added

    • TriCore arch support
    • MOS65XX arch support
    • SH arch support
    • Arch-specific features to toggle arch support
    • Expose X86 instruction encoding info via X86InsnDetail::encoding()
    • Make RegAccessType available for ARM64
    • Expose CS_OPT_UNSIGNED via Capstone::set_unsigned
    • Expose CS_OPT_MNEMONIC via Capstone::set_mnemonic
    • Expose cs_disasm_iter via Capstone::disasm_iter
    • Add check_only feature to speed up cargo check by building without native code

    Changed

    • Rename RegAccessType to AccessType while keeping type alias
    • InsnDetail::regs_read()/InsnDetail::regs_write() return more of the accessed registers
    • Bump bundled capstone to 5.0.6
    • Bump minimum Rust version to 1.81.0

    Fixed

    • impl Display for Insn<'_> now avoids to print trailing space
    • Avoids using allocator when building for no_std
    • Build in Bazel sandbox
    Open source →
    Release notes

    Added

    • Compile WASM support

    Changed

    • Bump bindgen version to 0.59.1
    Open source →
  6. 0.13.0 14 Jul 2021
    Release notes

    Added

    • BPF arch support
    • Detail support for SystemZ
    • Make RegAccessType available for ARM

    Changed

    • Bump minimum Rust version to 1.70.0

    Fixed

    • Build on Windows platforms when using bindgen feature
    • Segfault when running on s390x (AKA SystemZ)

    Removed

    • From<u32> for RegId impl
    Open source →
    Release notes

    Added

    • Support for RISC-V architecture

    Changed

    • Upgraded bundled capstone to from a42f9fa9 to f278de39
    • Updated minimum supported Rust version to 1.40.0
    Open source →
  7. 0.12.0 10 Apr 2021
    Release notes

    Added

    • full feature (enabled by default) which disables [diet mode] for the Capstone C library

    Changed

    • Bump minimum Rust version to 1.60.0
    • Arm64OperandType::Sys contains Arm64SysOp instead of u32
    Open source →
    Release notes

    Changed

    Open source →
  8. 0.11.0 17 Mar 2020
    Release notes

    Added

    • Owned insn type OwnedInsn (#123)

    Removed

    • Insn Clone impl to fix soundness issue (#122)

    Fixed

    • Soundness issue by remove Insn Clone impl (see "Removed" note above)
    Open source →
    Release notes

    Changed

    Open source →
  9. 0.10.0 17 Apr 2019
    Release notes

    Added

    • Links to related types/functions in API documentation

    Changed

    • Access Insn elements of Instructions via Deref/AsRef traits instead of an iterator
    • Access Insn groups and read/write registers via a slice
    • Update README.md code example
    Open source →
    Release notes

    Changed

    • Upgraded bundled capstone to release 4.0

    Removed

    • Capstone doc and IDE folders
    Open source →
  10. 0.9.1 21 Sep 2018
    Release notes

    Changed

    Open source →
  11. 0.9.0 08 Jul 2018
    Release notes

    Added

    • Support for RISC-V architecture

    Changed

    • Updated minimum supported Rust version to 1.40.0
    Open source →
    Release notes

    Changed

    • Upgraded bundled capstone from 7e004bd4 to a31b5328, which incorporates upstream Capstone PR #1171
    • Always use cc crate to build Capstone

    Removed

    • Features affecting build: use_system_capstone, build_capstone_cmake, build_capstone_cc
      • The old build features were never used and complicated the code/documentation
    Open source →
  12. 0.8.0 02 Jun 2018
    Release notes

    Added

    • Insn::from_raw() to convert from a cs_insn pointer
    • Deref impl for Instructions

    Changed

    • X86: return X86OpMem::segment() as RegId instead of u32

    Fixed

    • Fixed data race in multi-threaded environment (#87)
    Open source →
    Release notes

    Added

    • Documented FreeBSD support

    Changed

    Removed

    • Unicode characters from README
    Open source →
  13. 0.7.0 26 Mar 2018
    Release notes

    Added

    • no_std compatibility
    • Parallel disassemble example
    • X86: add X86Operand.access field
    • Implement From<u32> for *_ins enums

    Changed

    • Bump minimum Rust version to 1.36.0
    Open source →
    Release notes

    Added

    • Added support for Windows with cc crate
    • Explicitly document supported platforms

    Changed

    • Changed method bindgen uses to create enum types (depends on type; see API documentation)
    • Updated bindgen version
    Open source →
  14. 0.6.0 27 Oct 2017
    Release notes

    Added

    • Architectures: EVM, M68K, M680X, TMS320C64X
    • Mips modes: Mips2, Mips3, Mips32, Mips64
    • Trait EnumList to allow you to enumerate enum variants
    • X86: X86InsnDetail::xop_cc() getter

    Changed

    • Bump minimum Rust version to 1.29.2
    • Upgraded internal capstone C library to version 4.0
    • Moved capstone-sys repository into capstone-rs repository
    • Converted operand Imm variant from i32 to i64 for PPC, SPARC
    • X86InsnDetail::disp() returns i64 instead of i32

    Removed

    • Mips modes: Mode32, Mode64, MipsGP64
    • X86OperandType variant Fp
    Open source →
    Release notes

    Added

    • Added support for Mac OS
    • Added more CI tests
    Open source →
  15. 0.5.0 31 Aug 2017
    Release notes

    Added

    • InsnDetail to preamble

    Changed

    • Flattened Error enum

    Removed

    • X86InsnDetail::avx_rm()
    Open source →
    Release notes

    Added

    • Add documentation for some types and function

    Changed

    • Use Rust unions instead of bindgen unions
    • Depend on necessary packages only
    • Use pre-generated bindings by default (instead of running bindgen)

    Removed

    • Dependency
    Open source →
  16. 0.4.0 29 Aug 2017
    Release notes

    Added

    • Criterion benchmark
    • cstool example
    • Codecov code coverage integration
    • PartialOrd/Ord implementation for InsnId, InsnGroupId, RegId
    • Lifetime to Capstone/Insn struct
    • alloc_system feature to use the system allocator instead of the default allocator (currently requires nightly)

    Changed

    • Minimum Rust version to 1.23.0
    • Capstone::disasm() methods take &mut self instead of &self and returns a new lifetime
    • Capstone is no longer Send/Sync (it was mistakenly auto-implemented)
    • Capstone::new() builder pattern methods take self instead of &mut self
    • Capstone::set_endian() is now public (allowed since internal Capstone version was upgraded)

    Removed

    • Duplicate/unneeded Capstone methods that have equivalents in InsnDetail
      • insn_belongs_to_group(), insn_group_ids(), register_id_is_read(), read_register_ids(), register_id_is_written(), write_register_ids()

    Fixed

    • Race condition and memory unsafety in issue most easily observed on Mac OS (issue #26)
    Open source →
  17. 0.3.0 21 Aug 2017 withdrawn
    Release notes

    Added

    • Architecture-specific detail API with InsnDetail::arch_detail() method
    • README badges!

    Changed

    • Capstone::disasm() (and related methods) return empty Instructions instead of an error
    • Make Instructions::from_raw_parts() private
    Open source →
  18. 0.2.1 29 Aug 2017 withdrawn

    Nothing published for this version

  19. 0.2.0 15 Nov 2016
    Release notes

    Added

    • Capstone::new_raw() has the same interface as the old Capstone::new_raw()
    • Add setters to modify mode, syntax, etc.

    Changed

    • Capstone::new() uses the builder pattern
    • Partition Mode enum into: Mode, ExtraMode, and Endian
    • Rename Capstone methods that return IDs to include _ids in name
      • Example: read_registers() renamed to read_register_ids()
    • Minimum Rust version is 1.20.0

    Removed

    • libc dependency
    Open source →
  20. 0.1.0 12 Nov 2016
    Release notes

    Added

    • Capstone methods to set syntax and mode
    • Travis continuous integration

    Changed

    • Use capstone-sys crate for low-level Capstone bindings
    • Capstone::new() takes a arch and mode arguments
    • Capstone::disasm() replaced with Capstone::disasm_all()/Capstone::disasm_count()

    Removed

    • Dependency
    Open source →

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