Skip to content

feat: make hash families opt-in - #23

Merged
tisonkun merged 5 commits into
mainfrom
codex/hash-family-features
Sep 8, 2026
Merged

feat: make hash families opt-in#23
tisonkun merged 5 commits into
mainfrom
codex/hash-family-features

Conversation

@tisonkun

@tisonkun tisonkun commented Sep 8, 2026

Copy link
Copy Markdown
Contributor

Summary

Make cityhash, fnv, md5, murmur, and xxhash opt-in Cargo features matching their public modules. No features are enabled by default. Each family remains usable without std, dependencies, or allocation.

Existing consumers must select the families they use and enable std explicitly for standard I/O adapters and XXH3 runtime CPU detection, for example hashcrew = { version = "0.1", features = ["std", "xxhash", "md5"] }. Share the optional Write adapter methods through a private macro, using only public streaming APIs. Update consumers, migration guidance, and rustdoc links; build documentation with all features and automatic feature availability badges using the docs.rs configuration.

Centralize native and cross-target feature checks and Miri in cargo x, with hash families discovered from Cargo metadata. Run stable/MSRV tests on Linux, macOS, and Windows, and aggregate all CI jobs in Required. Keep the workflows usable on Windows and AArch64 by avoiding a rebuild of the running xtask executable and skipping NEON's scheduling-only assembly barrier under Miri.

@tisonkun
tisonkun merged commit 8e5e6cb into main Sep 8, 2026
14 checks passed
@tisonkun
tisonkun deleted the codex/hash-family-features branch September 8, 2026 14:32
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant