C# to JavaScript compiler – Now http://bridge.net
C# JavaScript Pascal PowerShell Other
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.
Compiler Fixed problem with reference semantics for caught variables (#417) Jul 24, 2015
Runtime Add client tests for tryparse fix Oct 3, 2016
build Updated psake Oct 5, 2014
.gitmodules Updated NRefactory and use IKVM instead of Cecil Jul 4, 2013
CommonAssemblyInfo.cs Runtime solution now only contains the CoreLib assembly Jan 20, 2013
Saltarelle.snk Sign the task and the executable. Jun 27, 2012
TODO.txt Added heuristic to run type initializers in the same order (#96) Jan 8, 2013
history.txt Release 2.7.0 Jul 27, 2015
readme.md Added Bridge.NET Acquires Saltarelle notice Jun 25, 2015


Saltarelle C# to JavaScript Compiler

Bridge.NET Acquires Saltarelle

On June 24th, 2015, Saltarelle was acquired by Bridge.NET and the two industry leading open-source C# to JavaScript compiler projects will now be merged under the name Bridge.NET.

More information available on the Bridge.NET and Saltarelle websites.


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

Before attempting to build the compiler, you need to check out all submodules: Go to the directory to where you cloned the project and run git submodule update --init --recursive.

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 teamcity.codebetter.com. Trunk builds are the latest releases, Develop builds are the most recent (potentially unstable) ones.


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 NuGet.org.