This is all doubly painful because I’m doing it in Swift, and just flushing 40 years of memory and type safety straight down the drain for absolutely nothing.
It’s all managed and strongly typed on both sides of the wall here! Why why why must the pipeline be raw bytes and hand-computed buffer lengths? Surely somebody’s made a nice ergonomic wrapper for this nonsense….