Releases: lynnswap/ABIBridge
Releases · lynnswap/ABIBridge
Release list
v0.2.1
ABIBridge v0.2.1
Improvements
- Faster automatic symbol resolution for C, C++, and Swift, including initial lookups and repeated queries. (#97, #99)
- Reduced memory usage when indexing Swift declarations across loaded images. (#99)
- Faster path-scoped image lookup, loaded-image retention, and shared-cache symbol discovery. (#97, #99)
Full Changelog: v0.2.0...v0.2.1
v0.2.0
ABIBridge v0.2.0
New Features
- Added supported C++ invocation through
NativeInvocation.hpp. Call retained C/C++ symbols with caller-supplied signatures, including direct member calls, reference arguments, nontrivial results, and retained receiver bindings. (#95) - Added supported Objective-C++ selector invocation through
ObjectiveCInvocation.hpp, with signature checks, receiver and result ownership handling, ARC/MRC support, and concrete methods on NSProxy subclasses. (#94)
Breaking Changes
- Swift/C++ pointer search and single-slot inspection, along with
ABIDefaultPointerSearchOptions(), now default to automatic normalization. Data signatures are stripped on PAC-capable 64-bit ARM CPUs; pointer bits remain unchanged otherwise. Select.none,pointer_normalization::none, orABIPointerNormalizationNoneexplicitly when raw-bit comparison is required. Normalization does not authenticate pointers. (#91)
Full Changelog: v0.1.1...v0.2.0
v0.1.1
ABIBridge v0.1.1
Bug Fixes
- Fixed
imageChangederrors during loaded-image enumeration and symbol lookup when a loaded dyld shared-cache image could not be reopened, including affected iOS Simulator environments. (#89)
Full Changelog: v0.1.0...v0.1.1
v0.1.0
ABIBridge v0.1.0
Initial release of ABIBridge, a Swift package for resolving mangled Swift and C++ symbols by source-level name and calling supported native functions and methods with ordinary Swift types and values.
Requires Swift 6.3+ and iOS 18.4+, macOS 15.4+, visionOS 2.4+, watchOS 11.4+, or tvOS 18.4+.
New Features
- Resolve native symbols without writing mangled names, including C++ functions, data, and vtables. Scope lookups to loaded frameworks or image paths, resolve batches, and try ordered fallback declarations.
- Call supported C/C++ functions and methods, including virtual methods, with typed Swift signatures. Invoke concrete synchronous, nonthrowing Swift functions, methods, initializers, and property accessors.
- Invoke Objective-C selectors on existing instances with support for optionals, typed blocks, and object ownership. Capture implementations for original-method calls and read named object or class ivars.
- Integrate custom Swift wrappers through explicit native layouts and ownership adapters.
- Read bounded native memory and discover referenced objects by vtable identity, with offset hints and revalidation.
- Access shared symbol resolution and memory inspection through C interfaces and C++20 wrappers, also usable from Objective-C++. Transfer resolved symbols between Swift and native adapters while retaining their images.
Native invocation requires the caller to provide the correct ABI signature and satisfy ownership and thread requirements.