NoteLiteCode.V-X
1.0.0
dotnet add package NoteLiteCode.V-X --version 1.0.0
NuGet\Install-Package NoteLiteCode.V-X -Version 1.0.0
<PackageReference Include="NoteLiteCode.V-X" Version="1.0.0" />
paket add NoteLiteCode.V-X --version 1.0.0
#r "nuget: NoteLiteCode.V-X, 1.0.0"
// Install NoteLiteCode.V-X as a Cake Addin
#addin nuget:?package=NoteLiteCode.V-X&version=1.0.0
// Install NoteLiteCode.V-X as a Cake Tool
#tool nuget:?package=NoteLiteCode.V-X&version=1.0.0
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
var socket = new NLCSocket();
var server = new Server<SharedClass>(socket);
server.Start();
Client Code:
Program.cs
private static string CombineTwoStringsAndReturn(string s1, string s2) =>
Client.RemoteCall<string>("Pinocchio", s1, s2);
var Socket = new NLCSocket();
Client = new Client(Socket);
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:
- NuGet Package
Original
LiteCode by DragonHunter
Product | Versions 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. |
This package has no dependencies.
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
Version | Downloads | Last updated |
---|