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.
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 …
SSL Proxy
Warning
This feature is experimental and should not be used in production. Please refer to this document if you want to make Sisk work with …
Basic Auth
The Basic Auth package adds a request handler capable of handling basic authentication scheme in your Sisk application with very little …
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 …
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, …