NotLiteCode 1.0.2

There is a newer version of this package available.
See the version list below for details.
dotnet add package NotLiteCode --version 1.0.2                
NuGet\Install-Package NotLiteCode -Version 1.0.2                
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="NotLiteCode" Version="1.0.2" />                
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add NotLiteCode --version 1.0.2                
#r "nuget: NotLiteCode, 1.0.2"                
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
// Install NotLiteCode as a Cake Addin
#addin nuget:?package=NotLiteCode&version=1.0.2

// Install NotLiteCode as a Cake Tool
#tool nuget:?package=NotLiteCode&version=1.0.2                

Build Status Code Factor GitHub license NuGet

NotLiteCode

A simple, hackable, remote code hosting platform.

What is?

NLC (Not Lite Code) is a simplified version of LiteCode by DragonHunter, which allows clients to execute code on a server as if they were calling a function that was being run locally(effectively RMI(Remote Method Invokation as opposed to non-OOP RPC(Remote Procedure Call)). NLC intends to implement what was done in LiteCode but simplified and distilled down into 1 class (for the main logic atleast).

How does this differ from traditional RPC/RMI?

Traditionally RPC/RMI implements a stub interface and is tightly coupled. NLC however can function without a stub interface, and is loosly coupled. NLC also implements end to end encryption (alongside an Eliptic Curve Diffie-Hellman Handshake), DEFLATE compression, client isolation, and a stupidly simple implementation. Each client that connects to the NLC server also get's a unique instance of the SharedClass, making multi-client implementations a breeze.

Sample Implementation

Server Code:

SharedClass.cs

[NLCCall("Pinocchio")] // Our target function on the server
public string CombineTwoStringsAndReturn(string s1, string s2)
{
  return "Magical server says, s1 + s2 = " + s1 + s2;
}

Program.cs

server = new Server<SharedClass>();
server.Start();

Client Code:

Program.cs

private static string CombineTwoStringsAndReturn(string s1, string s2) =>
      client.RemoteCall<string>("Pinocchio", s1, s2);
      
client = new Client();

client.Connect("localhost", 1337);

Console.WriteLine(CombineTwoStringsAndReturn("I'm a ", "real boy!")); // Returns "Magical server says, s1 + s2 = I'm a real boy!"

Sample Outputs

<img src="http://image.prntscr.com/image/3dabba40de9643e18c2362a1e0e6f9d3.png" align="center" />

Planned Features:

  • All features currently satisfied

Notes

  • NLC now supports .Net Core 2.1
  • NLC performance is significantly increased on .Net Core vs. .Net 4.5.2 when encryption & compression are enabled

Original

LiteCode by DragonHunter

Product Compatible and additional computed target framework versions.
.NET net5.0 was computed.  net5.0-windows was computed.  net6.0 was computed.  net6.0-android was computed.  net6.0-ios was computed.  net6.0-maccatalyst was computed.  net6.0-macos was computed.  net6.0-tvos was computed.  net6.0-windows was computed.  net7.0 was computed.  net7.0-android was computed.  net7.0-ios was computed.  net7.0-maccatalyst was computed.  net7.0-macos was computed.  net7.0-tvos was computed.  net7.0-windows was computed.  net8.0 was computed.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed. 
.NET Core netcoreapp2.1 is compatible.  netcoreapp2.2 was computed.  netcoreapp3.0 was computed.  netcoreapp3.1 was computed. 
.NET Framework net452 is compatible.  net46 was computed.  net461 was computed.  net462 was computed.  net463 was computed.  net47 was computed.  net471 was computed.  net472 was computed.  net48 was computed.  net481 was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

This package has no dependencies.

NuGet packages (1)

Showing the top 1 NuGet packages that depend on NotLiteCode:

Package Downloads
NotLiteCode.Serialization.GroBuf

A GroBuf serialization provider for NotLiteCode

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last updated
1.5.2 971 2/1/2019
1.5.1 780 1/24/2019
1.5.0 929 1/22/2019
1.4.2 776 1/21/2019
1.4.1 840 1/17/2019
1.4.0 866 1/17/2019
1.3.1 844 1/15/2019
1.3.0 801 1/6/2019
1.2.2 821 12/31/2018
1.2.1 819 12/30/2018
1.2.0 791 12/30/2018
1.1.1 956 8/5/2018
1.1.0 931 8/5/2018
1.0.4 928 8/5/2018
1.0.3 910 8/5/2018
1.0.2 923 8/5/2018
1.0.1 962 8/4/2018
1.0.0 903 8/4/2018