{"id":21866114,"url":"https://github.com/code-inflation/pcp-reactive","last_synced_at":"2025-07-21T02:31:13.279Z","repository":{"id":73710360,"uuid":"112352490","full_name":"code-inflation/pcp-reactive","owner":"code-inflation","description":"school proj about reactive programming in JS/ TS","archived":true,"fork":false,"pushed_at":"2017-12-19T15:12:16.000Z","size":956,"stargazers_count":0,"open_issues_count":2,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-07-14T06:55:01.097Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"JavaScript","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/code-inflation.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,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2017-11-28T15:23:03.000Z","updated_at":"2023-10-03T13:06:29.000Z","dependencies_parsed_at":null,"dependency_job_id":"eb43d475-2178-4a7f-b91b-2fa155892f5c","html_url":"https://github.com/code-inflation/pcp-reactive","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/code-inflation/pcp-reactive","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/code-inflation%2Fpcp-reactive","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/code-inflation%2Fpcp-reactive/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/code-inflation%2Fpcp-reactive/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/code-inflation%2Fpcp-reactive/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/code-inflation","download_url":"https://codeload.github.com/code-inflation/pcp-reactive/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/code-inflation%2Fpcp-reactive/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":266229471,"owners_count":23896270,"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-28T04:24:03.279Z","updated_at":"2025-07-21T02:31:13.273Z","avatar_url":"https://github.com/code-inflation.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Programming Concepts and Paradigms\nThis repository holds our school project about reactive programming with reactiveX. We choose JavaScript/TypeScript to demonstrate how observables, observers and operators work.\n\n## [Reactive programming background](http://reactivex.io/rxjs/manual/overview.html#introduction)\n- Basics idea: asynchronous data streams\n\n    ![Stream Example](https://gist.github.com/staltz/868e7e9bc2a7b8c1f754/raw/35cc1edb69b7175fd1308800a244410890bc9b5f/zmulticlickstream.png)\n## [Observable](http://reactivex.io/rxjs/manual/overview.html#observable)\n    \n## [Observers](http://reactivex.io/rxjs/manual/overview.html#observer)\n![Observer Pattern](https://upload.wikimedia.org/wikipedia/commons/thumb/8/8d/Observer.svg/854px-Observer.svg.png)\n- Hot vs. cold observables\n    - COLD is when your observable creates the producer\n    ```javascript\n        // COLD\n        var cold = new Observable((observer) =\u003e {\n        var producer = new Producer();\n        // have observer listen to producer here\n        });\n    ```\n    - HOT is when your observable closes over the producer\n    ```javascript\n        // HOT\n        var producer = new Producer();\n        var hot = new Observable((observer) =\u003e {\n        // have observer listen to producer here\n        });\n    ```\n## [Subjects](http://reactivex.io/rxjs/manual/overview.html#subject)\n- Async Subject\n- Behavior Subject\n- Replay Subject\n\n## [Operators](http://reactivex.io/rxjs/manual/overview.html#operators)\n[RxMarbels](http://rxmarbles.com/)\n### Standard Operators\n- Map\n- Filter\n- Scan\n- SwitchMap\n- MergeMap\n- combineLatest\n- take\n\n### Backpressure Operators\n- Throtteling\n- Buffering\n- Debounce\n- Windows\n\n## [Languages](http://reactivex.io/languages.html)\n- RxJS\n- RxJava\n\n## Notes\n- http://reactivex.io/rxjs/manual/tutorial.html#external-references\n- http://reactivex.io/\n- https://medium.com/@benlesh/hot-vs-cold-observables-f8094ed53339\n- https://rxviz.com/examples/grouped-fibonacci\n\n## Run the examples\nTo run the examples make sure you have node.js(tested Version 8.9.3LTS) installed on your system.\nRun npm install to install the dependencies and run the examples in the console with \"node ./src/\u003cfilename\u003e.js","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcode-inflation%2Fpcp-reactive","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcode-inflation%2Fpcp-reactive","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcode-inflation%2Fpcp-reactive/lists"}