It does require nightly, but it only uses five features, one of which could be removed by adding an external crate, and the others are like, not anything super wild, for the most part. I haven't looked too deeply into the code but they all make sense to me, for example one of them is a standard library API for creating uninitialized containers, which allows you to eliminate a copy.
I have not compared monoio with glommio, which does run on stable. Would be interesting!
It’s not that the features are unreasonable but more that anything that uses it as a dependency also inherits the nightly requirement which makes things a bit more unstable because nightly is a floating version.
I did compare with glommio a bit and disliked the file API in monoio but that’s probably more a matter of taste.
Yeah I hear you. I much prefer staying on stable for that reason. Sometimes (though much more rarely than non-Rust users seem to think) it is unavoidable though, and once you do go into nightly, you can kinda go two ways:
* only use what is absolutely necessary
* go wild and add tons of stuff
As well as there being two kinds of nightly features:
* stuff that's not stable but has a clear path to becoming stable on some time frame
* stuff that's not stable but who knows when that will change, it may never
And to me, this dependency feels kinda closer to choosing the first option from both lists, which is the most conservative way of using nightly.
As already mentioned, we've decived to use monoio, just to have something to begin with, it will take at least a few months to rewrite the core parts to make use of io_uring and thread-per-core approach (if feasible), so staying on the bleeding edge is more like a sandbox for us - we might decide to go with another runtime, like glommio, mfio or something else.
Ah cool! Just to be clear, I think you should do whatever you feel is best for your project. I don't see this in any sort of moral terms, purely engineering ones, and there are good reasons to use nightly just like there are good reasons to use stable.