Home

Awesome

k-ramel

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

CircleCI Coverage Status NPM Version Greenkeeper badge

<p align="center"> <img src="packages/k-ramel/doc/logo.png" width="400" /> </p>

Why should you give it a try? 🤔

Because k-ramel:

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

packagesdescription documentation gziped size
k-ramelcore packagedocumentationSize
@k-ramel/reactReactJS connectordocumentationSize
@k-ramel/driver-httpfetch wrapperdocumentationSize
@k-ramel/driver-formminimalist form handlerdocumentationSize
@k-ramel/driver-redux-formredux-form wrapperdocumentationSize
k-redux-routerRedux router (one route === one code)documentation

⚠️Note that some packages have dependencies:

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 :

How to use k-ramel

<p align="center"> <img src="packages/k-ramel/doc/graph.png" width="800" /> </p>

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

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

Deprecated modules

packagesdescription documentationlast version why
@k-ramel/driver-redux-little-routerredux-little-router wrapperdocumentation1.2.0redux-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

<table border="0"> <tr> <td align="center"><img src="https://avatars1.githubusercontent.com/u/26094222?s=460&v=4" width="100" /></td> <td align="center"><img src="https://avatars1.githubusercontent.com/u/17828231?s=460&v=4" width="100" /></td> </tr> <tr> <td align="center"><a href="https://github.com/guillaumecrespel">Guillaume CRESPEL</a></td> <td align="center"><a href="https://github.com/fabienjuif">Fabien JUIF</a></td> </table>