Are you happy with your logging solution? Would you help us out by taking a 30-second survey? Click here


Author Apache Storm topologies and components in F#

Subscribe to updates I use FsStorm

Statistics on FsStorm

Number of watchers on Github 21
Number of open issues 0
Average time to close an issue 4 months
Main language F#
Average time to merge a PR about 1 hour
Open pull requests 0+
Closed pull requests 2+
Last commit almost 3 years ago
Repo Created about 5 years ago
Repo Last Updated almost 3 years ago
Size 425 KB
Organization / Authorfsstorm
Page Updated
Do you use FsStorm? Leave a review!
View FsStorm activity
View on github
Fresh, new opensource launches 🚀🚀🚀
Trendy new open source projects in your inbox! View examples

Subscribe to our mailing list

Evaluating FsStorm for your project? Score Explanation
Commits Score (?)
Issues & PR Score (?)

FsStorm Windows build Mono/OSX build

A project for defining and running Apache Storm topologies in F#

See this blog post for an intro and docs for an overview.

Join the conversation: Gitter

Update: Insights gained from working with FsStorm have led to a spinoff: FsShelter, check it out if you like the idea of statically typed topologies.



Running the tests

Building from command line runs the unit tests. IDE: Install NUnit plugin for VS or MonoDevelop to see the unit-tests in Test Explorer and step through the code under debugger.

Submitting the topology

Have a local Storm installed and running. Make sure F# interpreter is in the path and from the repository root run:

fsi src\FstSample\Submit.fsx

or, if running on Mono:

fsharpi src/FstSample/Submit.fsx

Seeing the topology in action

Open Storm UI and see the Storm worker logs for runtime details.

Specifying a custom shell script

When running on Mono, it can sometimes be useful to pass additional command line arguments to mono when launching a component. For example, you may want to run a profiler:

mono --log:report program.exe

In order to accomplish this with FsStorm, you will need to do the following:

  1. Specify Config = jval [ Storm.Config.useShellScript, jval true ] in your topology definition for the desired component.
  2. Create a shell script with a .sh extension in your project that matches the Id of the desired component. For example, The content of the script should invoke mono with the desired arguments and specify the name of your executable: sh #!/bin/bash mono --profile=log:report FstSample.exe
  3. Set the shell script to be copied to the output folder when the project is compiled.
FsStorm list of languages used
Other projects in F#