[{"data":1,"prerenderedAt":588},["ShallowReactive",2],{"navigation":3,"-drivers-deno":137,"-drivers-deno-surround":583},[4,26],{"title":5,"path":6,"stem":7,"children":8,"icon":10},"Getting Started","\u002Fguide","1.guide\u002F1.index",[9,11,16,21],{"title":5,"path":6,"stem":7,"icon":10},"ph:book-open-duotone",{"title":12,"path":13,"stem":14,"icon":15},"Utilities","\u002Fguide\u002Futils","1.guide\u002F2.utils","et:tools-2",{"title":17,"path":18,"stem":19,"icon":20},"HTTP Server","\u002Fguide\u002Fhttp-server","1.guide\u002F3.http-server","ic:baseline-http",{"title":22,"path":23,"stem":24,"icon":25},"Custom Driver","\u002Fguide\u002Fcustom-driver","1.guide\u002F4.custom-driver","carbon:area-custom",{"title":27,"path":28,"stem":29,"children":30,"icon":32},"Drivers","\u002Fdrivers","2.drivers\u002F0.index",[31,33,38,43,48,53,58,63,68,73,77,82,87,92,97,102,107,112,117,122,127,132],{"title":27,"path":28,"stem":29,"icon":32},"icon-park-outline:hard-disk",{"title":34,"path":35,"stem":36,"icon":37},"Azure","\u002Fdrivers\u002Fazure","2.drivers\u002Fazure","mdi:microsoft-azure",{"title":39,"path":40,"stem":41,"icon":42},"Browser","\u002Fdrivers\u002Fbrowser","2.drivers\u002Fbrowser","ph:browser-thin",{"title":44,"path":45,"stem":46,"icon":47},"Capacitor Preferences","\u002Fdrivers\u002Fcapacitor-preferences","2.drivers\u002Fcapacitor-preferences","nonicons:capacitor-16",{"title":49,"path":50,"stem":51,"icon":52},"Cloudflare","\u002Fdrivers\u002Fcloudflare","2.drivers\u002Fcloudflare","devicon-plain:cloudflareworkers",{"title":54,"path":55,"stem":56,"icon":57},"SQL Database","\u002Fdrivers\u002Fdatabase","2.drivers\u002Fdatabase","ph:database",{"title":59,"path":60,"stem":61,"icon":62},"Deno KV","\u002Fdrivers\u002Fdeno","2.drivers\u002Fdeno","simple-icons:deno",{"title":64,"path":65,"stem":66,"icon":67},"Filesystem (Node.js)","\u002Fdrivers\u002Ffs","2.drivers\u002Ffs","ph:file-light",{"title":69,"path":70,"stem":71,"icon":72},"GitHub","\u002Fdrivers\u002Fgithub","2.drivers\u002Fgithub","mdi:github",{"title":74,"path":75,"stem":76,"icon":20},"HTTP","\u002Fdrivers\u002Fhttp","2.drivers\u002Fhttp",{"title":78,"path":79,"stem":80,"icon":81},"LRU Cache","\u002Fdrivers\u002Flru-cache","2.drivers\u002Flru-cache","material-symbols:cached-rounded",{"title":83,"path":84,"stem":85,"icon":86},"Memory","\u002Fdrivers\u002Fmemory","2.drivers\u002Fmemory","bi:memory",{"title":88,"path":89,"stem":90,"icon":91},"MongoDB","\u002Fdrivers\u002Fmongodb","2.drivers\u002Fmongodb","teenyicons:mongodb-outline",{"title":93,"path":94,"stem":95,"icon":96},"Netlify Blobs","\u002Fdrivers\u002Fnetlify","2.drivers\u002Fnetlify","teenyicons:netlify-solid",{"title":98,"path":99,"stem":100,"icon":101},"Null","\u002Fdrivers\u002Fnull","2.drivers\u002Fnull","bi:trash3-fill",{"title":103,"path":104,"stem":105,"icon":106},"Overlay","\u002Fdrivers\u002Foverlay","2.drivers\u002Foverlay","carbon:overlay",{"title":108,"path":109,"stem":110,"icon":111},"PlanetScale","\u002Fdrivers\u002Fplanetscale","2.drivers\u002Fplanetscale","simple-icons:planetscale",{"title":113,"path":114,"stem":115,"icon":116},"Redis","\u002Fdrivers\u002Fredis","2.drivers\u002Fredis","simple-icons:redis",{"title":118,"path":119,"stem":120,"icon":121},"S3","\u002Fdrivers\u002Fs3","2.drivers\u002Fs3","simple-icons:amazons3",{"title":123,"path":124,"stem":125,"icon":126},"UploadThing","\u002Fdrivers\u002Fuploadthing","2.drivers\u002Fuploadthing","qlementine-icons:cloud-16",{"title":128,"path":129,"stem":130,"icon":131},"Upstash","\u002Fdrivers\u002Fupstash","2.drivers\u002Fupstash","simple-icons:upstash",{"title":133,"path":134,"stem":135,"icon":136},"Vercel","\u002Fdrivers\u002Fvercel","2.drivers\u002Fvercel","gg:vercel",{"id":138,"title":59,"body":139,"description":577,"extension":578,"meta":579,"navigation":580,"path":60,"seo":581,"stem":61,"__hash__":582},"content\u002F2.drivers\u002Fdeno.md",{"type":140,"value":141,"toc":573,"icon":62},"minimark",[142,150,155,166,197,210,329,334,366,371,382,393,397,404,415,450,456,459,531,535,569],[143,144,146],"note",{"to":145},"https:\u002F\u002Fdeno.com\u002Fkv",[147,148,149],"p",{},"Learn more about Deno KV.",[151,152,154],"h2",{"id":153},"usage-deno","Usage (Deno)",[147,156,157,161,162],{},[158,159,160],"strong",{},"Driver name:"," ",[163,164,165],"code",{},"deno-kv",[167,168,169],"important",{},[147,170,171,173,174,181,182,187,188,191,192,196],{},[163,172,165],{}," driver requires ",[175,176,180],"a",{"href":177,"rel":178},"https:\u002F\u002Fdocs.deno.com\u002Fdeploy\u002Fkv\u002Fmanual\u002Fon_deploy\u002F",[179],"nofollow","Deno deploy"," or ",[175,183,186],{"href":184,"rel":185},"https:\u002F\u002Fdocs.deno.com\u002Fruntime\u002F",[179],"Deno runtime"," with ",[163,189,190],{},"--unstable-kv"," CLI flag. See ",[175,193,195],{"href":194},"#usage-nodejs","Node.js"," section for other runtimes.",[143,198,199],{},[147,200,201,202,205,206,209],{},"The driver automatically maps Unstorage keys to Deno. For example, ",[163,203,204],{},"\"test:key\""," key will be mapped to ",[163,207,208],{},"[\"test\", \"key\"]"," and vice versa.",[211,212,217],"pre",{"className":213,"code":214,"language":215,"meta":216,"style":216},"language-js shiki shiki-themes github-light github-dark github-dark","import { createStorage } from \"unstorage\";\nimport denoKVdriver from \"unstorage\u002Fdrivers\u002Fdeno-kv\";\n\nconst storage = createStorage({\n  driver: denoKVdriver({\n    \u002F\u002F path: \":memory:\",\n    \u002F\u002F base: \"\",\n    \u002F\u002F ttl: 60, \u002F\u002F in seconds\n  }),\n});\n","js","",[163,218,219,242,257,264,284,295,302,308,317,323],{"__ignoreMap":216},[220,221,224,228,232,235,239],"span",{"class":222,"line":223},"line",1,[220,225,227],{"class":226},"so5gQ","import",[220,229,231],{"class":230},"slsVL"," { createStorage } ",[220,233,234],{"class":226},"from",[220,236,238],{"class":237},"sfrk1"," \"unstorage\"",[220,240,241],{"class":230},";\n",[220,243,245,247,250,252,255],{"class":222,"line":244},2,[220,246,227],{"class":226},[220,248,249],{"class":230}," denoKVdriver ",[220,251,234],{"class":226},[220,253,254],{"class":237}," \"unstorage\u002Fdrivers\u002Fdeno-kv\"",[220,256,241],{"class":230},[220,258,260],{"class":222,"line":259},3,[220,261,263],{"emptyLinePlaceholder":262},true,"\n",[220,265,267,270,274,277,281],{"class":222,"line":266},4,[220,268,269],{"class":226},"const",[220,271,273],{"class":272},"suiK_"," storage",[220,275,276],{"class":226}," =",[220,278,280],{"class":279},"shcOC"," createStorage",[220,282,283],{"class":230},"({\n",[220,285,287,290,293],{"class":222,"line":286},5,[220,288,289],{"class":230},"  driver: ",[220,291,292],{"class":279},"denoKVdriver",[220,294,283],{"class":230},[220,296,298],{"class":222,"line":297},6,[220,299,301],{"class":300},"sCsY4","    \u002F\u002F path: \":memory:\",\n",[220,303,305],{"class":222,"line":304},7,[220,306,307],{"class":300},"    \u002F\u002F base: \"\",\n",[220,309,311,314],{"class":222,"line":310},8,[220,312,313],{"class":300},"    \u002F\u002F ttl: 60,",[220,315,316],{"class":300}," \u002F\u002F in seconds\n",[220,318,320],{"class":222,"line":319},9,[220,321,322],{"class":230},"  }),\n",[220,324,326],{"class":222,"line":325},10,[220,327,328],{"class":230},"});\n",[147,330,331],{},[158,332,333],{},"Options:",[335,336,337,348,354,360],"ul",{},[338,339,340,343,344,347],"li",{},[163,341,342],{},"path",": (optional) File system path to where you'd like to store your database, otherwise one will be created for you based on the current working directory of your script by Deno. You can pass ",[163,345,346],{},":memory:"," for testing.",[338,349,350,353],{},[163,351,352],{},"base",": (optional) Prefix key added to all operations.",[338,355,356,359],{},[163,357,358],{},"openKV",": (advanced) Custom method that returns a Deno KV instance.",[338,361,362,365],{},[163,363,364],{},"ttl",": (optional) Default TTL for all items in seconds.",[147,367,368],{},[158,369,370],{},"Per-call options:",[335,372,373],{},[338,374,375,377,378,381],{},[163,376,364],{},": Add TTL (in seconds) for this ",[163,379,380],{},"setItem"," call.",[143,383,384],{},[147,385,386,387,392],{},"Expiration is not strictly enforced by Deno: keys may persist after their expire time. For strict expiry, store the timestamp in your value and check it after retrieval.\nSee ",[175,388,391],{"href":389,"rel":390},"https:\u002F\u002Fdocs.deno.com\u002Fdeploy\u002Fkv\u002Fmanual\u002Fkey_expiration\u002F",[179],"Deno KV Key Expiration"," for more information.",[151,394,396],{"id":395},"usage-nodejs","Usage (Node.js)",[147,398,399,161,401],{},[158,400,160],{},[163,402,403],{},"deno-kv-node",[147,405,406,407,414],{},"Deno provides ",[175,408,411],{"href":409,"rel":410},"https:\u002F\u002Fwww.npmjs.com\u002Fpackage\u002F@deno\u002Fkv",[179],[163,412,413],{},"@deno\u002Fkv"," npm package, A Deno KV client library optimized for Node.js.",[335,416,417,432,447],{},[338,418,419,420,425,426,431],{},"Access ",[175,421,424],{"href":422,"rel":423},"https:\u002F\u002Fdeno.com\u002Fdeploy",[179],"Deno Deploy"," remote databases (or any\nendpoint implementing the open\n",[175,427,430],{"href":428,"rel":429},"https:\u002F\u002Fgithub.com\u002Fdenoland\u002Fdenokv\u002Fblob\u002Fmain\u002Fproto\u002Fkv-connect.md",[179],"KV Connect","\nprotocol) on Node 18+.",[338,433,434,435,440,441,446],{},"Create local KV databases backed by\n",[175,436,439],{"href":437,"rel":438},"https:\u002F\u002Fwww.sqlite.org\u002Findex.html",[179],"SQLite",", using optimized native\n",[175,442,445],{"href":443,"rel":444},"https:\u002F\u002Fnodejs.org\u002Fdocs\u002Flatest-v18.x\u002Fapi\u002Fn-api.html",[179],"NAPI"," packages for\nNode - compatible with databases created by Deno itself.",[338,448,449],{},"Create ephemeral in-memory KV instances backed by SQLite memory files or by a\nlightweight JS-only implementation for testing.",[147,451,452,453,455],{},"Install ",[163,454,413],{}," peer dependency:",[457,458],"pm-install",{"name":413},[211,460,462],{"className":213,"code":461,"language":215,"meta":216,"style":216},"import { createStorage } from \"unstorage\";\nimport denoKVNodedriver from \"unstorage\u002Fdrivers\u002Fdeno-kv-node\";\n\nconst storage = createStorage({\n  driver: denoKVNodedriver({\n    \u002F\u002F path: \":memory:\",\n    \u002F\u002F base: \"\",\n  }),\n});\n",[163,463,464,476,490,494,506,515,519,523,527],{"__ignoreMap":216},[220,465,466,468,470,472,474],{"class":222,"line":223},[220,467,227],{"class":226},[220,469,231],{"class":230},[220,471,234],{"class":226},[220,473,238],{"class":237},[220,475,241],{"class":230},[220,477,478,480,483,485,488],{"class":222,"line":244},[220,479,227],{"class":226},[220,481,482],{"class":230}," denoKVNodedriver ",[220,484,234],{"class":226},[220,486,487],{"class":237}," \"unstorage\u002Fdrivers\u002Fdeno-kv-node\"",[220,489,241],{"class":230},[220,491,492],{"class":222,"line":259},[220,493,263],{"emptyLinePlaceholder":262},[220,495,496,498,500,502,504],{"class":222,"line":266},[220,497,269],{"class":226},[220,499,273],{"class":272},[220,501,276],{"class":226},[220,503,280],{"class":279},[220,505,283],{"class":230},[220,507,508,510,513],{"class":222,"line":286},[220,509,289],{"class":230},[220,511,512],{"class":279},"denoKVNodedriver",[220,514,283],{"class":230},[220,516,517],{"class":222,"line":297},[220,518,301],{"class":300},[220,520,521],{"class":222,"line":304},[220,522,307],{"class":300},[220,524,525],{"class":222,"line":310},[220,526,322],{"class":230},[220,528,529],{"class":222,"line":319},[220,530,328],{"class":230},[147,532,533],{},[158,534,333],{},[335,536,537,545,551,563],{},[338,538,539,541,542,544],{},[163,540,342],{},": (same as ",[163,543,165],{},")",[338,546,547,541,549,544],{},[163,548,352],{},[163,550,165],{},[338,552,553,556,557,562],{},[163,554,555],{},"openKvOptions",": Check ",[175,558,561],{"href":559,"rel":560},"https:\u002F\u002Fwww.npmjs.com\u002Fpackage\u002F@deno\u002Fkv#api",[179],"docs"," for available options.",[338,564,565,541,567,544],{},[163,566,364],{},[163,568,165],{},[570,571,572],"style",{},"html pre.shiki code .so5gQ, html code.shiki .so5gQ{--shiki-light:#D73A49;--shiki-default:#F97583;--shiki-dark:#F97583}html pre.shiki code .slsVL, html code.shiki .slsVL{--shiki-light:#24292E;--shiki-default:#E1E4E8;--shiki-dark:#E1E4E8}html pre.shiki code .sfrk1, html code.shiki .sfrk1{--shiki-light:#032F62;--shiki-default:#9ECBFF;--shiki-dark:#9ECBFF}html pre.shiki code .suiK_, html code.shiki .suiK_{--shiki-light:#005CC5;--shiki-default:#79B8FF;--shiki-dark:#79B8FF}html pre.shiki code .shcOC, html code.shiki .shcOC{--shiki-light:#6F42C1;--shiki-default:#B392F0;--shiki-dark:#B392F0}html pre.shiki code .sCsY4, html code.shiki .sCsY4{--shiki-light:#6A737D;--shiki-default:#6A737D;--shiki-dark:#6A737D}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":216,"searchDepth":244,"depth":244,"links":574},[575,576],{"id":153,"depth":244,"text":154},{"id":395,"depth":244,"text":396},"Store data in Deno KV","md",{"icon":62},{"icon":62},{"title":59,"description":577},"d69o0G12t8KvQJHB8OURsiZyDEW4_iklET1sNDY4JfA",[584,586],{"title":54,"path":55,"stem":56,"description":585,"icon":57,"children":-1},"Store data in any SQL database.",{"title":64,"path":65,"stem":66,"description":587,"icon":67,"children":-1},"Store data in the filesystem using Node.js API.",1781217588457]