Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Helpful references #15

Open
tshort opened this issue May 18, 2018 · 2 comments
Open

Helpful references #15

tshort opened this issue May 18, 2018 · 2 comments

Comments

@tshort
Copy link
Collaborator

tshort commented May 18, 2018

This is just to document some helpful pointers to code that might help for Charlotte development. Here's a start:

  • Walt is an MIT-licensed JavaScript package that compiles a JavaScript-like language to WebAssembly. It's a close match to the WebAssembly/Charlotte approach. Right now, it looks like it can do:
    • Arrays
    • Composite objects
    • Direct binary wasm generation without extra tools
@tshort
Copy link
Collaborator Author

tshort commented May 25, 2018

wasm-ffi is a JavaScript package that helps with interoperability of JavaScript and WebAssembly. For example, it handles calling wasm functions with string or array arguments. Currently, it supports wasm compiled by C and Rust, and AssemblyScript is upcoming. It looks like a great fit for use with Charlotte. I'm not sure we have to do much on our end to support it other than following the C ffi when we write out structs, arrays, and strings to memory.

wasm-bindgen is another interop package. This one is more Rust-focused, but it might have some helpful ideas.

@tshort
Copy link
Collaborator Author

tshort commented Jun 29, 2018

Cheerp is hybrid like Charlotte in that it can compile to either JS or WASM (it compiles C/C++). It's GPL2, so we can't look at the code. I assume we can look at the docs. Blog here.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant