Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/ChristianMurphy/compile-to-web

Discover what languages can be compiled to Web Assembly
https://github.com/ChristianMurphy/compile-to-web

c c-plus-plus c-sharp compiler crystal discover f-sharp go haskell java julia kotlin language llvm nim python scala swift wasm web-assembly

Last synced: about 1 month ago
JSON representation

Discover what languages can be compiled to Web Assembly

Awesome Lists containing this project

README

        

# ![Compile to Web](compile-to-web.png)

Discover what languages can be compiled into [Web Assembly (WASM)](http://webassembly.org)

## Languages

| Language | Compiles to LLVM | Compiles to WASM |
| ------------------------- | :---------------------: | :---------------------: |
| [C](C/) | :ballot_box_with_check: | :ballot_box_with_check: |
| [C#](C%23/) | :ballot_box_with_check: | :ballot_box_with_check: |
| [C++](C++/) | :ballot_box_with_check: | :ballot_box_with_check: |
| [Crystal](Crystal/) | :ballot_box_with_check: | :grey_question: |
| [D](D/) | :ballot_box_with_check: | :ballot_box_with_check: |
| [F#](F%23/) | :ballot_box_with_check: | :ballot_box_with_check: |
| [Go](Go/) | :ballot_box_with_check: | :ballot_box_with_check: |
| [Haskell](Haskell/) | :grey_question: | :grey_question: |
| [Java](Java/) | :ballot_box_with_check: | :ballot_box_with_check: |
| [Julia](Julia/) | :ballot_box_with_check: | :grey_question: |
| [Kotlin](Kotlin/) | :ballot_box_with_check: | :ballot_box_with_check: |
| [Nim](Nim/) | :ballot_box_with_check: | :ballot_box_with_check: |
| [Python](Python/) | :grey_question: | :grey_question: |
| [Rust](Rust/) | :ballot_box_with_check: | :ballot_box_with_check: |
| [Scala](Scala/) | :ballot_box_with_check: | :no_entry: |
| [Swift](Swift/) | :ballot_box_with_check: | :no_entry: |
| [TypeScript](TypeScript/) | :grey_question: | :grey_question: |

### Key

| Icon | Meaning |
| :---------------------: | ------- |
| :ballot_box_with_check: | Success |
| :no_entry: | Broken |
| :grey_question: | Unknown |

## Installation

1. Install [Vagrant](https://www.vagrantup.com/downloads.html)
2. Install [VirtualBox](https://www.virtualbox.org/wiki/Downloads)
3. For a desired language `cd` into the folder, then run

```sh
vagrant up
vagrant ssh
sudo su -
install
build
```

## Contributing

Interested in seeing a new language? Found a bug in the examples?
Check out the [Contributing Guide](CONTRIBUTING.md) for how to get involved!

## FAQ

**Question**: Why is "Compile to LLVM" listed?

**Answer**: [LLVM](https://llvm.org/) was an [influence for WebAssembly technology](http://webassembly.org/docs/faq/#why-not-just-use-llvm-bitcode-as-a-binary-format) and [was the first compiler infastructure with official WASM support](http://webassembly.org/docs/faq#which-compilers-can-i-use-to-build-webassembly-programs).