[{"data":1,"prerenderedAt":488},["ShallowReactive",2],{"doc:\u002Fchangelog":3,"nav:guides":437},{"doc":4,"source":436},{"id":5,"title":6,"body":7,"description":17,"extension":429,"meta":430,"navigation":431,"path":432,"seo":433,"stem":434,"__hash__":435},"changelog\u002FCHANGELOG.md","Changelog",{"type":8,"value":9,"toc":411},"minimark",[10,14,18,35,43,50,55,74,78,122,129,132,136,297,301,348,352,373,377],[11,12,6],"h1",{"id":13},"changelog",[15,16,17],"p",{},"All notable changes to this project are documented in this file.",[15,19,20,21,28,29,34],{},"The format is based on ",[22,23,27],"a",{"href":24,"rel":25},"https:\u002F\u002Fkeepachangelog.com\u002Fen\u002F1.1.0\u002F",[26],"nofollow","Keep a Changelog",",\nand this project uses ",[22,30,33],{"href":31,"rel":32},"https:\u002F\u002Fsemver.org\u002Fspec\u002Fv2.0.0.html",[26],"Semantic Versioning",".",[36,37,39],"h2",{"id":38},"unreleased",[40,41,42],"span",{},"Unreleased",[36,44,46,49],{"id":45},"_011-2026-10-25",[40,47,48],{},"0.1.1"," - 2026-10-25",[51,52,54],"h3",{"id":53},"security","Security",[56,57,58,67],"ul",{},[59,60,61,62,66],"li",{},"Code generation rejects a ",[63,64,65],"code",{},"@zig.Field.type"," that is not exactly one Zig type expression, such as text that closes the field and declares functions or other fields, or that contains comments, blocks, or declarations. Before, the text was written into the bindings verbatim.",[59,68,69,70,73],{},"Control characters in module names and doc comments are written as ",[63,71,72],{},"?"," in generated comments, so a line break in a name or a carriage return in a doc comment can no longer end the comment and add code to the bindings.",[51,75,77],{"id":76},"fixed","Fixed",[56,79,80,97,116],{},[59,81,82,85,86,89,90,93,94,34],{},[63,83,84],{},"project.load"," rejects a ",[63,87,88],{},"timeout"," of 2^63 seconds with ",[63,91,92],{},"error.Overflow"," instead of converting it to an out-of-range ",[63,95,96],{},"i64",[59,98,99,100,103,104,107,108,111,112,115],{},"Generated ",[63,101,102],{},"Int"," and ",[63,105,106],{},"Boolean"," defaults are written from the parsed value instead of the text Pkl reported, so a default such as ",[63,109,110],{},"1_000"," becomes ",[63,113,114],{},"1000"," and an unexpected text has no Zig default.",[59,117,118,121],{},[63,119,120],{},"msgpack.Decoder.skip"," discards string and binary payloads without allocating or charging them to the allocation limit.",[36,123,125,128],{"id":124},"_010-2026-10-24",[40,126,127],{},"0.1.0"," - 2026-10-24",[15,130,131],{},"First release. It needs Zig 0.17.0 and Pkl 0.25.3 or newer; code generation needs Pkl 0.32.2.",[51,133,135],{"id":134},"evaluation","Evaluation",[56,137,138,155,172,186,244,251,258,271,287],{},[59,139,140,143,144,147,148,151,152,34],{},[63,141,142],{},"Manager"," runs one ",[63,145,146],{},"pkl server"," process and shares it between evaluators on any thread. ",[63,149,150],{},"Evaluator.evaluateWithOptions"," takes a timeout and a ",[63,153,154],{},"Cancellation",[59,156,157,160,161,103,164,167,168,171],{},[63,158,159],{},"Options"," covers the evaluator settings of the Message Passing API: module and resource allow lists, environment variables and properties, module paths, root and cache directories, timeouts, output format, HTTP proxy, certificates, rewrites, and headers, external readers, trace mode, and projects. ",[63,162,163],{},"Options.restricted()",[63,165,166],{},"Options.preconfigured()"," are starting points, and ",[63,169,170],{},"Builder"," adds readers.",[59,173,174,177,178,181,182,185],{},[63,175,176],{},"createEvaluator"," refuses settings the running Pkl release does not support with ",[63,179,180],{},"error.UnsupportedVersion",", and options without allowed modules with ",[63,183,184],{},"error.NoAllowedModules",". The server version is probed only when options need a release newer than 0.25.3.",[59,187,188,191,192,195,196,199,200,203,204,207,208,207,211,207,214,207,217,207,220,207,223,207,226,229,230,233,234,207,237,229,240,243],{},[63,189,190],{},"Evaluator.evaluateSource"," returns a ",[63,193,194],{},"value.Tree","; ",[63,197,198],{},"Evaluator.evaluateInto"," converts the result into a Zig type. ",[63,201,202],{},"convert"," maps Pkl values to structs, tagged unions, enums, optionals, slices, pointers, and the ",[63,205,206],{},"convert.Map",", ",[63,209,210],{},"convert.Pair",[63,212,213],{},"convert.Duration",[63,215,216],{},"convert.DataSize",[63,218,219],{},"convert.Regex",[63,221,222],{},"convert.Bytes",[63,224,225],{},"convert.IntSeq",[63,227,228],{},"convert.Reference",", and ",[63,231,232],{},"convert.Dynamic"," types, with ",[63,235,236],{},"pkl_names",[63,238,239],{},"pkl_class",[63,241,242],{},"pkl_subclasses"," declarations.",[59,245,246,247,250],{},"Module and resource readers implemented as Zig callbacks, including glob listing, and ",[63,248,249],{},"ExternalClient"," for running a program as an external reader that Pkl starts.",[59,252,253,254,257],{},"Per-evaluator loggers for ",[63,255,256],{},"trace()"," output and warnings.",[59,259,260,262,263,266,267,270],{},[63,261,84],{}," reads ",[63,264,265],{},"PklProject"," settings and dependencies. Relative paths resolve against the project directory on every supported release, matching what ",[63,268,269],{},"resolvedEvaluatorSettings"," returns on Pkl 0.32.",[59,272,273,274,207,277,207,280,229,283,286],{},"pkl-binary decoding and encoding with ",[63,275,276],{},"value.decodeSlice",[63,278,279],{},"value.decodeReader",[63,281,282],{},"value.encode",[63,284,285],{},"value.clone",", including values from Pkl releases before 0.30 that carry no class name.",[59,288,289,292,293,296],{},[63,290,291],{},"uri.fromFile"," returns the ",[63,294,295],{},"file:"," URI of an existing file.",[51,298,300],{"id":299},"code-generation","Code generation",[56,302,303,321,332,338],{},[59,304,305,308,309,312,313,316,317,320],{},[63,306,307],{},"zig-pkl-gen"," and the ",[63,310,311],{},"zig_pkl.codegen"," API write Zig types for Pkl modules: primitives, optionals, collections, maps, pairs, durations, data sizes, regexes, bytes, integer sequences, classes and inheritance, type aliases, recursive and cross-module types, ",[63,314,315],{},"local"," classes, ",[63,318,319],{},"pkl:ref"," references, and unions as tagged unions or enums, including unions of unrelated types.",[59,322,323,324,327,328,331],{},"Generation type-checks the bindings before writing them, records the files it owns in a manifest, and does not overwrite or delete other files without ",[63,325,326],{},"--force",". ",[63,329,330],{},"--check"," reports stale bindings.",[59,333,334,335,34],{},"Defaults are evaluated with resource reads denied. Hidden properties are omitted, and so are defaults that depend on ",[63,336,337],{},"pkl:platform",[59,339,340,341,344,345,34],{},"The ",[63,342,343],{},"@zig"," annotations are published as the Pkl package ",[63,346,347],{},"package:\u002F\u002Fpkg.pkl-lang.org\u002Fgithub.com\u002Fguanchzhou\u002Fzig-pkl\u002Fzig@0.1.0",[51,349,351],{"id":350},"verification","Verification",[56,353,354,357,367],{},[59,355,356],{},"CI runs the unit, integration, conformance, and code generation tests and every example on Linux x86_64 and aarch64, macOS aarch64, and Windows x86_64, and the conformance and integration tests and the examples against Pkl 0.25.3, 0.26.3, 0.27.2, 0.28.2, 0.29.1, 0.30.2, 0.31.1, and 0.32.2.",[59,358,359,362,363,366],{},[63,360,361],{},"zig build conformance"," compares each decoded value with Pkl's own description of it. ",[63,364,365],{},"zig build fuzz"," runs on every push, and longer every week.",[59,368,369,372],{},[63,370,371],{},"bench\u002Fcompare.sh"," runs zig-pkl and pkl-zig in the same job. On an Apple M5 with Pkl 0.32.2, zig-pkl decodes pkl-binary 2.75 times faster (geometric mean of three cases) with 86% to 99.6% fewer allocations, is 7.7% faster to start a server, evaluate, and shut down, and 18.9% faster per evaluation on a running evaluator.",[51,374,376],{"id":375},"documentation","Documentation",[56,378,379,382,396],{},[59,380,381],{},"Guides for installation, evaluation, projects, security, readers, external readers, logging, concurrency, errors, memory ownership, version compatibility, and migration from pkl-zig.",[59,383,384,385,388,389,392,393,34],{},"Ten runnable examples in ",[63,386,387],{},"examples\u002F",", run by ",[63,390,391],{},"zig build examples",", and a code generation consumer in ",[63,394,395],{},"examples\u002Fcodegen",[59,397,398,399,403,404,407,408,34],{},"The website at ",[22,400,401],{"href":401,"rel":402},"https:\u002F\u002Fguanchzhou.github.io\u002Fzig-pkl\u002F",[26],", built by ",[63,405,406],{},"zig build site",", with the API reference under ",[63,409,410],{},"\u002Fapi\u002F",{"title":412,"searchDepth":413,"depth":413,"links":414},"",2,[415,416,422],{"id":38,"depth":413,"text":42},{"id":45,"depth":413,"text":417,"children":418},"0.1.1 - 2026-10-25",[419,421],{"id":53,"depth":420,"text":54},3,{"id":76,"depth":420,"text":77},{"id":124,"depth":413,"text":423,"children":424},"0.1.0 - 2026-10-24",[425,426,427,428],{"id":134,"depth":420,"text":135},{"id":299,"depth":420,"text":300},{"id":350,"depth":420,"text":351},{"id":375,"depth":420,"text":376},"md",{},true,"\u002Fchangelog",{"title":6,"description":17},"CHANGELOG","o6KVcmo1tGT1x5tXJ2cKbM1cTT981ovTh1dM5YAZ2ww","CHANGELOG.md",[438,442,446,450,453,457,461,465,469,473,477,481,485],{"title":439,"path":440,"stem":441},"Version compatibility","\u002Fguides\u002Fcompatibility","guides\u002Fcompatibility",{"title":443,"path":444,"stem":445},"Concurrency","\u002Fguides\u002Fconcurrency","guides\u002Fconcurrency",{"title":447,"path":448,"stem":449},"Errors","\u002Fguides\u002Ferrors","guides\u002Ferrors",{"title":135,"path":451,"stem":452},"\u002Fguides\u002Fevaluation","guides\u002Fevaluation",{"title":454,"path":455,"stem":456},"External readers","\u002Fguides\u002Fexternal-readers","guides\u002Fexternal-readers",{"title":458,"path":459,"stem":460},"Installation","\u002Fguides\u002Finstallation","guides\u002Finstallation",{"title":462,"path":463,"stem":464},"Logging","\u002Fguides\u002Flogging","guides\u002Flogging",{"title":466,"path":467,"stem":468},"Migrating from pkl-zig","\u002Fguides\u002Fmigration","guides\u002Fmigration",{"title":470,"path":471,"stem":472},"Ownership","\u002Fguides\u002Fownership","guides\u002Fownership",{"title":474,"path":475,"stem":476},"Projects","\u002Fguides\u002Fprojects","guides\u002Fprojects",{"title":478,"path":479,"stem":480},"Quick start","\u002Fguides\u002Fquickstart","guides\u002Fquickstart",{"title":482,"path":483,"stem":484},"Readers","\u002Fguides\u002Freaders","guides\u002Freaders",{"title":54,"path":486,"stem":487},"\u002Fguides\u002Fsecurity","guides\u002Fsecurity",1792908673088]