Search code examples
c#.netembedded-server

Embedded C# web server?


In Java I've been able to embed* the jetty server in my apps, but is there an equivalent embedded* server technology for .Net?

Open source (FLOSS) would be preferred if possible.

*by embedded I mean a lightweight web server app that could be packaged with my application and run on a user's local desktop machine to provide a web service locally.


Solution

  • The closest equivalent to Jetty I've found so far is Nancy, described as:

    a lightweight, low-ceremony, framework for building HTTP based services on .Net and Mono.

    Nancy is designed to handle DELETE, GET, HEAD, OPTIONS, POST, PUT and PATCH requests

    Nancy was designed to not have any dependencies on existing frameworks. Built with the .NET framework client profile, Nancy can be used pretty much wherever you want to, since it’s completely self contained with it’s own request and response objects.

    One of the core concepts in Nancy is hosts. A host acts as an adaptor for a hosting environment and Nancy, thus enabling Nancy to run on existing technologies such as ASP.NET, WCF and OWIN, or integrated in any given application.

    An even more lightweight option is Kayak (Update: project looks dead as of 2014-01-18), which its documentation describes as:

    a simple web server. It listens for connections, creates an in-memory representation of requests, and allows you to easily generate responses. It can be used in any C# program. Your code loads Kayak into its process space—not the other way around!

    and both Nancy and Kayak are MIT licensed.