[{"data":1,"prerenderedAt":525},["ShallowReactive",2],{"navigation_docs":3,"-getting-started-build-from-source":172,"-getting-started-build-from-source-surround":520},[4,30,100,134],{"title":5,"icon":6,"path":7,"stem":8,"children":9,"page":29},"Getting started","i-lucide-rocket","\u002Fgetting-started","1.getting-started",[10,14,18,21,25],{"title":11,"path":12,"stem":13},"Introduction","\u002Fgetting-started\u002Fintroduction","1.getting-started\u002F1.introduction",{"title":15,"path":16,"stem":17},"Installation","\u002Fgetting-started\u002Finstallation","1.getting-started\u002F2.installation",{"title":5,"path":19,"stem":20},"\u002Fgetting-started\u002Fquick-start","1.getting-started\u002F3.quick-start",{"title":22,"path":23,"stem":24},"Build from source","\u002Fgetting-started\u002Fbuild-from-source","1.getting-started\u002F4.build-from-source",{"title":26,"path":27,"stem":28},"Troubleshooting","\u002Fgetting-started\u002Ftroubleshooting","1.getting-started\u002F5.troubleshooting",false,{"title":31,"icon":32,"path":33,"stem":34,"children":35,"page":29},"Guide","i-lucide-book-open","\u002Fguide","2.guide",[36,40,44,48,52,56,60,64,68,72,76,80,84,88,92,96],{"title":37,"path":38,"stem":39},"Interface","\u002Fguide\u002Finterface","2.guide\u002F01.interface",{"title":41,"path":42,"stem":43},"Workspace","\u002Fguide\u002Fworkspace","2.guide\u002F02.workspace",{"title":45,"path":46,"stem":47},"Collections","\u002Fguide\u002Fcollections","2.guide\u002F03.collections",{"title":49,"path":50,"stem":51},"HTTP requests","\u002Fguide\u002Fhttp-requests","2.guide\u002F04.http-requests",{"title":53,"path":54,"stem":55},"Variables","\u002Fguide\u002Fvariables","2.guide\u002F05.variables",{"title":57,"path":58,"stem":59},"Authorization","\u002Fguide\u002Fauthorization","2.guide\u002F06.authorization",{"title":61,"path":62,"stem":63},"Scripts and tests","\u002Fguide\u002Fscripts-and-tests","2.guide\u002F07.scripts-and-tests",{"title":65,"path":66,"stem":67},"Collection runner","\u002Fguide\u002Fcollection-runner","2.guide\u002F08.collection-runner",{"title":69,"path":70,"stem":71},"Import and export","\u002Fguide\u002Fimport-export","2.guide\u002F09.import-export",{"title":73,"path":74,"stem":75},"Code snippets","\u002Fguide\u002Fcode-snippets","2.guide\u002F10.code-snippets",{"title":77,"path":78,"stem":79},"gRPC","\u002Fguide\u002Fgrpc","2.guide\u002F11.grpc",{"title":81,"path":82,"stem":83},"WebSocket","\u002Fguide\u002Fwebsocket","2.guide\u002F12.websocket",{"title":85,"path":86,"stem":87},"Cookies, proxy and certificates","\u002Fguide\u002Fcookies-proxy-certificates","2.guide\u002F13.cookies-proxy-certificates",{"title":89,"path":90,"stem":91},"Settings","\u002Fguide\u002Fsettings","2.guide\u002F14.settings",{"title":93,"path":94,"stem":95},"Keyboard shortcuts","\u002Fguide\u002Fkeyboard-shortcuts","2.guide\u002F15.keyboard-shortcuts",{"title":97,"path":98,"stem":99},"Privacy and security","\u002Fguide\u002Fprivacy-and-security","2.guide\u002F16.privacy-and-security",{"title":101,"icon":102,"path":103,"stem":104,"children":105,"page":29},"Reference","i-lucide-square-terminal","\u002Freference","3.reference",[106,110,114,118,122,126,130],{"title":107,"path":108,"stem":109},"Command line","\u002Freference\u002Fcli","3.reference\u002F1.cli",{"title":111,"path":112,"stem":113},"Automation tools","\u002Freference\u002Fautomation-tools","3.reference\u002F2.automation-tools",{"title":115,"path":116,"stem":117},"Scripting API","\u002Freference\u002Fscripting-api","3.reference\u002F3.scripting-api",{"title":119,"path":120,"stem":121},"Dynamic variables","\u002Freference\u002Fdynamic-variables","3.reference\u002F4.dynamic-variables",{"title":123,"path":124,"stem":125},"UI control channel","\u002Freference\u002Fui-control-channel","3.reference\u002F5.ui-control-channel",{"title":127,"path":128,"stem":129},"Workspace format","\u002Freference\u002Fworkspace-format","3.reference\u002F6.workspace-format",{"title":131,"path":132,"stem":133},"Feature status","\u002Freference\u002Ffeature-status","3.reference\u002F7.feature-status",{"title":135,"icon":136,"path":137,"stem":138,"children":139,"page":29},"Contributing","i-lucide-git-pull-request","\u002Fcontributing","4.contributing",[140,144,148,152,156,160,164,168],{"title":141,"path":142,"stem":143},"Contributing overview","\u002Fcontributing\u002Foverview","4.contributing\u002F1.overview",{"title":145,"path":146,"stem":147},"Development","\u002Fcontributing\u002Fdevelopment","4.contributing\u002F2.development",{"title":149,"path":150,"stem":151},"Architecture","\u002Fcontributing\u002Farchitecture","4.contributing\u002F3.architecture",{"title":153,"path":154,"stem":155},"Known gaps","\u002Fcontributing\u002Fgaps","4.contributing\u002F4.gaps",{"title":157,"path":158,"stem":159},"Adding a feature","\u002Fcontributing\u002Fadding-a-feature","4.contributing\u002F5.adding-a-feature",{"title":161,"path":162,"stem":163},"Assets and clean-room","\u002Fcontributing\u002Fassets-and-clean-room","4.contributing\u002F6.assets-and-clean-room",{"title":165,"path":166,"stem":167},"Releasing","\u002Fcontributing\u002Freleasing","4.contributing\u002F7.releasing",{"title":169,"path":170,"stem":171},"Writing the documentation","\u002Fcontributing\u002Fdocumentation","4.contributing\u002F8.documentation",{"id":173,"title":22,"body":174,"description":513,"extension":514,"links":515,"meta":516,"navigation":517,"path":23,"seo":518,"stem":24,"__hash__":519},"docs\u002F1.getting-started\u002F4.build-from-source.md",{"type":175,"value":176,"toc":507},"minimark",[177,182,212,216,275,279,288,299,303,475,479,503],[178,179,181],"h2",{"id":180},"toolchain","Toolchain",[183,184,185,206,209],"ul",{},[186,187,188,189,196,197,201,202,205],"li",{},"Stable Rust 1.95 or newer, installed with ",[190,191,195],"a",{"href":192,"rel":193},"https:\u002F\u002Frustup.rs",[194],"nofollow","rustup",". The minimum is the ",[198,199,200],"code",{},"rust-version"," in the root ",[198,203,204],{},"Cargo.toml",". It is what egui 0.36 needs. CI builds with the stable channel.",[186,207,208],{},"Edition 2024.",[186,210,211],{},"You don't need Node, a web or WebAssembly target, or a font download. The only embedded font is Poppins, plus egui's default fonts.",[178,213,215],{"id":214},"build-and-run","Build and run",[217,218,219,251],"ol",{},[186,220,221,222],{},"Clone the repo and build:",[223,224,229],"pre",{"className":225,"code":226,"language":227,"meta":228,"style":228},"language-sh shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","git clone https:\u002F\u002Fgithub.com\u002Fzuramai\u002Fpostguy.git\ncd postguy\ncargo build --release -p postguy -p postguy-cli\n","sh","",[198,230,231,239,245],{"__ignoreMap":228},[232,233,236],"span",{"class":234,"line":235},"line",1,[232,237,238],{},"git clone https:\u002F\u002Fgithub.com\u002Fzuramai\u002Fpostguy.git\n",[232,240,242],{"class":234,"line":241},2,[232,243,244],{},"cd postguy\n",[232,246,248],{"class":234,"line":247},3,[232,249,250],{},"cargo build --release -p postguy -p postguy-cli\n",[186,252,253,254],{},"Find the binaries:",[183,255,256,262,268],{},[186,257,258,261],{},[198,259,260],{},"target\u002Frelease\u002Fpostguy",": the desktop app.",[186,263,264,267],{},[198,265,266],{},"target\u002Frelease\u002Fpostguy-cli",": the headless CLI.",[186,269,270,271,274],{},"On Windows they end in ",[198,272,273],{},".exe",".",[276,277,278],"p",{},"To run the app from the source tree with a workspace of your choice:",[223,280,282],{"className":225,"code":281,"language":227,"meta":228,"style":228},"cargo run -p postguy -- --workspace ~\u002Fpostguy-workspace\n",[198,283,284],{"__ignoreMap":228},[232,285,286],{"class":234,"line":235},[232,287,281],{},[276,289,290,291,294,295,298],{},"For day-to-day work, ",[198,292,293],{},"cargo build -p postguy"," and ",[198,296,297],{},"cargo build -p postguy-cli"," build the debug versions.",[178,300,302],{"id":301},"prerequisites-per-os","Prerequisites per OS",[304,305,306,353,376,429],"tabs",{},[307,308,310,313,333,344,350],"tabs-item",{"label":309},"Linux",[276,311,312],{},"You need the window system and graphics libraries to build. CI installs these Debian\u002FUbuntu packages:",[223,314,316],{"className":225,"code":315,"language":227,"meta":228,"style":228},"sudo apt-get install -y --no-install-recommends \\\n  libxkbcommon-dev libwayland-dev libx11-dev libxrandr-dev libxi-dev \\\n  libgl1-mesa-dev\n",[198,317,318,323,328],{"__ignoreMap":228},[232,319,320],{"class":234,"line":235},[232,321,322],{},"sudo apt-get install -y --no-install-recommends \\\n",[232,324,325],{"class":234,"line":241},[232,326,327],{},"  libxkbcommon-dev libwayland-dev libx11-dev libxrandr-dev libxi-dev \\\n",[232,329,330],{"class":234,"line":247},[232,331,332],{},"  libgl1-mesa-dev\n",[276,334,335,336,339,340,343],{},"CI also installs ",[198,337,338],{},"libgtk-3-dev",", but it is optional. File dialogs use ",[198,341,342],{},"xdg-desktop-portal",", not GTK, so you don't need GTK to build or run Postguy.",[276,345,346,347,349],{},"At run time, Postguy loads X11 or Wayland, xkbcommon and EGL\u002FGL dynamically. ",[198,348,342],{}," provides the file dialogs.",[276,351,352],{},"On other distributions, install the equivalent development packages for xkbcommon, Wayland, X11 (including Xrandr and Xi) and Mesa GL.",[307,354,356,359,368],{"label":355},"macOS",[276,357,358],{},"Install the Xcode Command Line Tools:",[223,360,362],{"className":225,"code":361,"language":227,"meta":228,"style":228},"xcode-select --install\n",[198,363,364],{"__ignoreMap":228},[232,365,366],{"class":234,"line":235},[232,367,361],{},[183,369,370,373],{},[186,371,372],{},"The release build targets macOS 11.0 or newer.",[186,374,375],{},"Only macOS uses a native menu bar.",[307,377,379,382,385,402],{"label":378},"Windows",[276,380,381],{},"Install the MSVC build tools: Visual Studio Build Tools with the \"Desktop development with C++\" workload.",[276,383,384],{},"Supported targets:",[183,386,387,392,397],{},[186,388,389],{},[198,390,391],{},"x86_64-pc-windows-msvc",[186,393,394],{},[198,395,396],{},"i686-pc-windows-msvc",[186,398,399],{},[198,400,401],{},"aarch64-pc-windows-msvc",[276,403,404,405,408,409,412,413,416,417,420,421,424,425,428],{},"The 32-bit (",[198,406,407],{},"x86",") target also needs libclang. The script engine (",[198,410,411],{},"rquickjs",") has no pre-generated bindings for it, so ",[198,414,415],{},"bindgen"," generates them (",[198,418,419],{},"crates\u002Fscript\u002FCargo.toml","). Install LLVM. If the build can't find it, set ",[198,422,423],{},"LIBCLANG_PATH"," to its ",[198,426,427],{},"bin"," folder.",[307,430,432,435,444],{"label":431},"FreeBSD",[276,433,434],{},"FreeBSD is built from source only. The repository doesn't name FreeBSD packages, so treat this as guidance. It is community-tested. Open an issue if a package name differs.",[223,436,438],{"className":225,"code":437,"language":227,"meta":228,"style":228},"sudo pkg install rust llvm\n",[198,439,440],{"__ignoreMap":228},[232,441,442],{"class":234,"line":235},[232,443,437],{},[183,445,446,459,462,469],{},[186,447,448,451,452,416,454,456,457,274],{},[198,449,450],{},"llvm"," provides libclang. The script engine has no pre-generated bindings on FreeBSD, so ",[198,453,415],{},[198,455,419],{},"). If the build can't find libclang, set ",[198,458,423],{},[186,460,461],{},"Install the X11, Wayland, Mesa and xkbcommon libraries and development headers for your desktop. It is the same set as on Linux.",[186,463,464,465,468],{},"If the ",[198,466,467],{},"rust"," package is older than 1.95, install the toolchain with rustup instead.",[186,470,471,472,474],{},"File dialogs use ",[198,473,342],{},", as on Linux.",[178,476,478],{"id":477},"everything-else","Everything else",[183,480,481,493,498],{},[186,482,483,486,487,490,491,274],{},[198,484,485],{},"cargo xtask ci"," runs the quality gates: format, Clippy with warnings denied, tests, then the layer, asset, parity and ",[198,488,489],{},"deny"," (licence) checks. See ",[190,492,145],{"href":146},[186,494,495,496,274],{},"The packaging scripts (AppImage, deb, rpm, MSI, dmg, Flatpak) are in ",[190,497,165],{"href":166},[186,499,500,501,274],{},"The crate layout is in ",[190,502,149],{"href":150},[504,505,506],"style",{},"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":228,"searchDepth":241,"depth":241,"links":508},[509,510,511,512],{"id":180,"depth":241,"text":181},{"id":214,"depth":241,"text":215},{"id":301,"depth":241,"text":302},{"id":477,"depth":241,"text":478},"Build the Postguy desktop app and the postguy-cli binary with Cargo on macOS, Windows, Linux and FreeBSD.","md",null,{},true,{"title":22,"description":513},"VsRwuuI8cuv9CloaK4_3OQzL8CIRsrF9Kuf4N2RCNpY",[521,523],{"title":5,"path":19,"stem":20,"description":522,"children":-1},"A guided tour from first launch to a headless collection run. Send a request, use an environment, add tests and run them.",{"title":26,"path":27,"stem":28,"description":524,"children":-1},"Fixes for OS warnings on first launch, a locked or corrupt workspace, TLS and proxy errors, missing file dialogs, and where to look for diagnostics.",1793179613009]