Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?


Failed to load latest commit information.
Latest commit message
Commit time
Sodium - Functional Reactive Programming (FRP) library for multiple languages

This is based on Flapjax, Yampa, scala.React and a number of other Functional
Reactive Programming efforts, as well as a lot of personal experience. Enjoy.

  C++ - complete, but the memory management is not quite right yet - in separate sodium-cxx repository
  C# - complete (source in dotnet folder, binaries in SodiumFRP NuGet package)
  F# - complete (source in dotnet folder, binaries in SodiumFRP.FSharp NuGet package)
  Java - complete
  Kotlin - complete - in separate sodium-kotlin repository
  Scala - complete
  Typescript/Javascript - complete - in separate sodium-typescript repository

  Haskell - deprecated in favour of Heinrich Apfelmus's Reactive Banana
  Embedded-C - just an experiment
  Rust - complete - in separate sodium-rust repository

Got a question about how to use Sodium? Go to Sodium user forum:

Found a bug? Raise an issue at

Buy the book "Functional Reactive Programming" at

Drop by our blog at