> For the complete documentation index, see [llms.txt](https://stash-it.gitbook.io/stash-it/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://stash-it.gitbook.io/stash-it/master.md).

# stash-it

## What is stash-it?

It is a caching mechanism based on plugins.\
It's core concept is to stay simple, small and easily extendable using plugins.

#### **Plugins allow you to:**

* write handlers for hook'able methods
* extend API of cache object

**stash-it** can be used in various environments (client, server or native), depending on what adapter you use.

It's written in **ES6**, so if you want to use it in an environment that does not understands it, you need to compile it to older ES version (e.g. by using [Babel](https://babeljs.io/)).

It's also [very small](https://bundlephobia.com/result?p=stash-it) - 1.6kB minified and gzipped.

## Why stash-it?

At one time, I was looking for a cache mechanism for node, that would allow me to add tags to stored items. I found some solutions. But when I dug deeper and began to find various modules that were either too big, had too few / many methods, were hard to use or were not maintained for a very long time.

Then I thought - if there isn't anything close to what I am looking for, why not create something of my own.

That's how **stash-it** came to be.
