[{"data":1,"prerenderedAt":247},["ShallowReactive",2],{"docs:list:en":3,"docs:page:en:credits\u002Ftechnologies\u002Fbackend":66},[4,10,14,19,23,27,32,36,40,44,49,53,57,62],{"path":5,"title":6,"description":7,"section":8,"order":9},"\u002Fdocs\u002Fen\u002Fcredits\u002Foverview","Overview","The open source work Alluno stands on, grouped by the layer each project lives in.","Credits",1,{"path":11,"title":12,"description":13,"section":8,"order":9},"\u002Fdocs\u002Fen\u002Fcredits\u002Ftechnologies\u002Foverview","Stack","How the host, the services, the web client and the real time layer fit together.",{"path":15,"title":16,"description":17,"section":18,"order":9},"\u002Fdocs\u002Fen\u002Fgetting-started\u002Fintroduction","Introduction","What Alluno is, how a session actually works, and which parts of the product you will meet first.","Getting started",{"path":20,"title":6,"description":21,"section":22,"order":9},"\u002Fdocs\u002Fen\u002Fprivacy-policy\u002Foverview","What Alluno collects, what it deliberately never sees, and the choices you keep over both.","Privacy policy",{"path":24,"title":6,"description":25,"section":26,"order":9},"\u002Fdocs\u002Fen\u002Fterms-of-service\u002Foverview","The agreement between you and Alluno: what you may do, what we owe you, and where each ends.","Terms of service",{"path":28,"title":29,"description":30,"section":8,"order":31},"\u002Fdocs\u002Fen\u002Fcredits\u002Ftechnologies\u002Ffrontend","Frontend Architecture","The web client that decodes, syncs and paints a session in your browser, and what it is built from.",2,{"path":33,"title":34,"description":35,"section":18,"order":31},"\u002Fdocs\u002Fen\u002Fgetting-started\u002Finstallation","Installation","Install the host on the machine you want to reach, pair it once, and open it from any browser afterwards.",{"path":37,"title":38,"description":39,"section":22,"order":31},"\u002Fdocs\u002Fen\u002Fprivacy-policy\u002Fdata-collection-types","Data Types","Every category of data the service touches, why each one exists, and how long it is kept.",{"path":41,"title":42,"description":43,"section":26,"order":31},"\u002Fdocs\u002Fen\u002Fterms-of-service\u002Fbilling-payments-payment-terms","Payment Terms","Plans, billing cycles, how payment is taken, and what happens when one fails.",{"path":45,"title":46,"description":47,"section":8,"order":48},"\u002Fdocs\u002Fen\u002Fcredits\u002Ftechnologies\u002Fbackend","Backend Systems","The host on your machine and the services behind alluno.io, both written in Rust, and what they are built from.",3,{"path":50,"title":51,"description":52,"section":18,"order":48},"\u002Fdocs\u002Fen\u002Fgetting-started\u002Ffaq","FAQ","Straight answers on transports, encryption, what Alluno can and cannot see, plans and licensing.",{"path":54,"title":55,"description":56,"section":26,"order":48},"\u002Fdocs\u002Fen\u002Fterms-of-service\u002Fbilling-payments-commercial-disclosure","Commercial Disclosure","The trading details a subscription requires: who sells the service, from where, and on what terms.",{"path":58,"title":59,"description":60,"section":8,"order":61},"\u002Fdocs\u002Fen\u002Fcredits\u002Ftechnologies\u002Frealtime","Real-time Systems","The media and transport layer that moves a frame from the host to your screen in a few milliseconds.",4,{"path":63,"title":64,"description":65,"section":26,"order":61},"\u002Fdocs\u002Fen\u002Fterms-of-service\u002Facceptable-use-guidelines","Guidelines","What a machine on Alluno may be used for, and the handful of things that will end an account.",{"id":67,"title":46,"body":68,"description":47,"extension":240,"meta":241,"navigation":242,"order":48,"path":45,"section":8,"seo":243,"stem":244,"updated":245,"__hash__":246},"docs\u002Fdocs\u002Fen\u002Fcredits\u002Ftechnologies\u002Fbackend.md",{"type":69,"value":70,"toc":234},"minimark",[71,75,80,129,133,165,169,221,229],[72,73,74],"p",{},"Two programs share this page because they share a language and most of their libraries: the host that runs on your machine, and the services that broker sessions.",[76,77,79],"h2",{"id":78},"core-systems","Core systems",[81,82,83,97,115,122],"field-group",{},[84,85,88],"field",{"name":86,"type":87},"Rust","language",[72,89,90,96],{},[91,92,86],"a",{"href":93,"rel":94},"https:\u002F\u002Fwww.rust-lang.org",[95],"nofollow"," for both the host and the API. Memory safety without a garbage collector is the right trade for code that touches frames every few milliseconds.",[84,98,101],{"name":99,"type":100},"Tokio and Axum","runtime",[72,102,103,108,109,114],{},[91,104,107],{"href":105,"rel":106},"https:\u002F\u002Ftokio.rs",[95],"Tokio"," runs the async work, ",[91,110,113],{"href":111,"rel":112},"https:\u002F\u002Fgithub.com\u002Ftokio-rs\u002Faxum",[95],"Axum"," serves HTTP. Every request and every media task is a small, cancellable future.",[84,116,119],{"name":117,"type":118},"PostgreSQL","database",[72,120,121],{},"Accounts, machines, plans, invites and billing history, with real constraints so the data stays consistent under concurrent use.",[84,123,126],{"name":124,"type":125},"Redis","cache",[72,127,128],{},"Short lived state: pairing codes, one time passwords, session presence. Anything that must expire lives here.",[76,130,132],{"id":131},"the-host","The host",[134,135,136,144,151,158],"card-group",{"cols":31},[137,138,141],"card",{"icon":139,"title":140},"lucide:monitor","Virtual display",[72,142,143],{},"A kernel driver on Windows that adds a display at whatever resolution and refresh rate the client asks for, so headless machines behave like desks.",[137,145,148],{"icon":146,"title":147},"lucide:keyboard","Input filter driver",[72,149,150],{},"Keyboard and mouse events are delivered as device input, which is why raw input games and anti cheat friendly titles read them normally.",[137,152,155],{"icon":153,"title":154},"lucide:gamepad-2","Virtual gamepad",[72,156,157],{},"An Xbox compatible controller appears on the host through ViGEmBus, with rumble carried back to the pad in your hands.",[137,159,162],{"icon":160,"title":161},"lucide:shield","Service mode",[72,163,164],{},"On Windows the host can run as a service, so it is reachable before anyone signs in, including the login screen and administrator prompts.",[76,166,168],{"id":167},"the-services","The services",[170,171,172,185],"table",{},[173,174,175],"thead",{},[176,177,178,182],"tr",{},[179,180,181],"th",{},"Component",[179,183,184],{},"Job",[186,187,188,197,205,213],"tbody",{},[176,189,190,194],{},[191,192,193],"td",{},"API",[191,195,196],{},"Accounts, machines, plans, invites, billing through the payment provider",[176,198,199,202],{},[191,200,201],{},"Signaling",[191,203,204],{},"Introduces host and viewer, exchanges offers and candidates, hands out relay access",[176,206,207,210],{},[191,208,209],{},"Relays",[191,211,212],{},"TURN for WebRTC, QUIC relays for Media over QUIC rooms, in several regions",[176,214,215,218],{},[191,216,217],{},"Mailer",[191,219,220],{},"Sign in links and the few emails the service sends",[222,223,226],"callout",{"icon":224,"type":225},"lucide:lock","info",[72,227,228],{},"Relays and the API never hold a session key. Encryption is negotiated between host and viewer, and the services forward what they cannot read.",[230,231],"read-more",{"title":232,"to":233},"The web client on the other end","\u002Fdocs\u002Fcredits\u002Ftechnologies\u002Ffrontend",{"title":235,"searchDepth":61,"depth":61,"links":236},"",[237,238,239],{"id":78,"depth":31,"text":79},{"id":131,"depth":31,"text":132},{"id":167,"depth":31,"text":168},"md",{},true,{"title":46,"description":47},"docs\u002Fen\u002Fcredits\u002Ftechnologies\u002Fbackend",null,"D1ICWgHK248CVBempVpXiXWRKo_5FrzkDrrnw5odKSM",1789362703368]