Suave is a simple web development F# library providing a lightweight web server and a set of combinators to manipulate route flow and task composition. Suave is inspired in the simplicity of Happstack and born out of the necessity of embedding web server capabilities in my own applications. Suave supports Websocket, HTTPS, multiple TCP/IP bindings, Basic Access Authentication, Keep-Alive. Suave also takes advantage of F# asynchronous workflows to perform non-blocking IO. In fact, Suave is written in a completely non-blocking fashion throughout. We have a NuGet ready for your testing needs; Suave is an excellent server for running in-process integration tests, as it's very fast to spawn. On an ordinary laptop, running hundreds of randomized tests and micro-benchmarks as well as all Suave unit tests, take about 5 seconds on mono.
Features
- The simplest Suave application is a simple HTTP server that greets all visitors with the string "Hello World!"
- Suave.X where X is a module is where we expect users to look
- You need to document your methods with '///' to create XML-doc
- A XML documentation file is generated together with the compilation and is distributed with the NuGet so that others can read your code's intentions easily
- Don't put unnecessary parenthesis unless it makes the code more clear
- Run Tests as a console app. Return status code = 0 means success