Fable 5.24.0
dotnet tool install --global Fable --version 5.24.0
dotnet new tool-manifest
dotnet tool install --local Fable --version 5.24.0
#tool dotnet:?package=Fable&version=5.24.0
nuke :add-package Fable --version 5.24.0
Fable: F# |> JS
Fable is an F# to JavaScript compiler powered FSharp Compiler Services, designed to make F# a first-class citizen of the JavaScript ecosystem. Check the website for more information and if you find the project useful, don't forget to give us a star!
Fable actually uses a fork of FCS with a few tweaks. Binaries are in
lib/fcsfolder. See this PR for more info.
Getting started
Check this page.
Building
Requirements
Use VSCode Dev Container
You can use VSCode Dev Container to get a preconfigured environment both with requirements and VSCode extensions.
- You need to have docker installed and running.
- Install the Dev Container extension in VSCode
- Open the project in VSCode and click on the green button in the bottom left corner.
Use your machine
Make sure the following requirements are installed in your system:
- dotnet SDK 6 or higher
- node.js with npm
- Python 3 is installed and available as
python - Uv
- Rust
- Dart
- Erlang/OTP with rebar3 (for Beam/Erlang target)
Build
Run ./build.sh or ./build.cmd to see the build options.
When using VSCode, you can also run the build tasks from the command palette (Ctrl+Shift+P) by typing Run Task and selecting the task you want to run.
We also configured several debug configurations that you can use from the debug panel (Ctrl+Shift+D). This is useful as you can attach the debugger to the Fable compiler process to check what's going on.
Contributing
Just by using Fable you're already contributing! You can help the community a lot by sharing examples and experiences in your personal (or Fable's) blog and/or by editing the Fable Resources page.
Send bug reports (ideally with minimal code to reproduce the problem) and feature requests to this GitHub repository. To interact with the community you can use the Gitter chat but please note maintainers are not checking the chat regularly.
If you are up to contribute a fix or a feature yourself, you're more than welcome! Please send first an issue or a minimal Work In Progess PR so we can discuss the implementation details in advance.
List of changelogs
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net10.0 is compatible. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
This package has no dependencies.
| Version | Downloads | Last Updated |
|---|---|---|
| 5.24.0 | 9 | 10/22/2026 |
| 5.23.0 | 360 | 10/21/2026 |
| 5.22.0 | 1,435 | 10/16/2026 |
| 5.21.0 | 723 | 10/12/2026 |
| 5.20.1 | 207 | 10/12/2026 |
| 5.20.0 | 1,576 | 10/7/2026 |
| 5.19.0 | 882 | 10/3/2026 |
| 5.18.0 | 7,887 | 9/25/2026 |
| 5.17.2 | 7,507 | 9/12/2026 |
| 5.17.1 | 410 | 9/12/2026 |
| 5.17.0 | 3,915 | 9/8/2026 |
| 5.16.0 | 2,395 | 9/3/2026 |
| 5.15.0 | 3,476 | 8/25/2026 |
| 5.14.0 | 350 | 8/25/2026 |
| 5.13.0 | 45,048 | 7/24/2026 |
| 5.12.0 | 662 | 7/23/2026 |
| 5.11.0 | 1,957 | 7/17/2026 |
| 5.10.0 | 1,116 | 7/16/2026 |
| 5.9.0 | 6,521 | 7/15/2026 |
| 5.8.1 | 808 | 7/14/2026 |
### 🚀 Features
* *(all)* Support suppressing warnings via `// fable-disable` comments (#4808) ([f4a1a8cd](https://github.com/fable-compiler/Fable/commit/f4a1a8cdae2e8ac81edbdc6eba36cc140234170b))
* *(all)* Warn on duplicate CompiledName on union cases ([2098f64a](https://github.com/fable-compiler/Fable/commit/2098f64a25e96385306ef19ed8c289f3b6c84db9))
* *(js/ts)* Map static Decimal conversion methods (#5129) ([cd63e57e](https://github.com/fable-compiler/Fable/commit/cd63e57e909393ab493a1d8bfedbea9a50a377c9))
* *(js/ts)* Support System.Diagnostics.Stopwatch (#5100) ([eb68225f](https://github.com/fable-compiler/Fable/commit/eb68225ff74d1b455765d99998faa6fd3be32383))
* *(js/ts)* Add `JSX.spread` for `JSX.create` props (#5141) ([28427d62](https://github.com/fable-compiler/Fable/commit/28427d621b4e256fdcda83dd8340ed6817e0e60c))
* *(js/ts)* Derive case tests for TypeScriptTaggedUnion cases sharing a tag (#5130) ([3b8a9e21](https://github.com/fable-compiler/Fable/commit/3b8a9e218d27a47074b894f4768466f74c5a0f8e))
* *(js/ts)* Support CaseTest on Erase union cases (#5131) ([8cc21077](https://github.com/fable-compiler/Fable/commit/8cc210773e7b30bcf1071388d603b5c115cccd85))
* *(js/ts)* Derive erased union tests from interfaces (#5133) ([3a295308](https://github.com/fable-compiler/Fable/commit/3a2953087fd6749f211263b049d94eafd289472d))
### 🐞 Bug Fixes
* *(all)* Kill --run process on SIGTERM everywhere (#5140) ([09158b05](https://github.com/fable-compiler/Fable/commit/09158b05acf4c35b54111f4f1d72b96930bce18e))
* *(all)* Render warning code without repeating the tag (#5142) ([5c44e514](https://github.com/fable-compiler/Fable/commit/5c44e514626a230227e2aad040d439fa7da0491c))
* *(all)* Serialize output directory deduplication (#5143) ([b775276e](https://github.com/fable-compiler/Fable/commit/b775276eb843c5bf6533424b325eef25940abcaa))
* *(all)* Report compiler agent failures instead of hanging (#5144) ([09d06614](https://github.com/fable-compiler/Fable/commit/09d066146f662e331d1b73c0ba60f2a0ed935fbc))
* *(all)* Refresh unchanged outputs so up-to-date skip works (#5145) ([0529fcf8](https://github.com/fable-compiler/Fable/commit/0529fcf8b57cc5a6aca0a92aae5f444e53ea0f28))
* *(js/ts)* Round decimals below 0.1 correctly ([fca4c408](https://github.com/fable-compiler/Fable/commit/fca4c408a64e33c58293f12869975e5b61bcb96a))
* *(js/ts)* Keep decimal zero scale without leading zeros ([3076b45a](https://github.com/fable-compiler/Fable/commit/3076b45acacf39b8c99ec57025560ad355ab74db))
* *(js/ts)* Hash decimals by value in collections ([32a69e0d](https://github.com/fable-compiler/Fable/commit/32a69e0d00f567c9a838307e9ed51b3b1d519473))
* *(js/ts)* Keep .NET decimal scale through arithmetic (#5126) ([bdf0a6c8](https://github.com/fable-compiler/Fable/commit/bdf0a6c8cb56151a5431b5e3703f7ee165b26dba))
* *(js/ts)* Warn on type test against Pojo class (#5128) ([798df101](https://github.com/fable-compiler/Fable/commit/798df10179576a28f602fad58e204881792a0aef))
* *(js/ts)* Accept decimal integers up to 2^96 ([c9feb339](https://github.com/fable-compiler/Fable/commit/c9feb339fb8a4e98bebf17b3facdc42ecd22d628))
* *(js/ts)* Align decimal conversion, parsing and G format ([6430cdac](https://github.com/fable-compiler/Fable/commit/6430cdacec34e6327434af649eb0c9427d65608c))
* *(js/ts)* Add missing Async and Task members, cancel timed-out StartChild, bind Async in task { } (#5097) ([d063630d](https://github.com/fable-compiler/Fable/commit/d063630d58d62db21603d45a6bf54b172378c66e))
* *(js/ts)* Respect maxDegreeOfParallelism and cancel on failure in Async.Parallel (#5098) ([5de3271d](https://github.com/fable-compiler/Fable/commit/5de3271d8b47f1752c4e74c010e4314cf40bbcbe))
* *(js/ts)* Inline interface cases of TypeScriptTaggedUnion (#5146) ([2be66611](https://github.com/fable-compiler/Fable/commit/2be66611d884cd564fa3f7b06fd4a015add1cefd))
### ⚡ Performance Improvements
* *(all)* Faster project cracking (#5136) ([ba042783](https://github.com/fable-compiler/Fable/commit/ba0427839107c157436479958898688952df05c3))
* *(all)* Disable .NET telemetry for dotnet build (#5137) ([e9ffc41e](https://github.com/fable-compiler/Fable/commit/e9ffc41e5f53df018d4c141b9bfaa51ca76e0be5))
<strong><small>[View changes on Github](https://github.com/fable-compiler/Fable/compare/5ee8bbb832d9677ad702104ded8e00c09619393f..2098f64a25e96385306ef19ed8c289f3b6c84db9)</small></strong>