{"id":26604793,"url":"https://github.com/svenev/uwp-networking-essentials","last_synced_at":"2025-08-07T15:23:14.867Z","repository":{"id":89410249,"uuid":"52307177","full_name":"SvenEV/UWP-Networking-Essentials","owner":"SvenEV","description":"Simple and lightweight networking (including RPC) for Universal Windows Platform apps","archived":false,"fork":false,"pushed_at":"2017-03-05T18:21:56.000Z","size":197,"stargazers_count":10,"open_issues_count":0,"forks_count":3,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-06-15T05:49:06.649Z","etag":null,"topics":["communication","csharp","dotnet","networking","rpc","rpc-api","rpc-library","socket","sockets","uwp","uwp-networking-essentials","windows-10","windows-uwp","windows10"],"latest_commit_sha":null,"homepage":null,"language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/SvenEV.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2016-02-22T21:27:33.000Z","updated_at":"2025-01-27T02:23:26.000Z","dependencies_parsed_at":null,"dependency_job_id":"bd54071b-944c-4c50-942a-8fda52c74e64","html_url":"https://github.com/SvenEV/UWP-Networking-Essentials","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/SvenEV/UWP-Networking-Essentials","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SvenEV%2FUWP-Networking-Essentials","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SvenEV%2FUWP-Networking-Essentials/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SvenEV%2FUWP-Networking-Essentials/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SvenEV%2FUWP-Networking-Essentials/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/SvenEV","download_url":"https://codeload.github.com/SvenEV/UWP-Networking-Essentials/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SvenEV%2FUWP-Networking-Essentials/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":263484398,"owners_count":23473753,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["communication","csharp","dotnet","networking","rpc","rpc-api","rpc-library","socket","sockets","uwp","uwp-networking-essentials","windows-10","windows-uwp","windows10"],"created_at":"2025-03-23T20:16:47.072Z","updated_at":"2025-07-04T09:38:28.330Z","avatar_url":"https://github.com/SvenEV.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"# UWP Networking Essentials\nSimple and lightweight networking (including RPC) for Universal Windows Platform apps.\n\nAvailable on [NuGet: UWP Networking Essentials](https://www.nuget.org/packages/UwpNetworkingEssentials/).\n\n## Features\n* Easily connect UWP apps running on one or multiple devices\n* Exchange arbitrary objects between server and clients (JSON serialized by default)\n* A common API for messaging via StreamSockets and UWP app services (+ more channels in the future)\n* Basic RPC (remote procedure calling) API\n  * Supports parameters, return values and async methods\n  * Method invocation using dynamic proxies\n\n## Status\n* Development is currently focused on interesting features and a convenient API design, NOT on security, performance or correctness\n* Thus, it is currently not recommended to use this library in any really serious or mission-critical projects\n* This being said, it might be useful and time-saving in small or personal projects\n\n## Getting started\nPlease download the ChatSample app to understand how to use the RPC API.\nDocumentation is still scarce, sorry :(\n\nServer example:\n\n```csharp\n// Start a server on port 1234\nvar serializer = new DefaultJsonSerializer(GetType().GetTypeInfo().Assembly);\nvar listener = new StreamSocketConnectionListener(\"1234\", serializer);\nawait listener.StartAsync();\nvar server = new RpcServer(listener, serverRpcObject);\n\n// Remotely invoke \"clientRpcObject.DoStuffOnClient\" on all connected clients\nawait server.Clients.DoStuffOnClient(\"Hello clients!\");\n\n// Remotely invoke \"clientRpcObject.DoStuffOnClient\" on a specific client\nawait server.Client(connectionId).DoStuffOnClient(\"Hello specific client!\");\n```\n\nClient example:\n\n```csharp\n// Connect to a server\nvar serializer = new DefaultJsonSerializer(GetType().GetTypeInfo().Assembly);\nvar connection = await StreamSocketConnection.ConnectAsync(\"192.168.1.99\", \"1234\", serializer);\nvar client = new RpcClient(connection, clientRpcObject);\n\n// Remotely invoke \"serverRpcObject.DoStuffOnServer\" on the server\nawait client.Server.DoStuffOnServer(\"Hello server!\");\n```\n\nSo, what if you need your clients to do RPC via a UWP app service instead of StreamSockets?\nJust replace\n```csharp\nvar connection = await StreamSocketConnection.ConnectAsync(\"192.168.1.99\", \"1234\", serializer);\n```\nwith\n```csharp\nvar connection = await ASConnection.ConnectLocallyAsync(\"AppServiceName\", \"PackageFamilyName\", serializer);\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsvenev%2Fuwp-networking-essentials","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsvenev%2Fuwp-networking-essentials","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsvenev%2Fuwp-networking-essentials/lists"}