[{"data":1,"prerenderedAt":357},["ShallowReactive",2],{"navigation":3,"\u002Fchangelog":151,"\u002Fchangelog-surround":354},[4,29,56,79,94,121,128,144],{"title":5,"path":6,"stem":7,"children":8,"icon":27,"defaultOpen":28},"Getting Started","\u002Fgetting-started","1.getting-started\u002F1.index",[9,12,17,22],{"title":10,"path":6,"stem":7,"icon":11},"Introduction","i-lucide-book-open",{"title":13,"path":14,"stem":15,"icon":16},"Installation","\u002Fgetting-started\u002Finstallation","1.getting-started\u002F2.installation","i-lucide-download",{"title":18,"path":19,"stem":20,"icon":21},"Redis setup","\u002Fgetting-started\u002Fredis-setup","1.getting-started\u002F3.redis-setup","i-lucide-database",{"title":23,"path":24,"stem":25,"icon":26},"Quickstart","\u002Fgetting-started\u002Fquickstart","1.getting-started\u002F4.quickstart","i-lucide-zap","i-lucide-rocket",true,{"title":30,"icon":31,"path":32,"stem":33,"children":34,"page":55},"Concepts","i-lucide-lightbulb","\u002Fconcepts","2.concepts",[35,40,45,50],{"title":36,"path":37,"stem":38,"icon":39},"Keys","\u002Fconcepts\u002Fkeys","2.concepts\u002F1.keys","i-lucide-key-round",{"title":41,"path":42,"stem":43,"icon":44},"Strict vs lax","\u002Fconcepts\u002Fstrict-vs-lax","2.concepts\u002F2.strict-vs-lax","i-lucide-scale",{"title":46,"path":47,"stem":48,"icon":49},"Comparators","\u002Fconcepts\u002Fcomparators","2.concepts\u002F3.comparators","i-lucide-git-compare",{"title":51,"path":52,"stem":53,"icon":54},"Errors","\u002Fconcepts\u002Ferrors","2.concepts\u002F4.errors","i-lucide-triangle-alert",false,{"title":57,"path":58,"stem":59,"children":60,"icon":63},"Counters","\u002Fcounters","3.counters\u002F1.index",[61,64,69,74],{"title":62,"path":58,"stem":59,"icon":63},"Overview","i-lucide-hash",{"title":65,"path":66,"stem":67,"icon":68},"StrictCounter","\u002Fcounters\u002Fstrict-counter","3.counters\u002F2.strict-counter","i-lucide-target",{"title":70,"path":71,"stem":72,"icon":73},"LaxCounter","\u002Fcounters\u002Flax-counter","3.counters\u002F3.lax-counter","i-lucide-wind",{"title":75,"path":76,"stem":77,"icon":78},"Conditional & batch operations","\u002Fcounters\u002Fconditional-and-batch","3.counters\u002F4.conditional-and-batch","i-lucide-layers",{"title":80,"path":81,"stem":82,"children":83,"icon":85},"Instance-aware counters","\u002Finstance-aware-counters","4.instance-aware-counters\u002F1.index",[84,86,90],{"title":62,"path":81,"stem":82,"icon":85},"i-lucide-network",{"title":87,"path":88,"stem":89,"icon":68},"StrictInstanceAwareCounter","\u002Finstance-aware-counters\u002Fstrict","4.instance-aware-counters\u002F2.strict",{"title":91,"path":92,"stem":93,"icon":73},"LaxInstanceAwareCounter","\u002Finstance-aware-counters\u002Flax","4.instance-aware-counters\u002F3.lax",{"title":95,"path":96,"stem":97,"children":98,"icon":100},"Locks","\u002Flocks","5.locks\u002F1.index",[99,101,106,111,116],{"title":62,"path":96,"stem":97,"icon":100},"i-lucide-lock",{"title":102,"path":103,"stem":104,"icon":105},"Mutex","\u002Flocks\u002Fmutex","5.locks\u002F2.mutex","i-lucide-lock-keyhole",{"title":107,"path":108,"stem":109,"icon":110},"RwLock","\u002Flocks\u002Frwlock","5.locks\u002F3.rwlock","i-lucide-book-lock",{"title":112,"path":113,"stem":114,"icon":115},"Lock options","\u002Flocks\u002Foptions","5.locks\u002F4.options","i-lucide-sliders-horizontal",{"title":117,"path":118,"stem":119,"icon":120},"Guard state & errors","\u002Flocks\u002Fguard-state","5.locks\u002F5.guard-state","i-lucide-shield-alert",{"title":122,"path":123,"stem":124,"children":125,"icon":127},"Rate limiting","\u002Frate-limiting","6.rate-limiting\u002F1.index",[126],{"title":122,"path":123,"stem":124,"icon":127},"i-lucide-gauge",{"title":129,"icon":130,"path":131,"stem":132,"children":133,"page":55},"Reference","i-lucide-book-marked","\u002Freference","7.reference",[134,139],{"title":135,"path":136,"stem":137,"icon":138},"Feature flags","\u002Freference\u002Ffeature-flags","7.reference\u002F1.feature-flags","i-lucide-flag",{"title":140,"path":141,"stem":142,"icon":143},"API reference","\u002Freference\u002Fapi","7.reference\u002F2.api","i-lucide-file-code",{"title":145,"path":146,"stem":147,"children":148,"icon":150},"Changelog","\u002Fchangelog","8.changelog\u002F1.index",[149],{"title":145,"path":146,"stem":147,"icon":150},"i-lucide-scroll",{"id":152,"title":145,"badge":153,"body":154,"date":153,"description":348,"extension":349,"links":153,"meta":350,"navigation":351,"path":146,"seo":352,"stem":147,"__hash__":353},"docs\u002F8.changelog\u002F1.index.md",null,{"type":155,"value":156,"toc":337},"minimark",[157,169,174,182,243,247,252,256,261,265,274,278,319,323],[158,159,160,161,168],"p",{},"A high-level history of distkit releases. For the full commit log, see the ",[162,163,167],"a",{"href":164,"rel":165},"https:\u002F\u002Fgithub.com\u002Fdev-davexoyinbo\u002Fdistkit\u002Freleases",[166],"nofollow","GitHub releases",".",[170,171,173],"h2",{"id":172},"_050-2026-06-15","0.5.0 — 2026-06-15",[158,175,176,177,181],{},"The ",[178,179,180],"strong",{},"distributed locks"," release.",[183,184,185,207,217,237,240],"ul",{},[186,187,188,189,193,194,198,199,203,204,168],"li",{},"New ",[190,191,192],"code",{},"lock"," feature: Redis-backed ",[162,195,196],{"href":103},[190,197,102],{}," and a writer-preferring ",[162,200,201],{"href":108},[190,202,107],{},", mirroring ",[190,205,206],{},"tokio::sync",[186,208,209,210,213,214,168],{},"RAII guards with background lease renewal (every ",[190,211,212],{},"ttl\u002F3",") and an awaitable ",[190,215,216],{},"release()",[186,218,219,220,225,226,229,230,229,233,236],{},"Unified ",[162,221,222],{"href":118},[190,223,224],{},"LockGuardState"," (",[190,227,228],{},"Acquired"," \u002F ",[190,231,232],{},"Lost",[190,234,235],{},"Released",") across all guard types.",[186,238,239],{},"TTL and owner are validated up front before any Redis operation.",[186,241,242],{},"Added lock benchmarks.",[170,244,246],{"id":245},"_040-2026-04-13","0.4.0 — 2026-04-13",[183,248,249],{},[186,250,251],{},"Stability and internal refinements across counters and instance-aware counters.",[170,253,255],{"id":254},"_030-2026-04-13","0.3.0 — 2026-04-13",[183,257,258],{},[186,259,260],{},"Continued hardening of the counter and instance-aware counter paths.",[170,262,264],{"id":263},"_023-2026-04-08","0.2.3 — 2026-04-08",[183,266,267],{},[186,268,269,270,273],{},"Added the ",[190,271,272],{},"full"," feature flag to enable every primitive at once.",[170,275,277],{"id":276},"_020-2026-04-03","0.2.0 — 2026-04-03",[183,279,280,296,309],{},[186,281,282,283,225,286,290,291,295],{},"Added ",[178,284,285],{},"instance-aware counters",[162,287,288],{"href":88},[190,289,87],{},", ",[162,292,293],{"href":92},[190,294,91],{},") with automatic dead-instance cleanup.",[186,297,269,298,301,302,305,306,168],{},[190,299,300],{},"trypema"," feature: sliding-window ",[162,303,304],{"href":123},"rate limiting"," re-exported under ",[190,307,308],{},"distkit::trypema",[186,310,311,314,315,318],{},[190,312,313],{},"counter"," and ",[190,316,317],{},"instance-aware-counter"," are the default features.",[170,320,322],{"id":321},"_010-2026-03-29","0.1.0 — 2026-03-29",[183,324,325],{},[186,326,327,328,314,332,336],{},"Initial release: distributed ",[162,329,330],{"href":66},[190,331,65],{},[162,333,334],{"href":71},[190,335,70],{},", backed by Redis.",{"title":338,"searchDepth":339,"depth":340,"links":341},"",1,2,[342,343,344,345,346,347],{"id":172,"depth":340,"text":173},{"id":245,"depth":340,"text":246},{"id":254,"depth":340,"text":255},{"id":263,"depth":340,"text":264},{"id":276,"depth":340,"text":277},{"id":321,"depth":340,"text":322},"Notable changes to distkit, newest first.","md",{},{"icon":150},{"title":145,"description":348},"7B3yKVV9gB1LgKLU2akur5t7pSJFlr9ASRAPp9iCbs0",[355,153],{"title":140,"path":141,"stem":142,"description":356,"icon":143,"children":-1},"Where the full type-level API lives, and a quick index of the public surface.",1781569581680]