Sisk.HttpServer 0.3.0

The ID prefix of this package has been reserved for one of the owners of this package by NuGet.org. Prefix Reserved
There is a newer version of this package available.
See the version list below for details.
dotnet add package Sisk.HttpServer --version 0.3.0
NuGet\Install-Package Sisk.HttpServer -Version 0.3.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="Sisk.HttpServer" Version="0.3.0" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add Sisk.HttpServer --version 0.3.0
#r "nuget: Sisk.HttpServer, 0.3.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.
// Install Sisk.HttpServer as a Cake Addin
#addin nuget:?package=Sisk.HttpServer&version=0.3.0

// Install Sisk.HttpServer as a Cake Tool
#tool nuget:?package=Sisk.HttpServer&version=0.3.0

X-Powered-By: Sisk

Sisk is a powerful micro-framework for building powerful Restful web APIs. It was written using .NET 6 and Microsoft-HTTPAPI/2.0 as their HTTP Engines. Currently, this micro-framework is suitable for building restful APIs, in a structured and object-oriented way. There is no native support for frontend rendering, templates or database connection. You can extend it as you see fit.

Features

  • Lightning fast response/second average;
  • A routing system, supporting handlers ("Middlewares"), names, parameters and contexts;
  • Easy CORS integration;
  • Request and response handlers and helpers;
  • Multiplatform (credits to .NET 6).

Note: this micro-framework only works for HTTP and not HTTPS. To use it over TLS/HTTPS, use a reverse proxy.

Documentation

Documentation for Sisk aren't ready yet. Use this readme for now.

Installation

Nuget package ins't published yet. Come back soon or you can build it from source.

Example

using Sisk;

internal class Program
{
    static void Main(string[] args)
    {
        Router router = new ();
        router.SetRoute(RouteMethod.Get, "/", (req) =>
        {
            return HttpResponse.CreateOK("Hello, world!");
        });

        HttpServer server = new (router)
        {
            ListeningPort = 5555,
            Verbose = true
        };

        Console.WriteLine("Sisk is listening on HTTP localhost:{0}", server.ListeningPort);
        server.Start();

        while(true) { }
    }
}

Benchmark

Used tool: https://github.com/grafana/k6

> cat .\test.js
import http from "k6/http";

export default function () {
    let response = http.get("http://localhost:5555/");
};

> k6 run .\test.js --vus 512 --duration 10s

data_received..................: 57 MB  5.7 MB/s
data_sent......................: 26 MB  2.6 MB/s
http_req_blocked...............: avg=21.15µs min=0s med=0s      max=55.39ms  p(90)=0s      p(95)=0s
http_req_connecting............: avg=18.5µs  min=0s med=0s      max=22.1ms   p(90)=0s      p(95)=0s
http_req_duration..............: avg=15.58ms min=0s med=14.26ms max=171.71ms p(90)=22.28ms p(95)=26.78ms
{ expected_response:true }...: avg=15.58ms min=0s med=14.26ms max=171.71ms p(90)=22.28ms p(95)=26.78ms
http_req_failed................: 0.00%  ✓ 0            ✗ 325652
http_req_receiving.............: avg=40.33µs min=0s med=0s      max=65.37ms  p(90)=0s      p(95)=0s
http_req_sending...............: avg=14.27µs min=0s med=0s      max=51.2ms   p(90)=0s      p(95)=0s
http_req_tls_handshaking.......: avg=0s      min=0s med=0s      max=0s       p(90)=0s      p(95)=0s
http_req_waiting...............: avg=15.52ms min=0s med=14.23ms max=168.2ms  p(90)=22.2ms  p(95)=26.65ms
http_reqs......................: 325652 32515.685439/s
iteration_duration.............: avg=15.69ms min=0s med=14.32ms max=185.77ms p(90)=22.46ms p(95)=27.11ms
iterations.....................: 325652 32515.685439/s
vus............................: 512    min=512        max=512
vus_max........................: 512    min=512        max=512
Product Compatible and additional computed target framework versions.
.NET net6.0 is compatible.  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. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages (2)

Showing the top 2 NuGet packages that depend on Sisk.HttpServer:

Package Downloads
Sisk.ServiceProvider The ID prefix of this package has been reserved for one of the owners of this package by NuGet.org.

This package includes tools for easily porting your Sisk service.

Sisk.BasicAuth The ID prefix of this package has been reserved for one of the owners of this package by NuGet.org.

This package includes an helper for embeding basic authentication in your applications made with Sisk.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last updated
0.16.2 110 4/28/2024
0.16.2-beta4 81 4/24/2024
0.16.1 120 2/26/2024
0.16.0 1,099 1/9/2024
0.16.0-rc-5 203 1/3/2024
0.16.0-rc-4 89 12/21/2023
0.16.0-rc-3 95 12/7/2023
0.16.0-rc-2 114 11/25/2023
0.16.0-rc-1 96 11/13/2023
0.15.3.1 77 2/19/2024
0.15.3 182 11/25/2023
0.15.2 337 10/30/2023
0.15.1 173 9/30/2023
0.15.0.47 185 8/30/2023
0.15.0.47-rc 54 8/25/2023
0.15.0.46-beta 53 8/22/2023
0.15.0.42-beta 123 8/16/2023
0.15.0.6-beta 135 8/9/2023
0.15.0-beta 134 7/20/2023
0.14.0.1 202 7/18/2023
0.14.0 160 7/17/2023
0.13.1.1 160 6/10/2023
0.13.1 166 6/8/2023
0.13.0 171 5/20/2023
0.12.1 151 5/2/2023
0.12.0 164 4/29/2023
0.11.1 170 4/9/2023
0.11.0 221 3/30/2023
0.10.1 203 3/21/2023
0.10.0 203 3/15/2023
0.9.1 240 3/2/2023
0.9.0 227 2/22/2023
0.8.9 235 2/14/2023
0.8.8 247 2/8/2023
0.8.6 279 2/2/2023
0.8.5 265 2/1/2023
0.8.4 283 1/31/2023
0.8.3 273 1/26/2023
0.8.2 309 1/10/2023
0.8.1 297 1/7/2023
0.8.0 295 1/6/2023
0.7.5 270 12/28/2022
0.7.4 299 12/27/2022
0.7.3 280 12/26/2022
0.7.2 300 12/22/2022
0.7.1 288 12/21/2022
0.7.0 299 12/21/2022
0.6.4 279 12/13/2022
0.6.3 304 12/11/2022
0.6.2 312 12/11/2022
0.6.1 286 12/10/2022
0.6.0 296 12/9/2022
0.5.0 338 11/16/2022
0.4.8 343 10/30/2022
0.4.6 363 10/27/2022
0.4.1 384 10/19/2022
0.4.0 375 10/18/2022
0.3.1 391 10/15/2022
0.3.0 407 10/15/2022