Lightweight web server for .NET and Mono
C# Ruby Shell
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.
packaging/nuspec Updated for new Fix Oct 8, 2013
src Updated for new Fix Oct 8, 2013
LICENSE.txt Updated README because Flux is now fully OWIN-compliant Aug 4, 2012
rakefile.rb Update file names InstallGems.bat and in rakefile.rb Oct 7, 2013


A lightweight OWIN web server for .NET and Mono


Because there aren't enough lightweight OWIN web servers for .NET and Mono. Sometimes you just don't want to run everything on top of IIS or XSP. Sometimes you just want a command-line app that does the job for you. Hence Flux.


You can use Flux as a command-line executable. Just cd to the directory with your application assemblies in it and run flux. By default, Flux runs on port 3333. If you want, you can specify a port number:

flux 80

You can also reference Flux from your own executable application and start it internally. Take a look at Program.cs in the source to see how that works.

Technical stuff

Flux uses TcpListener and does its best to handle headers and such itself. It doesn't use HttpListener because that requires elevated privileges, Eris knows why.

Flux also makes use of Fix, which is "glue" for OWIN. Fix works by finding methods in code that have been marked with a MEF Export attribute with the contract name "Owin.Application".

Finally, Flux works natively with Simple.Web, as you can see in this test project.


Fix and Flux use the OWIN standard for interoperability between Web Servers and Web Frameworks or Applications, without taking a dependency on the optional Owin assembly. More information about OWIN is available here.

Caveat Utilitor

Flux is very much under development, and only intended for development use. Right now, what error handling exists is unsophisticated. There's a whole bunch of HTTP stuff that isn't implemented, such as the Connection: keep-alive header. It certainly won't handle SSL, but proxies like nginx will take care of that kind of thing. Most importantly, it hasn't been optimized or checked for memory leaks and the like yet.

As at the time of this writing, I haven't tested Flux with Mono.


Pull requests are very much accepted, so if you can either fix a problem or add a cool feature please do. If you find a problem that you can't (or just don't want to) fix, please raise an issue.