{"id":22489817,"url":"https://github.com/luistak/windowed-observable","last_synced_at":"2025-08-02T22:31:22.481Z","repository":{"id":36137933,"uuid":"221749029","full_name":"luistak/windowed-observable","owner":"luistak","description":"Messaging lib using a pub/sub observable scoped by namespaces.","archived":false,"fork":false,"pushed_at":"2023-03-05T10:09:04.000Z","size":4201,"stargazers_count":158,"open_issues_count":26,"forks_count":16,"subscribers_count":2,"default_branch":"master","last_synced_at":"2024-05-01T16:03:20.249Z","etag":null,"topics":["communication","hacktoberfest","hacktoberfest2021","microfrontend","microfrontends","namespaces","observable","pubsub","react","topic","windowed"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","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/luistak.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","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},"funding":{"github":"luistak"}},"created_at":"2019-11-14T17:12:18.000Z","updated_at":"2024-06-18T16:51:20.083Z","dependencies_parsed_at":"2024-06-18T16:50:48.851Z","dependency_job_id":"199aca09-262c-4f98-9d99-df4885cc573f","html_url":"https://github.com/luistak/windowed-observable","commit_stats":{"total_commits":163,"total_committers":2,"mean_commits":81.5,"dds":"0.41104294478527603","last_synced_commit":"c68d348ed86fabecfb4609bde348d25b254252ac"},"previous_names":[],"tags_count":7,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/luistak%2Fwindowed-observable","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/luistak%2Fwindowed-observable/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/luistak%2Fwindowed-observable/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/luistak%2Fwindowed-observable/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/luistak","download_url":"https://codeload.github.com/luistak/windowed-observable/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":228500496,"owners_count":17930078,"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":["communication","hacktoberfest","hacktoberfest2021","microfrontend","microfrontends","namespaces","observable","pubsub","react","topic","windowed"],"created_at":"2024-12-06T17:20:50.932Z","updated_at":"2024-12-06T17:23:12.656Z","avatar_url":"https://github.com/luistak.png","language":"TypeScript","funding_links":["https://github.com/sponsors/luistak"],"categories":["TypeScript","📦 Legacy \u0026 Inactive Projects"],"sub_categories":[],"readme":"\u003cdiv align=\"center\"\u003e\n  \u003ch1\u003ewindowed-observable\u003c/h1\u003e\n\n  \u003cimg\n    width=\"200\"\n    height=\"auto\"\n    alt=\"Windowed observable\"\n    src=\"https://res.cloudinary.com/daiqkausy/image/upload/v1596144724/windowed-observable.png\"\n  /\u003e\n\n  \u003cp\u003eThe home for all windowed-observable projects\u003c/p\u003e\n\u003c/div\u003e\n\u003chr /\u003e\n\n![Npm version](https://img.shields.io/npm/v/windowed-observable)\n![Build](https://img.shields.io/github/workflow/status/luistak/windowed-observable/CI/master)\n![Size](https://img.shields.io/bundlephobia/minzip/windowed-observable)\n![License](https://img.shields.io/github/license/luistak/windowed-observable)\n[![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style)](http://makeapullrequest.com)\n![Downloads](https://img.shields.io/npm/dt/windowed-observable)\n\n## Introduction\n\n### Problem\n\nIn a micro frontends setup, one of the main problems is [cross application communication](https://dev.to/luistak/cross-micro-frontends-communication-30m3) and this library aims to solve it by providing a simple and framework agnostic API with zero configuration\n\n### Solution\n\nExposing an `observable` that behaves like scoped a pub/sub topic passing events per namespaces.\n\nThis `Observable` is exported by the core package [`windowed-observable`](packages/core/README.md) with the following features:\n\n### ✨ Features\n- 📦 Scoped events by `namespaces`\n- 🎣 Events history retrieval with `SubscriptionOptions`\n- 🛡 100% Written in TypeScript with static types\n\n## Packages\n\n- [**windowed-observable**](packages/core/README.md) is a library for messaging using Observables, making it easier to communicate multiple apps or parts of an app using the window. It exposes an Observable that behaves like a scoped pub/sub topic using namespaces.\n\n- [**react-windowed-observable**](packages/react/README.md) is a react abstraction over [`windowed-observable`](packages/core/README.md) exposing a helper that creates a scoped [`Context`](https://reactjs.org/docs/context.html) to handle events in a specific namespace\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fluistak%2Fwindowed-observable","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fluistak%2Fwindowed-observable","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fluistak%2Fwindowed-observable/lists"}