WebFrameworkCSharpAPI 3.2.0

dotnet add package WebFrameworkCSharpAPI --version 3.2.0
                    
NuGet\Install-Package WebFrameworkCSharpAPI -Version 3.2.0
                    
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="WebFrameworkCSharpAPI" Version="3.2.0" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="WebFrameworkCSharpAPI" Version="3.2.0" />
                    
Directory.Packages.props
<PackageReference Include="WebFrameworkCSharpAPI" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add WebFrameworkCSharpAPI --version 3.2.0
                    
#r "nuget: WebFrameworkCSharpAPI, 3.2.0"
                    
#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.
#:package WebFrameworkCSharpAPI@3.2.0
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=WebFrameworkCSharpAPI&version=3.2.0
                    
Install as a Cake Addin
#tool nuget:?package=WebFrameworkCSharpAPI&version=3.2.0
                    
Install as a Cake Tool

C++ HTTP/HTTPS server with C# API

Quick start

Server needs few files to run:

Main.cs

using Framework;
using Framework.Exceptions;

namespace hello_csharp
{
	internal class Program
	{
		static void Main(string[] args)
		{
			try
			{
				using WebFramework server = new("config.json"); // Create server

				server.Start(true, () => Console.WriteLine()); // Start server and wait
			}
			catch (WebFrameworkException e)
			{
				Console.WriteLine(e.Message);

				Environment.Exit(-1);
			}
			catch (Exception e)
			{
				Console.WriteLine(e.Message);

				Environment.Exit(-2);
			}
		}
	}
}

Settings

web.json

{
  "HelloExecutor": {
    "route": "",
    "loadType": "initialization",
    "api": "csharp"
  }
}

Config

config.json

{
  "WebServer": {
    "ip": "0.0.0.0",
    "port": 8080,
    "timeout": 0
  },
  "WebFramework": {
    "settingsPaths": [
      "web.json"
    ],
    "loadSources": [
      "hello_executor"
    ],
    "runtimes": [
      ".net"
    ],
    "assetsPath": "assets",
    "templatesPath": "templates",
    "cachingSize": 536870912,
    "webServerType": "multiThreaded",
    "HTTPS": {
      "useHTTPS": false,
      "pathToCertificate": "certificates/cert.pem",
      "pathToKey": "certificates/key.pem"
    },
    "defaultAssetsPath": "WebFrameworkAssets"
  },
  "Logging": {
    "usingLogging": false,
    "dateFormat": "DMY",
    "logFileSize": 134217728
  },
  "ThreadPoolServer": {
    "threadCount": 0
  }
}

Run sample

After running server open url 127.0.0.1:8080.
You will see response from server

{
  "message": "Hello, World!"
}

Executors

Executors are C++, C, Python or C# classes that responsible for giving responses for their route(url).
Source code of HelloExecutor from example
HelloExecutor.h

using Framework;

public class HelloExecutor : StatelessExecutor
{
    public override void DoGet(HttpRequest request, HttpResponse response)
    {
        response.SetBody
        (
            new
            {
                message = "Hello, World!"
            }
        );
    }
}

More information you can find in wiki.

Product Compatible and additional computed target framework versions.
.NET net8.0 is compatible.  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.  net9.0 was computed.  net9.0-android was computed.  net9.0-browser was computed.  net9.0-ios was computed.  net9.0-maccatalyst was computed.  net9.0-macos was computed.  net9.0-tvos was computed.  net9.0-windows was computed.  net10.0 was computed.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
  • net8.0

    • 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
3.2.0 83 12/21/2025
3.1.3 136 9/30/2025
3.1.2 132 9/23/2025
3.1.1 164 9/22/2025
3.1.0 275 9/16/2025
1.0.7 115 12/29/2024
1.0.6 106 11/26/2024
1.0.5 106 11/16/2024
1.0.4 114 11/14/2024
1.0.3 105 11/10/2024
1.0.2 106 10/28/2024
1.0.1 107 10/24/2024
1.0.0 141 10/9/2024