# Reacton Redux
A Python implementation of [Redux](https://redux.js.org/) and [Redux Toolkit](https://redux-toolkit.js.org/) with bindings for [Reacton](https://reacton.solara.dev/)/[Solara](https://solara.dev/)
[![PyPI - Version](https://img.shields.io/pypi/v/reacton-redux.svg)](https://pypi.org/project/reacton-redux/)
[![PyPI - License](https://img.shields.io/pypi/l/reacton-redux)](https://github.com/egormkn/reacton-redux/blob/main/LICENSE)
[![pre-commit](https://img.shields.io/badge/pre--commit-enabled-brightgreen?logo=pre-commit)](https://github.com/pre-commit/pre-commit)
[![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black)
[![Imports: isort](https://img.shields.io/badge/%20imports-isort-%231674b1?style=flat&labelColor=ef8336)](https://github.com/PyCQA/isort)
[![Linting: ruff](https://img.shields.io/badge/linting-ruff-261230)](https://github.com/astral-sh/ruff)
## Installation
```bash
pip install reacton-redux
```
# Roadmap
- [x] `create_store`
- [x] `combine_reducers`
- [x] `compose`
- [x] `apply_middleware`
- [x] `reacton.StoreProvider`
- [x] `reacton.use_store`
- [x] `reacton.use_selector`
- [x] `reacton.use_dispatch`
- [x] `toolkit.create_action`
- [x] `toolkit.create_reducer`
- [ ] `toolkit.immer`
- [ ] `toolkit.create_slice`
- [ ] Documentation
- [ ] Examples
- [ ] Tests
## Links
- [Redux](https://redux.js.org/)
- [Fundamentals of Redux Course from Dan Abramov](https://egghead.io/courses/getting-started-with-redux)
- [Immer](https://immerjs.github.io/immer/)
- [Introducing Immer: Immutability the easy way](https://medium.com/hackernoon/introducing-immer-immutability-the-easy-way-9d73d8f71cb3)
- [Deep dive to immer](https://hmos.dev/en/deep-dive-to-immer)
- [Tanstack Query](https://tanstack.com/query/)
- [Tanner Linsley – Let's Build React Query in 150 Lines of Code! (React Summit Remote Edition 2021)](https://youtu.be/9SrIirrnwk0)
- [TkDodo's blog - Inside React Query](https://tkdodo.eu/blog/inside-react-query)
- Other Python implementations of Redux publicly available on GitHub:
- [usrlocalben/pydux](https://github.com/usrlocalben/pydux) <kbd>⭐ 113</kbd>
- [ebrakke/python-redux](https://github.com/ebrakke/python-redux) <kbd>⭐ 32</kbd>
- [kasbah/aioredux](https://github.com/kasbah/aioredux) <kbd>⭐ 22</kbd>
- [Carsten-Leue/ReduxPY](https://github.com/Carsten-Leue/ReduxPY) <kbd>⭐ 14</kbd>
- [peterpeter5/pyredux](https://github.com/peterpeter5/pyredux) <kbd>⭐ 12</kbd>
- [avilior/reduxpy](https://github.com/avilior/reduxpy)
- [RookieGameDevs/revived](https://github.com/RookieGameDevs/revived) <kbd>⭐ 12</kbd>
- [sassanh/python-redux](https://github.com/sassanh/python-redux) <kbd>⭐ 2</kbd>
- [xdusongwei/redux-python](https://github.com/xdusongwei/redux-python) <kbd>⭐ 1</kbd>
- [CCI-Tools/redux](https://github.com/CCI-Tools/redux)
- [pandafeeder/redux-python](https://github.com/pandafeeder/redux-python)
- [Jumballaya/pubsub.py](https://github.com/Jumballaya/pubsub.py)
- [thewhitepill/rstore](https://github.com/thewhitepill/rstore)
- [immijimmi/managedstate](https://github.com/immijimmi/managedstate)
Raw data
{
"_id": null,
"home_page": "https://github.com/egormkn/reacton-redux",
"name": "reacton-redux",
"maintainer": "",
"docs_url": null,
"requires_python": ">=3.8,<4.0",
"maintainer_email": "",
"keywords": "reacton,redux,solara,voila,jupyter",
"author": "Egor Makarenko",
"author_email": "egormkn@yandex.ru",
"download_url": "https://files.pythonhosted.org/packages/da/01/928c0c83c454635d3e05012714b918bf7e419a24e355d9a45861c1460e55/reacton_redux-0.2.0.tar.gz",
"platform": null,
"description": "# Reacton Redux\n\nA Python implementation of [Redux](https://redux.js.org/) and [Redux Toolkit](https://redux-toolkit.js.org/) with bindings for [Reacton](https://reacton.solara.dev/)/[Solara](https://solara.dev/)\n\n[![PyPI - Version](https://img.shields.io/pypi/v/reacton-redux.svg)](https://pypi.org/project/reacton-redux/)\n[![PyPI - License](https://img.shields.io/pypi/l/reacton-redux)](https://github.com/egormkn/reacton-redux/blob/main/LICENSE)\n[![pre-commit](https://img.shields.io/badge/pre--commit-enabled-brightgreen?logo=pre-commit)](https://github.com/pre-commit/pre-commit)\n[![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black)\n[![Imports: isort](https://img.shields.io/badge/%20imports-isort-%231674b1?style=flat&labelColor=ef8336)](https://github.com/PyCQA/isort)\n[![Linting: ruff](https://img.shields.io/badge/linting-ruff-261230)](https://github.com/astral-sh/ruff)\n\n## Installation\n\n```bash\npip install reacton-redux\n```\n\n# Roadmap\n\n- [x] `create_store`\n- [x] `combine_reducers`\n- [x] `compose`\n- [x] `apply_middleware`\n- [x] `reacton.StoreProvider`\n- [x] `reacton.use_store`\n- [x] `reacton.use_selector`\n- [x] `reacton.use_dispatch`\n- [x] `toolkit.create_action`\n- [x] `toolkit.create_reducer`\n- [ ] `toolkit.immer`\n- [ ] `toolkit.create_slice`\n- [ ] Documentation\n- [ ] Examples\n- [ ] Tests\n\n## Links\n\n- [Redux](https://redux.js.org/)\n - [Fundamentals of Redux Course from Dan Abramov](https://egghead.io/courses/getting-started-with-redux)\n- [Immer](https://immerjs.github.io/immer/)\n - [Introducing Immer: Immutability the easy way](https://medium.com/hackernoon/introducing-immer-immutability-the-easy-way-9d73d8f71cb3)\n - [Deep dive to immer](https://hmos.dev/en/deep-dive-to-immer)\n- [Tanstack Query](https://tanstack.com/query/)\n - [Tanner Linsley \u2013 Let's Build React Query in 150 Lines of Code! (React Summit Remote Edition 2021)](https://youtu.be/9SrIirrnwk0)\n - [TkDodo's blog - Inside React Query](https://tkdodo.eu/blog/inside-react-query)\n- Other Python implementations of Redux publicly available on GitHub:\n - [usrlocalben/pydux](https://github.com/usrlocalben/pydux) <kbd>\u2b50 113</kbd>\n - [ebrakke/python-redux](https://github.com/ebrakke/python-redux) <kbd>\u2b50 32</kbd>\n - [kasbah/aioredux](https://github.com/kasbah/aioredux) <kbd>\u2b50 22</kbd>\n - [Carsten-Leue/ReduxPY](https://github.com/Carsten-Leue/ReduxPY) <kbd>\u2b50 14</kbd>\n - [peterpeter5/pyredux](https://github.com/peterpeter5/pyredux) <kbd>\u2b50 12</kbd>\n - [avilior/reduxpy](https://github.com/avilior/reduxpy)\n - [RookieGameDevs/revived](https://github.com/RookieGameDevs/revived) <kbd>\u2b50 12</kbd>\n - [sassanh/python-redux](https://github.com/sassanh/python-redux) <kbd>\u2b50 2</kbd>\n - [xdusongwei/redux-python](https://github.com/xdusongwei/redux-python) <kbd>\u2b50 1</kbd>\n - [CCI-Tools/redux](https://github.com/CCI-Tools/redux)\n - [pandafeeder/redux-python](https://github.com/pandafeeder/redux-python)\n - [Jumballaya/pubsub.py](https://github.com/Jumballaya/pubsub.py)\n - [thewhitepill/rstore](https://github.com/thewhitepill/rstore)\n - [immijimmi/managedstate](https://github.com/immijimmi/managedstate)\n\n",
"bugtrack_url": null,
"license": "MIT",
"summary": "A Python implementation of Redux and Redux Toolkit with bindings for Reacton/Solara",
"version": "0.2.0",
"project_urls": {
"Homepage": "https://github.com/egormkn/reacton-redux",
"Repository": "https://github.com/egormkn/reacton-redux"
},
"split_keywords": [
"reacton",
"redux",
"solara",
"voila",
"jupyter"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "41549e5c2252d612ead487fb2eb1633d4fe57009f31d2e03c2ad98924ecfc9e3",
"md5": "9f7d0f7b4967380a962a2b08d7f31972",
"sha256": "114062ae4514698cc70291d04d9d86bfb82effff756e7d429a259061fe6654e3"
},
"downloads": -1,
"filename": "reacton_redux-0.2.0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "9f7d0f7b4967380a962a2b08d7f31972",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.8,<4.0",
"size": 13481,
"upload_time": "2024-02-18T12:03:52",
"upload_time_iso_8601": "2024-02-18T12:03:52.190290Z",
"url": "https://files.pythonhosted.org/packages/41/54/9e5c2252d612ead487fb2eb1633d4fe57009f31d2e03c2ad98924ecfc9e3/reacton_redux-0.2.0-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "da01928c0c83c454635d3e05012714b918bf7e419a24e355d9a45861c1460e55",
"md5": "ca9e31f388f2f6737486bda38837cc1d",
"sha256": "10e4d49a4891b96d1d8486ceb2cc1c24ed72b893f3d1c74e0fbf2ce2597eb29c"
},
"downloads": -1,
"filename": "reacton_redux-0.2.0.tar.gz",
"has_sig": false,
"md5_digest": "ca9e31f388f2f6737486bda38837cc1d",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.8,<4.0",
"size": 11280,
"upload_time": "2024-02-18T12:03:53",
"upload_time_iso_8601": "2024-02-18T12:03:53.209950Z",
"url": "https://files.pythonhosted.org/packages/da/01/928c0c83c454635d3e05012714b918bf7e419a24e355d9a45861c1460e55/reacton_redux-0.2.0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-02-18 12:03:53",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "egormkn",
"github_project": "reacton-redux",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"lcname": "reacton-redux"
}