Arrow currently has a hard dependency on Netty and exposes this in public APIs. This shouldn't be the case. There could be many allocator implementations with Netty as one possible option. We should remove hard dependency between arrow-vector and Netty, instead creating a trivial allocator. ArrowBuf should probably expose an <T> T unwrap(Class<T> clazz) method instead to allow inner providers availability without a hard reference. This should also include drastically reducing the number of methods on ArrowBuf as right now it includes every method from ByteBuf but many of those are not very useful, appropriate.
This work should come after we do the simpler