Exact-source bincode 2.0.1 compatibility backport #
HEXWORK maintains Rust 1.75 support metadata for the exact published bincode
2.0.1 and bincode_derive 2.0.1 packages. This is a local maintenance claim,
not an upstream Rust 1.75 support claim. Upstream declares Rust 1.85.0.
The only changes to the extracted packages are the two Cargo.toml
rust-version declarations and bincode's exact =2.0.1 derive dependency pin.
No implementation, unsafe code, allocation/claim behavior, decoding limit,
feature definition, original author manifest, or package license is changed.
Provenance and licensing #
Both original .crate archives are retained under upstream/. Their SHA256
checksums were authenticated against the registry entries in baseline
e4cfd4c:Cargo.lock before extraction. provenance.json records those trust
anchors, upstream/source identity, all 78 archived files and original SHA256
values, and the exact permitted manifest deltas. The normalized manifests,
Cargo.toml.orig, READMEs, tests/benches, and hidden release metadata are retained;
no archived file was omitted. Registry-cache-only extraction markers are not
part of these published archives. The two packages are MIT
licensed: see each unchanged LICENSE.md. Source upstream is
https://github.com/bincode-org/bincode; the authenticated packages, rather than
a moving upstream branch, are the comparison authority.
Verification and support boundary #
Run with Python 3.11 or newer (standard library only):
python3 vendor/verify.py --root vendor
python3 vendor/verify.py --root vendor --self-test
The verifier reads archives without extraction, authenticates hardcoded baseline checksums, validates the complete original inventory, rejects unsafe archive members/symlinks and extra/missing package files, compares every non-manifest byte, and checks both textual and parsed manifest deltas. Self-tests use throwaway copies outside this tree. No production file is repaired by the tool.
The scoped feature set is bincode's existing default/std/alloc/derive set; serde is not enabled. The diagnostic probe established feasibility on Rust 1.75 with unchanged codec implementation, not project-wide certification. Acceptance additionally requires actual locked Rust 1.75 and stable builds, content/parser gates, unchanged genuine v4 save/replay fixture hashes and exact re-encoding, and bounded/contextual decoding tests. The root workspace excludes these vendor directories from project membership; upstream test suites are not silently adopted as workspace targets. Their complete sources remain retained. No global project lint suppression is authorized.
Only executed local Linux gates may be claimed. Configured macOS CI does not certify an unexecuted macOS build; Windows, optional serde/no-std configurations, and other untested features/platforms are outside this repair's proof. Production Cargo commands must never bypass Rust-version enforcement.
Maintenance policy #
Monitor upstream issues and releases, including correctness/security reports. Do not automatically upgrade the codec, change codec sources, loosen pins, or regenerate fixtures. Any future change requires an explicit maintenance plan, archive/license/provenance review, exact save/replay byte and decoding-budget tests on supported compilers, and independent review. Stop and escalate if a compiler requires implementation changes or any fixture/budget drifts. Preserve the original archives and trust anchors when reviewing future changes.