Please read the changelog to ensure your old code is compatible.
Pulse is an application logic library for reactive Javascript frameworks with support for VueJS, React and React Native. Lightweight, modular and powerful, but most importantly easy to understand.
After exploring the many options for Javascript state libraries, including the popular VueX and Redux, I felt like I needed a simpler solution. I wanted to get more out of a library than just state management― something that could provide solid structure for the entire application. It needed to be structured and simple, but also scalable. This library provides everything needed to get a reactive javascript front-end application working fast, taking care to follow best practices and to employ simple terminology that makes sense even to beginners.
I built this framework reflective of the architecture in which we use at Notify.me, and as a replacement for VueX at Notify also, making sure it is also compatible with React and vanilla environments. The team at Notify love it and I think you will too.
- ⚙️ Modular structure using "collections"
- ⚡ Cached data & filters with dependency based regeneration
- ✨ Automatic data normalization
- 🔒 Model based data validation
- ⏲️ History tracking with smart undo functions
- 🔮 Create data relations between collections
- 🤓 Database style functions
- 💎 SSOT architecture (single source of truth)
- 📕 Error logging & snapshot bug reporting
- 🔧 Wrappers for helpers, utilities and service workers
- 🚧 Task queuing for race condition prevention
- 📞 Promise based HTTP requests and websocket connections
- ⏳ Timed interval task handler
- 🚌 Event bus
- 💾 Persisted data API for localStorage, sessionStorage & more
- 🔑 Optional pre-built authentication layer
- 🍃 Lightweight (only 22KB) with 0 dependencies
- 🔥 Supports Vue, React and React Native
- 💛 Well documented (I'm getting there...)
If you wish contribute, that is very much welcome! But please reach out first so we don't work on the same thing at the same time, twitter dm @jamiepine or Discord jam#0001
FULL DOCUMENTATION HERE: pulsejs.org