If you are looking for ideas on how to expand or improve the crate, here are a few suggestions that would make it even more ergonomic:
1. Implement Deref and DerefMut Right now, users have to explicitly call .get() on SharedBoxRef and .as_slice() / .as_slice_mut() on the Vec types. If you implement the standard std::ops::Deref (and DerefMut for SharedVecPart), users could transparently use these types exactly like standard references or slices (e.g. calling slice methods directly on SharedVecPart without the .as_slice() boilerplate).
2. Allow SharedVecPart to be split further Currently, SharedVecMut can spawn parts, but what if a worker thread receives a SharedVecPart and wants to split the work again across its own sub-threads? If you added split_off and split_to methods directly to SharedVecPart (and maybe a try_merge method so sibling parts can be glued back together if they are contiguous), it would enable recursive work-stealing patterns!
3. Implement IntoIterator Adding IntoIterator for &SharedVecRef, &mut SharedVecPart, etc., would make iterating over the shared vectors much cleaner in for loops, rather than forcing the user to extract the slice and call .iter_mut() manually.