Skip to content

Viability of building with stable with a subset of features #25

@philpax

Description

@philpax

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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions