9 releases

0.2.0-beta3 Nov 20, 2018
0.2.0-beta2 Nov 3, 2018
0.2.0-beta0 Oct 31, 2018
0.1.0-alpha4 Oct 30, 2018
0.1.0-alpha1 Mar 3, 2018

#13 in #ready

33 downloads per month
Used in rx_gtk

MIT license

345KB
3K SLoC


RxRs - Reactive Extensions for Rust


WIP: rxrs is under heavy development & not ready for production

    use rxrs::*;

    #[test]
    pub fn greet()
    {
        let output = RefCell::new(String::new());

        let subj = Rc::new(Subject::<NO, i32>::new());

        let evens: impl Observable<NO, Val<String>> = subj.clone()
            .filter(|v:&_| v%2 == 0 )
            .take(4)
            .map(|v:&_| format!("*{}", v));

        evens.subscribe(
            |v: String| output.borrow_mut().push_str(&v),
            |e| output.borrow_mut().push_str("ok")
        );

        for i in 0..10 {
            subj.next(i);
        }

        assert_eq!("*0*2*4*6ok", &*output.borrow());
    }

src
├── observable.rs
├── observer.rs
├── error.rs
├── by.rs
├── unsub.rs
├── lib.rs
├── fac
   ├── iter.rs
   ├── merge.rs
   ├── mod.rs
   ├── of.rs
   └── timer.rs
├── op
   ├── filter.rs
   ├── map.rs
   ├── merge.rs
   ├── mod.rs
   ├── skip.rs
   ├── start.rs
   ├── take.rs
   └── until.rs
├── scheduler
   ├── current_thread_scheduler.rs
   ├── event_loop_scheduler.rs
   ├── mod.rs
   └── new_thread_scheduler.rs
├── subject
   ├── behavior_subject.rs
   ├── mod.rs
   └── subject.rs
├── sync
   ├── act.rs
   ├── any_send_sync.rs
   ├── mod.rs
   ├── re_spin_lock.rs
   ├── ss_mark.rs
   └── yesno.rs
└── util
    ├── clones.rs
    └── mod.rs


No runtime deps