Announcing WoofWare.Myriad.Plugins

This is a linkpost for WoofWare.Myriad.Plugins, a set of F# source generators (see it on NuGet). Go and read the README on GitHub if you’re interested. As of this writing, the following are implemented:

  • [<JsonParse>] (to stamp out jsonParse : JsonNode -> 'T methods)
  • [<RemoveOptions>] (to strip option modifiers from a type)
  • [<HttpClient>] (to stamp out a RestEase-style HTTP client)
  • [<GenerateMock>] (to stamp out a record type corresponding to an interface, for easy record-update syntax when mocking).

They are particularly intended for PublishAot ahead-of-time compilation contexts, in which reflection is heavily restricted, but also for anyone who doesn’t want reflection for whatever reason (e.g. “to obtain the ability to step through code in a debugger”, or “for more predictable speed”).