{"id":49607,"library":"unstorage","title":"unstorage","description":"Unstorage is an async key-value storage library for JavaScript environments, version 1.17.5, with frequent releases. It provides a universal storage layer supporting browser, Node.js, and Workers, with over 20 built-in drivers (memory, Redis, FS, S3, Cloudflare KV, etc.). Key differentiators: Unix-style driver mounting to combine storages, tree-shakable core (~2KB), automatic JSON serialization, binary support, watchable storage, and HTTP server. Unlike other libraries, it emphasizes cross-environment compatibility and minimal dependencies, with optional driver packages.","status":"active","version":"1.17.5","language":"javascript","source_language":"en","source_url":"https://github.com/unjs/unstorage","tags":["javascript","typescript"],"install":[{"cmd":"npm install unstorage","lang":"bash","label":"npm"},{"cmd":"yarn add unstorage","lang":"bash","label":"yarn"},{"cmd":"pnpm add unstorage","lang":"bash","label":"pnpm"}],"dependencies":[{"reason":"Optional driver for Azure App Configuration","package":"@azure/app-configuration","optional":true},{"reason":"Optional driver for Azure Cosmos DB","package":"@azure/cosmos","optional":true},{"reason":"Optional driver for Azure Tables","package":"@azure/data-tables","optional":true},{"reason":"Optional driver for Azure Identity","package":"@azure/identity","optional":true},{"reason":"Optional driver for Azure Key Vault","package":"@azure/keyvault-secrets","optional":true},{"reason":"Optional driver for Azure Blob Storage","package":"@azure/storage-blob","optional":true},{"reason":"Optional driver for Capacitor Preferences","package":"@capacitor/preferences","optional":true},{"reason":"Optional driver for Deno KV","package":"@deno/kv","optional":true},{"reason":"Optional driver for Netlify Blobs","package":"@netlify/blobs","optional":true},{"reason":"Optional driver for PlanetScale","package":"@planetscale/database","optional":true},{"reason":"Optional driver for Upstash Redis","package":"@upstash/redis","optional":true},{"reason":"Optional driver for Vercel Blob","package":"@vercel/blob","optional":true},{"reason":"Optional driver for Vercel Functions","package":"@vercel/functions","optional":true},{"reason":"Optional driver for Vercel KV","package":"@vercel/kv","optional":true},{"reason":"Optional driver for AWS S3","package":"aws4fetch","optional":true},{"reason":"Optional driver for database (db0)","package":"db0","optional":true},{"reason":"Optional driver for IndexedDB","package":"idb-keyval","optional":true},{"reason":"Optional driver for Redis","package":"ioredis","optional":true},{"reason":"Optional driver for UploadThing","package":"uploadthing","optional":true}],"imports":[{"note":"createStorage is a named export, not default","wrong":"import createStorage from 'unstorage'","symbol":"createStorage","correct":"import { createStorage } from 'unstorage'"},{"note":"Used to create custom drivers","wrong":"","symbol":"defineDriver","correct":"import { defineDriver } from 'unstorage'"},{"note":"Named export for prefixing storage keys","wrong":"import prefixStorage from 'unstorage'","symbol":"prefixStorage","correct":"import { prefixStorage } from 'unstorage'"},{"note":"There is no default export; you must use named exports or create a storage instance.","wrong":"import { default as storage } from 'unstorage'","symbol":"default","correct":"import storage from 'unstorage'"}],"quickstart":{"code":"import { createStorage } from 'unstorage';\n\nconst storage = createStorage({\n  driver: process.env.STORAGE_DRIVER ?? 'memory',\n});\n\nasync function main() {\n  await storage.setItem('session:user', { name: 'Alice', role: 'admin' });\n  const user = await storage.getItem('session:user');\n  console.log(user); // { name: 'Alice', role: 'admin' }\n  await storage.del('session:user');\n}\n\nmain().catch(console.error);","lang":"typescript","description":"Creates a storage instance (default in-memory), sets, gets, and deletes a JSON object."},"warnings":[{"fix":"Import snapshot from 'unstorage/utils' or use storage.getItems/setItems explicitly.","message":"Before v1.0, createStorage returned a 'snapshot' method; now it's a separate utility.","severity":"breaking","affected_versions":"<1.0.0"},{"fix":"Replace 'cloudflare-kv-binding' with 'cloudflare:kv-binding' in driver config.","message":"Driver export 'cloudflare-kv-binding' is deprecated; use 'cloudflare:kv-binding' instead.","severity":"deprecated","affected_versions":">=1.5.0"},{"fix":"Install idb-keyval: npm install idb-keyval","message":"Browsers: IndexedDB driver requires idb-keyval package but is not auto-installed; must be added as a dependency.","severity":"gotcha","affected_versions":">=1.0.0"},{"fix":"Use a driver like 'fs', 'redis', or 'cloudflare:kv-binding'.","message":"In-memory driver does not persist data across server restarts; explicitly configure a persistent driver for production.","severity":"gotcha","affected_versions":">=1.0.0"},{"fix":"Install the appropriate driver package (e.g., ioredis for Redis).","message":"Driver options (e.g., Redis connection) are passed directly to the underlying driver, not bundled; ensure correct driver package installed.","severity":"gotcha","affected_versions":">=1.0.0"}],"env_vars":null,"search_vec":"'1.17.5':15 '20':32 '2kb':58 'async':5 'automat':59 'binari':62 'browser':26 'built':34 'built-in':33 'cloudflar':41 'combin':52 'compat':77 'core':57 'cross':75 'cross-environ':74 'depend':80 'differenti':45 'driver':36,49,83 'emphas':73 'environ':13,76 'etc':43 'frequent':17 'fs':39 'http':67 'javascript':12,85 'json':60 'key':7,44 'key-valu':6 'kv':42 'layer':24 'librari':10,71 'memori':37 'minim':79 'mount':50 'node.js':27 'option':82 'packag':84 'provid':20 'redi':38 'releas':18 's3':40 'serial':61 'server':68 'shakabl':56 'storag':9,23,53,65 'style':48 'support':25,63 'tree':55 'tree-shak':54 'typescript':86 'univers':22 'unix':47 'unix-styl':46 'unlik':69 'unstorag':1,2 'valu':8 'version':14 'watchabl':64 'worker':29","created_at":"2026-06-07T17:02:38.689183+00:00","updated_at":"2026-06-07T17:02:38.689183+00:00","problems":[{"fix":"npm install unstorage (or yarn/pnpm add).","cause":"unstorage is not installed or missing TypeScript definitions.","error":"Cannot find module 'unstorage' or its corresponding type declarations."},{"fix":"Use import { createStorage } from 'unstorage'.","cause":"Default import instead of named import.","error":"TypeError: createStorage is not a function"},{"fix":"npm install ioredis","cause":"Missing driver dependency for Redis.","error":"Error: Cannot find module 'ioredis'"},{"fix":"Add a driver: createStorage({ driver: 'fs', options: { base: './data' } }).","cause":"No driver configured in createStorage options.","error":"No driver was specified. Using the default built-in memory driver."}],"ecosystem":"npm","meta_description":null,"install_score":null,"quickstart_score":null,"quickstart_tag":null,"pypi_latest":null,"cli_name":null,"cli_version":null,"type":"library","homepage":"https://unstorage.unjs.io","github":"https://github.com/unjs/unstorage","docs":null,"changelog":null,"pypi":null,"npm":"unstorage","openapi_spec":null,"status_page":null,"smithery":null,"categories":["storage"],"base_url":null,"auth_type":null,"provenance":{"verified_status":null,"verified_at":null,"last_verified":"2026-06-07","next_check":"2026-09-05","install_tag":null}}