Skip to content
This repository has been archived by the owner on Mar 8, 2024. It is now read-only.

Latest commit

 

History

History
65 lines (46 loc) · 1.24 KB

README.md

File metadata and controls

65 lines (46 loc) · 1.24 KB

Clang.js

Run C/C++ in the Browser.

Overview

Live Demo

This repo is extending the great work from Ben Smith published in his CppCon 2019 WebAssembly talk. The WebAssembly binaries are copied from Ben's fork of llvm-project.

Installation

# NPM
npm install clang.js

# Yarn
yarn add clang.js

Usage

import { init, run } from 'clang.js';

async function main() {
  await init({
    // The path to the wasm resources:
    // - clang.wasm
    // - lld.wasm
    // - memfs.wasm
    // - sysroot.tar
    path: 'https://cdn.jsdelivr.net/npm/clang.js/dist',
  });

  const code = `
    #include <iostream>
    using namespace std;

    int fib(int n) {
      if (n < 2) return n;
      return fib(n-1) + fib(n-2);
    }

    int main() {
      cout << "fib(10) = " << fib(10) << endl;
    }`;
  
  run(code);
}

main();

Roadmap

  • Support for multiple code files
  • Support operation WebGL

License

Apache-2.0