asynk-strim 0.1.0

Lightweight stream generator library
Documentation
asynk-strim-0.1.0 has been yanked.

asynk-strim

Like async-stream but without macros. Like async-fn-stream but a little more efficient.

Features:

  • macroless API
  • one dependency (besides futures-core which I don't count since it provides the Stream definition)
  • no_std-compatible, zero allocations

[!IMPORTANT]
This crate adds a wrapper around the wakers that contains data and pointers needed to yield items. Crates like embassy use a similar approach and will therefore clash with us.

If you run into this issue (which will manifest as a runtime panic), you can use the unwrap_waker function. This function will wrap a future and remove the waker wrapper.

While you can't use the yielder inside the unwrapped future, stuff like embassy should work again.

Comparisons

async-stream

In comparison to async-stream we offer the following advantages:

  • no macros
  • slightly faster performance
  • no_std support

async-fn-stream

In comparison to async-stream we offer the following advantages:

  • no allocations
  • slightly faster performance
  • no_std support

Acknowledgements

This crate combines approaches from the following crates:

License

Licensed under tither the MIT or Apache 2.0 license (at your choosing)