upclangs.js

0.1.1 • Public • Published

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

/upclangs.js/

    Package Sidebar

    Install

    npm i upclangs.js

    Weekly Downloads

    2

    Version

    0.1.1

    License

    Apache-2.0

    Unpacked Size

    60.4 MB

    Total Files

    7

    Last publish

    Collaborators

    • ll201851