Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
56 commits
Select commit Hold shift + click to select a range
8db8ad8
sys: bump capstone to 6.0.0-alpha4, fix arm64 and sysz rename
jiegec May 23, 2025
04af6e1
rs: rename arm64 -> aarch64 and sysz -> systemz to follow upstream
jiegec May 23, 2025
83ea0a0
rs: adapt to capstone v6 changes, mainly in aarch64
jiegec May 23, 2025
0dbd611
rs: use aarch64_reg::Type for windows compat
jiegec May 23, 2025
d578792
rs: run cargo fmt to make ci happy
jiegec May 23, 2025
ce7b755
rs, sys: mention capstone 6.0.0-alpha4 and arch renaming in CHANGELOG
jiegec May 23, 2025
3958711
rs: avoid possible panics in library functions
jiegec May 23, 2025
89f3396
rs: add missing doc comments
jiegec May 23, 2025
facda87
rs, sys: generate arm_spsr_cspr_bits as bitfield enum
jiegec May 24, 2025
2366125
rs: add previously failed testcase from issue 175
jiegec May 24, 2025
655ac3d
ci: rename arch_arm64 to arch_aarch64 feature
jiegec May 24, 2025
ff89113
sys: add Alpha arch support
jiegec May 24, 2025
816ef7a
rs, sys: fix feature detection after renaming
jiegec May 24, 2025
de1f72a
sys: add HPPA arch support
jiegec May 24, 2025
f663076
sys: add LoongArch arch support
jiegec May 24, 2025
00ae86d
sys: add Xtensa arch support
jiegec May 24, 2025
fdb529c
sys: add ARC arch support
jiegec May 24, 2025
937868a
sys: move bpf bindings around to become in order
jiegec May 24, 2025
181d5d3
rs: add Alpha arch support
jiegec May 24, 2025
b67c91b
sys: fix build.rs lifetime for Rust 1.70.0
jiegec May 24, 2025
19a7c22
rs: add HPPA arch support
jiegec May 24, 2025
91f6130
rs: add LoongArch arch support
jiegec May 24, 2025
83d40d3
rs: rename variable to reflect its type
jiegec May 24, 2025
7df1a63
rs: disable failing hppa test due to upstream bug
jiegec May 24, 2025
52f361e
rs: add Xtensa arch support
jiegec May 24, 2025
5f8f412
rs: fix tests on windows
jiegec May 24, 2025
94c67a3
rs: add ARC arch support
jiegec May 24, 2025
8fffc72
rs: fix type conversion on windows
jiegec May 24, 2025
ca9fc53
rs: bump capstone to 6.0.0-Alpha4-8-gefc0ba44 to fix upstream bugs
jiegec May 26, 2025
63ce54c
rs: update tests after upstream bugs are fixed
jiegec May 26, 2025
089854a
rs: test CS_OPT_UNSIGNED using x86 code
jiegec May 26, 2025
6d188ae
rs, sys: bump capstone to 6.0.0-Alpha4-13-gfe6bdc6e
jiegec Jun 15, 2025
5073f86
sys: bump capstone to 6.0.0-Alpha4-25-g717d8b05
jiegec Jul 9, 2025
d1f3aa3
rs: bump capstone to 6.0.0-Alpha4-25-g717d8b05
jiegec Jul 9, 2025
3f9791c
rs: add access mode to sparc operand
jiegec Jul 9, 2025
5c76141
rs: document recent changes in CHANGELOG
jiegec Jul 9, 2025
bb93947
rs: update tests for sparc, not a bug actually
jiegec Jul 9, 2025
e6cf1e1
rs: apply cargo clippy
jiegec Jul 9, 2025
9c883d8
rs: fix tests on windows
jiegec Jul 9, 2025
8564f14
rs, sys: bump capstone to 6.0.0-Alpha5
jiegec Aug 4, 2025
81e7a8c
rs: zero initialize cs_insn to make valgrind happy
jiegec Aug 4, 2025
3476eaa
sys: regenerate bindings to use ffi instead of libc for c_uint type
jiegec Jan 17, 2026
fc9ba18
rs: use ffi instead of libc for c_uint type
jiegec Jan 17, 2026
bc4d427
rs: drop misplaced changelog due to git rebase
jiegec Jan 17, 2026
26db2e7
rs, sys: bump capstone to 6.0.0-Alpha6
jiegec Jan 17, 2026
a714e12
rs, sys: bump capstone to 6.0.0-Alpha7
jiegec Feb 16, 2026
bbc75c6
rs, sys: bump capstone to 6.0.0-Alpha8
jiegec May 24, 2026
1e3d64c
sys: only compile enabled arch sources in build.rs
CodeWenjiu May 29, 2026
442fd7c
sys: panic on unhandled arch dir, allow clippy match_like_matches_macro
CodeWenjiu Jun 16, 2026
b06049d
sys: fix panic format for Rust 2018 edition compatibility
CodeWenjiu Jun 16, 2026
b2a58da
sys: remove redundant clippy allow attribute
CodeWenjiu Jun 16, 2026
bbcada5
rs, sys: bump capstone to 6.0.0-Alpha10
jiegec Jul 21, 2026
5d66171
sys: fix cargo clippy warnings
jiegec Jul 21, 2026
16d8c81
rs: do not hardcode csr number, use enum riscv_sysreg instead
jiegec Jul 21, 2026
ec39c66
rs: fix memory displacement overflowing i32 on AArch64
charleywright Aug 5, 2026
bda1f4b
rs: add regression test for aarch64 memory displacement overflow
jiegec Aug 6, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
The diff you're trying to view is too large. We only load the first 3000 changed files.
4 changes: 2 additions & 2 deletions .github/workflows/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -40,8 +40,8 @@ jobs:
- name: test (with bindgen)
run: env ${{ matrix.rust.env }} FEATURES="use_bindgen" ./capstone-rs/ci/test.sh

- name: test (only enable x86 and arm64)
run: env ${{ matrix.rust.env }} FEATURES=std,full,arch_x86,arch_arm64 NO_DEFAULT_FEATURES=1 ./capstone-rs/ci/test.sh
- name: test (only enable x86 and aarch64)
run: env ${{ matrix.rust.env }} FEATURES=std,full,arch_x86,arch_aarch64 NO_DEFAULT_FEATURES=1 ./capstone-rs/ci/test.sh

feature-checks:
runs-on: ubuntu-latest
Expand Down
17 changes: 15 additions & 2 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,22 @@ Notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

## [Unreleased]
## [UNRELEASED] - YYYY-MM-DD
### Added
- Alpha arch support
- HPPA arch support
- LoongArch arch support
- Xtensa arch support
- ARC arch support
- Make AccessType available for Sparc
- New operands types are added to `ArmOperandType`

### Changed
- Bump bundled capstone to 5.0.9
- Bump bundled capstone to 6.0.0-Alpha10
- Rename ARM64 to AARCH64, SYSZ to SYSTEMZ to follow upstream changes
- AArch64 support is rewritten to follow upstream changes
- Endian must be specified for Sparc/SystemZ, since little endian support is added
- Rename RegAccessType to AccessType while keeping type alias

## [0.14.0] - 2026-01-04
### Added
Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -123,7 +123,7 @@ More complex demos welcome!
- `use_bindgen`: run `bindgen` to generate Rust bindings to Capstone C library
instead of using pre-generated bindings (not recommended)
- `arch_$ARCH`<sup>&dagger;</sup>: enable arch `$ARCH` support in capstone,
e.g. `arch_arm64` enables arch arm64 support
e.g. `arch_aarch64` enables arch aarch64 support.
- `support_all_archs`<sup>&dagger;</sup>: enable all archs available
in capstone, imply all `arch_$ARCH` features
- `check_only`: do not compile and link capstone C library,
Expand Down
18 changes: 14 additions & 4 deletions capstone-rs/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -37,10 +37,14 @@ full = ["capstone-sys/full"]
use_bindgen = ["capstone-sys/use_bindgen"]
# arch specific features to reduce binary size
support_all_archs = [
"arch_aarch64",
"arch_alpha",
"arch_arc",
"arch_arm",
"arch_arm64",
"arch_bpf",
"arch_evm",
"arch_hppa",
"arch_loongarch",
"arch_m680x",
"arch_m68k",
"arch_mips",
Expand All @@ -49,18 +53,23 @@ support_all_archs = [
"arch_riscv",
"arch_sh",
"arch_sparc",
"arch_sysz",
"arch_systemz",
"arch_tms320c64x",
"arch_tricore",
"arch_wasm",
"arch_x86",
"arch_xcore",
"arch_xtensa",
"capstone-sys/support_all_archs",
]
arch_aarch64 = ["capstone-sys/arch_aarch64"]
arch_alpha = ["capstone-sys/arch_alpha"]
arch_arc = ["capstone-sys/arch_arc"]
arch_arm = ["capstone-sys/arch_arm"]
arch_arm64 = ["capstone-sys/arch_arm64"]
arch_bpf = ["capstone-sys/arch_bpf"]
arch_evm = ["capstone-sys/arch_evm"]
arch_hppa = ["capstone-sys/arch_hppa"]
arch_loongarch = ["capstone-sys/arch_loongarch"]
arch_m680x = ["capstone-sys/arch_m680x"]
arch_m68k = ["capstone-sys/arch_m68k"]
arch_mips = ["capstone-sys/arch_mips"]
Expand All @@ -69,11 +78,12 @@ arch_powerpc = ["capstone-sys/arch_powerpc"]
arch_riscv = ["capstone-sys/arch_riscv"]
arch_sh = ["capstone-sys/arch_sh"]
arch_sparc = ["capstone-sys/arch_sparc"]
arch_sysz = ["capstone-sys/arch_sysz"]
arch_systemz = ["capstone-sys/arch_systemz"]
arch_tms320c64x = ["capstone-sys/arch_tms320c64x"]
arch_tricore = ["capstone-sys/arch_tricore"]
arch_wasm = ["capstone-sys/arch_wasm"]
arch_x86 = ["capstone-sys/arch_x86"]
arch_xcore = ["capstone-sys/arch_xcore"]
arch_xtensa = ["capstone-sys/arch_xtensa"]
# Can be used to accelerate check builds by not building C code
check_only = ["capstone-sys/check_only"]
Loading
Loading