We're happy to announce a new member of the SAFE family: SAFE.Utils. When we introduced the SAFE.Meta packages in February 2024, our aim was to provide a Client package and Server package that could serve as a single dependency for a basic F# app. We also added a couple of utilities that help you set up Fable.Remoting and model remote data. If you are still unfamiliar with the utilities included in the Meta packages, you can read more about them in earlier blog posts. Recently, we extracted these utilities into their own package.
Reduced dependencies
The main benefit of this change is that it's now possible to use the SAFE utilities without requiring all dependencies that a full SAFE app relies on. Here's a list of dependencies that are included in the meta packages, but not in the Utils packages:
Client
- Fable.Elmish
- Fable.Elmish.React
- Fable.Elmish.HMR
- Fable.Mocha
- Feliz
Server
- Saturn
Using the SAFE.Utils packages
If you are already using the SAFE.Meta packages, you should not notice anything from this change; next time you update the meta packages, you'll automatically pull in the util packages. The functionality remains in the SAFE
namespace. If you are not using the meta packages, you can install the SAFE.Client.Utils and SAFE.Server.Utils packages from NuGet.
We hope that by extracting these utilities into their own repository, we provide developers with even more flexibility in how they build SAFEish apps. Let us know how you feel about this new package on Twitter or BlueSky, or raise an issue if you have ideas on how to improve them!