{"id":13779251,"url":"https://github.com/grassel/wac-esp","last_synced_at":"2025-05-11T12:33:05.348Z","repository":{"id":84484468,"uuid":"180638073","full_name":"grassel/wac-esp","owner":"grassel","description":"Web Assembly Interpreter for ESP32 family of micro controllers running the ESP-IDF development framework, based on the great work at kanaka/wac","archived":false,"fork":false,"pushed_at":"2019-09-30T10:25:38.000Z","size":72,"stargazers_count":76,"open_issues_count":2,"forks_count":3,"subscribers_count":5,"default_branch":"master","last_synced_at":"2024-10-30T14:58:15.506Z","etag":null,"topics":["esp32","esp32-idf","runtime","web","webassembly"],"latest_commit_sha":null,"homepage":null,"language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/grassel.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null}},"created_at":"2019-04-10T18:12:42.000Z","updated_at":"2024-05-09T15:26:10.000Z","dependencies_parsed_at":"2024-01-16T14:04:05.963Z","dependency_job_id":null,"html_url":"https://github.com/grassel/wac-esp","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/grassel%2Fwac-esp","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/grassel%2Fwac-esp/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/grassel%2Fwac-esp/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/grassel%2Fwac-esp/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/grassel","download_url":"https://codeload.github.com/grassel/wac-esp/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":225049036,"owners_count":17412915,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["esp32","esp32-idf","runtime","web","webassembly"],"created_at":"2024-08-03T18:01:03.113Z","updated_at":"2024-11-17T14:31:17.461Z","avatar_url":"https://github.com/grassel.png","language":"C","funding_links":[],"categories":["C"],"sub_categories":[],"readme":"# wac - WebAssembly in C\n\nA Minimal WebAssembly interpreter written in C. Supports the\nWebAssembly MVP (minimum viable product) version of the WebAssembly\nspecification.\n\nThis is a fork of the great works at **kanaka/wac** focuses on making the\nWASM Interpreter work on embedded devices compatible with \nEspressif ESP32 and their ESP-IDF development environment. This environment \nuses Amazon FreeRTOS.\n\nPlease read the intro at kanaka/wac .\n\nRuns simple WASM code generated by Emscipten or CLANG/LLVM V8.\n\n\n## Currently limitations:\n\n* Only supports a non-interactive variant of `wac`. No plans to change.\n* WASM binary code is included as a static buffer in wac.c \n  Plan is to support network download by integrating the HTTP client component.\n* Function import's are unsupported, no dynamic DLL loading, no calls to the OS.\n  I might add some support in the future.\n* Systamatic testing has not been done.\n\n\n## Build Instructions for ESP32\n\nGet the ESP-IDF development kit from https://docs.espressif.com/projects/esp-idf/en/stable/index.html and follow the instructions how to download, install, and configure. \n\nThe environment variable ```ESP_PLATFORM``` indicates we are building for ESP32:\n\n```export ESP_PLATFORM=1```\n\nRun once, the only thing to do is to adjust the devcie port of your module:\n```make menuconfig``` \n\nIn the root directory ```./wac```, build everything:\n\n```make all```  \n\nFlash the built image and start the monitor:\n\n```make flash monitr```\n\nThe output is pretty verbouse becasue tracing is enabled (change in platform.h). If everything goes fine it prints the return value, tells its done and reboots to start over. Stop the monitor with ```CTRL - ]```.\n\n\n## Build Instructions for Ubuntu\n\nThe purpose of the Ubuntu built is to give an easier environment to track down bug,\nand to study the code.\n\nFollow the instructions at kanaka/wac to install dependencies (works for me on Ubuntu 18.04.\nand does not work on Mac OS).\n\nCreate the out directory\n\n```mkdir ./out```\n\nUnset ESP_PLATFORM environment variable (otherwise the built will be for ESP)\n\n```unset ESP_PLATFORM```\n\nMake the executable out/wac\n\n```make all```\n\n## License\n\nMPL-2.0 (see LICENSE).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgrassel%2Fwac-esp","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgrassel%2Fwac-esp","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgrassel%2Fwac-esp/lists"}