[{"data":1,"prerenderedAt":588},["ShallowReactive",2],{"navigation_docs":3,"landing":195},[4,27,61,75,100,126,147,177],{"title":5,"icon":6,"redirect":7,"path":8,"stem":9,"children":10,"page":26},"Introduction","icon-park-outline:home","\u002Fintroduction\u002Fabout-mion","\u002Fintroduction","1.introduction",[11,14,18,22],{"title":12,"path":7,"stem":13},"About mion","1.introduction\u002F1.about-mion",{"title":15,"path":16,"stem":17},"Quick Start","\u002Fintroduction\u002Fquick-start","1.introduction\u002F2.quick-start",{"title":19,"path":20,"stem":21},"Manual Install","\u002Fintroduction\u002Fmanual-install","1.introduction\u002F3.manual-install",{"title":23,"path":24,"stem":25},"What's Next","\u002Fintroduction\u002Fwhat-is-next","1.introduction\u002F4.what-is-next",false,{"title":28,"icon":29,"path":30,"stem":31,"children":32,"page":26},"Server","icon-park-outline:server","\u002Fserver","20.server",[33,37,41,45,49,53,57],{"title":34,"path":35,"stem":36},"Router Overview","\u002Fserver\u002Foverview","20.server\u002F0.overview",{"title":38,"path":39,"stem":40},"Routes","\u002Fserver\u002Froutes","20.server\u002F1.routes",{"title":42,"path":43,"stem":44},"Middleware","\u002Fserver\u002Fmiddle-fns","20.server\u002F2.middle-fns",{"title":46,"path":47,"stem":48},"Request & Response","\u002Fserver\u002Frequest-and-response","20.server\u002F5.request-and-response",{"title":50,"path":51,"stem":52},"Error Handling","\u002Fserver\u002Ferror-handling","20.server\u002F6.error-handling",{"title":54,"path":55,"stem":56},"Validation","\u002Fserver\u002Fvalidation","20.server\u002F7.validation",{"title":58,"path":59,"stem":60},"Serialization","\u002Fserver\u002Fserialization","20.server\u002F8.serialization",{"title":62,"icon":63,"path":64,"stem":65,"children":66,"page":26},"Drizzle ORM","i-lineicons-drizzle","\u002Fdrizzle-orm","21.drizzle-orm",[67,71],{"title":68,"path":69,"stem":70},"Drizzle Overview","\u002Fdrizzle-orm\u002Fdrizzle-overview","21.drizzle-orm\u002F0.drizzle-overview",{"title":72,"path":73,"stem":74},"Column Mapping","\u002Fdrizzle-orm\u002Fcolumn-mapping","21.drizzle-orm\u002F1.column-mapping",{"title":76,"icon":77,"path":78,"stem":79,"children":80,"page":26},"Client","icon-park-outline:computer","\u002Fclient","3.client",[81,85,88,92,96],{"title":82,"path":83,"stem":84},"Client Overview","\u002Fclient\u002Fclient-overview","3.client\u002F0.client-overview",{"title":50,"path":86,"stem":87},"\u002Fclient\u002Ferror-handling","3.client\u002F1.error-handling",{"title":89,"path":90,"stem":91},"Validation Errors","\u002Fclient\u002Fvalidation-errors","3.client\u002F2.validation-errors",{"title":93,"path":94,"stem":95},"Routes Flow","\u002Fclient\u002Fclient-flow","3.client\u002F3.client-flow",{"title":97,"path":98,"stem":99},"Cancellation & Timeouts","\u002Fclient\u002Fcancellation-timeouts","3.client\u002F4.cancellation-timeouts",{"title":101,"icon":102,"redirect":103,"path":104,"stem":105,"children":106,"page":26},"RunTypes","i-lucide-scan-text","\u002Frun-types\u002Foverview","\u002Frun-types","4.run-types",[107,110,114,118,122],{"title":108,"path":103,"stem":109},"RunTypes Overview","4.run-types\u002F0.overview",{"title":111,"path":112,"stem":113},"Supported Types","\u002Frun-types\u002Ffeatures","4.run-types\u002F1.features",{"title":115,"path":116,"stem":117},"Type Formats","\u002Frun-types\u002Ftype-formats","4.run-types\u002F2.type-formats",{"title":119,"path":120,"stem":121},"Built-in Formats","\u002Frun-types\u002Fbuilt-in-formats","4.run-types\u002F3.built-in-formats",{"title":123,"path":124,"stem":125},"Caveats","\u002Frun-types\u002Fcaveats","4.run-types\u002F4.caveats",{"title":127,"path":128,"stem":129,"children":130,"page":26},"Devtools","\u002Fdevtools","5.devtools",[131,135,139,143],{"title":132,"path":133,"stem":134},"AOT Compilation","\u002Fdevtools\u002Faot-compilation","5.devtools\u002F0.aot-compilation",{"title":136,"path":137,"stem":138},"Pure Functions","\u002Fdevtools\u002Fpure-functions","5.devtools\u002F1.pure-functions",{"title":140,"path":141,"stem":142},"ESLint Rules","\u002Fdevtools\u002Feslint-rules","5.devtools\u002F2.eslint-rules",{"title":144,"path":145,"stem":146},"Vite Configuration","\u002Fdevtools\u002Fvite-config","5.devtools\u002F3.vite-config",{"title":148,"redirect":149,"icon":150,"path":151,"stem":152,"children":153,"page":26},"Platforms","\u002Fplatforms\u002Fnode-js","icon-park-outline:play","\u002Fplatforms","6.platforms",[154,157,161,165,169,173],{"title":155,"path":149,"stem":156},"Node.js","6.platforms\u002F1.node-js",{"title":158,"path":159,"stem":160},"Bun","\u002Fplatforms\u002Fbun","6.platforms\u002F2.bun",{"title":162,"path":163,"stem":164},"AWS Lambda","\u002Fplatforms\u002Faws-lambda","6.platforms\u002F3.aws-lambda",{"title":166,"path":167,"stem":168},"Google Cloud Functions","\u002Fplatforms\u002Fgoogle-cloud-functions","6.platforms\u002F4.google-cloud-functions",{"title":170,"path":171,"stem":172},"Cloudflare Workers","\u002Fplatforms\u002Fcloudflare","6.platforms\u002F5.cloudflare",{"title":174,"path":175,"stem":176},"Vercel","\u002Fplatforms\u002Fvercel","6.platforms\u002F6.vercel",{"title":178,"icon":179,"redirect":180,"path":181,"stem":182,"children":183,"page":26},"Benchmarks","icon-park-outline:chart-line","\u002Fbenchmarks\u002Fhello-world","\u002Fbenchmarks","7.benchmarks",[184,187,191],{"title":185,"path":180,"stem":186},"Hello World","7.benchmarks\u002F1.hello-world",{"title":188,"path":189,"stem":190},"Light Validation","\u002Fbenchmarks\u002Flight-validation","7.benchmarks\u002F2.light-validation",{"title":192,"path":193,"stem":194},"Heavy Validation","\u002Fbenchmarks\u002Fheavy-validation","7.benchmarks\u002F3.heavy-validation",{"id":196,"title":197,"body":198,"description":197,"extension":577,"meta":578,"navigation":580,"path":581,"seo":582,"stem":586,"__hash__":587},"landing\u002Findex.md","",{"type":199,"value":200,"toc":574},"minimark",[201,204,210,257,568],[202,203],"home-page-body",{},[205,206],"gradient-bg",{":angle":207,":opacity":208,"blur":209},"70","0.2","150px",[211,212,215,239],"u-page-hero",{"className":213},[214],"home-hero",[216,217,218],"template",{"v-slot:header":197},[219,220,223],"typed-title",{":titles":221,"leading":222},"[\"At The Speed Of Light ⚡\",\"Are Safer To Refactor\",\"Are Developer Friendly\",\"Are Not RestFull APIs\",\"Are Serverless Ready\",\"Are Made For SaaS\",\"Are RPC like\"]","Typescript Full Stack APIs",[216,224,225,226,230,231,234,235,238],{"v-slot:description":197},"mion is the definitive TypeScript Framework ",[227,228,229],"strong",{},"for Full Stack APIs",".",[232,233],"br",{},"\nIt offers ",[227,236,237],{},"The best Developer Experience"," for building Single Page Apps.",[216,240,241,250],{"v-slot:links":197},[242,243,249],"u-button",{"color":244,"icon":245,"size":246,"to":7,"className":247},"primary","icon-park-outline:book-one","xl",[248],"btn-docs","Read the Docs",[242,251,256],{"color":252,"icon":253,"size":246,"to":254,"variant":255},"neutral","simple-icons-github","https:\u002F\u002Fgithub.com\u002FMionKit\u002Fmion","outline","Give us Star",[258,259,262,265,272],"u-page-section",{"className":260},[261],"home-features",[216,263,264],{"v-slot:title":197},"Mion Features",[216,266,267],{"v-slot:root":197},[205,268],{":angle":207,":opacity":269,"blur":270,"top":271},"0.15","140px","10rem",[216,273,274,494,499,510,514],{"v-slot:body":197},[275,276,281,312,319,337,342,373,378,407,412,439,444,461],"card-group",{"className":277},[278,279,280],"sm:grid-cols-2","lg:grid-cols-3","home-code-cards",[282,283,288,293,305,307],"card",{"className":284},[285,286,287],"sm:col-span-2","lg:col-span-1","home-card",[289,290,292],"h3",{"id":291},"rpc-like","RPC Like",[294,295,296,301,302,304],"p",{},[297,298,300],"a",{"href":299},"\u002Fintroduction\u002Fabout-mion#rpc-like","RPC architecture"," for simpler and easier to consume APIs.\nJust use remote methods as any other local async method.",[232,303],{},"\nmion is focused on offering the best developer experience.",[232,306],{},[294,308,309],{},[297,310,311],{"href":55},"Fully validation adn serialization of params and results out of the box.",[313,314],"twoslash-code",{"className":315,"path":317,"title":318},[285,316],"lg:col-span-2","packages\u002Fexamples\u002Fsrc\u002F_homepage\u002Fhome-server.ts","mion-router.ts",[282,320,322,326,332,334],{"className":321},[285,286,287],[289,323,325],{"id":324},"fully-typed-client","Fully Typed Client",[294,327,328,331],{},[297,329,330],{"href":83},"Fully typed client"," that seamlessly bridges frontend and backend with static type checking, autocompletion, automatic validation and serialization.",[232,333],{},[294,335,336],{},"Lightweight and framework-agnostic — use it with React, Vue, Svelte, or any frontend framework.",[313,338],{"className":339,"path":340,"title":341},[285,316],"packages\u002Fexamples\u002Fsrc\u002F_homepage\u002Fhome-client.ts","mion-client.ts",[282,343,345,349,355,357],{"className":344},[285,286,287],[289,346,348],{"id":347},"routes-flows","Routes Flows",[294,350,351,354],{},[297,352,353],{"href":94},"Execute multiple routes in a single HTTP request",". Batch API calls together, and Orchestrate router logic from the client.",[232,356],{},[358,359,362,368,369,230],"note",{"className":360},[361],"text-sm",[363,364,367],"span",{"className":365},[366],"text-highlighted","GraphQL-like data composition"," with the simplicity of RPC — resolve relationships in a single request using ",[370,371,372],"code",{},"serverMapFrom",[313,374],{"className":375,"path":376,"title":377},[285,316],"packages\u002Fexamples\u002Fsrc\u002F_homepage\u002Fhome-mapFrom.ts","mion-routesFlow.ts",[282,379,381,389,399,401],{"className":380},[285,286],[289,382,384,385],{"id":383},"runtypes","RunTypes ",[386,387,388],"sup",{},"©",[294,390,391,392,394,395,398],{},"mion use ",[297,393,101],{"href":103}," behinds the scene to generate JIT-compiled validation and serialization functions directly from TypeScript types.\nRunTypes supports advanced ",[297,396,397],{"href":116},"type formats"," and can be used as a standalone library.",[232,400],{},[294,402,403],{},[363,404,406],{"className":405},[366],"No schemas libraries needed — Typescript is the single source of truth.",[313,408],{"className":409,"path":410,"title":411},[285,316],"packages\u002Fexamples\u002Fsrc\u002F_homepage\u002Fhome-run-types.ts","mion-run-types.ts",[282,413,415,418],{"className":414},[285,286,287],[289,416,62],{"id":417},"drizzle-orm",[294,419,420,421,424,425,427,431,433,435],{},"Auto-generate ",[297,422,62],{"href":423},".\u002Fdrizzle-orm\u002Fdrizzle-overview"," table schemas directly from types using reflection.",[232,426],{},[363,428,430],{"className":429},[366],"Simply extends your types with SQL\u002FDrizzle specific configuration.",[232,432],{},[232,434],{},[363,436,438],{"className":437},[366],"Keep DB and Validation\u002FSerialization logic separated.",[313,440],{"className":441,"path":442,"title":443},[285,316],"packages\u002Fexamples\u002Fsrc\u002F_homepage\u002Fhome-drizzle.ts","mion-drizzle.ts",[282,445,448,452,458],{"className":446,"to":447},[285,286],"\u002Fserver\u002Fserialization#binary-serialization-in-detail",[289,449,451],{"id":450},"binary-serialization","Binary Serialization 🚀",[294,453,454],{},[363,455,457],{"className":456},[366],"Our binary protocol is designed to support al Typescript features: unions, optional props, rest params, circular types and any type you can think about!",[294,459,460],{},"Achieve smaller payloads and faster data transfer with automatic binary serialization for Dates, BigInts, Maps, Sets, and complex nested types.",[282,462,465,469],{"className":463},[285,316,464],"text-center",[289,466,468],{"id":467},"write-once-run-everywhere","Write Once Run Everywhere",[294,470,471,477,478,480,481,483,484,480,487,480,489,491,492,230],{},[472,473],"img",{"alt":148,"className":474,"src":476},[475],"mx-auto","\u002Fplatforms.png","\nRun mion APIs in ",[297,479,155],{"href":149},", ",[297,482,158],{"href":159}," or Serverless platforms like ",[297,485,486],{"href":163},"Aws Lambda",[297,488,166],{"href":167},[297,490,170],{"href":171}," and ",[297,493,174],{"href":175},[495,496,498],"h2",{"id":497},"seamless-integration","Seamless Integration",[282,500,503,504,506],{"className":501},[285,502,464],"lg:col-span-3","Most modern stacks are tools glued together — validation, routing, serialization, client generation — all wired manually. mion replaces that with a single integrated system, reducing boilerplate, inconsistencies, and maintenance overhead.\n",[232,505],{},[472,507],{"alt":498,"className":508,"src":509},[475],"\u002Ftools.png",[495,511,513],{"id":512},"solid-performance","Solid Performance",[282,515,517,553],{"className":516},[285,286,464],[518,519,521],"stylish-list",{"type":520},"check",[522,523,524,532,539,546],"ul",{},[525,526,527,531],"li",{},[363,528,530],{"className":529},[366],"RPC-style routing"," - No URL parsing or regex matching, just direct in-memory Map lookup",[525,533,534,538],{},[363,535,537],{"className":536},[366],"JIT-compiled validation\u002Fserialization"," - RunTypes generates optimized functions at startup",[525,540,541,545],{},[363,542,544],{"className":543},[366],"Fast cold starts"," - Load routes in demand, no need to load all routes and jit functions at startup",[525,547,548,552],{},[363,549,551],{"className":550},[366],"Lightweight architecture"," - Simple request\u002Fresponse handling",[554,555,557,564],"div",{"className":556},[316],[558,559,561],"h4",{"id":560},"benchmarks-reqs",[297,562,563],{"href":193},"Benchmarks (Req\u002FS)",[565,566],"bench-chart",{"id":567},"update-requests",[294,569,570],{},[363,571,573],{"style":572},"padding-bottom: 6rem;"," ",{"title":197,"searchDepth":575,"depth":575,"links":576},2,[],"md",{"pageClass":579},"home-page",true,"\u002F",{"title":583,"description":584,"image":585},"mion - the definitive TypeScript framework for Full Stack APIs","mion is the definitive TypeScript framework for Full Stack APIs, built for exceptional developer experience.","https:\u002F\u002Fmion.io\u002Fbanners\u002Fmion-v2-website-banner.png","index","So4rede-PrauRwxWufpG_fneMYuBFJ-Y1_2cM37pPyk",1778674513839]