[{"data":1,"prerenderedAt":931},["ShallowReactive",2],{"navigation_docs":3,"-rpc-platforms-uwebsockets":399},[4,162,346],{"title":5,"icon":6,"path":7,"stem":8,"children":9,"page":24},"RPC","icon-park-outline:lightning","\u002Frpc","01.rpc",[10,25,63,77,102,136],{"title":11,"icon":12,"redirect":7,"path":13,"stem":14,"children":15,"page":24},"Introduction","icon-park-outline:home","\u002Frpc\u002Fintroduction","01.rpc\u002F01.introduction",[16,20],{"title":17,"path":18,"stem":19},"Quick Start","\u002Frpc\u002Fintroduction\u002Fquick-start","01.rpc\u002F01.introduction\u002F02.quick-start",{"title":21,"path":22,"stem":23},"Manual Install","\u002Frpc\u002Fintroduction\u002Fmanual-install","01.rpc\u002F01.introduction\u002F03.manual-install",false,{"title":26,"icon":27,"path":28,"stem":29,"children":30,"page":24},"Server","icon-park-outline:server","\u002Frpc\u002Fserver","01.rpc\u002F02.server",[31,35,39,43,47,51,55,59],{"title":32,"path":33,"stem":34},"Routes","\u002Frpc\u002Fserver\u002Froutes","01.rpc\u002F02.server\u002F01.routes",{"title":36,"path":37,"stem":38},"Middleware","\u002Frpc\u002Fserver\u002Fmiddleware","01.rpc\u002F02.server\u002F02.middleware",{"title":40,"path":41,"stem":42},"Call Context","\u002Frpc\u002Fserver\u002Fcall-context","01.rpc\u002F02.server\u002F03.call-context",{"title":44,"path":45,"stem":46},"Headers","\u002Frpc\u002Fserver\u002Fheaders","01.rpc\u002F02.server\u002F04.headers",{"title":48,"path":49,"stem":50},"Error Handling","\u002Frpc\u002Fserver\u002Ferror-handling","01.rpc\u002F02.server\u002F05.error-handling",{"title":52,"path":53,"stem":54},"Validation","\u002Frpc\u002Fserver\u002Fvalidation","01.rpc\u002F02.server\u002F06.validation",{"title":56,"path":57,"stem":58},"JSON Round Trip","\u002Frpc\u002Fserver\u002Fjson-round-trip","01.rpc\u002F02.server\u002F07.json-round-trip",{"title":60,"path":61,"stem":62},"Drizzle Tables","\u002Frpc\u002Fserver\u002Fdrizzle-tables","01.rpc\u002F02.server\u002F08.drizzle-tables",{"title":64,"icon":65,"path":66,"stem":67,"children":68,"page":24},"Middlewares","icon-park-outline:link-one","\u002Frpc\u002Fmiddlewares","01.rpc\u002F03.middlewares",[69,73],{"title":70,"path":71,"stem":72},"fetchMetadata","\u002Frpc\u002Fmiddlewares\u002Ffetch-metadata","01.rpc\u002F03.middlewares\u002F01.fetch-metadata",{"title":74,"path":75,"stem":76},"syncRoutes","\u002Frpc\u002Fmiddlewares\u002Fsync-routes","01.rpc\u002F03.middlewares\u002F02.sync-routes",{"title":78,"icon":79,"path":80,"stem":81,"children":82,"page":24},"Client","icon-park-outline:computer","\u002Frpc\u002Fclient","01.rpc\u002F04.client",[83,87,91,94,98],{"title":84,"path":85,"stem":86},"Client Overview","\u002Frpc\u002Fclient\u002Fclient-overview","01.rpc\u002F04.client\u002F00.client-overview",{"title":88,"path":89,"stem":90},"Client Middleware","\u002Frpc\u002Fclient\u002Fclient-middleware","01.rpc\u002F04.client\u002F01.client-middleware",{"title":48,"path":92,"stem":93},"\u002Frpc\u002Fclient\u002Ferror-handling","01.rpc\u002F04.client\u002F02.error-handling",{"title":95,"path":96,"stem":97},"Batch Requests","\u002Frpc\u002Fclient\u002Fbatch","01.rpc\u002F04.client\u002F03.batch",{"title":99,"path":100,"stem":101},"Cancellation & Timeouts","\u002Frpc\u002Fclient\u002Fcancellation-timeouts","01.rpc\u002F04.client\u002F04.cancellation-timeouts",{"title":103,"redirect":104,"icon":105,"path":106,"stem":107,"children":108,"page":24},"Platforms","\u002Frpc\u002Fplatforms\u002Fnode-js","icon-park-outline:play","\u002Frpc\u002Fplatforms","01.rpc\u002F06.platforms",[109,112,116,120,124,128,132],{"title":110,"path":104,"stem":111},"Node.js","01.rpc\u002F06.platforms\u002F01.node-js",{"title":113,"path":114,"stem":115},"Bun","\u002Frpc\u002Fplatforms\u002Fbun","01.rpc\u002F06.platforms\u002F02.bun",{"title":117,"path":118,"stem":119},"AWS Lambda","\u002Frpc\u002Fplatforms\u002Faws-lambda","01.rpc\u002F06.platforms\u002F03.aws-lambda",{"title":121,"path":122,"stem":123},"Google Cloud Functions","\u002Frpc\u002Fplatforms\u002Fgoogle-cloud-functions","01.rpc\u002F06.platforms\u002F04.google-cloud-functions",{"title":125,"path":126,"stem":127},"Cloudflare Workers","\u002Frpc\u002Fplatforms\u002Fcloudflare","01.rpc\u002F06.platforms\u002F05.cloudflare",{"title":129,"path":130,"stem":131},"Vercel","\u002Frpc\u002Fplatforms\u002Fvercel","01.rpc\u002F06.platforms\u002F06.vercel",{"title":133,"path":134,"stem":135},"uWebSockets.js","\u002Frpc\u002Fplatforms\u002Fuwebsockets","01.rpc\u002F06.platforms\u002F07.uwebsockets",{"title":137,"icon":138,"path":139,"stem":140,"children":141,"page":24},"Devtools","icon-park-outline:tool","\u002Frpc\u002Fdevtools","01.rpc\u002F07.devtools",[142,146,150,154,158],{"title":143,"path":144,"stem":145},"Linter","\u002Frpc\u002Fdevtools\u002Flinter","01.rpc\u002F07.devtools\u002F01.linter",{"title":147,"path":148,"stem":149},"Vite","\u002Frpc\u002Fdevtools\u002Fvite","01.rpc\u002F07.devtools\u002F02.vite",{"title":151,"path":152,"stem":153},"Next.js","\u002Frpc\u002Fdevtools\u002Fnextjs","01.rpc\u002F07.devtools\u002F03.nextjs",{"title":155,"path":156,"stem":157},"CLI","\u002Frpc\u002Fdevtools\u002Fcli","01.rpc\u002F07.devtools\u002F04.cli",{"title":159,"path":160,"stem":161},"API Types","\u002Frpc\u002Fdevtools\u002Fapi-types","01.rpc\u002F07.devtools\u002F05.api-types",{"title":163,"icon":164,"path":165,"stem":166,"children":167,"page":24},"RunTypes","i-lucide-braces","\u002Fruntypes","02.runtypes",[168,184,224,254,268,290,332],{"title":11,"icon":169,"redirect":165,"path":170,"stem":171,"children":172,"page":24},"i-lucide-rocket","\u002Fruntypes\u002Fintroduction","02.runtypes\u002F01.introduction",[173,177,180],{"title":174,"path":175,"stem":176},"Built on typescript-go","\u002Fruntypes\u002Fintroduction\u002Fbuilt-on-typescript-go","02.runtypes\u002F01.introduction\u002F02.built-on-typescript-go",{"title":17,"path":178,"stem":179},"\u002Fruntypes\u002Fintroduction\u002Fquick-start","02.runtypes\u002F01.introduction\u002F03.quick-start",{"title":181,"path":182,"stem":183},"Configuration","\u002Fruntypes\u002Fintroduction\u002Fconfiguration","02.runtypes\u002F01.introduction\u002F04.configuration",{"title":185,"icon":186,"redirect":187,"path":188,"stem":189,"children":190,"page":24},"Guide","i-lucide-book-open","\u002Fruntypes\u002Fguide\u002Ftype-builders","\u002Fruntypes\u002Fguide","02.runtypes\u002F02.guide",[191,194,198,201,204,208,212,216,220],{"title":192,"path":187,"stem":193},"Types vs Type Builders","02.runtypes\u002F02.guide\u002F01.type-builders",{"title":195,"path":196,"stem":197},"Reflection","\u002Fruntypes\u002Fguide\u002Freflection","02.runtypes\u002F02.guide\u002F02.reflection",{"title":52,"path":199,"stem":200},"\u002Fruntypes\u002Fguide\u002Fvalidation","02.runtypes\u002F02.guide\u002F03.validation",{"title":56,"path":202,"stem":203},"\u002Fruntypes\u002Fguide\u002Fjson-round-trip","02.runtypes\u002F02.guide\u002F04.json-round-trip",{"title":205,"path":206,"stem":207},"Data Mocking","\u002Fruntypes\u002Fguide\u002Fmocking","02.runtypes\u002F02.guide\u002F07.mocking",{"title":209,"path":210,"stem":211},"JSON Schemas","\u002Fruntypes\u002Fguide\u002Fjson-schemas","02.runtypes\u002F02.guide\u002F08.json-schemas",{"title":213,"path":214,"stem":215},"Pure Functions","\u002Fruntypes\u002Fguide\u002Fpure-functions","02.runtypes\u002F02.guide\u002F09.pure-functions",{"title":217,"path":218,"stem":219},"Compiler Markers","\u002Fruntypes\u002Fguide\u002Fcompiler-markers","02.runtypes\u002F02.guide\u002F10.compiler-markers",{"title":221,"path":222,"stem":223},"All Compiled Functions","\u002Fruntypes\u002Fguide\u002Fall-compiled-functions","02.runtypes\u002F02.guide\u002F11.all-compiled-functions",{"title":225,"icon":226,"redirect":227,"path":228,"stem":229,"children":230,"page":24},"Type Formats","i-lucide-shapes","\u002Fruntypes\u002Ftype-formats\u002Foverview","\u002Fruntypes\u002Ftype-formats","02.runtypes\u002F03.type-formats",[231,234,238,242,246,250],{"title":232,"path":227,"stem":233},"Overview","02.runtypes\u002F03.type-formats\u002F01.overview",{"title":235,"path":236,"stem":237},"String Formats","\u002Fruntypes\u002Ftype-formats\u002Fstring","02.runtypes\u002F03.type-formats\u002F02.string",{"title":239,"path":240,"stem":241},"Number Formats","\u002Fruntypes\u002Ftype-formats\u002Fnumber","02.runtypes\u002F03.type-formats\u002F03.number",{"title":243,"path":244,"stem":245},"BigInt Formats","\u002Fruntypes\u002Ftype-formats\u002Fbigint","02.runtypes\u002F03.type-formats\u002F04.bigint",{"title":247,"path":248,"stem":249},"Date and Time Formats","\u002Fruntypes\u002Ftype-formats\u002Fdate-time","02.runtypes\u002F03.type-formats\u002F05.date-time",{"title":251,"path":252,"stem":253},"Collection Formats","\u002Fruntypes\u002Ftype-formats\u002Fcollections","02.runtypes\u002F03.type-formats\u002F06.collections",{"title":255,"icon":256,"redirect":257,"path":258,"stem":259,"children":260,"page":24},"Tooling","i-lucide-wrench","\u002Fruntypes\u002Ftooling\u002Flinting","\u002Fruntypes\u002Ftooling","02.runtypes\u002F04.tooling",[261,264],{"title":262,"path":257,"stem":263},"Linting","02.runtypes\u002F04.tooling\u002F01.linting",{"title":265,"path":266,"stem":267},"Source Conversion","\u002Fruntypes\u002Ftooling\u002Fsource-conversion","02.runtypes\u002F04.tooling\u002F02.source-conversion",{"title":269,"icon":270,"redirect":271,"path":272,"stem":273,"children":274,"page":24},"AI Integration","i-lucide-sparkles","\u002Fruntypes\u002Fai-integration\u002Fworkflow-and-commands","\u002Fruntypes\u002Fai-integration","02.runtypes\u002F05.ai-integration",[275,278,282,286],{"title":276,"path":271,"stem":277},"AI Workflow","02.runtypes\u002F05.ai-integration\u002F01.workflow-and-commands",{"title":279,"path":280,"stem":281},"FriendlyText","\u002Fruntypes\u002Fai-integration\u002Ffriendly-text","02.runtypes\u002F05.ai-integration\u002F02.friendly-text",{"title":283,"path":284,"stem":285},"MockData","\u002Fruntypes\u002Fai-integration\u002Fmock-data","02.runtypes\u002F05.ai-integration\u002F03.mock-data",{"title":287,"path":288,"stem":289},"Translations (i18n)","\u002Fruntypes\u002Fai-integration\u002Fi18n","02.runtypes\u002F05.ai-integration\u002F04.i18n",{"title":291,"icon":292,"redirect":293,"path":294,"stem":295,"children":296,"page":24},"Drizzle ORM","i-lineicons-drizzle","\u002Fruntypes\u002Fdrizzle-orm\u002Fdrizzle-overview","\u002Fruntypes\u002Fdrizzle-orm","02.runtypes\u002F06.drizzle-orm",[297,300,304,308,312,316,320,324,328],{"title":298,"path":293,"stem":299},"Drizzle Overview","02.runtypes\u002F06.drizzle-orm\u002F00.drizzle-overview",{"title":301,"path":302,"stem":303},"Column Formats","\u002Fruntypes\u002Fdrizzle-orm\u002Fcolumn-formats","02.runtypes\u002F06.drizzle-orm\u002F01.column-formats",{"title":305,"path":306,"stem":307},"Views","\u002Fruntypes\u002Fdrizzle-orm\u002Fviews","02.runtypes\u002F06.drizzle-orm\u002F02.views",{"title":309,"path":310,"stem":311},"Indexes and Constraints","\u002Fruntypes\u002Fdrizzle-orm\u002Fconstraints","02.runtypes\u002F06.drizzle-orm\u002F03.constraints",{"title":313,"path":314,"stem":315},"Row Level Security","\u002Fruntypes\u002Fdrizzle-orm\u002Frow-level-security","02.runtypes\u002F06.drizzle-orm\u002F04.row-level-security",{"title":317,"path":318,"stem":319},"Relations","\u002Fruntypes\u002Fdrizzle-orm\u002Frelations","02.runtypes\u002F06.drizzle-orm\u002F05.relations",{"title":321,"path":322,"stem":323},"The Schema File","\u002Fruntypes\u002Fdrizzle-orm\u002Fschema-file","02.runtypes\u002F06.drizzle-orm\u002F06.schema-file",{"title":325,"path":326,"stem":327},"Migrate an Existing Schema","\u002Fruntypes\u002Fdrizzle-orm\u002Fmigrate-an-existing-schema","02.runtypes\u002F06.drizzle-orm\u002F07.migrate-an-existing-schema",{"title":329,"path":330,"stem":331},"Cloudflare D1 and Durable Objects","\u002Fruntypes\u002Fdrizzle-orm\u002Fcloudflare-storage","02.runtypes\u002F06.drizzle-orm\u002F08.cloudflare-storage",{"title":333,"icon":334,"redirect":335,"path":336,"stem":337,"children":338,"page":24},"Diagnostics","i-lucide-triangle-alert","\u002Fruntypes\u002Fdiagnostics\u002Ferror-levels","\u002Fruntypes\u002Fdiagnostics","02.runtypes\u002F08.diagnostics",[339,342],{"title":340,"path":335,"stem":341},"Error Levels","02.runtypes\u002F08.diagnostics\u002F01.error-levels",{"title":343,"path":344,"stem":345},"All Diagnostics","\u002Fruntypes\u002Fdiagnostics\u002Fall-diagnostics","02.runtypes\u002F08.diagnostics\u002F02.all-diagnostics",{"title":347,"icon":348,"path":349,"stem":350,"children":351,"page":24},"Benchmarks","i-lucide-gauge","\u002Fbenchmarks","03.benchmarks",[352,372],{"title":5,"icon":6,"redirect":353,"path":354,"stem":355,"children":356,"page":24},"\u002Fbenchmarks\u002Frpc\u002Fhello-world","\u002Fbenchmarks\u002Frpc","03.benchmarks\u002F02.rpc",[357,360,364,368],{"title":358,"path":353,"stem":359},"Hello World","03.benchmarks\u002F02.rpc\u002F01.hello-world",{"title":361,"path":362,"stem":363},"Light Validation","\u002Fbenchmarks\u002Frpc\u002Flight-validation","03.benchmarks\u002F02.rpc\u002F02.light-validation",{"title":365,"path":366,"stem":367},"Heavy Validation","\u002Fbenchmarks\u002Frpc\u002Fheavy-validation","03.benchmarks\u002F02.rpc\u002F03.heavy-validation",{"title":369,"path":370,"stem":371},"Payload Sizes","\u002Fbenchmarks\u002Frpc\u002Fpayload-sizes","03.benchmarks\u002F02.rpc\u002F04.payload-sizes",{"title":163,"icon":164,"redirect":373,"path":374,"stem":375,"children":376,"page":24},"\u002Fbenchmarks\u002Fruntypes\u002Fis-valid","\u002Fbenchmarks\u002Fruntypes","03.benchmarks\u002F03.runtypes",[377,380,384,388,392,395],{"title":378,"path":373,"stem":379},"Is Valid","03.benchmarks\u002F03.runtypes\u002F01.is-valid",{"title":381,"path":382,"stem":383},"Is Valid Formats","\u002Fbenchmarks\u002Fruntypes\u002Fis-valid-formats","03.benchmarks\u002F03.runtypes\u002F02.is-valid-formats",{"title":385,"path":386,"stem":387},"Get Errors","\u002Fbenchmarks\u002Fruntypes\u002Fget-errors","03.benchmarks\u002F03.runtypes\u002F03.get-errors",{"title":389,"path":390,"stem":391},"Get Errors Formats","\u002Fbenchmarks\u002Fruntypes\u002Fget-errors-formats","03.benchmarks\u002F03.runtypes\u002F04.get-errors-formats",{"title":56,"path":393,"stem":394},"\u002Fbenchmarks\u002Fruntypes\u002Fjson-round-trip","03.benchmarks\u002F03.runtypes\u002F05.json-round-trip",{"title":396,"path":397,"stem":398},"Type Checking","\u002Fbenchmarks\u002Fruntypes\u002Ftype-checking","03.benchmarks\u002F03.runtypes\u002F07.type-checking",{"id":400,"title":133,"body":401,"description":925,"extension":926,"links":927,"meta":928,"navigation":512,"path":134,"seo":929,"stem":135,"__hash__":930},"docs\u002F01.rpc\u002F06.platforms\u002F07.uwebsockets.md",{"type":402,"value":403},"minimark",[404,409,438,442,446,450,813,817,843,907,911,921],[405,406,408],"h2",{"id":407},"installing-the-adapter","Installing the Adapter",[410,411,416],"pre",{"className":412,"code":413,"language":414,"meta":415,"style":415},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","npm install @mionjs\u002Fplatform-uws @mionjs\u002Frouter\n","bash","",[417,418,419],"code",{"__ignoreMap":415},[420,421,424,428,432,435],"span",{"class":422,"line":423},"line",1,[420,425,427],{"class":426},"sBMFI","npm",[420,429,431],{"class":430},"sfazB"," install",[420,433,434],{"class":430}," @mionjs\u002Fplatform-uws",[420,436,437],{"class":430}," @mionjs\u002Frouter\n",[439,440,441],"p",{},"The native uWebSockets.js binaries install automatically, as per-platform packages npm picks for your machine, with no compiler or extra steps.",[443,444,445],"caution",{},"uWebSockets.js publishes prebuilt binaries only for even Node.js versions (currently 22, 24 and 26) on Linux (glibc), macOS and Windows x64. On other Node versions or on Alpine Linux the server will not start, so use the Node.js platform there.",[405,447,449],{"id":448},"starting-the-server","Starting the Server",[451,452,453,588],"code-group",{},[410,454,459],{"className":455,"code":456,"filename":457,"language":458,"meta":415,"style":415},"language-ts shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","import {startUwsServer} from '@mionjs\u002Fplatform-uws';\nimport '.\u002Fuws-routes.ts';\n\nconst server = await startUwsServer({port: 3000});\n\nconsole.log('Server running at http:\u002F\u002Flocalhost:3000');\n","src\u002Fserver.ts","ts",[417,460,461,493,507,514,558,563],{"__ignoreMap":415},[420,462,463,467,471,475,478,481,484,487,490],{"class":422,"line":423},[420,464,466],{"class":465},"s7zQu","import",[420,468,470],{"class":469},"sMK4o"," {",[420,472,474],{"class":473},"sTEyZ","startUwsServer",[420,476,477],{"class":469},"}",[420,479,480],{"class":465}," from",[420,482,483],{"class":469}," '",[420,485,486],{"class":430},"@mionjs\u002Fplatform-uws",[420,488,489],{"class":469},"'",[420,491,492],{"class":469},";\n",[420,494,496,498,500,503,505],{"class":422,"line":495},2,[420,497,466],{"class":465},[420,499,483],{"class":469},[420,501,502],{"class":430},".\u002Fuws-routes.ts",[420,504,489],{"class":469},[420,506,492],{"class":469},[420,508,510],{"class":422,"line":509},3,[420,511,513],{"emptyLinePlaceholder":512},true,"\n",[420,515,517,521,524,527,530,534,537,540,544,547,551,553,556],{"class":422,"line":516},4,[420,518,520],{"class":519},"spNyl","const",[420,522,523],{"class":473}," server ",[420,525,526],{"class":469},"=",[420,528,529],{"class":465}," await",[420,531,533],{"class":532},"s2Zo4"," startUwsServer",[420,535,536],{"class":473},"(",[420,538,539],{"class":469},"{",[420,541,543],{"class":542},"swJcz","port",[420,545,546],{"class":469},":",[420,548,550],{"class":549},"sbssI"," 3000",[420,552,477],{"class":469},[420,554,555],{"class":473},")",[420,557,492],{"class":469},[420,559,561],{"class":422,"line":560},5,[420,562,513],{"emptyLinePlaceholder":512},[420,564,566,569,572,575,577,579,582,584,586],{"class":422,"line":565},6,[420,567,568],{"class":473},"console",[420,570,571],{"class":469},".",[420,573,574],{"class":532},"log",[420,576,536],{"class":473},[420,578,489],{"class":469},[420,580,581],{"class":430},"Server running at http:\u002F\u002Flocalhost:3000",[420,583,489],{"class":469},[420,585,555],{"class":473},[420,587,492],{"class":469},[410,589,592],{"className":455,"code":590,"filename":591,"language":458,"meta":415,"style":415},"import {createMionRouter, Routes} from '@mionjs\u002Frouter';\n\nconst mion = createMionRouter();\n\nconst routes = {\n  sayHello: mion.route((ctx, name: string): string => {\n    return `Hello ${name}!`;\n  }),\n} satisfies Routes;\n\n\u002F\u002F the server entry only imports this file\nexport const myApi = mion.initRoutes(routes);\nexport type MyApi = typeof myApi;\n","src\u002Froutes.ts",[417,593,594,622,626,643,647,659,702,730,741,753,758,765,791],{"__ignoreMap":415},[420,595,596,598,600,603,606,609,611,613,615,618,620],{"class":422,"line":423},[420,597,466],{"class":465},[420,599,470],{"class":469},[420,601,602],{"class":473},"createMionRouter",[420,604,605],{"class":469},",",[420,607,608],{"class":473}," Routes",[420,610,477],{"class":469},[420,612,480],{"class":465},[420,614,483],{"class":469},[420,616,617],{"class":430},"@mionjs\u002Frouter",[420,619,489],{"class":469},[420,621,492],{"class":469},[420,623,624],{"class":422,"line":495},[420,625,513],{"emptyLinePlaceholder":512},[420,627,628,630,633,635,638,641],{"class":422,"line":509},[420,629,520],{"class":519},[420,631,632],{"class":473}," mion ",[420,634,526],{"class":469},[420,636,637],{"class":532}," createMionRouter",[420,639,640],{"class":473},"()",[420,642,492],{"class":469},[420,644,645],{"class":422,"line":516},[420,646,513],{"emptyLinePlaceholder":512},[420,648,649,651,654,656],{"class":422,"line":560},[420,650,520],{"class":519},[420,652,653],{"class":473}," routes ",[420,655,526],{"class":469},[420,657,658],{"class":469}," {\n",[420,660,661,664,666,669,671,674,676,678,682,684,687,689,692,695,697,700],{"class":422,"line":565},[420,662,663],{"class":542},"  sayHello",[420,665,546],{"class":469},[420,667,668],{"class":473}," mion",[420,670,571],{"class":469},[420,672,673],{"class":532},"route",[420,675,536],{"class":473},[420,677,536],{"class":469},[420,679,681],{"class":680},"sHdIc","ctx",[420,683,605],{"class":469},[420,685,686],{"class":680}," name",[420,688,546],{"class":469},[420,690,691],{"class":426}," string",[420,693,694],{"class":469},"):",[420,696,691],{"class":426},[420,698,699],{"class":519}," =>",[420,701,658],{"class":469},[420,703,705,708,711,714,717,720,722,725,728],{"class":422,"line":704},7,[420,706,707],{"class":465},"    return",[420,709,710],{"class":469}," `",[420,712,713],{"class":430},"Hello ",[420,715,716],{"class":469},"${",[420,718,719],{"class":473},"name",[420,721,477],{"class":469},[420,723,724],{"class":430},"!",[420,726,727],{"class":469},"`",[420,729,492],{"class":469},[420,731,733,736,738],{"class":422,"line":732},8,[420,734,735],{"class":469},"  }",[420,737,555],{"class":473},[420,739,740],{"class":469},",\n",[420,742,744,746,749,751],{"class":422,"line":743},9,[420,745,477],{"class":469},[420,747,748],{"class":465}," satisfies",[420,750,608],{"class":426},[420,752,492],{"class":469},[420,754,756],{"class":422,"line":755},10,[420,757,513],{"emptyLinePlaceholder":512},[420,759,761],{"class":422,"line":760},11,[420,762,764],{"class":763},"sHwdD","\u002F\u002F the server entry only imports this file\n",[420,766,768,771,774,777,779,781,783,786,789],{"class":422,"line":767},12,[420,769,770],{"class":465},"export",[420,772,773],{"class":519}," const",[420,775,776],{"class":473}," myApi ",[420,778,526],{"class":469},[420,780,668],{"class":473},[420,782,571],{"class":469},[420,784,785],{"class":532},"initRoutes",[420,787,788],{"class":473},"(routes)",[420,790,492],{"class":469},[420,792,794,796,799,802,805,808,811],{"class":422,"line":793},13,[420,795,770],{"class":465},[420,797,798],{"class":519}," type",[420,800,801],{"class":426}," MyApi",[420,803,804],{"class":469}," =",[420,806,807],{"class":469}," typeof",[420,809,810],{"class":473}," myApi",[420,812,492],{"class":469},[405,814,816],{"id":815},"adapter-options","Adapter Options",[439,818,819,820,823,824,826,827,830,831,837,838,842],{},"Pass options such as ",[417,821,822],{},"maxBodySize"," to ",[417,825,474],{},", and set router options like ",[417,828,829],{},"basePath"," once in ",[832,833,835],"a",{"href":834},"\u002Frpc\u002Fserver\u002Froutes#creating-the-router",[417,836,602],{},". Each route has its own ",[832,839,841],{"href":840},"\u002Frpc\u002Fserver\u002Froutes#request-size","body limit",", and the native read stops at it.",[410,844,846],{"className":455,"code":845,"language":458,"meta":415,"style":415},"import {startUwsServer} from '@mionjs\u002Fplatform-uws';\nimport '.\u002Fuws-routes.ts';\n\nawait startUwsServer({port: 3000});\n",[417,847,848,868,880,884],{"__ignoreMap":415},[420,849,850,852,854,856,858,860,862,864,866],{"class":422,"line":423},[420,851,466],{"class":465},[420,853,470],{"class":469},[420,855,474],{"class":473},[420,857,477],{"class":469},[420,859,480],{"class":465},[420,861,483],{"class":469},[420,863,486],{"class":430},[420,865,489],{"class":469},[420,867,492],{"class":469},[420,869,870,872,874,876,878],{"class":422,"line":495},[420,871,466],{"class":465},[420,873,483],{"class":469},[420,875,502],{"class":430},[420,877,489],{"class":469},[420,879,492],{"class":469},[420,881,882],{"class":422,"line":509},[420,883,513],{"emptyLinePlaceholder":512},[420,885,886,889,891,893,895,897,899,901,903,905],{"class":422,"line":516},[420,887,888],{"class":465},"await",[420,890,533],{"class":532},[420,892,536],{"class":473},[420,894,539],{"class":469},[420,896,543],{"class":542},[420,898,546],{"class":469},[420,900,550],{"class":549},[420,902,477],{"class":469},[420,904,555],{"class":473},[420,906,492],{"class":469},[908,909,910],"tip",{},"uWebSockets.js is a native C++ server and one of the fastest HTTP servers for Node.js. It suits high throughput APIs on your own machines or containers.",[912,913,914,915,920],"note",{},"The mion team publishes the binaries on npm, unmodified from the pinned official ",[832,916,133],{"href":917,"rel":918},"https:\u002F\u002Fgithub.com\u002FuNetworking\u002FuWebSockets.js",[919],"nofollow"," release (Apache 2.0 license).",[922,923,924],"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 .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 .s7zQu, html code.shiki .s7zQu{--shiki-light:#39ADB5;--shiki-light-font-style:italic;--shiki-default:#89DDFF;--shiki-default-font-style:italic;--shiki-dark:#89DDFF;--shiki-dark-font-style:italic}html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .sTEyZ, html code.shiki .sTEyZ{--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8}html pre.shiki code .spNyl, html code.shiki .spNyl{--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA}html pre.shiki code .s2Zo4, html code.shiki .s2Zo4{--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF}html pre.shiki code .swJcz, html code.shiki .swJcz{--shiki-light:#E53935;--shiki-default:#F07178;--shiki-dark:#F07178}html pre.shiki code .sbssI, html code.shiki .sbssI{--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C}html pre.shiki code .sHdIc, html code.shiki .sHdIc{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#EEFFFF;--shiki-default-font-style:italic;--shiki-dark:#BABED8;--shiki-dark-font-style:italic}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}","Running mion APIs on uWebSockets.js for maximum performance.","md",null,{"toc":24},{"title":133,"description":925},"6lu3ES_hCbPL_h3ZGSZJcwdWBa_inanDJfZoKbRGhBI",1793324370980]