[{"data":1,"prerenderedAt":377},["ShallowReactive",2],{"navigation":3,"\u002Fgetting-started\u002Fdevelopment":116,"\u002Fgetting-started\u002Fdevelopment-surround":372},[4,27,53,74,108,112],{"title":5,"icon":6,"path":7,"stem":8,"children":9,"page":26},"Getting started","i-lucide-rocket","\u002Fgetting-started","1.getting-started",[10,14,18,22],{"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":19,"path":20,"stem":21},"Quick start","\u002Fgetting-started\u002Fquick-start","1.getting-started\u002F3.quick-start",{"title":23,"path":24,"stem":25},"Example app and development","\u002Fgetting-started\u002Fdevelopment","1.getting-started\u002F4.development",false,{"title":28,"icon":29,"path":30,"stem":31,"children":32,"page":26},"Guides","i-lucide-book-open","\u002Fguides","2.guides",[33,37,41,45,49],{"title":34,"path":35,"stem":36},"JavaScript API","\u002Fguides\u002Fjavascript-api","2.guides\u002F1.javascript-api",{"title":38,"path":39,"stem":40},"AT commands, exchange and CMUX","\u002Fguides\u002Fat-commands","2.guides\u002F2.at-commands",{"title":42,"path":43,"stem":44},"Rust","\u002Fguides\u002Frust","2.guides\u002F3.rust",{"title":46,"path":47,"stem":48},"Permissions","\u002Fguides\u002Fpermissions","2.guides\u002F4.permissions",{"title":50,"path":51,"stem":52},"Parsers","\u002Fguides\u002Fparsers","2.guides\u002F5.parsers",{"title":54,"icon":55,"path":56,"stem":57,"children":58,"page":26},"API reference","i-lucide-file-code","\u002Freference","3.reference",[59,63,67,71],{"title":60,"path":61,"stem":62},"SerialPort","\u002Freference\u002Fserial-port","3.reference\u002F1.serial-port",{"title":64,"path":65,"stem":66},"Types","\u002Freference\u002Ftypes","3.reference\u002F2.types",{"title":68,"path":69,"stem":70},"Tauri commands","\u002Freference\u002Fcommands","3.reference\u002F3.commands",{"title":46,"path":72,"stem":73},"\u002Freference\u002Fpermissions","3.reference\u002F4.permissions",{"title":75,"icon":76,"path":77,"stem":78,"children":79,"page":26},"Platforms","i-lucide-monitor-smartphone","\u002Fplatforms","4.platforms",[80,84,88,92,96,100,104],{"title":81,"path":82,"stem":83},"Overview","\u002Fplatforms\u002Foverview","4.platforms\u002F1.overview",{"title":85,"path":86,"stem":87},"Desktop","\u002Fplatforms\u002Fdesktop","4.platforms\u002F2.desktop",{"title":89,"path":90,"stem":91},"Android (USB)","\u002Fplatforms\u002Fandroid","4.platforms\u002F3.android",{"title":93,"path":94,"stem":95},"iOS","\u002Fplatforms\u002Fios","4.platforms\u002F4.ios",{"title":97,"path":98,"stem":99},"Serial over TCP","\u002Fplatforms\u002Ftcp","4.platforms\u002F5.tcp",{"title":101,"path":102,"stem":103},"Bluetooth LE (BLE)","\u002Fplatforms\u002Fble","4.platforms\u002F6.ble",{"title":105,"path":106,"stem":107},"DTR \u002F RTS on open","\u002Fplatforms\u002Fdtr-rts","4.platforms\u002F7.dtr-rts",{"title":109,"path":110,"stem":111},"Migration guide","\u002Fmigration","5.migration",{"title":113,"path":114,"stem":115},"Changelog","\u002Fchangelog","9.changelog",{"id":117,"title":23,"body":118,"description":365,"extension":366,"generated":26,"links":367,"meta":368,"navigation":369,"path":24,"seo":370,"stem":25,"__hash__":371},"docs\u002F1.getting-started\u002F4.development.md",{"type":119,"value":120,"toc":360},"minimark",[121,126,140,184,188,304,323,327,341,356],[122,123,125],"h2",{"id":124},"example-app","Example app",[127,128,129,139],"p",{},[130,131,135],"a",{"href":132,"rel":133},"https:\u002F\u002Fgithub.com\u002Fs00d\u002Ftauri-plugin-serialplugin\u002Ftree\u002Fmain\u002Fexamples\u002Fserialport-test",[134],"nofollow",[136,137,138],"code",{},"examples\u002Fserialport-test","\nis a terminal with port picker, settings, AT console and hotplug, for desktop,\nAndroid and iOS:",[141,142,147],"pre",{"className":143,"code":144,"language":145,"meta":146,"style":146},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","pnpm install && pnpm build\npnpm playground            # desktop\n","bash","",[136,148,149,172],{"__ignoreMap":146},[150,151,154,158,162,166,169],"span",{"class":152,"line":153},"line",1,[150,155,157],{"class":156},"sBMFI","pnpm",[150,159,161],{"class":160},"sfazB"," install",[150,163,165],{"class":164},"sMK4o"," &&",[150,167,168],{"class":156}," pnpm",[150,170,171],{"class":160}," build\n",[150,173,175,177,180],{"class":152,"line":174},2,[150,176,157],{"class":156},[150,178,179],{"class":160}," playground",[150,181,183],{"class":182},"sHwdD","            # desktop\n",[122,185,187],{"id":186},"development","Development",[141,189,191],{"className":143,"code":190,"language":145,"meta":146,"style":146},"cargo fmt --all --check && cargo clippy --workspace --all-targets -- -D warnings\ncargo test --workspace\ncargo test -p android-usb-serial --features fake-transport,serialport-compat\npnpm typecheck && pnpm test && pnpm build   # build also runs publint, attw and an ESM\u002FCJS check\ncd android && .\u002Fgradlew lintDebug test\n",[136,192,193,230,240,259,283],{"__ignoreMap":146},[150,194,195,198,201,204,207,209,212,215,218,221,224,227],{"class":152,"line":153},[150,196,197],{"class":156},"cargo",[150,199,200],{"class":160}," fmt",[150,202,203],{"class":160}," --all",[150,205,206],{"class":160}," --check",[150,208,165],{"class":164},[150,210,211],{"class":156}," cargo",[150,213,214],{"class":160}," clippy",[150,216,217],{"class":160}," --workspace",[150,219,220],{"class":160}," --all-targets",[150,222,223],{"class":160}," --",[150,225,226],{"class":160}," -D",[150,228,229],{"class":160}," warnings\n",[150,231,232,234,237],{"class":152,"line":174},[150,233,197],{"class":156},[150,235,236],{"class":160}," test",[150,238,239],{"class":160}," --workspace\n",[150,241,243,245,247,250,253,256],{"class":152,"line":242},3,[150,244,197],{"class":156},[150,246,236],{"class":160},[150,248,249],{"class":160}," -p",[150,251,252],{"class":160}," android-usb-serial",[150,254,255],{"class":160}," --features",[150,257,258],{"class":160}," fake-transport,serialport-compat\n",[150,260,262,264,267,269,271,273,275,277,280],{"class":152,"line":261},4,[150,263,157],{"class":156},[150,265,266],{"class":160}," typecheck",[150,268,165],{"class":164},[150,270,168],{"class":156},[150,272,236],{"class":160},[150,274,165],{"class":164},[150,276,168],{"class":156},[150,278,279],{"class":160}," build",[150,281,282],{"class":182},"   # build also runs publint, attw and an ESM\u002FCJS check\n",[150,284,286,290,293,295,298,301],{"class":152,"line":285},5,[150,287,289],{"class":288},"s2Zo4","cd",[150,291,292],{"class":160}," android",[150,294,165],{"class":164},[150,296,297],{"class":156}," .\u002Fgradlew",[150,299,300],{"class":160}," lintDebug",[150,302,303],{"class":160}," test\n",[127,305,306,307,310,311,316,317,322],{},"Tests run without hardware: PTY pairs, a local TCP bridge, a fake 27.010 modem,\ncommands through the Tauri IPC path, and a fake USB transport for the Android\ndrivers. For manual testing, ",[136,308,309],{},"socat -d -d pty,raw,echo=0 pty,raw,echo=0"," gives a\nvirtual serial pair. See\n",[130,312,315],{"href":313,"rel":314},"https:\u002F\u002Fgithub.com\u002Fs00d\u002Ftauri-plugin-serialplugin\u002Fblob\u002Fmain\u002FCONTRIBUTING.md",[134],"CONTRIBUTING.md","\nand ",[130,318,321],{"href":319,"rel":320},"https:\u002F\u002Fgithub.com\u002Fs00d\u002Ftauri-plugin-serialplugin\u002Fblob\u002Fmain\u002FPUBLISHING.md",[134],"PUBLISHING.md",".",[122,324,326],{"id":325},"security-support-license","Security · Support · License",[127,328,329,330,335,336,322],{},"Report vulnerabilities privately as described in\n",[130,331,334],{"href":332,"rel":333},"https:\u002F\u002Fgithub.com\u002Fs00d\u002Ftauri-plugin-serialplugin\u002Fblob\u002Fmain\u002FSECURITY.md",[134],"SECURITY.md",".\nIf the plugin helps you, you can support it via\n",[130,337,340],{"href":338,"rel":339},"https:\u002F\u002Fwww.donationalerts.com\u002Fr\u002Fs00d88",[134],"DonationAlerts",[127,342,343,344,349,350,355],{},"Dual-licensed under MIT or Apache-2.0\n(",[130,345,348],{"href":346,"rel":347},"https:\u002F\u002Fgithub.com\u002Fs00d\u002Ftauri-plugin-serialplugin\u002Fblob\u002Fmain\u002FLICENSE-MIT",[134],"LICENSE-MIT",",\n",[130,351,354],{"href":352,"rel":353},"https:\u002F\u002Fgithub.com\u002Fs00d\u002Ftauri-plugin-serialplugin\u002Fblob\u002Fmain\u002FLICENSE-APACHE",[134],"LICENSE-APACHE",").",[357,358,359],"style",{},"html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .sHwdD, html code.shiki .sHwdD{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#546E7A;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic}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);}html pre.shiki code .s2Zo4, html code.shiki .s2Zo4{--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF}",{"title":146,"searchDepth":174,"depth":242,"links":361},[362,363,364],{"id":124,"depth":174,"text":125},{"id":186,"depth":174,"text":187},{"id":325,"depth":174,"text":326},"The example terminal app, running the tests, security and license.","md",null,{},true,{"title":23,"description":365},"aaZDWvFZSLysK5DDAGkXEy7c7Q0BQeU0OLlDqxLC6jc",[373,375],{"title":19,"path":20,"stem":21,"description":374,"children":-1},"List ports, open one, stream data, talk to a modem and survive unplugs.",{"title":34,"path":35,"stem":36,"description":376,"children":-1},"Every method, option, event and error of tauri-plugin-serialplugin-api.",1794158001815]