Soroban Rust SDK v28 introduces breaking changes that simplify contract data management. Contracts can now add optional fields or remove fields entirely without breaking stored data via CAP-86. New features include spec shaking v2 to reduce Wasm bloat for large contract imports, sparse event publishing to lower on-chain payloads, and executable references for coordinated fleet upgrades.

Soroban Rust SDK v28 introduces breaking changes that streamline contract storage and upgrades. CAP-86 enables sparse contract data unpacking: optional fields read as None if absent, and removed fields are ignored when reading legacy data, eliminating complex versioning strategies. Spec shaking v2 uses dead-code elimination to shrink Wasm specs, particularly valuable for contracts importing large libraries like OpenZeppelin's. Events now publish sparsely, omitting optional fields with void values from maps to reduce on-chain payload. Executable references (CAP-85) allow contracts to load code from named entries instead of direct Wasm hashes, enabling single-write fleet upgrades. Developers must build with stellar-cli v25.2.0 or newer. Offchain systems parsing events or relying on unpacking behavior require careful review before upgrading.