Releases: deploymenttheory/go-apfs-v2
Releases · deploymenttheory/go-apfs-v2
Release list
v0.3.0
0.3.0 (2026-07-29)
Features
- pack: add LZFSE and LZMA DMG compression, default to LZFSE (217d6a7)
Binaries are pure Go and require no runtime dependencies.
Verify a download against the signed checksum file:
cosign verify-blob \
--bundle apfs_0.3.0_checksums.txt.sigstore.json \
--certificate-identity-regexp 'https://github.com/deploymenttheory/go-apfs-v2/.*' \
--certificate-oidc-issuer https://token.actions.githubusercontent.com \
apfs_0.3.0_checksums.txt
shasum -a 256 -c apfs_0.3.0_checksums.txt --ignore-missingv0.2.0
0.2.0 (2026-07-28)
Features
- apfs: unlock FileVault volumes with a supplied password (9b4fa0e)
- apfswrite: carry decmpfs compression through unchanged (41b0ce9)
- apfswrite: write a volume group as the system/data pair it is (f4de4d1)
- apfswrite: write containers holding several volumes (a21e9d1)
- apfswrite: write several snapshots per volume (8efce8d)
- carry resource forks in the HFS+ writer (d96961b)
- emit case-insensitive HFS+ volumes (e70d8ea)
- hfsplus: carry decmpfs compression through unchanged (f62656c)
- hfsplus: carry resource forks (d2b7cca)
- hfsplus: emit case-insensitive volumes (c095f6c)
- hfsplus: read extended attributes (bc53ba9)
- hfsplus: read transparently-compressed files (9eb2fdd)
- hfsplus: represent hard links (1898792)
- hfsplus: write the attributes file (f17be7b)
- pack: preserve transparent compression when writing APFS (479ad9f)
- read extended attributes on HFS+ (df7bbf7)
- read transparently-compressed files on HFS+, and repair fixture generation (a73981f)
- represent hard links in the HFS+ writer (7994803)
- support HFS+ in mount and inspect (622cfae)
- write the HFS+ attributes file (b03ce1b)
Bug Fixes
- acceptance: compile the hard-link assertions on every platform (aed4ca2)
- apfswrite: number a grouped system volume's inodes above the mark (195235d)
- apfswrite: write only 4096-byte blocks (2480a2d)
- compile the hard-link assertions on every platform (2e9e2aa)
- correct the HFS+ capability docs and restrict the APFS writer to 4096-byte blocks (a4aff56)
- declare a wrapped bare image as a partition image, so created DMGs mount (fa2d4d5)
- disk: declare a wrapped bare image as a partition image (364458e)
- disk: make the ADC and Apple Partition Map claims true (132d21d)
- hfsplus: normalize names so macOS can find them (ea5d45e)
- hfsplus: write the hard-link chain macOS requires (a0e0dc1)
- normalize HFS+ names so macOS can find them (50455c6)
Binaries are pure Go and require no runtime dependencies.
Verify a download against the signed checksum file:
cosign verify-blob \
--bundle apfs_0.2.0_checksums.txt.sigstore.json \
--certificate-identity-regexp 'https://github.com/deploymenttheory/go-apfs-v2/.*' \
--certificate-oidc-issuer https://token.actions.githubusercontent.com \
apfs_0.2.0_checksums.txt
shasum -a 256 -c apfs_0.2.0_checksums.txt --ignore-missingv0.1.0
What's Changed
- build(deps): bump golang.org/x/crypto from 0.31.0 to 0.45.0 by @dependabot[bot] in #9
- feat: finish up by @ShocOne in #18
- feat: cli redesign + hsf+ support by @ShocOne in #19
- feat(disk): UDIF/DMG writer and
apfs packfor lossless repack by @ShocOne in #20 - feat(hfsplus): HFS+ filesystem writer and 'apfs pack ' directory packing by @ShocOne in #21
- feat: apfs write by @ShocOne in #22
- docs: rebaseline README and CLI help for the full command set by @ShocOne in #23
- feat: apfs file write by @ShocOne in #24
- Bump actions/checkout from 4.2.2 to 5.0.0 by @dependabot[bot] in #1
- Bump googleapis/release-please-action from 4.2.0 to 4.4.0 by @dependabot[bot] in #2
- Bump actions/dependency-review-action from 4.5.0 to 4.8.1 by @dependabot[bot] in #3
- Bump super-linter/super-linter from 7.3.0 to 8.2.1 by @dependabot[bot] in #4
- Bump step-security/harden-runner from 2.11.0 to 2.13.1 by @dependabot[bot] in #5
- feat: Relicense pkg/apfswrite to MIT via clean-room reimplementation by @ShocOne in #25
- feat: apfs snapshots by @ShocOne in #26
- feat: refactor terms to apple terminology by @ShocOne in #27
- feat: reproducible (byte-identical) output from every write command by @ShocOne in #28
- feat: decode volume roles and surface volume groups by @ShocOne in #29
- fix: implement decmpfs LZFSE and repair inline decmpfs by @ShocOne in #39
- fix: skip special files in pack instead of hanging on them by @ShocOne in #40
- feat: report write fidelity, add --strict, and implement extract --xattrs by @ShocOne in #41
- feat: let the DMG encoder read its source lazily by @ShocOne in #42
- feat: build images into a scratch file rather than memory by @ShocOne in #43
- feat: check for free space before building an image by @ShocOne in #44
- feat: repack a DMG without materialising it by @ShocOne in #45
- feat: stop the writers assembling images and files in memory by @ShocOne in #46
- feat: carry extended attributes in the APFS writer by @ShocOne in #47
- feat: store large extended attributes in data streams by @ShocOne in #48
- feat: represent hard links in the APFS writer by @ShocOne in #49
New Contributors
- @dependabot[bot] made their first contribution in #9
- @ShocOne made their first contribution in #18
Full Changelog: https://github.com/deploymenttheory/go-apfs-v2/commits/v0.1.0