One related scheme is fountain codes, where you can split a file into a pseudo infinite stream of blocks such that finding N blocks will almost certainly allow reconstruction. Very useful in UDP / satellite transmission, where you can keep broadcasting these blocks and clients can listen at their convenience.
The state of the art codec is RaptorQ, I’ve got a Go library that uses the slightly older Raptor standard to do chunking