Skip to content

Releases: giraffe-fsharp/Giraffe


09 Apr 08:18
Choose a tag to compare

See notes for 6.0.0-alpha-2.


14 Nov 23:06
Choose a tag to compare
6.0.0-alpha-2 Pre-release
  • Added setContentType handler
  • Made the RecyclableMemoryStreamManager configurable through DI
  • Improved Xml.Serializer to also make use of the RecyclableMemoryStreamManager


10 Nov 09:01
Choose a tag to compare
6.0.0-alpha-1 Pre-release

Upgraded to .NET 6 and F#'s new native task computation expression.


24 May 07:52
Choose a tag to compare

Stable release of latest 5.0.0 RC with additional XML comment fixes to comply with latest F# compiler services.


08 Dec 08:55
Choose a tag to compare
5.0.0-rc-6 Pre-release

Updated Ply from 0.1.* to 0.3.*.


08 Dec 01:38
Choose a tag to compare
5.0.0-rc-5 Pre-release

Replaced TaskBuilder.fs with Ply for Giraffe's task computation expressions. Please see #421 for more information.

This was a change long in the making and has been factored into the 5.0.0 release. Ply is being actively developed by Crowded and has better exception stack traces for task computations and several performance improvements over TaskBuilder.fs.


07 Dec 10:03
Choose a tag to compare
5.0.0-rc-4 Pre-release
  • Fixed bug when a NestedEndpoint preceded a MultiEndpoint in Giraffe.EndpointRouting (see #452)
  • Removed the sub-module GiraffeMiddleware from the Giraffe.EndpointRouting module (simply keep using the UseGiraffe extension method of an IApplicationBuilder)
  • Added an overload for UseGiraffe to pass in an Endpoint list:
    • Before:
      app.UseEndpoints(fun e -> e.MapGiraffeEndpoints(endpoints))
    • Now:


01 Dec 16:46
Choose a tag to compare
5.0.0-rc-3 Pre-release
  • Added ReadBodyBufferedFromRequestAsync extension method to buffer and read a the request body and make subsequent reads possible (see #449)
  • Changed how the serialization modules are structured:
    • IJsonSerializer is now Json.ISerializer
    • Utf8JsonSerializer is now Utf8Json.Serializer
    • NewtonsoftJsonSerializer is now NewtonsoftJson.Serializer
    • SystemTextJsonSerializer is now SystemTextJson.Serializer
    • IXmlSerializer is now Xml.ISerializer
    • DefaultXmlSerializer is now SystemXml.Serializer
  • Converted all HttpContext extension methods into C# compatible extension methods, meaning that function arguments had to be merged into tuples
  • Removed the => operator from Giraffe.EndpointRouting
  • Changed the GET, POST, PUT, HEAD, etc. functions to accept an Endpoint list instead of an Endpoint
    • Before: GET => route "/foo" (text "bar"), After: GET [ route "/foo" (text "bar") ]
    • One can now compose routes easier:
      GET [
          route "/a" (text "A")
          route "/b" (text "B")
          route "/c" (text "C")
  • Added GET_HEAD to the endpoint routing functions, which will handle a HEAD request for the same GET handler.


26 Nov 21:47
Choose a tag to compare
5.0.0-rc-2 Pre-release
  • Fixed pre-conditions validation issue (see #424)
  • Fixed parsing issue with Guids and ShortIds in Giraffe.EndpointRouting (see #447)
  • Added routexp http handler to default router (see #446)


22 Nov 10:25
Choose a tag to compare
5.0.0-rc-1 Pre-release

Upgraded to .NET 5. The 5.x version of Giraffe is targeting net5.0 and dropping support for all other target frameworks. If you cannot upgrade a project to .NET 5 yet then stay on an older version of Giraffe until you can. Giraffe has always been a .NET Core centered project and in the .NET Core world (and now .NET 5 world) there is little to no reason why a project should remain on an old .NET Core version for a long time when upgrade paths are mostly as simple as changing the <TargetFramework> property in an .fsproj file.

Summary of changes going into 5.0.0-rc-1

  • Only supported target framework is .NET 5

  • Added Giraffe.EndpointRouting namespace with a version of a few routing handlers which integrate with ASP.NET Core's endpoint routing API

    • Currently supported are: route, routef, subRoute and HTTP verb handlers such as GET, POST, PUT, etc.
    • Check the Endpoint Routing documentation for more details
    • Or check the EndpointRoutingApp sample app for how to use Giraffe.EndpointRouting
  • Replaced Giraffe.GiraffeViewEngine with the standalone NuGet package Giraffe.ViewEngine

  • New JsonOnlyNegotiationConfig for setting a content negotiation policy which only supports JSON serialisation (no XML for those who don't need it)

  • Added SystemTextJsonSerializer which uses System.Text.Json for JSON serialisation when configured as the desired JSON serializer in Giraffe

  • Improved RegEx http handlers in original (non Endpoint routing) http handlers

  • Swapped Markdown docs for XML docs for all functions.

  • Added support for complex model binding (see #416)