{"id":21376493,"url":"https://github.com/fluidgroup/rxfuture","last_synced_at":"2025-08-07T02:15:03.460Z","repository":{"id":33941666,"uuid":"162911488","full_name":"FluidGroup/RxFuture","owner":"FluidGroup","description":"🛸A library to provide Future/Promise pattern API that is backed by RxSwift.","archived":false,"fork":false,"pushed_at":"2022-04-04T10:59:58.000Z","size":41,"stargazers_count":5,"open_issues_count":1,"forks_count":1,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-07-13T10:43:49.665Z","etag":null,"topics":["future","promise","rxswift"],"latest_commit_sha":null,"homepage":"","language":"Swift","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/FluidGroup.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2018-12-23T17:37:22.000Z","updated_at":"2022-06-26T14:25:30.000Z","dependencies_parsed_at":"2022-08-07T23:30:51.452Z","dependency_job_id":null,"html_url":"https://github.com/FluidGroup/RxFuture","commit_stats":null,"previous_names":["muukii/rxfuture"],"tags_count":17,"template":false,"template_full_name":null,"purl":"pkg:github/FluidGroup/RxFuture","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/FluidGroup%2FRxFuture","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/FluidGroup%2FRxFuture/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/FluidGroup%2FRxFuture/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/FluidGroup%2FRxFuture/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/FluidGroup","download_url":"https://codeload.github.com/FluidGroup/RxFuture/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/FluidGroup%2FRxFuture/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":269185726,"owners_count":24374634,"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","status":"online","status_checked_at":"2025-08-07T02:00:09.698Z","response_time":73,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":["future","promise","rxswift"],"created_at":"2024-11-22T09:15:56.706Z","updated_at":"2025-08-07T02:15:03.432Z","avatar_url":"https://github.com/FluidGroup.png","language":"Swift","funding_links":[],"categories":[],"sub_categories":[],"readme":"# RxFuture\n\nA temporary solution\n\n## What's this?\n\nA library to provide Future/Promise pattern API that is backed by RxSwift.\n\n## Why do we need this against using Single\u003cElement\u003e?\n\nFirstly, Future/Promise pattern fits to return a single result of an asynchronous task.\n\n```swift\nfunc doSomething() -\u003e Future\u003cE\u003e\n```\n\nFuture/Promise pattern can also do with API of RxSwift only.\nWith using Observable or some PrimitiveSequence.\n\nThe problems in this case,\nFirst, Observable does not know how many it will be subscribed.\nSo, Observable always should be shared sequence.\nIf it isn't, a task wrapped by Observable will run by each of subscribe.\nSecond, a task wrapped by Observable does not know when starts. It depends on subscribe.\n\nThe second case depends on RxSwift.\nAlmost of Observables in RxSwift are cold-observable.\n\n```swift\nfunc doSomething() -\u003e Observable\u003cE\u003e\n```\n\nthe name of this function says \"do something\", but actually, \"something\" will not be done until subscribed.\n\nA below name may be better than above.\n\n```swift\nfunc taskToDoSomething() -\u003e Observable\u003cE\u003e\n```\n\nBasically, Future will run a wrapped task immediately.\nSo, I created an object like as Future with RxSwift.\n\n## What's the differences with `Single\u003cE\u003e`?\n\nRxFuture is different with Single. We can say `RxFuture` runs similar with `Combine.Future`.  \n`RxFuture` and `Combine.Future` runs their tasks immediately and they caches result until they are deallocated.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffluidgroup%2Frxfuture","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffluidgroup%2Frxfuture","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffluidgroup%2Frxfuture/lists"}