All Projects → PetterS → Clang Wasm

PetterS / Clang Wasm

How to build webassembly files with nothing other than standard Clang/llvm.

Programming Languages

c
50402 projects - #5 most used programming language
cpp
1120 projects

Projects that are alternatives of or similar to Clang Wasm

Webassembly Examples
From Simple To Complex. A complete collection of webassembly examples.
Stars: ✭ 177 (+118.52%)
Mutual labels:  clang, webassembly
Desktop App
💻 Mixin Messenger desktop app for Windows, macOS, and Linux
Stars: ✭ 78 (-3.7%)
Mutual labels:  webassembly
Seeless
C IDE for iOS
Stars: ✭ 71 (-12.35%)
Mutual labels:  clang
Pulsefft
A WebAssembly implementation of the C Fast Fourier Transform library kissFFT
Stars: ✭ 76 (-6.17%)
Mutual labels:  webassembly
Contract
Play EOS Game On
Stars: ✭ 73 (-9.88%)
Mutual labels:  webassembly
Meta Clang
Clang C/C++ cross compiler and runtime for OpenEmbedded/Yocto Project
Stars: ✭ 76 (-6.17%)
Mutual labels:  clang
Web Audio Javascript Webassembly Sdk Interactive Audio
🌐 Superpowered Web Audio JavaScript and WebAssembly SDK for modern web browsers. Allows developers to implement low-latency interactive audio features into web sites and web apps with a friendly Javascript API. https://superpowered.com
Stars: ✭ 68 (-16.05%)
Mutual labels:  webassembly
Doomfire
DOOM fire implementation written in rust
Stars: ✭ 80 (-1.23%)
Mutual labels:  webassembly
Codechecker
CodeChecker is an analyzer tooling, defect database and viewer extension for the Clang Static Analyzer and Clang Tidy
Stars: ✭ 1,209 (+1392.59%)
Mutual labels:  clang
Gutenberg Parser Rs
An experimental Rust parser for WordPress Gutenberg post format
Stars: ✭ 76 (-6.17%)
Mutual labels:  webassembly
Blazor Wasm
Blazor and WebAssembly examples (part of a Blazor presentation)
Stars: ✭ 76 (-6.17%)
Mutual labels:  webassembly
Wagi
Write HTTP handlers in WebAssembly with a minimal amount of work
Stars: ✭ 75 (-7.41%)
Mutual labels:  webassembly
Cvise
Super-parallel Python port of the C-Reduce
Stars: ✭ 77 (-4.94%)
Mutual labels:  clang
Veracruz
Main repository for the Veracruz privacy-preserving compute project.
Stars: ✭ 71 (-12.35%)
Mutual labels:  webassembly
Clang Cfi Showcase
Sample programs that illustrate how to use control flow integrity with the clang compiler
Stars: ✭ 78 (-3.7%)
Mutual labels:  clang
Magnum Bootstrap
Bootstrap projects for Magnum C++11/C++14 graphics engine
Stars: ✭ 69 (-14.81%)
Mutual labels:  webassembly
Rollup Plugin Wasm
This module has moved and is now available at @rollup/plugin-wasm / https://github.com/rollup/plugins
Stars: ✭ 75 (-7.41%)
Mutual labels:  webassembly
Fastq.bio
An interactive web tool for quality control of DNA sequencing data
Stars: ✭ 76 (-6.17%)
Mutual labels:  webassembly
Opus Stream Decoder
Instantly decode Ogg Opus audio streams in chunks with JavaScript & WebAssembly (Wasm)
Stars: ✭ 80 (-1.23%)
Mutual labels:  webassembly
React Vim Wasm
Vim editor embedded in your React web application
Stars: ✭ 77 (-4.94%)
Mutual labels:  webassembly

Webassemly with only Clang 8+ (tested with 11)

I did not find instructions for this anywhere online, so here they are. We can now build small wasm files with nothing other than Clang (e.g. Emscripten is not needed).

  1. Install Clang 8 or later. Linux packages are here.
  2. make
  3. To try the built wasm file, run python3 server.py.

Optional: To disassemble the wasm file, you can install wabt and run make wat.

Docker

The following command builds an ubuntu:18.04 image containing the dependencies needed to build the working example.

$ docker build -t clang-wasm-ubuntu:18.04 .

Then, you can mount the source files in a container running the image and follow the instructions above.

docker run --rm -it -v`pwd`:/opt/src -w /opt/src -p4242:4242 clang-wasm-ubuntu:18.04

[email protected]:/opt/src# make
.... <snip> ...
[email protected]:/opt/src# python3 server.py
serving at port 4242
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].