{"id":17093636,"url":"https://github.com/imvexed/notlitecode","last_synced_at":"2025-04-12T22:44:45.205Z","repository":{"id":97990629,"uuid":"68272774","full_name":"ImVexed/NotLiteCode","owner":"ImVexed","description":"Remote Encrypted Procedure Calling for .Net \u0026 .Net Core","archived":false,"fork":false,"pushed_at":"2019-02-01T01:01:29.000Z","size":168,"stargazers_count":16,"open_issues_count":0,"forks_count":3,"subscribers_count":5,"default_branch":"master","last_synced_at":"2025-04-12T22:44:41.584Z","etag":null,"topics":["cross-platform","encryption","high-performance","netcore","rmi","rpc"],"latest_commit_sha":null,"homepage":"","language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"unlicense","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ImVexed.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-09-15T06:53:32.000Z","updated_at":"2023-12-30T12:24:54.000Z","dependencies_parsed_at":"2023-06-01T11:30:51.820Z","dependency_job_id":null,"html_url":"https://github.com/ImVexed/NotLiteCode","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ImVexed%2FNotLiteCode","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ImVexed%2FNotLiteCode/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ImVexed%2FNotLiteCode/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ImVexed%2FNotLiteCode/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ImVexed","download_url":"https://codeload.github.com/ImVexed/NotLiteCode/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248643048,"owners_count":21138353,"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":["cross-platform","encryption","high-performance","netcore","rmi","rpc"],"created_at":"2024-10-14T14:07:50.930Z","updated_at":"2025-04-12T22:44:45.182Z","avatar_url":"https://github.com/ImVexed.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"[![Build Status](https://ci.appveyor.com/api/projects/status/github/ImVexed/notlitecode?branch=master)](https://ci.appveyor.com/project/ImVexed/notlitecode?branch=master)\n[![Code Factor](https://www.codefactor.io/repository/github/imvexed/notlitecode/badge)](https://www.codefactor.io/repository/github/imvexed/notlitecode)\n[![GitHub license](https://img.shields.io/github/license/ImVexed/NotLiteCode.svg)](https://github.com/ImVexed/NotLiteCode/blob/master/LICENSE)\n[![NuGet](https://img.shields.io/nuget/v/Nuget.Core.svg)](https://www.nuget.org/packages/NotLiteCode)\n\n# NotLiteCode\nA simple, hackable, remote code hosting platform.\n\n## What is?\nNLC (Not Lite Code) is a simplified version of LiteCode by *DragonHunter*, which provides native RPC and other useful features without any external dependencies. \n\n## How does this differ from traditional RPC/RMI?\nTraditionally RPC/RMI implements a stub interface and is tightly coupled. NLC however can function without a stub interface by using `BinaryFormatter` to serialize \u0026 deserialize objects on the fly at runtime allowing it to be loosly coupled. NLC also allows communication over `SSLStream` for security.\n\n## How is state handled?\nNLC creates a unique instance for every client allowing you to keep stateful data alongside their functions in the `SharedClass`.\n\n## How is concurrency handled?\nAs of 1.4 NLC's networking core is now asynchronous and will invoke calls in a new Task once the data is received. Thus any synchronization must either be ensured in the client invoking the methods or inside the SharedClass functions themselves.\n\n## Sample Implementation\n### Server Code:\nSharedClass.cs\n```C#\n[NLCCall(\"MagicNumber\")]\npublic bool IsMagicNumber(int number)\n{\n  return number == 7;\n}\n```\nProgram.cs\n```C#\nserver = new Server\u003cSharedClass\u003e();\nserver.Start();\n```\n### Client Code:\nProgram.cs\n```C#\npublic static async Task\u003cbool\u003e IsMagicNumber(int number) =\u003e\n      await client.RemoteCall\u003cbool\u003e(\"MagicNumber\", number);\n      \nclient = new Client();\n\nclient.Connect(\"localhost\", 1337);\n\nConsole.WriteLine(await IsMagicNumber(-10)); // False\nConsole.WriteLine(await IsMagicNumber(7));   // True\n```\n## Sample Outputs\n\u003cimg src=\"http://image.prntscr.com/image/3dabba40de9643e18c2362a1e0e6f9d3.png\" align=\"center\" /\u003e\n \n## Original\n[LiteCode](https://gitlab.com/Dergan/LiteCode) by *DragonHunter* \n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fimvexed%2Fnotlitecode","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fimvexed%2Fnotlitecode","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fimvexed%2Fnotlitecode/lists"}