A lightweight state manager for deeply nested states using classes as stores and methods as actions.
Exome is a state management library for JavaScript and TypeScript applications that need to handle deeply nested state structures. It uses a class-based approach where stores extend the Exome base class, and methods act as actions to modify state. It solves the complexity of managing interconnected state chunks in applications with complex data models.
Frontend developers building applications with complex, nested state structures across multiple frameworks including React, Vue, Svelte, Solid, and Angular.
Developers choose Exome for its minimal bundle size (1KB), high performance without diffing, intuitive class-based API, and seamless integration with multiple frameworks while maintaining full TypeScript support and Redux DevTools compatibility.
🔅 State manager for deeply nested states
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
At just 1KB minizipped with zero dependencies, Exome adds negligible overhead to your application bundle.
Uses no diffing for state changes, making updates extremely fast as shown in the benchmarks linked in the README.
Leverages familiar class syntax where properties are state and methods are actions, reducing boilerplate for OOP-oriented developers.
Includes built-in integrations for React, Vue, Svelte, Solid, and others, making it versatile for multi-framework or microfrontend projects.
Full support for debugging with Redux DevTools, allowing time-travel debugging and state inspection without extra configuration.
The README admits that without TypeScript, there are no runtime checks, which can lead to subtle bugs in plain JavaScript projects.
State serialization requires manually registering classes with 'registerLoadable', adding complexity compared to libraries with automatic persistence.
Relies on class inheritance and mutable state within actions, which may conflict with functional programming patterns or teams preferring immutability.
As a newer library, it has a smaller community and fewer third-party tools or resources compared to established state managers like Redux or MobX.