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
Releases
latest 20-
0.18.004 Jan 2026Release notes
Open source →Added
- Support for TriCore arch
- Support for MOS65XX arch
- Support for SH arch
- Arch-specific features flags to enable/disable arch support
- Add
check_onlyfeature to speed upcargo checkby building without native code
Changed
- Bump bundled capstone to 5.0.6
- Change
cs_regs_access()regs_read/regs_writeargs to take*mut cs_regs(instead of*mut u16)- makes it more clear that args should be fixed size arrays
-
0.17.004 Feb 2025Release notes
Open source →Fixed
- Segfault when running on s390x (AKA SystemZ)
Added
- Support for BPF arch
Changed
- Bump MSRV to 1.70
-
0.16.025 Feb 2024Release notes
Open source →Fixed
- Make builds more reproducible
Added
fullfeature (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_opinto single enumarm64_sys_op(based on upstream3e23b60af0)
-
0.15.002 May 2022Release notes
Open source →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
- Document that minimum supported Rust version is actually 1.50.0
-
0.14.009 Aug 2021Release notes
Open source →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
RegAccessTypeavailable for ARM64 - Expose
CS_OPT_UNSIGNEDviaCapstone::set_unsigned - Expose
CS_OPT_MNEMONICviaCapstone::set_mnemonic - Expose
cs_disasm_iterviaCapstone::disasm_iter - Add
check_onlyfeature to speed upcargo checkby building without native code
Changed
- Rename
RegAccessTypetoAccessTypewhile 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
-
0.13.014 Jul 2021Release notes
Open source →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
bindgenfeature - Segfault when running on s390x (AKA SystemZ)
Removed
From<u32> for RegIdimpl
Release notes
Open source →Added
- Support for RISC-V architecture
Changed
- Upgraded bundled capstone to from a42f9fa9 to f278de39
- Updated minimum supported Rust version to 1.40.0
-
0.12.010 Apr 2021Release notes
Open source →Added
fullfeature (enabled by default) which disables [diet mode] for the Capstone C library
Changed
- Bump minimum Rust version to 1.60.0
Arm64OperandType::SyscontainsArm64SysOpinstead ofu32
-
0.11.017 Mar 2020Release notes
Open source →Added
- Owned insn type
OwnedInsn(#123)
Removed
InsnCloneimpl to fix soundness issue (#122)
Fixed
- Soundness issue by remove
InsnCloneimpl (see "Removed" note above)
- Owned insn type
-
0.10.017 Apr 2019Release notes
Open source →Added
- Links to related types/functions in API documentation
Changed
- Access
Insnelements ofInstructionsviaDeref/AsReftraits instead of an iterator - Access
Insngroups and read/write registers via a slice - Update README.md code example
Release notes
Open source →Changed
- Upgraded bundled capstone to release 4.0
Removed
- Capstone doc and IDE folders
-
0.9.121 Sep 2018Release notes
Open source →Changed
- Upgraded bundled capstone to release 3.0.5 (Git commit a31b5328 to db19431d).
-
0.9.008 Jul 2018Release notes
Open source →Added
- Support for RISC-V architecture
Changed
- Updated minimum supported Rust version to 1.40.0
Release notes
Open source →Changed
- Upgraded bundled capstone from 7e004bd4 to a31b5328, which incorporates upstream Capstone PR #1171
- Always use
cccrate 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
-
0.8.002 Jun 2018Release notes
Open source →Added
Insn::from_raw()to convert from acs_insnpointerDerefimpl forInstructions
Changed
- X86: return
X86OpMem::segment()asRegIdinstead ofu32
Fixed
- Fixed data race in multi-threaded environment (#87)
Release notes
Open source →Added
- Documented FreeBSD support
Changed
- Upgraded bundled capstone from 8308ace3 to 7e004bd4, which incorporates upstream Capstone PRs #1022 and #1029
Removed
- Unicode characters from README
-
0.7.026 Mar 2018Release notes
Open source →Added
no_stdcompatibility- Parallel disassemble example
- X86: add
X86Operand.accessfield - Implement
From<u32>for *_ins enums
Changed
- Bump minimum Rust version to 1.36.0
Release notes
Open source →Added
- Added support for Windows with
cccrate - Explicitly document supported platforms
Changed
- Changed method bindgen uses to create enum types (depends on type; see API documentation)
- Updated bindgen version
-
0.6.027 Oct 2017Release notes
Open source →Added
- Architectures: EVM, M68K, M680X, TMS320C64X
- Mips modes:
Mips2,Mips3,Mips32,Mips64 - Trait
EnumListto 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-sysrepository intocapstone-rsrepository - Converted operand
Immvariant fromi32toi64for PPC, SPARC X86InsnDetail::disp()returnsi64instead ofi32
Removed
- Mips modes:
Mode32,Mode64,MipsGP64 X86OperandTypevariantFp
-
0.5.031 Aug 2017Release notes
Open source →Added
InsnDetailto preamble
Changed
- Flattened
Errorenum
Removed
X86InsnDetail::avx_rm()
Release notes
Open source →Added
- Add documentation for some types and function
Changed
- Use Rust unions instead of
bindgenunions - Depend on necessary packages only
- Use pre-generated bindings by default (instead of running
bindgen)
Removed
- Dependency
-
0.4.029 Aug 2017Release notes
Open source →Added
- Criterion benchmark
- cstool example
- Codecov code coverage integration
PartialOrd/Ordimplementation forInsnId,InsnGroupId,RegId- Lifetime to
Capstone/Insnstruct alloc_systemfeature 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 selfinstead of&selfand returns a new lifetimeCapstoneis no longerSend/Sync(it was mistakenly auto-implemented)Capstone::new()builder pattern methods takeselfinstead of&mut selfCapstone::set_endian()is now public (allowed since internal Capstone version was upgraded)
Removed
- Duplicate/unneeded
Capstonemethods that have equivalents inInsnDetailinsn_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)
-
0.3.021 Aug 2017 withdrawnRelease notes
Open source →Added
- Architecture-specific detail API with
InsnDetail::arch_detail()method - README badges!
Changed
Capstone::disasm()(and related methods) return emptyInstructionsinstead of an error- Make
Instructions::from_raw_parts()private
- Architecture-specific detail API with
-
0.2.129 Aug 2017 withdrawnNothing published for this version
-
0.2.015 Nov 2016Release notes
Open source →Added
Capstone::new_raw()has the same interface as the oldCapstone::new_raw()- Add setters to modify mode, syntax, etc.
Changed
Capstone::new()uses the builder pattern- Partition
Modeenum into:Mode,ExtraMode, andEndian - Rename
Capstonemethods that return IDs to include_idsin name- Example:
read_registers()renamed toread_register_ids()
- Example:
- Minimum Rust version is 1.20.0
Removed
libcdependency
-
0.1.012 Nov 2016Release notes
Open source →Added
Capstonemethods to set syntax and mode- Travis continuous integration
Changed
- Use
capstone-syscrate for low-level Capstone bindings Capstone::new()takes aarchandmodeargumentsCapstone::disasm()replaced withCapstone::disasm_all()/Capstone::disasm_count()
Removed
- Dependency