Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/unjs/unstorage
๐พ Unstorage provides an async Key-Value storage API with conventional features like multi driver mounting, watching and working with metadata, dozens of built-in drivers and a tiny core.
https://github.com/unjs/unstorage
Last synced: 2 days ago
JSON representation
๐พ Unstorage provides an async Key-Value storage API with conventional features like multi driver mounting, watching and working with metadata, dozens of built-in drivers and a tiny core.
- Host: GitHub
- URL: https://github.com/unjs/unstorage
- Owner: unjs
- License: mit
- Created: 2021-03-07T23:19:13.000Z (almost 4 years ago)
- Default Branch: main
- Last Pushed: 2024-10-18T01:49:40.000Z (about 2 months ago)
- Last Synced: 2024-10-29T11:24:47.676Z (about 1 month ago)
- Language: TypeScript
- Homepage: https://unstorage.unjs.io
- Size: 3.42 MB
- Stars: 1,807
- Watchers: 5
- Forks: 135
- Open Issues: 88
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
- awesome - unjs/unstorage - ๐พ Unstorage provides an async Key-Value storage API with conventional features like multi driver mounting, watching and working with metadata, dozens of built-in drivers and a tiny core. (TypeScript)
- best-of-react - GitHub - 44% open ยท โฑ๏ธ 30.05.2024): (Data Fetching)
- awesome - unjs/unstorage - ๐พ Unstorage provides an async Key-Value storage API with conventional features like multi driver mounting, watching and working with metadata, dozens of built-in drivers and a tiny core. (TypeScript)
- awesome - unjs/unstorage - ๐พ Unstorage provides an async Key-Value storage API with conventional features like multi driver mounting, watching and working with metadata, dozens of built-in drivers and a tiny core. (TypeScript)
- jimsghstars - unjs/unstorage - ๐พ Unstorage provides an async Key-Value storage API with conventional features like multi driver mounting, watching and working with metadata, dozens of built-in drivers and a tiny core. (TypeScript)
README
# ๐พ Unstorage
[![npm version][npm-version-src]][npm-version-href]
[![npm downloads][npm-downloads-src]][npm-downloads-href]
[![Codecov][codecov-src]][codecov-href]
[![bundle][bundle-src]][bundle-href]
[![License][license-src]][license-href]Unstorage provides an async Key-Value storage API with conventional features like multi driver mounting, watching and working with metadata, dozens of built-in drivers and a [tiny core](https://bundlephobia.com/package/unstorage).
๐ [Documentation](https://unstorage.unjs.io)
## Features
- Designed for all environments: Browser, NodeJS, and Workers
- Lots of Built-in drivers
- Asynchronous API
- Unix-style driver mounting to combine storages
- Default [in-memory](https://unstorage.unjs.io/drivers/memory) storage
- Tree-shakable utils and tiny core
- Auto JSON value serialization and deserialization
- Binary and raw value support
- State [snapshots](https://unstorage.unjs.io/getting-started/utils#snapshots) and hydration
- Storage watcher
- HTTP Storage with [built-in server](https://unstorage.unjs.io/guide/http-server)## Usage
Install `unstorage` npm package:
```sh
# yarn
yarn add unstorage# npm
npm install unstorage# pnpm
pnpm add unstorage
``````js
import { createStorage } from "unstorage";const storage = createStorage(/* opts */);
await storage.getItem("foo:bar"); // or storage.getItem('/foo/bar')
```๐ Check out the [the documentation](https://unstorage.unjs.io) for usage information.
## Nightly release channel
You can use the nightly release channel to try the latest changes in the `main` branch via [`unstorage-nightly`](https://www.npmjs.com/package/unstorage-nightly).
If directly using `unstorage` in your project:
```json
{
"devDependencies": {
"unstorage": "npm:unstorage-nightly"
}
}
```If using `unstorage` via another tool in your project:
```json
{
"resolutions": {
"unstorage": "npm:unstorage-nightly"
}
}
```## Contribution
- Clone repository
- Install dependencies with `pnpm install`
- Use `pnpm dev` to start jest watcher verifying changes
- Use `pnpm test` before pushing to ensure all tests and lint checks passing## License
[MIT](./LICENSE)
[npm-version-src]: https://img.shields.io/npm/v/unstorage?style=flat&colorA=18181B&colorB=F0DB4F
[npm-version-href]: https://npmjs.com/package/unstorage
[npm-downloads-src]: https://img.shields.io/npm/dm/unstorage?style=flat&colorA=18181B&colorB=F0DB4F
[npm-downloads-href]: https://npmjs.com/package/unstorage
[github-actions-src]: https://img.shields.io/github/workflow/status/unjs/unstorage/ci/main?style=flat&colorA=18181B&colorB=F0DB4F
[github-actions-href]: https://github.com/unjs/unstorage/actions?query=workflow%3Aci
[codecov-src]: https://img.shields.io/codecov/c/gh/unjs/unstorage/main?style=flat&colorA=18181B&colorB=F0DB4F
[codecov-href]: https://codecov.io/gh/unjs/unstorage
[bundle-src]: https://img.shields.io/bundlephobia/minzip/unstorage?style=flat&colorA=18181B&colorB=F0DB4F
[bundle-href]: https://bundlephobia.com/result?p=unstorage
[license-src]: https://img.shields.io/github/license/unjs/unstorage.svg?style=flat&colorA=18181B&colorB=F0DB4F
[license-href]: https://github.com/unjs/unstorage/blob/main/LICENSE