All Projects → unirakun → k-ramel

unirakun / k-ramel

Licence: MIT License
State manager for your components apps, the safe and easy way

Programming Languages

javascript
184084 projects - #8 most used programming language

Projects that are alternatives of or similar to k-ramel

Nanny-State
simple state management
Stars: ✭ 68 (+240%)
Mutual labels:  state-management, state
PageStatusTransformer
A low invasive state management on Android
Stars: ✭ 12 (-40%)
Mutual labels:  state-management, state
particule
Fine-grained atomic React state management library
Stars: ✭ 31 (+55%)
Mutual labels:  state-management, state
atomic-state
A decentralized state management library for React
Stars: ✭ 54 (+170%)
Mutual labels:  state-management, state
react-stateful-component
Functional stateful React components with sideEffect support
Stars: ✭ 19 (-5%)
Mutual labels:  state-management, side-effects
riduce
Get rid of your reducer boilerplate! Zero hassle state management that's typed, flexible and scalable.
Stars: ✭ 14 (-30%)
Mutual labels:  state-management, state
react-wisteria
Managing the State with the Golden Path
Stars: ✭ 18 (-10%)
Mutual labels:  state-management, state
concave
🧐 Lens-like state management (for React).
Stars: ✭ 13 (-35%)
Mutual labels:  state-management, state
eventrix
Open-source, Predictable, Scaling JavaScript library for state managing and centralizing application global state. State manage system for react apps.
Stars: ✭ 35 (+75%)
Mutual labels:  state-management, state
knockout-store
State management for Knockout apps.
Stars: ✭ 37 (+85%)
Mutual labels:  state-management, state
restate
A redux fractal state library 🕷
Stars: ✭ 55 (+175%)
Mutual labels:  state-management, state
xstate-viz
Visualizer for XState machines
Stars: ✭ 274 (+1270%)
Mutual labels:  state-management, state
jedisdb
redis like key-value state management solution for React
Stars: ✭ 13 (-35%)
Mutual labels:  state-management, state
vuex-but-for-react
A state management library for React, heavily inspired by vuex
Stars: ✭ 96 (+380%)
Mutual labels:  state-management, state
teaful
🍵 Tiny, easy and powerful React state management
Stars: ✭ 638 (+3090%)
Mutual labels:  state-management, state
reactive state
An easy to understand reactive state management solution for Flutter.
Stars: ✭ 19 (-5%)
Mutual labels:  state-management, state
react-cool-form
😎 📋 React hooks for forms state and validation, less code more performant.
Stars: ✭ 246 (+1130%)
Mutual labels:  state-management, state
vue
Vue integration for Nano Stores, a tiny state manager with many atomic tree-shakable stores
Stars: ✭ 25 (+25%)
Mutual labels:  state-management, state
RxReduxK
Micro-framework for Redux implemented in Kotlin
Stars: ✭ 65 (+225%)
Mutual labels:  state-management, state
stoxy
Stoxy is a state management API for all modern Web Technologies
Stars: ✭ 73 (+265%)
Mutual labels:  state-management, state

k-ramel

State manager for your app components, the safe and easy way.

CircleCI Coverage Status NPM Version Greenkeeper badge

Why should you give it a try? 🤔

Because k-ramel:

  • ⚡️ is fast
  • 📸 is immutable
  • 📦 is modular
  • 💎 encourages to decouple UI and state management
  • 💥 encourages to not have side effect into your business logic
  • 👌 has a light bundle size footprint
  • 🐛 works with redux-dev-tools

Table of content

Migrating

Hey! If you come from an early version of k-ramel and want to upgrade, you can read this migration guide 💎

Modules and libs

packages description  documentation  gziped size
k-ramel core package documentation Size
@k-ramel/react ReactJS connector documentation Size
@k-ramel/driver-http fetch wrapper documentation Size
@k-ramel/driver-form minimalist form handler documentation Size
@k-ramel/driver-redux-form redux-form wrapper documentation Size
k-redux-router Redux router (one route === one code) documentation

⚠️Note that some packages have dependencies:

  • @k-ramel/driver-http: regeneratorRuntime
  • @k-ramel/driver-redux-form: regeneratorRuntime

Getting started

This getting started helps you to understand how to do things like that!

const listeners = [
  // when the user clicked on "add a todo" button
  // we ask the API to add a new todo (the title is hardcoded for simplicity here)
  when('@@ui/ADD_TODO>CLICKED')((action, store, drivers) => {
    drivers.http('TODO').post(
      'https://todo-backend-modern-js.herokuapp.com/todos',
      {
        title: 'Yo! I am a new todo!',
      },
    )
  }),
  // when the API responds (not in error),
  // we add the new todo returned by the API in the store
  when('@@http/TODO>POST>ENDED')((action, store) => {
    store.todos.add(action.payload)
  }),
  // when a new todo is added to the store
  // we log a message :)
  when('@@krf/ADD>TODOS')(() => {
    console.log('A todo is added!')
  }),
]

Ecosystem

You can pick some modules based on your usage, or even write your own.
The modules that are supported by k-ramel are listed here.
We add modules when we need them but feel free to open PR if you want to add your own.

Modules can be :

  • connectors, used to connect your business logic (and your data) to your UI. We only have a ReactJS connector at the moment.
  • drivers, used to do some side effects (http, window, history, etc) or share some logic, besides your business logic.

How to use k-ramel

k-ramel is a data store that allows you to listen to event and then react to it. In a reaction you can access:

  • the outside world via drivers, this is where you put your side effects, like HTTP calls
  • your data, via store

Then if you connect an UI to k-ramel, via connectors, it can be refreshed each time the store is updated.

You can find documentation about each part of k-ramel there:

Examples

Contributors

Known users

  • sparklane - B2B Predictive lead scoring [closed source]
  • metroscope - AI diagnosis for targeted maintenance [closed source]
  • conference-hall - A call for paper project [open source]
  • k-mille - uni rakun assistant [open source]

Deprecated modules

packages description  documentation last version  why
@k-ramel/driver-redux-little-router redux-little-router wrapper documentation 1.2.0 redux-little-router is deprecated

About uni rakun

uni rakun is created by two passionate french developers.

Do you want to contact them? Go to their website

Guillaume CRESPEL Fabien JUIF
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].