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
FixedBufferAllocator with a linked list implementation that offers cursors, or backing it with a VecDeque instead
- adding a polyfill for
OnceCell::get_or_try_init that uses the stdlib implementation on nightly and uses a copy of the implementation on stable
- either polyfilling the various
MaybeUninit methods 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.
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 ofnightlyelsewhere has gone to zero.I've had a look and it looks like the crate isn't too far off from building on
stablewith its default features, withoutrpc, with a few changes:FixedBufferAllocatorwith a linked list implementation that offers cursors, or backing it with aVecDequeinsteadOnceCell::get_or_try_initthat uses the stdlib implementation on nightly and uses a copy of the implementation on stableMaybeUninitmethods for working with arrays, or removing them entirely and using initialised arrays insteadI 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-stableprojects.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
VecDequeand initialised arrays), but I don't want to interfere with your vision for the project.