Directly compiling Scheme to WebAssembly: lambdas, recursion, iteration

This page summarizes the projects mentioned and recommended in the original post on news.ycombinator.com

Our great sponsors
  • SurveyJS - Open-Source JSON Form Builder to Create Dynamic Forms Right in Your App
  • WorkOS - The modern identity platform for B2B SaaS
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • rasm

    Racket to WebAssembly Compiler (by GrantMatejka)

  • I built rasm (https://github.com/GrantMatejka/rasm) to compile racket to wasm. Definitely not production grade, but fun nonetheless

  • s7-playground

    Try s7 scheme in your browser, powered by WebAssembly

  • This project is very exciting. In the meantime, there are a couple of options:

    BiwaScheme: https://www.biwascheme.org/

    Advantages: written in JavaScript, with excellent JS interop. Project has some history.

    Disadvantages: slower than S7 (though still plenty fast for many uses), less-complete (e.g., no syntax-rules or syntax-case, though it does have its own define-macro).

    S7 Scheme: https://cm-gitlab.stanford.edu/bil/s7

    Written in C, but can be transpiled to WASM (see https://github.com/actonDev/s7-playground/ )

    Advantages: This project also has some history. Considerably faster than BiwaScheme.

    Disadvantages: JS interop is clumsier (basically the same issues as JS interop with any WASM code... this could probably be mitigated considerably if someone wanted to take the time).

  • SurveyJS

    Open-Source JSON Form Builder to Create Dynamic Forms Right in Your App. With SurveyJS form UI libraries, you can build and style forms in a fully-integrated drag & drop form builder, render them in your JS app, and store form submission data in any backend, inc. PHP, ASP.NET Core, and Node.js.

    SurveyJS logo
  • biwascheme

    Scheme interpreter written in JavaScript

  • This project is very exciting. In the meantime, there are a couple of options:

    BiwaScheme: https://www.biwascheme.org/

    Advantages: written in JavaScript, with excellent JS interop. Project has some history.

    Disadvantages: slower than S7 (though still plenty fast for many uses), less-complete (e.g., no syntax-rules or syntax-case, though it does have its own define-macro).

    S7 Scheme: https://cm-gitlab.stanford.edu/bil/s7

    Written in C, but can be transpiled to WASM (see https://github.com/actonDev/s7-playground/ )

    Advantages: This project also has some history. Considerably faster than BiwaScheme.

    Disadvantages: JS interop is clumsier (basically the same issues as JS interop with any WASM code... this could probably be mitigated considerably if someone wanted to take the time).

  • schism

    Discontinued A self-hosting Scheme to WebAssembly compiler

  • https://github.com/google/schism

    For some reason, Google was working on a Scheme WASM compiler, which they got self-hosting. It was then abandoned. I don't really know what they were trying to accomplish with that project.

  • proposals

    Tracking WebAssembly proposals (by WebAssembly)

  • The proposal was recently bumped to stage 4 (the penultimate stage) with at least a couple of runtimes working on implementing (besides v8, which has supported it for quite awhile now)

    https://github.com/WebAssembly/proposals

  • WorkOS

    The modern identity platform for B2B SaaS. The APIs are flexible and easy-to-use, supporting authentication, user identity, and complex enterprise features like SSO and SCIM provisioning.

    WorkOS logo
NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts