{
    "componentChunkName": "component---src-templates-issues-tsx",
    "path": "/issues/355",
    "result": {"data":{"issuesJson":{"id":"eedc1d6d-dde2-589f-b0e3-31ccbf361e43","title":"localsend/localsend: 一个免费、开源的应用程序，允许你在本地网络上安全地与附近设备共享文件和消息，无需互联网连接","number":355,"bodyHTML":"<div align=\"center\" dir=\"auto\">\n<p dir=\"auto\"><a target=\"_blank\" rel=\"noopener noreferrer nofollow\" href=\"https://camo.githubusercontent.com/a15b413168923d02e21292705ceaf86b92675f98e250c5c896a02ba7504a6eae/68747470733a2f2f63646e2e6a7364656c6976722e6e65742f67682f657279616a662f7475406d61696e2f696d672f696d6167655f32303234303432305f3231343430382e676966\"><img src=\"https://camo.githubusercontent.com/a15b413168923d02e21292705ceaf86b92675f98e250c5c896a02ba7504a6eae/68747470733a2f2f63646e2e6a7364656c6976722e6e65742f67682f657279616a662f7475406d61696e2f696d672f696d6167655f32303234303432305f3231343430382e676966\" width=\"100%\" height=\"3\" data-animated-image=\"\" data-canonical-src=\"https://cdn.jsdelivr.net/gh/eryajf/tu@main/img/image_20240420_214408.gif\" style=\"max-width: 100%; height: auto; max-height: 3px;\"></a><br><br></p>\n<markdown-accessiblity-table><table role=\"table\">\n<thead>\n<tr>\n<th align=\"right\">Repos</th>\n<th align=\"left\"><a href=\"https://github.com/localsend/localsend\">localsend/localsend</a></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td align=\"right\"><strong>Views</strong></td>\n<td align=\"left\"><a href=\"https://github.com/opsre/awesome-ops\"><img src=\"https://camo.githubusercontent.com/69df8ca1ff2d9dc6463772b97773e8150d0199a677f6368a473ed669f9ed6039/68747470733a2f2f76696577732e77686174696c656172656e65642e746f6461792f76696577732f6769746875622f6c6f63616c73656e642f6c6f63616c73656e642e737667\" alt=\"views\" data-canonical-src=\"https://views.whatilearened.today/views/github/localsend/localsend.svg\" style=\"max-width: 100%;\"></a></td>\n</tr>\n<tr>\n<td align=\"right\"><strong>Stars</strong></td>\n<td align=\"left\"><a href=\"https://github.com/opsre/awesome-ops\"><img src=\"https://camo.githubusercontent.com/474f3472c6a8a15173218e1d2814e8d3ab21a579f76a8b58bc0eb37fc35129da/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f73746172732f6c6f63616c73656e642f6c6f63616c73656e643f636f6c6f723d663266303864266c6f676f3d556e64657274616c65266c6f676f436f6c6f723d656234363330\" alt=\"stars\" data-canonical-src=\"https://img.shields.io/github/stars/localsend/localsend?color=f2f08d&amp;logo=Undertale&amp;logoColor=eb4630\" style=\"max-width: 100%;\"></a></td>\n</tr>\n<tr>\n<td align=\"right\"><strong>Forks</strong></td>\n<td align=\"left\"><a href=\"https://github.com/opsre/awesome-ops\"><img src=\"https://camo.githubusercontent.com/bb7e29b9c34164f49841400e1ad430c71a997784269c5415ec00c00d756fc1cb/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f666f726b732f6c6f63616c73656e642f6c6f63616c73656e643f636f6c6f723d626138366562266c6f676f3d48616e647368616b65266c6f676f436f6c6f723d656136616136\" alt=\"forks\" data-canonical-src=\"https://img.shields.io/github/forks/localsend/localsend?color=ba86eb&amp;logo=Handshake&amp;logoColor=ea6aa6\" style=\"max-width: 100%;\"></a></td>\n</tr>\n<tr>\n<td align=\"right\"><strong>License</strong></td>\n<td align=\"left\"><a href=\"https://github.com/opsre/awesome-ops\"><img src=\"https://camo.githubusercontent.com/96e8ed23b9b56fc1a52e0300bea74128887b460943978fbd193e6160ae89a19c/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f6c6963656e73652f6c6f63616c73656e642f6c6f63616c73656e643f6c6f676f3d64617461253341696d616765253246706e672533426261736536342532436956424f5277304b47676f414141414e53556845556741414144414141414177434159414141425841766d48414141414358424957584d41414173544141414c457745416d70775941414144336b6c45515652346e4f335953557a5555426748384a726f57567255474a66456d3773584e63534446784d544c327069347348456778654e526f77586770455742445552522532424e414e4f4b4f4b36366f6f4b4a4742586545475263574163455646475152484677516d483525324630774861655748493944554455354c356b6e6568644f62377a66652532423139636e434a47495243516945596c514237594a4979474c38616f73756c565a36695246516a69474b6b7564576735614c6c704f70704e586e665071773555304459524a6d56786a4367464633424c755a476d416f5655694b4541726d583744375553677351706f72674761336748664b34483663754262435644334771683141352532424c6745253242467749656e514d306a6f446f66714c6f48564e7742796d384370546e416d327a51713073676478624964515a556c416b7150415a3664676a303541446f59526f6f66792532466f5869726f376b3551586a4c6f70677a4b69514e6c4c4461716f4967754577426a7a7150355066446a45394479495879493633464d547751464d43567271774e61763451666f52673538514625324266724d485172454b3844546f434d714e4179574e4866786d54526f4c4f726d5352566747744466714345715a4f4851727a6f34706243557341333431365169364551394b476a6345465267484f724f4b6e5536574162396247455459656b4b7843766a546167394534706a653534446b3551503862624d4859762532464333756541654a6b50304f4778422532424a70426e4172595238455951516e6f4e31414e4661426e5050356c385372736559514c303641646b30464a5938484f5761424d6c6541486a683068506f73497a6c6f3876304125324633345a694f6548726130714b52504d5653493774762532423932747725324676687855654252713456454c674d376642714b354770526d6f514c584e7075625475367a6f4e52706754386e5051627138347764253246494375767978694b4871694e41664933774d367549684271476b4c696977414f734b44714f68743749747239567938536a52424557667941627225324668523142667056514664484a42253246423268683778376a36517077435665655951326b72554235436c636a3641326d3067576a25324244306d4c34397a573563517943484c4e37726a6c6d6d6174457958582532464372547a412532466f51785a6b576c39474a5443566f25324279546a3837253242346769504b6376307149486f344156344430565a727251493334706e70524d36357875652532467a417265453425324654253246536f676c664542794d7369517441546c4c3352414a355948725378365a44665337307337754d486842705225324659423573305057366f455270316236253246667252684b3353444c35546965364f515548516c5133735644752532427a50636b397657453973747225324236496a533967486d5750616861444a25324277434b364e494242587348423948796b587378774470686c436d416476706c6162554a4e6e5a504239342532464e7436784f6538587a4562503257684d335741673147756236744825324233513150673337365239713475716c6e6f36676448476a444f5139306562303141484d3672596975554a314f713472344656756a35765239427a4d3957674e764f7977446869495951467667626366774166774d764863615067425041253246447948476a50624e394138616d6562636477416444354e6633373574787165774e5552656f797677424958594c645170576c6877465771745061435044334173467541535636717171496c62304a766b564331464c39576b4c55556c55574b337a585a4c46432532423125324642726f46746f364f7358497545594a5034447a7a5732594656316f4a614141414141456c46546b5375516d4343\" alt=\"license\" data-canonical-src=\"https://img.shields.io/github/license/localsend/localsend?logo=data%3Aimage%2Fpng%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAACXBIWXMAAAsTAAALEwEAmpwYAAAD3klEQVR4nO3YSUzUUBgH8JroWVrUGJfEm7sXNcSDFxMTL2pi4sHEgxeNRowXgpEWBDURR%2BNANOKOK66ooKJGBXeEGRcWAcEVFGQRHFwQmH5%2F0wHaeWHI9DUDU5L5knehdOb7zfe%2B19cnCJGIRCQiEYlQB7YJIyGL8aosulVZ6iRFQjiGKkudWg5aLlpOppNXnfPqw5U0DYRJmVxjCgFF3BLuZGmAoVUiKEArmX7D7USgsQporgGa3gHfK4H6cuBbCVD3Gqh1A5%2BLgE%2BFwIenQM0joDofqLoHVNwBym8CpTnAm2zQq0sgdxbIdQZUlAkqPAZ6dgj05ADoYRoofy%2FoXiro7k5QXjLopgzKiQNlLDaqoIguEwBjzqP5PfDjE9DyIXyI63FMTwQFMCVrqwNav4QfoRg58QF%2BfrMHQrEK8DToCMqNAyWNHfxmTRoLOrmSRVgGtDfqCEqZOHQrzo4pbCUsA3416Qi6EQ9KGjcEFRgHOrOKnU6WAb9bGETYekKxCvjTag9E4pje54Dk5QP8bbMHYv%2FC3ueAeJkP0OGxB%2BJpBnArYR8EYQQnoN1ANFaBnPP5l8SrseYQL06Adk0FJY8HOWaBMleAHjh0hPosIzlo8v0A%2F34ZiOeHra0qKRPMVSI7tv%2B92tw%2FvhxUeBRq4VELgM7fBqK5GpRmoQLXNpubTu6zoNRpgT8nPQbq84wd%2FICuvyxiKHqiNAfI3wM6uIhBqGkLiiwAOsKDqOht7Itr9Vy8SjRBEWfyAbr%2FhR1BfpVQFdHJB%2FB2hh7x7j6QpwCVeeYQ2krUB5Clcj6A2m0gWj%2BD0mL49zW5cQyCHLN7rjlmmatEyXX%2FCrTzA%2FoQxZkWl9GJTCVo%2ByTj87%2B4giPKcv0qIHo4AV4D0VZrrQI34pnpRM65xue%2FzAreE4%2FT%2FSoglfEByMsiQtATlL3RAJ5YHrSx6ZDfS70s7uMHhBpR%2FYB5s0PW6oERp1b6%2FfrRhK3SDL5Tie6OQUHQlQ3sVDu%2BzPck9vWE9str%2B6IjS9gHmWPahaDJ%2BwCK6NIBBXsHB9HykXsxwDphlCmAdvplabUJNnZPB94%2FNt6xOe8XzEbP2WhM3WAg1Gub6tH%2B3Q1Pg376R9q4uqlno6gdHGjDOQ90eb01AHM6rYiuUJ1Oq4r4FVuj5vR9BzM9WgNvOywDhiIYQFvgbcfwAfwMvHcaPgBPA%2FDyHGjPbN9A8amebcdwAdD5Nf375txqewNUReoyvwBIXYLdQpWlhwFWqtPaCPD3AsFuASV6qqqIlb0JvkVC1FL9WkLUUlUWK3zXZLFC%2B1%2FBroFto6OsXIuEYJP4DzzW2YFV1oJaAAAAAElFTkSuQmCC\" style=\"max-width: 100%;\"></a></td>\n</tr>\n<tr>\n<td align=\"right\"><strong>UpdatedAt</strong></td>\n<td align=\"left\"><a href=\"https://github.com/opsre/awesome-ops\"><img src=\"https://camo.githubusercontent.com/122bd60682895057d188ec8890123881d89876545fb76548b3708884bcba4394/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f6c6173742d636f6d6d69742f6c6f63616c73656e642f6c6f63616c73656e643f646973706c61795f74696d657374616d703d636f6d6d6974746572266c6f676f3d64617461253341696d616765253246706e672533426261736536342532436956424f5277304b47676f414141414e5355684555674141414234414141416543415941414141374d4b3669414141414358424957584d41414173544141414c457745416d7077594141414648556c45515652346e4c5658375539615678776d3236646c582532466468627825324232253246516e626b7655627264554151674a4a496655444e574454546d4f76314651554661504a346b7573725630314a7431734e70637453327533626f745a746d786439744a5346536f714b71494635625944464c436f76436c656673747a4a387758524c445a4c7a6e6b634f343535376e3364332532466e655a3472454f515a74315771462532423858467234253242664f4c4565326a6f59307a776638546f795a50766a45676b4c592532426b306d6d72584f36644b696e787a476b30666a5430782532425279723055716e6359637a4d317263347451253242497270324c4758646f344e4334567657715453373277716c632532427231334f527269364b6458646e624f484c6c776c7a4a70524b6e3657342532424b36706f4f434e6e494166486a253246253242776168495a4234764b6e715a6630714a704e49716c2532467638545530634e6c3572627963337730516e54703379324c54614a374d314e617844723266526e315370504736476961323174664533345463614f617931694d55564f5146624659714957536f31573854694156616e43306576584f4542375770313448466232327a453566714c4f433545524c515769644e614e49347545636339693768634a6c644868324e57725135674464624f6c7061756d49754c62326174415144506e7a3062384e6257636d785656524a33486d7870536377777a4f4a6d4b44524765384c6c435a444c4739673754496e5631516c376462586256316533675430574b697243466f6d6b5079767758466c5a474a4f6a563625324253743634757564445a4f55354555636f782532464d455144567674364d62634e3237593341797a687633737061557242365a3971724a534f3139657a6a387032704c426b4a792532426343484a7857493567573574636652527a31645531394766476b6f7539505a4f34736d52396a4746777065783444793362766e6d4b79706f74625531335669646a71595a68726a343972764d457425324625324659714c7a396430304e6a57253246637a67796f394f35317a7336614e6c6f354644747530445a675146686c47584a30644241446f4e6864367576703657686f617967374e394c564748386d443462253246486e667455516f4e4734764c51306769784d716c5725324234714f6a744e48446733723166365969525347785279375576714c62395534716b716e78504f4e7661356c447048723125324279794b524e4b57425a793565644d554842326d3572792532422532424551772532427a6766347a6f39253246306f634e3357527a4c4277344a2532424a7950574372716d4967475974554f735744346f785a46516f50556a4770564871493425324661666b51504336665a5165654d31253242764c7549516e6a754257514444437363726d485039656f4e5041744271664f6e5875614b25324268364a45624772732532427076764d6d78654962683836336162565065597953456f39464a48704e4d464a59253242503563575a6b6667374f3174537759436553514c54593345385130392532464256504a556c78516a7368543142736343593032723955445542667643484236367063665041336c794165336e6772332532463437584467614a7a736c7937787741364e5a746c555550437541487161536a5549502532427375653842525741432532464e6651374a5a505a35397330476a3756747049537a34685125324243706658474d4b685a63764c70554b7866574d386f68766637702532464f446a4842666356463849736b383267314648796b63564645253242555a414158343761452532464d6c34504f3530506e75683025324678346e6d637957507364774468427836436d6b4c562532466746446a594b784f4a4f4674623077517949684c39527943774b33414f664947703159464542686e4d4a634c525745624b644b516f55366e63545a6b494544696341792532463831645675454d3552775066657934784f7830496b25324649324e6e466b692532425761664f6f464959466367595a43797864376543556a626334416d46363566742532466b4d686b336f25324235686337734d4a79716a4a45477659466151464972375930775077384246415925324236253242766d6b3377367a7a5275444d6d5a5652736668385274413075455453443775434254364459514e36697665553066706b594c6a453671725672744f78654e4b553954484c5a4a396b4255324a427342685635416976422532466f4b61514e4b675043427744596149665a4334616454684f71463457454e56694c4a77566f586f62664c424b56773637414f6154734c6336355461564b32317651344c613939654b6359673576627873624f627a5451394e37554b4467554f3177446a6944494942736868357a746733396e514d4c535a4248344f7a424f55444551586d323036643366634c67737762585141345068634b336e6873775531427a3877765130395248472532466f597933656a6677424e6d746f59714c4130586741414141424a52553545726b4a676767253344253344266c6162656c3d557064617465644174\" alt=\"last-commit\" data-canonical-src=\"https://img.shields.io/github/last-commit/localsend/localsend?display_timestamp=committer&amp;logo=data%3Aimage%2Fpng%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAAB4AAAAeCAYAAAA7MK6iAAAACXBIWXMAAAsTAAALEwEAmpwYAAAFHUlEQVR4nLVX7U9aVxwm26dlX%2Fdhbx%2B2%2FQnbkvUbrdUAQgJJIfUDNWDTTmOv1FQUFaPJ4kusrV01Jt1sNpctS2u3botZtmxd9tJSFSoqKqIF5bYDFLCovClefstzJ8wXRLDZLznkcO4557n3d3%2FneZ4rEOQZt1WqF%2B8XFr4%2BfOLEe2joY0zwf8ToyZPvjEgkLY%2Bk0mmrXO6dKinxzGk0fjT0x%2BRyr0UqncYczM1rc4tQ%2BIrp2LGXdo4NC4VvWqTS72wqlc%2Br13ORri6KdXdnbOHLlwlzJpRKn6W4%2BK6poOCNnIAfHj%2F%2BwahIZB4vKnqZf0qJpNIql%2Fv8TU0cNl5rbyc3w0QnTp3y2LTaJ7M1NaxDr2fRn1SpPG6Gia21tfE34TcaOay1iMUVOQFbFYqIWSo1W8TiAVanC0evXOEB7Wp14HFb22zE5fqLOC5ERLQWidNaNI4uEcc9i7hcJldHh2NWrQ5gDdbOlpaumIuLb2atAQDPnz0b8NbWcmxVVRJ3HmxpScwwzOJmKDRGe8LlCZDLG9g7TInV1Ql7dbXbV1e3gT0WKirCFomkPyvwXFlZGJOjV6%2BSt64uudDZOU5EUcox%2FMEQDVvt6MbcN27Y3Ayzhv3spaUrB6Z9qrJSO19ezj8p2pLBkJy%2BcCHJxWI5gW5tcfRRz1dU19GfGkou9PZO4smR9jGFwpex4Dy3bvnmKypotbU13VidjqYZhrj49rvMEt%2F%2FYqLz9d00NjW%2Fczgyo9O51zs6aNlo5FDtu0DZgQFhlGXJ0dBADoNhd6uvp6Whoayg7N9LVGH8mD4b%2FHnftUQoNG4vLQ0gixMqlW%2B4qOjtNHDg3r1f6YiRSGxRy7UvqLb9U4qkqnxPONva5lDpHr1%2ByyKRNKWBZy5edMUHB2m5ry%2B%2BEQw%2Bzgf4zo9%2F0ocN3WRzLBw4J%2BJyPWCrqmIgGYtUOsWD4oxZFQoPUjGpVHqI4%2FafkQPC6fZQeeM1%2BvLuIQnjuBWQDDCscrmHP9eoNPAtBqfOnXuaK%2Bh6JEbGrs%2BpvvMmxeIbh863abVPeYySEo9FJHpNMFJY%2BP5cWZkfg7O1tSwYCeSQLTY3E8Q09%2FBVPJUlxQjshT1BscCY02r9UDUBfvCHB66pcfPA3lyAe3ngr3%2F47XDgaJzsly7xwA6NZtlUUPCuAHqaSjUIP%2Bsue8BRWAC%2FNfQ7JZPZ59s0Gj7VtpISz4hQ%2BCpfXGMKhZcvLpUKxfWM8ohvf7p%2FODjHBfcVF8Isk82g1FHykcVFE%2BUZAAX47aE%2FMl4PO50Pnuh0%2Fx4nmcyWPsdwDhBx6CmkLV%2FgFDjYKxOJOFtb0wQyIhL9RyCwK3AOfIGp1YFEBhnMJcLRWEbKdKQoU6ncTZkIEDicAy%2F81dVuEM5RwPfey4xOx0Ik%2FI2NnFki%2BWafOoFIYFcgYZCyxd7eCUjbc4AmF65ft%2FkMhk3o%2B5hc7sMJyqjJEGvYFaQFIr7Y0wPw8BFAY%2B6%2Bvmk3w6zzRuDMmZVRsfh8RtA0uETSD7uCBT6DYQN6iveU0fpkYLjE6qrVrtOxeNKU9THLZJ9kBU2JBsBhV5AivB%2FoKaQNKgPCBwDYaIfZC4adThOqF4WENViLJwVoXobfLBKVw67AOaTsLc65TaVK21vQ4La99eKcYg5vbxsbObzTQ9N7UKDgUO1wDjiDIIBshh5ztg39nQMLSZBH4OzBOUDEQXm206d3fcLgswbXQA4PhcK3nhswU1Bz8wvQ09RHG%2FoYy3ejfwBNmtoYqLA0XgAAAABJRU5ErkJggg%3D%3D&amp;label=UpdatedAt\" style=\"max-width: 100%;\"></a></td>\n</tr>\n<tr>\n<td align=\"right\"><strong>CreatedAt</strong></td>\n<td align=\"left\"><a href=\"https://github.com/opsre/awesome-ops\"><img src=\"https://camo.githubusercontent.com/0292ca4cbe14457494bf605f4ff88db3bf6eb91773870a81193f0784e7e5d678/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f637265617465642d61742f6c6f63616c73656e642f6c6f63616c73656e643f6c6f676f3d64617461253341696d616765253246706e672533426261736536342532436956424f5277304b47676f414141414e5355684555674141414234414141416543415941414141374d4b3669414141414358424957584d41414173544141414c457745416d7077594141414648556c45515652346e4c5658375539615678776d3236646c582532466468627825324232253246516e626b7655627264554151674a4a496655444e574454546d4f76314651554661504a346b7573725630314a7431734e70637453327533626f745a746d786439744a5346536f714b71494635625944464c436f76436c656673747a4a387758524c445a4c7a6e6b634f343535376e3364332532466e655a3472454f515a74315771462532423858467234253242664f4c4565326a6f59307a776638546f795a50766a45676b4c592532426b306d6d72584f36644b696e787a476b30666a5430782532425279723055716e6359637a4d317263347451253242497270324c4758646f344e4334567657715453373277716c632532427231334f527269364b6458646e624f484c6c776c7a4a70524b6e3657342532424b36706f4f434e6e494166486a253246253242776168495a4234764b6e715a6630714a704e49716c2532467638545530634e6c3572627963337730516e54703379324c54614a374d314e617844723266526e315370504736476961323174664533345463614f617931694d55564f5146624659714957536f31573854694156616e43306576584f4542375770313448466232327a453566714c4f433545524c515769644e614e49347545636339693768634a6c644868324e57725135674464624f6c7061756d49754c62326174415144506e7a3062384e6257636d785656524a33486d7870536377777a4f4a6d4b44524765384c6c435a444c4739673754496e5631516c376462586256316533675430574b697243466f6d6b5079767758466c5a474a4f6a563625324253743634757564445a4f55354555636f782532464d455144567674364d62634e3237593341797a687633737061557242365a3971724a534f3139657a6a387032704c426b4a792532426343484a7857493567573574636652527a31645531394766476b6f7539505a4f34736d52396a4746777065783444793362766e6d4b79706f74625531335669646a71595a68726a343972764d457425324625324659714c7a396430304e6a57253246637a67796f394f35317a7336614e6c6f354644747530445a675146686c47584a30644241446f4e6864367576703657686f617967374e394c564748386d443462253246486e667455516f4e4734764c51306769784d716c5725324234714f6a744e48446733723166365969525347785279375576714c62395534716b716e78504f4e7661356c447048723125324279794b524e4b57425a793565644d554842326d3572792532422532424551772532427a6766347a6f39253246306f634e3357527a4c4277344a2532424a7950574372716d4967475974554f735744346f785a46516f50556a4770564871493425324661666b51504336665a5165654d31253242764c7549516e6a754257514444437363726d485039656f4e5041744271664f6e5875614b25324268364a45624772732532427076764d6d78654962683836336162565065597953456f39464a48704e4d464a59253242503563575a6b6667374f3174537759436553514c54593345385130392532464256504a556c78516a7368543142736343593032723955445542667643484236367063665041336c794165336e6772332532463437584467614a7a736c7937787741364e5a746c555550437541487161536a5549502532427375653842525741432532464e6651374a5a505a35397330476a3756747049537a34685125324243706658474d4b685a63764c70554b7866574d386f68766637702532464f446a4842666356463849736b383267314648796b63564645253242555a414158343761452532464d6c34504f3530506e75683025324678346e6d637957507364774468427836436d6b4c562532466746446a594b784f4a4f4674623077517949684c39527943774b33414f664947703159464542686e4d4a634c525745624b644b516f55366e63545a6b494544696341792532463831645675454d3552775066657934784f7830496b25324649324e6e466b692532425761664f6f464959466367595a43797864376543556a626334416d46363566742532466b4d686b336f25324235686337734d4a79716a4a45477659466151464972375930775077384246415925324236253242766d6b3377367a7a5275444d6d5a5652736668385274413075455453443775434254364459514e36697665553066706b594c6a453671725672744f78654e4b553954484c5a4a396b4255324a427342685635416976422532466f4b61514e4b675043427744596149665a4334616454684f71463457454e56694c4a77566f586f62664c424b56773637414f6154734c6336355461564b32317651344c613939654b6359673576627873624f627a5451394e37554b4467554f3177446a6944494942736868357a746733396e514d4c535a4248344f7a424f55444551586d323036643366634c67737762585141345068634b336e6873775531427a3877765130395248472532466f597933656a6677424e6d746f59714c4130586741414141424a52553545726b4a676767253344253344266c6162656c3d437265617465644174\" alt=\"create-at\" data-canonical-src=\"https://img.shields.io/github/created-at/localsend/localsend?logo=data%3Aimage%2Fpng%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAAB4AAAAeCAYAAAA7MK6iAAAACXBIWXMAAAsTAAALEwEAmpwYAAAFHUlEQVR4nLVX7U9aVxwm26dlX%2Fdhbx%2B2%2FQnbkvUbrdUAQgJJIfUDNWDTTmOv1FQUFaPJ4kusrV01Jt1sNpctS2u3botZtmxd9tJSFSoqKqIF5bYDFLCovClefstzJ8wXRLDZLznkcO4557n3d3%2FneZ4rEOQZt1WqF%2B8XFr4%2BfOLEe2joY0zwf8ToyZPvjEgkLY%2Bk0mmrXO6dKinxzGk0fjT0x%2BRyr0UqncYczM1rc4tQ%2BIrp2LGXdo4NC4VvWqTS72wqlc%2Br13ORri6KdXdnbOHLlwlzJpRKn6W4%2BK6poOCNnIAfHj%2F%2BwahIZB4vKnqZf0qJpNIql%2Fv8TU0cNl5rbyc3w0QnTp3y2LTaJ7M1NaxDr2fRn1SpPG6Gia21tfE34TcaOay1iMUVOQFbFYqIWSo1W8TiAVanC0evXOEB7Wp14HFb22zE5fqLOC5ERLQWidNaNI4uEcc9i7hcJldHh2NWrQ5gDdbOlpaumIuLb2atAQDPnz0b8NbWcmxVVRJ3HmxpScwwzOJmKDRGe8LlCZDLG9g7TInV1Ql7dbXbV1e3gT0WKirCFomkPyvwXFlZGJOjV6%2BSt64uudDZOU5EUcox%2FMEQDVvt6MbcN27Y3Ayzhv3spaUrB6Z9qrJSO19ezj8p2pLBkJy%2BcCHJxWI5gW5tcfRRz1dU19GfGkou9PZO4smR9jGFwpex4Dy3bvnmKypotbU13VidjqYZhrj49rvMEt%2F%2FYqLz9d00NjW%2Fczgyo9O51zs6aNlo5FDtu0DZgQFhlGXJ0dBADoNhd6uvp6Whoayg7N9LVGH8mD4b%2FHnftUQoNG4vLQ0gixMqlW%2B4qOjtNHDg3r1f6YiRSGxRy7UvqLb9U4qkqnxPONva5lDpHr1%2ByyKRNKWBZy5edMUHB2m5ry%2B%2BEQw%2Bzgf4zo9%2F0ocN3WRzLBw4J%2BJyPWCrqmIgGYtUOsWD4oxZFQoPUjGpVHqI4%2FafkQPC6fZQeeM1%2BvLuIQnjuBWQDDCscrmHP9eoNPAtBqfOnXuaK%2Bh6JEbGrs%2BpvvMmxeIbh863abVPeYySEo9FJHpNMFJY%2BP5cWZkfg7O1tSwYCeSQLTY3E8Q09%2FBVPJUlxQjshT1BscCY02r9UDUBfvCHB66pcfPA3lyAe3ngr3%2F47XDgaJzsly7xwA6NZtlUUPCuAHqaSjUIP%2Bsue8BRWAC%2FNfQ7JZPZ59s0Gj7VtpISz4hQ%2BCpfXGMKhZcvLpUKxfWM8ohvf7p%2FODjHBfcVF8Isk82g1FHykcVFE%2BUZAAX47aE%2FMl4PO50Pnuh0%2Fx4nmcyWPsdwDhBx6CmkLV%2FgFDjYKxOJOFtb0wQyIhL9RyCwK3AOfIGp1YFEBhnMJcLRWEbKdKQoU6ncTZkIEDicAy%2F81dVuEM5RwPfey4xOx0Ik%2FI2NnFki%2BWafOoFIYFcgYZCyxd7eCUjbc4AmF65ft%2FkMhk3o%2B5hc7sMJyqjJEGvYFaQFIr7Y0wPw8BFAY%2B6%2Bvmk3w6zzRuDMmZVRsfh8RtA0uETSD7uCBT6DYQN6iveU0fpkYLjE6qrVrtOxeNKU9THLZJ9kBU2JBsBhV5AivB%2FoKaQNKgPCBwDYaIfZC4adThOqF4WENViLJwVoXobfLBKVw67AOaTsLc65TaVK21vQ4La99eKcYg5vbxsbObzTQ9N7UKDgUO1wDjiDIIBshh5ztg39nQMLSZBH4OzBOUDEQXm206d3fcLgswbXQA4PhcK3nhswU1Bz8wvQ09RHG%2FoYy3ejfwBNmtoYqLA0XgAAAABJRU5ErkJggg%3D%3D&amp;label=CreatedAt\" style=\"max-width: 100%;\"></a></td>\n</tr>\n</tbody>\n</table></markdown-accessiblity-table>\n<a href=\"https://github.com/opsre/awesome-ops\">\n</a><p dir=\"auto\"><a href=\"https://github.com/opsre/awesome-ops\"><img src=\"https://camo.githubusercontent.com/b964a36ea4078c39f603d46a29436371c7541a2f26e0228d7b21b9d9805b43d3/68747470733a2f2f736f6369616c6966792e6769742e63692f6f707372652f617765736f6d652d6f70732f696d6167653f6465736372697074696f6e3d3126666f6e743d42697474657226666f726b733d31266973737565733d31266c616e67756167653d31266c6f676f3d6874747073253341253246253246617661746172732e67697468756275736572636f6e74656e742e636f6d25324675253246313838353638303230266e616d653d31266f776e65723d31267061747465726e3d436972637569742b426f6172642670756c6c733d31267374617267617a6572733d31267468656d653d4c69676874\" alt=\"\" data-canonical-src=\"https://socialify.git.ci/opsre/awesome-ops/image?description=1&amp;font=Bitter&amp;forks=1&amp;issues=1&amp;language=1&amp;logo=https%3A%2F%2Favatars.githubusercontent.com%2Fu%2F188568020&amp;name=1&amp;owner=1&amp;pattern=Circuit+Board&amp;pulls=1&amp;stargazers=1&amp;theme=Light\" style=\"max-width: 100%;\"></a></p>\n<a target=\"_blank\" rel=\"noopener noreferrer nofollow\" href=\"https://camo.githubusercontent.com/a15b413168923d02e21292705ceaf86b92675f98e250c5c896a02ba7504a6eae/68747470733a2f2f63646e2e6a7364656c6976722e6e65742f67682f657279616a662f7475406d61696e2f696d672f696d6167655f32303234303432305f3231343430382e676966\"><img src=\"https://camo.githubusercontent.com/a15b413168923d02e21292705ceaf86b92675f98e250c5c896a02ba7504a6eae/68747470733a2f2f63646e2e6a7364656c6976722e6e65742f67682f657279616a662f7475406d61696e2f696d672f696d6167655f32303234303432305f3231343430382e676966\" width=\"100%\" height=\"3\" data-animated-image=\"\" data-canonical-src=\"https://cdn.jsdelivr.net/gh/eryajf/tu@main/img/image_20240420_214408.gif\" style=\"max-width: 100%; height: auto; max-height: 3px;\"></a>\n</div>\n<h1 dir=\"auto\">LocalSend</h1>\n<p dir=\"auto\"><a href=\"https://github.com/localsend/localsend/actions/workflows/ci.yml\"><img src=\"https://github.com/localsend/localsend/actions/workflows/ci.yml/badge.svg\" alt=\"CI status\" style=\"max-width: 100%;\"></a><br>\n<a href=\"https://hosted.weblate.org/engage/localsend/\" rel=\"nofollow\"><img src=\"https://camo.githubusercontent.com/bb243b6c8b816c464c8fdb2e3560a01f550b1b1dabadd14a9aed7dc906bc055d/68747470733a2f2f686f737465642e7765626c6174652e6f72672f7769646765742f6c6f63616c73656e642f6170702f7376672d62616467652e737667\" alt=\"Translations\" data-canonical-src=\"https://hosted.weblate.org/widget/localsend/app/svg-badge.svg\" style=\"max-width: 100%;\"></a><br>\n<a href=\"https://repology.org/project/localsend/versions\" rel=\"nofollow\"><img src=\"https://camo.githubusercontent.com/c2c3ef400013f69cefb4ac31e919613a9654df3e7fb79ae481255df72244ba2e/68747470733a2f2f7265706f6c6f67792e6f72672f62616467652f74696e792d7265706f732f6c6f63616c73656e642e737667\" alt=\"Packaging status\" data-canonical-src=\"https://repology.org/badge/tiny-repos/localsend.svg\" style=\"max-width: 100%;\"></a></p>\n<p dir=\"auto\"><a href=\"https://localsend.org\" rel=\"nofollow\">Homepage</a> • <a href=\"https://discord.gg/GSRWmQNP87\" rel=\"nofollow\">Discord</a> • <a href=\"https://github.com/localsend/localsend\">GitHub</a> • <a href=\"https://codeberg.org/localsend/localsend\" rel=\"nofollow\">Codeberg</a></p>\n<p dir=\"auto\"><a href=\"README.md\">English (Default)</a> • <a href=\"readme_i18n/README_ES.md\">Español</a> • <a href=\"readme_i18n/README_FA.md\">فارسی</a> • <a href=\"readme_i18n/README_PH.md\">Filipino</a> • <a href=\"readme_i18n/README_FR.md\">Français</a> • <a href=\"readme_i18n/README_ID.md\">Indonesia</a> • <a href=\"readme_i18n/README_IT.md\">Italiano</a> • <a href=\"readme_i18n/README_JA.md\">日本語</a> • <a href=\"readme_i18n/README_KM.md\">ភាសាខ្មែរ</a> • <a href=\"readme_i18n/README_KO.md\">한국어</a> • <a href=\"readme_i18n/README_PL.md\">Polski</a> • <a href=\"readme_i18n/README_PT_BR.md\">Portugês Brasil</a> • <a href=\"readme_i18n/README_RU.md\">Русский</a> • <a href=\"readme_i18n/README_TH.md\">ภาษาไทย</a> • <a href=\"readme_i18n/README_TR.md\">Türkçe</a> • <a href=\"readme_i18n/README_UK.md\">Українська</a> • <a href=\"readme_i18n/README_VI.md\">Tiếng Việt</a> • <a href=\"readme_i18n/README_ZH.md\">中文</a></p>\n<p dir=\"auto\">LocalSend is a free, open-source app that allows you to securely share files and messages with nearby devices over your local network without needing an internet connection.</p>\n<ul dir=\"auto\">\n<li><a href=\"#about\">About</a></li>\n<li><a href=\"#screenshots\">Screenshots</a></li>\n<li><a href=\"#download\">Download</a></li>\n<li><a href=\"#how-it-works\">How It Works</a></li>\n<li><a href=\"#getting-started\">Getting Started</a></li>\n<li><a href=\"#contributing\">Contributing</a>\n<ul dir=\"auto\">\n<li><a href=\"#translation\">Translation</a></li>\n<li><a href=\"#bug-fixes-and-improvements\">Bug Fixes and Improvements</a></li>\n</ul>\n</li>\n<li><a href=\"#troubleshooting\">Troubleshooting</a></li>\n<li><a href=\"#building\">Building</a>\n<ul dir=\"auto\">\n<li><a href=\"#android\">Android</a></li>\n<li><a href=\"#ios\">iOS</a></li>\n<li><a href=\"#macos\">macOS</a></li>\n<li><a href=\"#windows\">Windows</a></li>\n<li><a href=\"#linux\">Linux</a></li>\n</ul>\n</li>\n</ul>\n<h2 dir=\"auto\">About</h2>\n<p dir=\"auto\">LocalSend is a cross-platform app that enables secure communication between devices using a REST API and HTTPS encryption. Unlike other messaging apps that rely on external servers, LocalSend doesn't require an internet connection or third-party servers, making it a fast and reliable solution for local communication.</p>\n<h2 dir=\"auto\">Screenshots</h2>\n<p dir=\"auto\"><a target=\"_blank\" rel=\"noopener noreferrer nofollow\" href=\"https://camo.githubusercontent.com/2b35b2acddeadda639b03d88534b3a2770dda3df09efb49c8ac1763a2409f767/68747470733a2f2f6c6f63616c73656e642e6f72672f696d672f73637265656e73686f742d6970686f6e652e77656270\"><img src=\"https://camo.githubusercontent.com/2b35b2acddeadda639b03d88534b3a2770dda3df09efb49c8ac1763a2409f767/68747470733a2f2f6c6f63616c73656e642e6f72672f696d672f73637265656e73686f742d6970686f6e652e77656270\" alt=\"iPhone screenshot\" height=\"300\" data-canonical-src=\"https://localsend.org/img/screenshot-iphone.webp\" style=\"max-width: 100%; height: auto; max-height: 300px;\"></a> <a target=\"_blank\" rel=\"noopener noreferrer nofollow\" href=\"https://camo.githubusercontent.com/94c34c63091f5dfb5938d6f1a9f3cbdfcc371716bb2b10aaed248023350cfbc7/68747470733a2f2f6c6f63616c73656e642e6f72672f696d672f73637265656e73686f742d70632e77656270\"><img src=\"https://camo.githubusercontent.com/94c34c63091f5dfb5938d6f1a9f3cbdfcc371716bb2b10aaed248023350cfbc7/68747470733a2f2f6c6f63616c73656e642e6f72672f696d672f73637265656e73686f742d70632e77656270\" alt=\"PC screenshot\" height=\"300\" data-canonical-src=\"https://localsend.org/img/screenshot-pc.webp\" style=\"max-width: 100%; height: auto; max-height: 300px;\"></a></p>\n<h2 dir=\"auto\">Download</h2>\n<p dir=\"auto\"><a href=\"https://repology.org/project/localsend/versions\" rel=\"nofollow\"><img src=\"https://camo.githubusercontent.com/c2c3ef400013f69cefb4ac31e919613a9654df3e7fb79ae481255df72244ba2e/68747470733a2f2f7265706f6c6f67792e6f72672f62616467652f74696e792d7265706f732f6c6f63616c73656e642e737667\" alt=\"Packaging status\" data-canonical-src=\"https://repology.org/badge/tiny-repos/localsend.svg\" style=\"max-width: 100%;\"></a></p>\n<p dir=\"auto\">It is recommended to download the app either from an app store or from a package manager because the app does not have an auto-update.</p>\n<markdown-accessiblity-table><table role=\"table\">\n<thead>\n<tr>\n<th>Windows</th>\n<th>macOS</th>\n<th>Linux</th>\n<th>Android</th>\n<th>iOS</th>\n<th>Fire OS</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><a href=\"https://github.com/microsoft/winget-pkgs/tree/master/manifests/l/LocalSend/LocalSend\">Winget</a></td>\n<td><a href=\"https://apps.apple.com/us/app/localsend/id1661733229\" rel=\"nofollow\">App Store</a></td>\n<td><a href=\"https://flathub.org/apps/details/org.localsend.localsend_app\" rel=\"nofollow\">Flathub</a></td>\n<td><a href=\"https://play.google.com/store/apps/details?id=org.localsend.localsend_app\" rel=\"nofollow\">Play Store</a></td>\n<td><a href=\"https://apps.apple.com/us/app/localsend/id1661733229\" rel=\"nofollow\">App Store</a></td>\n<td><a href=\"https://www.amazon.com/dp/B0BW6MP732\" rel=\"nofollow\">Amazon</a></td>\n</tr>\n<tr>\n<td><a href=\"https://scoop.sh/#/apps?s=0&amp;d=1&amp;o=true&amp;q=localsend&amp;id=fb88113be361ca32c0dcac423cb4afdeda0b0c66\" rel=\"nofollow\">Scoop</a></td>\n<td><a href=\"https://formulae.brew.sh/cask/localsend\" rel=\"nofollow\">Homebrew</a></td>\n<td><a href=\"https://search.nixos.org/packages?show=localsend\" rel=\"nofollow\">Nixpkgs</a></td>\n<td><a href=\"https://f-droid.org/packages/org.localsend.localsend_app\" rel=\"nofollow\">F-Droid</a></td>\n<td></td>\n<td></td>\n</tr>\n<tr>\n<td><a href=\"https://community.chocolatey.org/packages/localsend\" rel=\"nofollow\">Chocolatey</a></td>\n<td><a href=\"https://github.com/localsend/localsend/releases/latest\">DMG Installer</a></td>\n<td><a href=\"https://snapcraft.io/localsend\" rel=\"nofollow\">Snap</a></td>\n<td><a href=\"https://github.com/localsend/localsend/releases/latest\">APK</a></td>\n<td></td>\n<td></td>\n</tr>\n<tr>\n<td><a href=\"https://github.com/localsend/localsend/releases/latest\">EXE Installer</a></td>\n<td></td>\n<td><a href=\"https://aur.archlinux.org/packages/localsend-bin\" rel=\"nofollow\">AUR</a></td>\n<td></td>\n<td></td>\n<td></td>\n</tr>\n<tr>\n<td><a href=\"https://github.com/localsend/localsend/releases/latest\">Portable ZIP</a></td>\n<td></td>\n<td><a href=\"https://github.com/localsend/localsend/releases/latest\">TAR</a></td>\n<td></td>\n<td></td>\n<td></td>\n</tr>\n<tr>\n<td></td>\n<td></td>\n<td><a href=\"https://github.com/localsend/localsend/releases/latest\">DEB</a></td>\n<td></td>\n<td></td>\n<td></td>\n</tr>\n<tr>\n<td></td>\n<td></td>\n<td><a href=\"https://github.com/localsend/localsend/releases/latest\">AppImage</a></td>\n<td></td>\n<td></td>\n<td></td>\n</tr>\n</tbody>\n</table></markdown-accessiblity-table>\n<p dir=\"auto\">Read more about <a href=\"https://github.com/localsend/localsend/blob/main/CONTRIBUTING.md#distribution\">distribution channels</a>.</p>\n<p dir=\"auto\"><strong>Compatibility</strong></p>\n<markdown-accessiblity-table><table role=\"table\">\n<thead>\n<tr>\n<th>Platform</th>\n<th>Minimum Version</th>\n<th>Note</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>Android</td>\n<td>5.0</td>\n<td>-</td>\n</tr>\n<tr>\n<td>iOS</td>\n<td>12.0</td>\n<td>-</td>\n</tr>\n<tr>\n<td>macOS</td>\n<td>11 Big Sur</td>\n<td>Use OpenCore Legacy Patcher 2.0.2 (See <a href=\"https://github.com/localsend/localsend/issues/1005#issuecomment-2449899384\" data-hovercard-type=\"issue\" data-hovercard-url=\"/localsend/localsend/issues/1005/hovercard\">#1005</a>)</td>\n</tr>\n<tr>\n<td>Windows</td>\n<td>10</td>\n<td>The last version to support Windows 7 is v1.15.4. There might be backports of newer versions for Windows 7 in the future.</td>\n</tr>\n<tr>\n<td>Linux</td>\n<td>N.A.</td>\n<td>-</td>\n</tr>\n</tbody>\n</table></markdown-accessiblity-table>\n<h2 dir=\"auto\">Setup</h2>\n<p dir=\"auto\">In most cases, LocalSend should work out of the box. However, if you are having trouble sending or receiving files, you may need to configure your firewall to allow LocalSend to communicate over your local network.</p>\n<markdown-accessiblity-table><table role=\"table\">\n<thead>\n<tr>\n<th>Traffic Type</th>\n<th>Protocol</th>\n<th>Port</th>\n<th>Action</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>Incoming</td>\n<td>TCP, UDP</td>\n<td>53317</td>\n<td>Allow</td>\n</tr>\n<tr>\n<td>Outgoing</td>\n<td>TCP, UDP</td>\n<td>Any</td>\n<td>Allow</td>\n</tr>\n</tbody>\n</table></markdown-accessiblity-table>\n<p dir=\"auto\">Also make sure to disable AP isolation on your router. It should be usually disabled by default but some routers may have it enabled (especially guest networks).<br>\nSee <a href=\"#troubleshooting\">troubleshooting</a> for more information.</p>\n<p dir=\"auto\"><strong>Portable Mode</strong></p>\n<p dir=\"auto\">(Introduced in v1.13.0)</p>\n<p dir=\"auto\">Create a file named <code class=\"notranslate\">settings.json</code> located in the same directory as the executable.<br>\nThis file can be empty.<br>\nThe app will use this file to store settings instead of the default location.</p>\n<p dir=\"auto\"><strong>Start hidden</strong></p>\n<p dir=\"auto\">(Updated in v1.15.0)</p>\n<p dir=\"auto\">To start the app hidden (only in tray), use the <code class=\"notranslate\">--hidden</code> flag (example: <code class=\"notranslate\">localsend_app.exe --hidden</code>).</p>\n<p dir=\"auto\">On v1.14.0 and earlier, the app starts hidden if <code class=\"notranslate\">autostart</code> flag is set, and the hidden setting is enabled.</p>\n<h2 dir=\"auto\">How It Works</h2>\n<p dir=\"auto\">LocalSend uses a secure communication protocol that allows devices to communicate with each other using a REST API. All data is sent securely over HTTPS, and the TLS/SSL certificate is generated on the fly on each device, ensuring maximum security.</p>\n<p dir=\"auto\">For more information on the LocalSend Protocol, see the <a href=\"https://github.com/localsend/protocol\">documentation</a>.</p>\n<h2 dir=\"auto\">Getting Started</h2>\n<p dir=\"auto\">To compile LocalSend from the source code, follow these steps:</p>\n<ol dir=\"auto\">\n<li>Install Flutter <a href=\"https://flutter.dev\" rel=\"nofollow\">directly</a> or using <a href=\"https://fvm.app\" rel=\"nofollow\">fvm</a> (see <a href=\".fvmrc\">version required</a>)</li>\n<li>Install <a href=\"https://www.rust-lang.org/tools/install\" rel=\"nofollow\">Rust</a></li>\n<li>Clone the <code class=\"notranslate\">LocalSend</code> repository</li>\n<li>Run <code class=\"notranslate\">cd app</code> to enter the app directory</li>\n<li>Run <code class=\"notranslate\">flutter pub get</code> to download dependencies</li>\n<li>Run <code class=\"notranslate\">flutter run</code> to start the app</li>\n</ol>\n<div class=\"markdown-alert markdown-alert-note\" dir=\"auto\"><p class=\"markdown-alert-title\" dir=\"auto\"><svg class=\"octicon octicon-info mr-2\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"M0 8a8 8 0 1 1 16 0A8 8 0 0 1 0 8Zm8-6.5a6.5 6.5 0 1 0 0 13 6.5 6.5 0 0 0 0-13ZM6.5 7.75A.75.75 0 0 1 7.25 7h1a.75.75 0 0 1 .75.75v2.75h.25a.75.75 0 0 1 0 1.5h-2a.75.75 0 0 1 0-1.5h.25v-2h-.25a.75.75 0 0 1-.75-.75ZM8 6a1 1 0 1 1 0-2 1 1 0 0 1 0 2Z\"></path></svg>Note</p><p dir=\"auto\">LocalSend currently requires an older Flutter version (specified in <a href=\".fvmrc\">.fvmrc</a>)<br>\nand thus build issues may be caused by a mismatch between the required and the (system-wide) installed Flutter version.<br>\nTo make development more consistent, LocalSend uses <a href=\"https://fvm.app\" rel=\"nofollow\">fvm</a> to manage the project Flutter version.<br>\nAfter installing <code class=\"notranslate\">fvm</code>, run <code class=\"notranslate\">fvm flutter</code> instead of <code class=\"notranslate\">flutter</code>.</p>\n</div>\n<h2 dir=\"auto\">Contributing</h2>\n<p dir=\"auto\">We welcome contributions from anyone interested in helping improve LocalSend. If you'd like to contribute, there are a few ways to get involved:</p>\n<h3 dir=\"auto\">Translation</h3>\n<p dir=\"auto\">You can help translate LocalSend into other languages. We use the <a href=\"https://hosted.weblate.org/projects/localsend/app\" rel=\"nofollow\">Weblate</a> platform to manage translations.</p>\n<p dir=\"auto\">Alternatively, you can also contribute by forking this repository and adding translations manually.</p>\n<p dir=\"auto\">The translations are located in the <a href=\"https://github.com/localsend/localsend/tree/main/app/assets/i18n\">app/assets/i18n</a> directory. Edit the <code class=\"notranslate\">_missing_translations_&lt;locale&gt;.json</code> or <code class=\"notranslate\">strings_&lt;locale&gt;.i18n.json</code> file to add or update translations.</p>\n<a href=\"https://hosted.weblate.org/engage/localsend/\" rel=\"nofollow\">\n<img src=\"https://camo.githubusercontent.com/65029a3fc6f63a64eb247d122aa069b27fcf052779c42188a27544f9a6e85826/68747470733a2f2f686f737465642e7765626c6174652e6f72672f7769646765742f6c6f63616c73656e642f6170702f6d756c74692d6175746f2e737667\" alt=\"Translation status\" data-canonical-src=\"https://hosted.weblate.org/widget/localsend/app/multi-auto.svg\" style=\"max-width: 100%;\">\n</a>\n<p dir=\"auto\"><strong><em>Take note:</em> Fields decorated with <code class=\"notranslate\">@</code> are not meant to be translated; they are not used in the app in any way, being merely informative text about the file or to give context to the translator.</strong></p>\n<h3 dir=\"auto\">Bug Fixes and Improvements</h3>\n<ul dir=\"auto\">\n<li><strong>Bug Fixes:</strong> If you find a bug, please create a pull request with a clear description of the issue and how to fix it.</li>\n<li><strong>Improvements:</strong> Have an idea for how to improve LocalSend? Please create an issue first to discuss why the improvement is needed.</li>\n</ul>\n<p dir=\"auto\">For more information, see the <a href=\"https://github.com/localsend/localsend/blob/main/CONTRIBUTING.md\">contributing guide</a>.</p>\n<h2 dir=\"auto\">Troubleshooting</h2>\n<markdown-accessiblity-table><table role=\"table\">\n<thead>\n<tr>\n<th>Issue</th>\n<th>Platform (Sending)</th>\n<th>Platform (Receiving)</th>\n<th>Solution</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>Device not visible</td>\n<td>Any</td>\n<td>Any</td>\n<td>Make sure to disable AP-Isolation on your router. If it is enabled, connections between devices are forbidden.</td>\n</tr>\n<tr>\n<td>Device not visible</td>\n<td>Any</td>\n<td>Windows</td>\n<td>Make sure to configure your network as a \"private\" network. Windows might be more restrictive when the network is configured as public.</td>\n</tr>\n<tr>\n<td>Device not visible</td>\n<td>macOS, iOS</td>\n<td>Any</td>\n<td>You can try to toggle the \"Local Network\" permission under \"Privacy\" in the OS settings.</td>\n</tr>\n<tr>\n<td>Speed too slow</td>\n<td>Any</td>\n<td>Any</td>\n<td>Use 5 Ghz; Disable encryption on both devices</td>\n</tr>\n<tr>\n<td>Speed too slow</td>\n<td>Any</td>\n<td>Android</td>\n<td>Known issue. <a class=\"issue-link js-issue-link\" data-error-text=\"Failed to load title\" data-id=\"2666747132\" data-permission-text=\"Title is private\" data-url=\"https://github.com/flutter-cavalry/saf_stream/issues/4\" data-hovercard-type=\"issue\" data-hovercard-url=\"/flutter-cavalry/saf_stream/issues/4/hovercard\" href=\"https://github.com/flutter-cavalry/saf_stream/issues/4\">flutter-cavalry/saf_stream#4</a></td>\n</tr>\n</tbody>\n</table></markdown-accessiblity-table>\n<h2 dir=\"auto\">Building</h2>\n<p dir=\"auto\">These commands are intended for maintainers only.</p>\n<h3 dir=\"auto\">Android</h3>\n<p dir=\"auto\">Traditional APK</p>\n<div class=\"highlight highlight-source-shell notranslate position-relative overflow-auto\" dir=\"auto\" data-snippet-clipboard-copy-content=\"flutter build apk\"><pre class=\"notranslate\">flutter build apk</pre></div>\n<p dir=\"auto\">AppBundle for Google Play</p>\n<div class=\"highlight highlight-source-shell notranslate position-relative overflow-auto\" dir=\"auto\" data-snippet-clipboard-copy-content=\"flutter build appbundle\"><pre class=\"notranslate\">flutter build appbundle</pre></div>\n<h3 dir=\"auto\">iOS</h3>\n<div class=\"highlight highlight-source-shell notranslate position-relative overflow-auto\" dir=\"auto\" data-snippet-clipboard-copy-content=\"flutter build ipa\"><pre class=\"notranslate\">flutter build ipa</pre></div>\n<h3 dir=\"auto\">macOS</h3>\n<div class=\"highlight highlight-source-shell notranslate position-relative overflow-auto\" dir=\"auto\" data-snippet-clipboard-copy-content=\"flutter build macos\"><pre class=\"notranslate\">flutter build macos</pre></div>\n<h3 dir=\"auto\">Windows</h3>\n<p dir=\"auto\"><strong>Traditional</strong></p>\n<div class=\"highlight highlight-source-shell notranslate position-relative overflow-auto\" dir=\"auto\" data-snippet-clipboard-copy-content=\"flutter build windows\"><pre class=\"notranslate\">flutter build windows</pre></div>\n<p dir=\"auto\"><strong>Local MSIX App</strong></p>\n<div class=\"highlight highlight-source-shell notranslate position-relative overflow-auto\" dir=\"auto\" data-snippet-clipboard-copy-content=\"flutter pub run msix:create\"><pre class=\"notranslate\">flutter pub run msix:create</pre></div>\n<p dir=\"auto\"><strong>Store ready</strong></p>\n<div class=\"highlight highlight-source-shell notranslate position-relative overflow-auto\" dir=\"auto\" data-snippet-clipboard-copy-content=\"flutter pub run msix:create --store\"><pre class=\"notranslate\">flutter pub run msix:create --store</pre></div>\n<h3 dir=\"auto\">Linux</h3>\n<p dir=\"auto\"><strong>Traditional</strong></p>\n<div class=\"highlight highlight-source-shell notranslate position-relative overflow-auto\" dir=\"auto\" data-snippet-clipboard-copy-content=\"flutter build linux\"><pre class=\"notranslate\">flutter build linux</pre></div>\n<p dir=\"auto\"><strong>AppImage</strong></p>\n<div class=\"highlight highlight-source-shell notranslate position-relative overflow-auto\" dir=\"auto\" data-snippet-clipboard-copy-content=\"appimage-builder --recipe AppImageBuilder.yml\"><pre class=\"notranslate\">appimage-builder --recipe AppImageBuilder.yml</pre></div>\n<p dir=\"auto\"><strong>Snap</strong></p>\n<p dir=\"auto\">Instructions in <a href=\"https://github.com/localsend/snap/blob/main/README.md\">localsend/snap/README.md</a></p>\n<h2 dir=\"auto\">Contributors</h2>\n<a href=\"https://github.com/localsend/localsend/graphs/contributors\">\n  <img src=\"https://camo.githubusercontent.com/5945d5f3f084128494b9b12e17a332786d16b89c777c5ccf9cf40ba542c61a5e/68747470733a2f2f636f6e747269622e726f636b732f696d6167653f7265706f3d6c6f63616c73656e642f6c6f63616c73656e64\" alt=\"Localsend Contributors\" data-canonical-src=\"https://contrib.rocks/image?repo=localsend/localsend\" style=\"max-width: 100%;\">\n</a>","updatedAt":"2025-05-21T16:10:30Z","upvoteCount":null,"author":{"login":"eryajf","avatarUrl":"https://avatars.githubusercontent.com/u/33259379?u=e4a4090a38ac2473aaed4ef9945233636776c6c3&v=4","url":"https://github.com/eryajf"},"category":null,"labels":{"edges":[{"node":{"name":"更多","color":"25B472"}},{"node":{"name":"Sync-Tools","color":"2f12e5"}},{"node":{"name":"localsend","color":"f13083"}}]},"comments":{"edges":[]}}},"pageContext":{"number":355,"previous":{"title":"tstack/lnav: 终端的日志文件查看器，轻松合并、尾随、搜索、过滤和查询日志文件","number":354},"next":{"title":"loggie-io/loggie:  一个基于 Golang 的轻量级、高性能、云原生日志采集 Agent 和中转处理 Aggregator，支持多 Pipeline 和组件热插拔 ","number":356}}},
    "staticQueryHashes": ["151096407","2861350382"]}