{"id":19577514,"url":"https://github.com/yingdev/rxrs","last_synced_at":"2025-07-03T01:31:50.981Z","repository":{"id":57666108,"uuid":"123471887","full_name":"yingDev/rxrs","owner":"yingDev","description":"Reactive Extensions for Rust","archived":false,"fork":false,"pushed_at":"2018-11-20T17:09:20.000Z","size":1216,"stargazers_count":121,"open_issues_count":1,"forks_count":3,"subscribers_count":13,"default_branch":"master","last_synced_at":"2025-06-15T19:09:53.533Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/yingDev.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2018-03-01T17:52:59.000Z","updated_at":"2024-09-15T14:57:47.000Z","dependencies_parsed_at":"2022-09-26T20:31:33.356Z","dependency_job_id":null,"html_url":"https://github.com/yingDev/rxrs","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/yingDev/rxrs","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yingDev%2Frxrs","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yingDev%2Frxrs/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yingDev%2Frxrs/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yingDev%2Frxrs/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/yingDev","download_url":"https://codeload.github.com/yingDev/rxrs/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yingDev%2Frxrs/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":263243703,"owners_count":23436357,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-11T07:06:54.927Z","updated_at":"2025-07-03T01:31:50.950Z","avatar_url":"https://github.com/yingDev.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n\u003cimg src=\"https://github.com/yingDev/rxrs/blob/master/assets/logo.png?raw=true\"\u003e\n\u003cbr\u003e\n    \u003cb\u003e RxRs - \u003ca href=\"http://reactivex.io\"\u003e Reactive Extensions\u003c/a\u003e for Rust \u003c/b\u003e\n\u003cbr\u003e\u003cbr\u003e\n\u003ca href=\"https://crates.io/crates/rxrs\"\u003e\n    \u003cimg src=\"https://img.shields.io/badge/crates.io-0.2.0--beta3-orange.svg\"\u003e\n\u003c/a\u003e\n\u003c/p\u003e\n\u003cbr\u003e\n\n__WIP: rxrs is under heavy development \u0026 not ready for production__\n\n\n```rust\n    use rxrs::*;\n\n    #[test]\n    pub fn greet()\n    {\n        let output = RefCell::new(String::new());\n\n        let subj = Rc::new(Subject::\u003cNO, i32\u003e::new());\n\n        let evens: impl Observable\u003cNO, Val\u003cString\u003e\u003e = subj.clone()\n            .filter(|v:\u0026_| v%2 == 0 )\n            .take(4)\n            .map(|v:\u0026_| format!(\"*{}\", v));\n\n        evens.subscribe(\n            |v: String| output.borrow_mut().push_str(\u0026v),\n            |e| output.borrow_mut().push_str(\"ok\")\n        );\n\n        for i in 0..10 {\n            subj.next(i);\n        }\n\n        assert_eq!(\"*0*2*4*6ok\", \u0026*output.borrow());\n    }\n\n```\n\n\n```bash\nsrc\n├── by.rs\n├── error.rs\n├── fac\n│   ├── iter.rs\n│   ├── merge.rs\n│   ├── mod.rs\n│   ├── of.rs\n│   └── timer.rs\n├── lib.rs\n├── observable.rs\n├── observer.rs\n├── op\n│   ├── filter.rs\n│   ├── map.rs\n│   ├── merge.rs\n│   ├── mod.rs\n│   ├── skip.rs\n│   ├── start.rs\n│   ├── take.rs\n│   └── until.rs\n├── scheduler\n│   ├── current_thread_scheduler.rs\n│   ├── event_loop_scheduler.rs\n│   ├── mod.rs\n│   └── new_thread_scheduler.rs\n├── subject\n│   ├── behavior_subject.rs\n│   ├── mod.rs\n│   └── subject.rs\n├── sync\n│   ├── act.rs\n│   ├── any_send_sync.rs\n│   ├── mod.rs\n│   ├── re_spin_lock.rs\n│   ├── re_spin_mutex.rs\n│   ├── recur_cell.rs\n│   ├── ss_mark.rs\n│   └── yesno.rs\n├── unsub.rs\n└── util\n    ├── clones.rs\n    └── mod.rs\n\n\n```","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fyingdev%2Frxrs","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fyingdev%2Frxrs","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fyingdev%2Frxrs/lists"}