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

Readme

Keywords

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