- Rust 93.8%
- Nix 6.2%
|
|
||
|---|---|---|
| benches | Add benches | |
| examples | Rename to streem | |
| src | Compact YieldSlot<I> | |
| .gitignore | initial commit | |
| Cargo.toml | Bump version | |
| flake.lock | update flake | |
| flake.nix | format flake | |
| LICENSE | Add docs, license, enforce Unpin when creating Streamer | |
| README.md | Fix name in readme | |
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/.