As I recall, Suave is on its way out, and was replaced by Saturn. Saturn is built on Giraffe.
I found Saturn to be incredibly confusing because you need to understand both it and Giraffe to be able to use it.
I used Giraffe for a while, but I still needed to understand the ASP.NET middleware approach, which didn't match Giraffe's.
Also, ASP.NET has a new endpoint based routing framework which is supposed to be very fast. Giraffe has started to adopt that, but I found most of the docs refer to the old way of doing things. So although I'm using it a little bit in the code above, I found it easier to just use ASP.NET directly in most cases.
One of the issues I have with Giraffe is that it gives you too many ways to deal with routing while also asking to use custom operators. And yet I cannot get a list of all defined routes.
Honestly, I do not find their goal of being a functional interface to ASP.NET Core sufficiently compelling. Maybe they should be a bit more specific?
https://github.com/darklang/dark/blob/main/fsharp-backend/sr...