1
0
Fork
You've already forked streem
0
  • Rust 93.8%
  • Nix 6.2%
2026年07月07日 15:17:53 -05:00
benches Add benches 2026年07月07日 15:06:57 -05:00
examples Rename to streem 2023年09月09日 16:31:37 -04:00
src Compact YieldSlot<I> 2026年07月07日 15:17:53 -05:00
.gitignore initial commit 2023年09月09日 15:51:10 -04:00
Cargo.toml Bump version 2026年07月07日 15:11:05 -05:00
flake.lock update flake 2026年07月07日 13:19:23 -05:00
flake.nix format flake 2026年07月07日 13:19:37 -05:00
LICENSE Add docs, license, enforce Unpin when creating Streamer 2023年09月09日 16:25:25 -04:00
README.md Fix name in readme 2023年09月09日 16:52:11 -04:00

Streem

A simple library for creating and consuming async streams

Usage

Add to your Cargo.toml

$ cargo add streem

Use in your application

usestreem::IntoStreamer;fn from_iter<I>(iter: implIntoIterator<Item=I>)-> implfutures_core::Stream<Item=I>whereI: 'static,{streem::from_fn(|yielder|asyncmove{foriiniter{yielder.yield_(i).await;}})}fn main(){futures_executor::block_on(async{letstream=std::pin::pin!(from_iter(0..10));letmutstreamer=stream.into_streamer();whileletSome(item)=streamer.next().await{println!("Yielded {item}");}})}

Contributing

Feel free to open issues for anything you find an issue with. Please note that any contributed code will be licensed under the GPLv3.

License

Copyright © 2023 asonix

Streem is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

Streem is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. This file is part of Streem.

You should have received a copy of the GNU General Public License along with Streem. If not, see http://www.gnu.org/licenses/.