dll-syringe
dll-syringe copied to clipboard
Viability of building with stable with a subset of features
Hi there!
Love the crate, have been using it for a few years now; however, it's always perturbed me that it requires nightly, especially as my use of nightly elsewhere has gone to zero.
I've had a look and it looks like the crate isn't too far off from building on stable with its default features, without rpc, with a few changes:
- backing the
FixedBufferAllocatorwith a linked list implementation that offers cursors, or backing it with aVecDequeinstead - adding a polyfill for
OnceCell::get_or_try_initthat uses the stdlib implementation on nightly and uses a copy of the implementation on stable - either polyfilling the various
MaybeUninitmethods for working with arrays, or removing them entirely and using initialised arrays instead
I think these three changes would be sufficient to make it build and run on stable, which would make it much easier to integrate into otherwise-stable projects.
Would you be interested in a PR for these changes? If so, which variants would you prefer? My personal opinion is that DLL injection is enough of an outlier event to allow for less-efficient implementations (i.e. the VecDeque and initialised arrays), but I don't want to interfere with your vision for the project.