{"id":15090211,"url":"https://github.com/lamp-luwak/lamp-luwak","last_synced_at":"2025-10-05T23:31:39.488Z","repository":{"id":57118440,"uuid":"119735888","full_name":"lamp-luwak/lamp-luwak","owner":"lamp-luwak","description":"Service-oriented state management for React","archived":true,"fork":false,"pushed_at":"2022-06-30T05:25:11.000Z","size":2709,"stargazers_count":12,"open_issues_count":15,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-01-19T16:59:47.288Z","etag":null,"topics":["action","dependency-injection","dispatcher","modular","react-store","service-architecture","service-oriented","state-management"],"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/lamp-luwak.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null},"funding":{"github":null,"patreon":"betula","open_collective":null,"ko_fi":null,"tidelift":null,"community_bridge":null,"liberapay":null,"issuehunt":"betula","otechie":null,"custom":null}},"created_at":"2018-01-31T19:55:16.000Z","updated_at":"2023-01-27T23:28:46.000Z","dependencies_parsed_at":"2022-08-23T05:41:11.283Z","dependency_job_id":null,"html_url":"https://github.com/lamp-luwak/lamp-luwak","commit_stats":null,"previous_names":["betula/lamp-luwak","betula/impress"],"tags_count":43,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lamp-luwak%2Flamp-luwak","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lamp-luwak%2Flamp-luwak/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lamp-luwak%2Flamp-luwak/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lamp-luwak%2Flamp-luwak/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/lamp-luwak","download_url":"https://codeload.github.com/lamp-luwak/lamp-luwak/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":235461383,"owners_count":18994071,"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":["action","dependency-injection","dispatcher","modular","react-store","service-architecture","service-oriented","state-management"],"created_at":"2024-09-25T09:23:29.074Z","updated_at":"2025-10-05T23:31:34.158Z","avatar_url":"https://github.com/lamp-luwak.png","language":"TypeScript","funding_links":["https://patreon.com/betula","https://issuehunt.io/r/betula"],"categories":[],"sub_categories":[],"readme":"\u003cdiv align=\"center\"\u003e\n\n# lamp-luwak\n\n\u003e `lamp-luwak` is no longer maintained. Please use [remini](https://github.com/betula/remini) or [use-between](https://github.com/betula/use-between) instead of.\n\n![lamp-luwak logo](./logo-sm.png)\n\nFlexible state management for React\n\n[![npm](https://img.shields.io/npm/v/lamp-luwak?style=flat-square)](https://www.npmjs.com/package/lamp-luwak) ![npm type definitions](https://img.shields.io/npm/types/lamp-luwak?style=flat-square) [![npm bundle size](https://img.shields.io/bundlephobia/minzip/lamp-luwak?style=flat-square)](https://bundlephobia.com/result?p=lamp-luwak) [![build status](https://img.shields.io/github/workflow/status/betula/lamp-luwak/Tests?style=flat-square)](https://github.com/betula/lamp-luwak/actions?workflow=Tests) [![code coverage](https://img.shields.io/coveralls/github/betula/lamp-luwak?style=flat-square)](https://coveralls.io/github/betula/lamp-luwak)\n\n\u003c/div\u003e\n\n### Introduction\n\nMultistore state management with service ideology and module architecture for React. You can organize the code of your application by service-stores. Single instantiated instances of classes or function factory with a store inside at any place of your app code.\n\n- Service-oriented and multistore architecture\n- Update view components only dependent of changed stores\n- No use Context API inside\n- TypeScript supported\n- Lightweight (~3Kb)\n\n### Install\n\n```bash\nnpm i --save lamp-luwak\n# or\nyarn add lamp-luwak\n```\n\n### Basic Usage\n\n```typescript\nimport React from 'react';\nimport { set, useService } from 'lamp-luwak';\n\nclass CounterService {\n  state = 0; // Initial state\n  increment() {\n    set(this, (state) =\u003e state + 1);\n  }\n  decrement() {\n    set(this, (state) =\u003e state - 1);\n  }\n}\n\nconst Counter = () =\u003e {\n  const counter = useService(CounterService);\n  return (\n    \u003c\u003e\n      \u003cbutton onClick={() =\u003e counter.increment()}\u003e+\u003c/button\u003e\n      \u003cbutton onClick={() =\u003e counter.decrement()}\u003e-\u003c/button\u003e\n      \u003cp\u003eCounter: {counter.state}\u003c/p\u003e\n    \u003c/\u003e\n  )\n};\n```\n[![Example on codesandbox](https://codesandbox.io/static/img/play-codesandbox.svg)](https://codesandbox.io/s/github/betula/lamp-luwak/tree/master/examples/basic-usage)\n\n### Documentation\n\n- [Getting Started](./docs/getting-started.md)\n- [Core Concepts](./docs/core-concepts.md)\n- [API Reference](./docs/api-reference.md)\n\n[The Russian article](https://habr.com/ru/post/497572/)\n\n### Examples\n\n- [Todos on CodeSandbox](https://codesandbox.io/s/github/betula/lamp-luwak/tree/master/examples/todos)\n- [Server side rendering example](https://github.com/betula/lamp-luwak/tree/master/examples/ssr)\n\n### License\n\nLamp Luwak is [MIT licensed](./LICENSE).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flamp-luwak%2Flamp-luwak","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flamp-luwak%2Flamp-luwak","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flamp-luwak%2Flamp-luwak/lists"}