EVERYTHING XIAOMI
Get listed
Fable logo

Fable

Fable is an open-source compiler that lets developers write applications in F# and generate code for multiple target languages.

Place
#25 of 28
Score
5.6
Fable's website

What Fable is

Fable is an open-source compiler that lets developers write applications in F# and generate code for multiple target languages. JavaScript and TypeScript are stable targets; Dart and Python are beta, Rust is alpha, and PHP and Beam (Erlang) are experimental. For JavaScript, Fable produces readable ES2015-compatible output and supports importing JavaScript modules and NPM packages. The setup installs Fable as a .NET tool and adds Fable.Core to an F# project. Its command-line interface includes release, watch and clean commands, with output-directory and source-map options. The project names Visual Studio Code and JetBrains Rider as editor choices and links to an online REPL. Listed libraries include Fable.Core, Fable.Browser.Dom, Fable.Elmish.React and Thoth.Json. JavaScript projects can use Vite, Parcel or Webpack. Python targets require Python 3.12 or newer, while Beam requires Erlang/OTP 25 or newer and rebar3. The repository uses the MIT license.

Good

  • Compiles F# to stable JavaScript and TypeScript
  • Supports JavaScript modules and NPM packages
  • Includes release, watch and clean CLI commands
  • Offers integrations with Vite, Parcel and Webpack
  • Provides an online Fable REPL

Watch out

  • Several targets remain beta, alpha or experimental
  • Not every NuGet library is Fable-compatible
  • Python target requires Python 3.12 or newer
  • Beam setup requires Erlang/OTP 25 and rebar3

Who it suits

Fable suits .NET or JavaScript developers who want to build applications with F# and target browser or other language runtimes. It also fits teams comfortable evaluating targets with different maturity levels.

Verdict

Fable gives F# developers a source-to-source path into JavaScript, TypeScript and additional targets. Stable JavaScript tooling is its clearest fit, while other back ends carry the maturity limits listed in the documentation.

The facts

Each one read from Fable's own pages, with the date it was checked.

What it does

Audience
The documentation describes Fable as a way to build applications with F#, including browser UIs, and provides guidance for .NET and JavaScript developers.checked 9 Oct 2026
Beam requirement
The Beam setup guide requires Erlang/OTP 25 or higher and rebar3.checked 4 Oct 2026
Build integrations
For JavaScript projects, Fable integrates with bundlers including Vite, Parcel, and Webpack.checked 9 Oct 2026
Build workflow
The CLI supports release, watch, and clean commands, plus options such as output directory and source maps.checked 4 Oct 2026
Compatibility limit
Not all NuGet packages work with Fable; the documentation advises checking whether each library is Fable-compatible.checked 9 Oct 2026
Dependencies
Fable uses NuGet to load F# libraries, while JavaScript dependencies are listed in package.json.checked 9 Oct 2026
Editor support
The official site names Visual Studio Code and JetBrains Rider among the editors usable with Fable.checked 9 Oct 2026
JavaScript interop
Fable supports importing JavaScript modules and using NPM packages from F# code.checked 4 Oct 2026
JavaScript output
Fable transpiles F# to ES2015 JavaScript.checked 9 Oct 2026
Language features
The site highlights F# features including immutability by default, pattern matching, units of measure, and type providers.checked 9 Oct 2026
Libraries
The documentation lists Fable.Core, Fable.Browser.Dom, Fable.Elmish.React, and Thoth.Json as libraries available for Fable projects, and cautions that not all NuGet libraries work with Fable.checked 4 Oct 2026
License
The Fable repository identifies its license as MIT.checked 9 Oct 2026
Online access
The homepage links to an online Fable REPL.checked 4 Oct 2026
Other targets
Dart and Python are listed as beta, Rust as alpha, and PHP and Beam (Erlang) as experimental.checked 4 Oct 2026
Output targets
Fable lists JavaScript and TypeScript as stable targets, Dart and Python as beta, Rust as alpha, and PHP and Beam (Erlang) as experimental.checked 9 Oct 2026
Project setup
The getting started guide installs Fable as a .NET tool and adds Fable.Core to an F# project.checked 4 Oct 2026
Python requirement
Fable Python targets Python 3.12 or higher; Python 3.10 and 3.11 are deprecated.checked 4 Oct 2026
Stable targets
JavaScript and TypeScript are listed as stable targets.checked 4 Oct 2026
Support
The project repository accepts bug reports and feature requests, and notes that maintainers do not check its Gitter chat regularly.checked 9 Oct 2026
Testing
The documentation says unit testing is available through Fable.Mocha and that another test runner can be used.checked 9 Oct 2026
What it does
Fable is a compiler that lets developers use F# to build applications.checked 9 Oct 2026

Alternatives to Fable

All alternatives
  1. 1

    JSweet

    Free planOpen sourceAndroidiOSWebAPI
    7.7Free plan
  2. 2SWC logo

    SWC

    Free planAndroidWebAPILinux
    7.1Free plan
  3. 3

    Transcrypt

    Free planWebLinuxmacOSSelf-hosted
    6.7Free plan
  4. 4
    6.6Free plan
  5. 5

    Google Web Toolkit

    Free planWebExtensionLinuxmacOS
    6.5Free plan
  6. 6

    Haxelib

    Free planAPILinuxmacOSWindows
    6.5Free plan