Consistently use bincode's Encode/Decode to avoid issues with
incompatible serde features. Support for storing some temporary files as
JSON is removed.
The size of the "processed" directory is reduced by ~8% with the new
default encoding of bincode 2. Performance is more or less unaffected.
zlib-rs provides the same performance as zlib-ng with minedmap, while
reducing the amount of C code and avoiding the external build dependency
on CMake.
Introduce the new features jemalloc (set jemalloc global allocator
unconditionally) and jemalloc-auto (set jemalloc global allocator on
musl-based targets to fix multithreaded performance, see [1]).
Because cargo does not support target-specific features or feature
defaults, the default is handled using a helper crate
minedmap-default-alloc.
[1] https://nickb.dev/blog/default-musl-allocator-considered-harmful-to-performance/
Besides adding a number of experimental block types for the 1.21 preview,
Minecraft 1.20.3 also renamed the "grass" block to "short grass"
internally. Add the new block name to avoid warnings during generation.
Get rid of the arbitrary bin/lib split and instead move as much as
possible into the bin crate, which becomes the main crate again.
The types and NBT handling are moved into separate crates, so they can
be reused by nbtdump and regiondump.