{"id":46779,"library":"wadis","title":"Wadis","description":"Wadis is a WebAssembly build of the Redis in-memory datastore, purpose-built for automated testing. It provides a high-fidelity, ephemeral Redis server that runs in-process with your tests, eliminating the need for Docker or external binaries. Version 1.0.2 is the latest stable release, with active development; it ships TypeScript types and supports Node.js >=20 and Bun >=1.1. Key differentiators include instant boot (milliseconds), zero state collision between instances, and support for advanced Redis features like Pub/Sub and Lua scripting. It offers an ioredis-compatible client API and a low-level server API for raw RESP access.","status":"active","version":"1.0.2","language":"javascript","source_language":"en","source_url":"https://github.com/cah4a/wadis","tags":["javascript","typescript"],"install":[{"cmd":"npm install wadis","lang":"bash","label":"npm"},{"cmd":"yarn add wadis","lang":"bash","label":"yarn"},{"cmd":"pnpm add wadis","lang":"bash","label":"pnpm"}],"dependencies":[{"reason":"Peer dependency; Wadis extends the ioredis client for its high-level API","package":"ioredis","optional":false}],"imports":[{"note":"Named export, not default. Also works with require: const { Wadis } = require('wadis')","wrong":"import Wadis from 'wadis'","symbol":"Wadis","correct":"import { Wadis } from 'wadis'"},{"note":"Exported from the main package, not a subpath","wrong":"import { WadisServer } from 'wadis/server'","symbol":"WadisServer","correct":"import { WadisServer } from 'wadis'"},{"note":"CommonJS users must destructure; default export is undefined.","wrong":"const wadis = require('wadis')","symbol":"require('wadis')","correct":"const { Wadis } = require('wadis')"}],"quickstart":{"code":"npm install -D wadis\n\nimport { Wadis } from 'wadis';\n\nconst redis = new Wadis();\n\nawait redis.set('foo', 'bar');\nconsole.log(await redis.get('foo')); // 'bar'\n\nawait redis.incr('counter');\nconst counter = await redis.get('counter');\nconsole.log(counter); // '1'\n\nawait redis.quit();","lang":"typescript","description":"Shows basic setup: install, create an isolated Redis instance, run commands, and clean up."},"warnings":[{"fix":"Upgrade to Node.js 20+ or use Bun 1.1+","message":"Node.js version must be >=20.0.0 or Bun >=1.1.0","severity":"breaking","affected_versions":">=1.0.0"},{"fix":"Do not use for production persistence; intended only for testing","message":"Wadis instances are ephemeral; data is lost when the instance is terminated or process exits","severity":"gotcha","affected_versions":">=1.0.0"},{"fix":"Use new TextDecoder().decode(reply) to get the RESP string","message":"The low-level server API returns raw RESP as Uint8Array; you must decode manually","severity":"gotcha","affected_versions":">=1.0.0"},{"fix":"Use standard Redis log levels: 'debug', 'verbose', 'notice', 'warning' (still supported but may change)","message":"The 'loglevel' option in WadisServer.new() uses deprecated Redis log level names like 'notice'","severity":"deprecated","affected_versions":">=1.0.0"}],"env_vars":null,"search_vec":"'1.0.2':46 '1.1':65 '20':62 'access':106 'activ':53 'advanc':80 'api':95,102 'autom':18 'binari':44 'boot':70 'build':6 'built':16 'bun':64 'client':94 'collis':74 'compat':93 'datastor':13 'develop':54 'differenti':67 'docker':41 'elimin':37 'ephemer':26 'extern':43 'featur':82 'fidel':25 'high':24 'high-fidel':23 'in-memori':10 'in-process':31 'includ':68 'instanc':76 'instant':69 'ioredi':92 'ioredis-compat':91 'javascript':107 'key':66 'latest':49 'level':100 'like':83 'low':99 'low-level':98 'lua':86 'memori':12 'millisecond':71 'need':39 'node.js':61 'offer':89 'process':33 'provid':21 'pub/sub':84 'purpos':15 'purpose-built':14 'raw':104 'redi':9,27,81 'releas':51 'resp':105 'run':30 'script':87 'server':28,101 'ship':56 'stabl':50 'state':73 'support':60,78 'test':19,36 'type':58 'typescript':57,108 'version':45 'wadi':1,2 'webassembl':5 'zero':72","created_at":"2026-06-07T13:01:35.483322+00:00","updated_at":"2026-06-07T13:01:35.483322+00:00","problems":[{"fix":"Run `npm install -D wadis ioredis`","cause":"Package not installed, or missing ioredis peer dependency","error":"Cannot find module 'wadis' or its corresponding type declarations."},{"fix":"Use `import { Wadis } from 'wadis'` instead of `import Wadis from 'wadis'`","cause":"Using default import instead of named import","error":"TypeError: wadis_1.default is not a constructor"},{"fix":"Upgrade Node.js to >=20.0.0","cause":"Node.js version <20, or missing WebAssembly support","error":"Error: wadis: failed to load wasm module"}],"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://github.com/cah4a/wadis#readme","github":"https://github.com/cah4a/wadis","docs":null,"changelog":null,"pypi":null,"npm":"wadis","openapi_spec":null,"status_page":null,"smithery":null,"categories":["testing","database"],"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}}