I think a more simple approach would be providing conversions between stabby::vec::Vec<T, A> and std::vec::Vec<T, A>. The allocator safety is guaranteed by using the same allocator (and you can restrict which ones are allowed). The memory layout safety is guaranteed by your repr(C) notation.