It has been supported since at least MRI 3.0 (https://docs.ruby-lang.org/en/3.0/Array.html#method-i-pack), and helps avoid transient string allocations when building up nested binary structures