Skip to content
C# to JavaScript compiler
C# JavaScript Puppet Other
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.

Saltarelle C# to JavaScript Compiler

Project web site:


The entire project is licensed under the Apache License 2.0, which is a permissive license, so there is no issue using the software in any kind of application, commercial or non-commercial. The reason for this license is that it is the one used in the runtime library (which is licensed by Nikhil Kothari, not me).

Building the Compiler

To build the compiler and all libraries, open PowerShell, go to the build directory and type .\psake.ps1. This will generate all outputs in the bin\ directory, of which the .nupkg files are the real artifacts. After running the build script once, you can build both the compiler and the runtime library directly from Visual Studio, but you can't build either from VS until you have run the build script once. The following options exist (usage: .\psake.ps1 -properties @{opt1=value1; opt2=value2 ...}

  • configuration: Debug or Release.
  • skipTests: Do not run the tests. Useful to use when developing.
  • noAsync: Do not compile tests that depend on the platform compiler being able to use C#5 features. Use to build on .net 4.0
  • autoVersion: By default the build script will generate incrementing version numbers depending on tags and git log. By setting this to $false you can make it only use tags. This option is probably not that useful to you.

Obtaining binaries

All packages can be installed through NuGet, as well as downloaded from the CI server at Master (latest release), Develop (latest, potentially unstable).


Any contribution is very welcome. You can contribute by reporting an issue, by creating an import library for your favorite JavaScript library, by implementing one of the features on the unsupported list, or by just using the software.

This project uses the git-flow branching model. This means that all work on future versions should be performed on separate branches forked off of the develop branch. Each commit on the master branch must be tagged with a tag with a name like 'release-version', and will be automatically pushed to

Something went wrong with that request. Please try again.