Documentation Summary
Welcome
Getting started
Welcome to the Sisk documentation!
Sisk is an open-source lightweight HTTP framework for .NET. You can use it to build a standalone web …
Installing
You can install Sisk through Nuget, dotnet cli or another options. You can easily setup your Sisk environment by running this command in …
Native AOT Support
.NET Native AOT allows the publication of native .NET applications that are self-sufficient and do not require the .NET runtime installed on …
Deploying your Sisk Application
The process of deploying a Sisk application consists of publishing your project into production. Although the process is relatively simple, …
Working with SSL
Working with SSL for development may be necessary when working in contexts that require security, such as most web development scenarios. …
Cadente
Cadente is an experimental managed HTTP/1.1 listener implementation for Sisk. It serves as a replacement for the default …
Configuring namespace reservations on Windows
Note
This configuration is optional and only required when you want Sisk to listen on hosts other than “localhost” on Windows …
Changelogs
Every change made to Sisk is recorded through the changelog. You can view the changelogs for all Sisk versions here.
Migrating from 1.6 to …
Frequently Asked Questions
Frequently asked questions about Sisk.
Is Sisk open-source? # Totally. All source code used by Sisk is published and frequently updated on …
Fundamentals
Routing
The Router is the first step in building the server. It is responsible for housing Route objects, which are endpoints that map URLs and …
Request handling
Request handlers, also known as “middlewares”, are functions that run before or after a request is executed on the router. They …
Requests
Requests are structures that represent an HTTP request message. The HttpRequest object contains useful functions for handling HTTP messages …
Responses
Responses represent objects that are HTTP responses to HTTP requests. They are sent by the server to the client as an indication of the …
Features
Logging
You can configure Sisk to write access and error logs automatically. It is possible to define log rotation, extensions and frequency.
The …
Server Sent Events
Sisk supports sending messages through Server Sent Events out of the box. You can create disposable and persistent connections, get the …
Web Sockets
Sisk supports web sockets as well, such as receiving and sending messages to their client.
This feature works fine in most browsers, but in …
Discard syntax
The HTTP server can be used to listen for a callback request from an action, such as OAuth authentication, and can be discarded after …
Dependency injection
It is common to dedicate members and instances that last for the lifetime of a request, such as a database connection, an authenticated …
Streaming Content
The Sisk supports reading and sending streams of content to and from the client. This feature is useful for removing memory overhead for …
Enabling CORS (Cross-Origin Resource Sharing) in Sisk
Sisk has a tool that can be useful for handling Cross-Origin Resource Sharing (CORS) when exposing your service publicly. This feature is …
File Server
Sisk provides the Sisk.Http.FileSystem namespace, which contains tools for serving static files, directory listing and file conversion. This …
Extensions
Model Context Protocol
It is possible to build applications that provide context to agent models using large language models (LLMs) using the …
JSON-RPC Extension
Sisk has an experimental module for a JSON-RPC 2.0 API, which allows you to create even simpler applications. This extension strictly …
Service Providers
Service Providers is a way to port your Sisk application to different environments with a portable configuration file. This feature allows …
INI configuration provider
Sisk has a method for obtaining startup configurations other than JSON. In fact, any pipeline that implements IConfigurationReader can be …
API Documentation
The Sisk.Documenting extension allows you to generate API documentation for your Sisk application automatically. It leverages your code …
Basic Auth (discontinued)
Caution
Discontinued, do not use. The Sisk.BasicAuth package is no longer maintained and is deprecated on NuGet, with no replacement …
SSL Proxy (discontinued)
Caution
Discontinued, do not use. The Sisk.SslProxy package is no longer maintained and is deprecated on NuGet, with no replacement …
Advanced
Manual (advanced) setup
Use manual setup when you need to assemble the server pieces yourself, such as when one process must expose multiple hosts, ports, routers, …
Request lifecycle
Below is explained the entire life cycle of a request through an example of an HTTP request.
Receiving the request: each request creates an …
Forwarding Resolvers
A Forwarding Resolver is a helper that helps decode information that identifies the client through a request, proxy, CDN or load-balancers. …
Http server handlers
In Sisk version 0.16, we’ve introduced the HttpServerHandler class, which aims to extend the overral Sisk behavior and provide …
Multiple listening hosts per server
The Sisk Framework has always supported the use of more than one host per server, that is, a single HTTP server can listen on multiple ports …
HTTP Server Engines
The Sisk Framework is divided into several packages, where the main one (Sisk.HttpServer) does not include a base HTTP server - by default, …