{"id":16801040,"url":"https://github.com/ids1024/wasm-loader-browsix","last_synced_at":"2025-07-28T12:14:16.402Z","repository":{"id":81428318,"uuid":"186055444","full_name":"ids1024/wasm-loader-browsix","owner":"ids1024","description":null,"archived":false,"fork":false,"pushed_at":"2019-08-07T22:14:55.000Z","size":127,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-03-17T05:44:27.350Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ids1024.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,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2019-05-10T21:17:13.000Z","updated_at":"2023-11-03T15:49:44.000Z","dependencies_parsed_at":"2023-06-14T06:15:29.935Z","dependency_job_id":null,"html_url":"https://github.com/ids1024/wasm-loader-browsix","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/ids1024/wasm-loader-browsix","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ids1024%2Fwasm-loader-browsix","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ids1024%2Fwasm-loader-browsix/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ids1024%2Fwasm-loader-browsix/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ids1024%2Fwasm-loader-browsix/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ids1024","download_url":"https://codeload.github.com/ids1024/wasm-loader-browsix/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ids1024%2Fwasm-loader-browsix/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":267514623,"owners_count":24099980,"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","status":"online","status_checked_at":"2025-07-28T02:00:09.689Z","response_time":68,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":[],"created_at":"2024-10-13T09:35:44.679Z","updated_at":"2025-07-28T12:14:16.391Z","avatar_url":"https://github.com/ids1024.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"wasm-loader-browsix\n===================\n\nThis is an experimental implementation for a WebAssembly loader for [Browsix](https://github.com/plasma-umass/browsix), intended for use with musl, as an alternative to the [emscriten fork](https://github.com/plasma-umass/browsix-emscripten) Browsix provides.\n\nThis is only partly functional.\n\nBuilding\n--------\nBuilding just requires `tsc` and `cpp` (TypeScript and the C preprocessor). Then it should be possible to build with just `make`.\n\nBut it's not really useful without compiling something to WebAssembly. See the [emscriptenless branch of ids1024/browsix-busybox](https://github.com/ids1024/browsix-busybox/tree/emscriptenless) for an example.\n\nDesign\n------\nThe relies on Browsix's asynchronous system call API, and requires the not-yet-standardized [WebAssembly threads proposal](https://github.com/WebAssembly/threads). The support for this exists in the latest versions of Chrome and Firefox, but it may be necessary to manually enabled support for `SharedArrayBuffer`, which browser have disabled since it suffers from vulnerabilities related to Spectre.\n\nThe design here is based on emulating Linux at the system call level, and letting musl make system calls into Javascript using the same API as normal Linux system calls. This is similar to Emscripten.\n\nThe loader provides a single function to WebAssembly, called `__browsix_syscall`. Calls provided by the Browsix kernel are passed through to it directly, while some others are handled here. Currently, many calls are not implemented yet.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fids1024%2Fwasm-loader-browsix","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fids1024%2Fwasm-loader-browsix","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fids1024%2Fwasm-loader-browsix/lists"}