FsShelter is a library for defining and running Apache Storm topologies in F# using statically typed streams.
It is a complete rewrite of FsStorm with the goals of static typing, modularity, and pluggable serialization.
As of v5 the library is split into two NuGet packages:
- FsShelter — core topology DSL and in-process self-hosting runtime (depends only on Disruptor).
- FsShelter.Multilang — Storm cluster integration: multilang task execution, Nimbus client, Json and Protobuf serializers (depends on Protobuf, Thrift, Newtonsoft.Json, FsPickler). Protobuf requires the corresponding Storm-side serializer ProtoShell.
See docs for an intro and an overview.
- At the moment FsShelter doesn't support direct emits.
With .NET SDK 6 installed:
dotnet tool restore
dotnet fake build
Building from the command line runs the unit tests.
IDE: Install the NUnit plugin for VS or MonoDevelop to see the unit tests in Test Explorer and step through the code with the debugger.
Have a local Storm instance installed and running.
dotnet samples/WordCount/bin/Release/WordCount.dll submit-local
Open Storm UI and see the Storm worker logs for runtime details.
FsShelter is Apache 2.0 licensed and is free to use and modify.