Higher-order Redux library for client-side search with web-worker indexing and automatic result updates.
Redux Search is a higher-order Redux library that enables client-side search across collections of objects stored in a Redux state. It automatically builds and maintains search indices, returning matching document IDs, and is optimized for performance using web workers. It solves the problem of integrating fast, responsive search into Redux applications without manual index management.
Frontend developers building Redux applications that require client-side search functionality, such as data tables, filtered lists, or searchable collections without server roundtrips.
Developers choose Redux Search for its seamless Redux integration, automatic index synchronization with store changes, and performance gains from web-worker-based search execution, reducing UI thread blocking.
Redux bindings for client-side search
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Leverages background threads for search indexing and matching, preventing UI blocking, as highlighted in the README's key features and js-worker-search integration.
Watches Redux store changes and updates search indices in real-time, ensuring search results stay synchronized without manual intervention, as described in the overview.
Supports substring, prefix, or exact word matching via configurable SearchApi with INDEX_MODES, allowing tailored search behavior per project needs.
Allows custom word boundaries, case-sensitive search, and AND/OR token matching through SearchApi parameters like tokenizePattern and matchAnyToken, providing fine-grained control.
Requires all documents to have an 'id' attribute, as search returns only IDs, not full objects, which is explicitly noted in the overview and can limit data structure flexibility.
Configuration involves intricate setup of resourceIndexes, resourceSelectors, and searchApi, adding initial overhead compared to drop-in search solutions.
Tightly coupled with Redux, making it unsuitable for applications using other state management libraries or frameworks, as it relies on Redux middleware and selectors.
Depends on the Regenerator runtime and recommends babel-polyfill, adding to bundle size and setup complexity, as mentioned in the README notes.