{"id":13579659,"url":"https://github.com/mnixry/binutils-wasm","last_synced_at":"2025-10-25T07:30:53.195Z","repository":{"id":218001016,"uuid":"745323410","full_name":"mnixry/binutils-wasm","owner":"mnixry","description":"GNU/Binutils WebAssembly Build: Unleashing binary operations for the browser and node, with Assembler / Disassembler online.","archived":false,"fork":false,"pushed_at":"2025-02-01T01:38:39.000Z","size":1247,"stargazers_count":34,"open_issues_count":2,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-02-03T03:46:43.505Z","etag":null,"topics":["assembler","binutils","disassembler","mantine","react","vite","webassembly"],"latest_commit_sha":null,"homepage":"https://binutils-wasm.vercel.app","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/mnixry.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":"2024-01-19T04:48:59.000Z","updated_at":"2025-02-01T01:38:42.000Z","dependencies_parsed_at":"2024-02-03T11:24:45.819Z","dependency_job_id":"bf7deca3-be2d-479d-9cc1-2f0104adc64a","html_url":"https://github.com/mnixry/binutils-wasm","commit_stats":{"total_commits":491,"total_committers":3,"mean_commits":"163.66666666666666","dds":0.2240325865580448,"last_synced_commit":"eec2e47b2fea5e7502eeac1a87d058f5d854f6f2"},"previous_names":["mnixry/binutils-wasm"],"tags_count":3,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mnixry%2Fbinutils-wasm","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mnixry%2Fbinutils-wasm/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mnixry%2Fbinutils-wasm/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mnixry%2Fbinutils-wasm/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mnixry","download_url":"https://codeload.github.com/mnixry/binutils-wasm/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":238096373,"owners_count":19415788,"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":["assembler","binutils","disassembler","mantine","react","vite","webassembly"],"created_at":"2024-08-01T15:01:41.697Z","updated_at":"2025-10-25T07:30:47.655Z","avatar_url":"https://github.com/mnixry.png","language":"TypeScript","funding_links":[],"categories":["TypeScript"],"sub_categories":[],"readme":"# binutils-wasm\n\n![Website](https://img.shields.io/website?url=https%3A%2F%2Fbinutils-wasm.vercel.app%2F\u0026up_message=online\u0026down_message=offline\u0026style=for-the-badge\u0026logo=vercel\u0026label=frontend)\n\n![CI](https://github.com/mnixry/binutils-wasm/actions/workflows/build.yml/badge.svg) ![NPM Version of GAS](https://img.shields.io/npm/v/%40binutils-wasm%2Fgas?label=%40binutils-wasm%2Fgas) ![NPM Version of Binutils](https://img.shields.io/npm/v/%40binutils-wasm%2Fbinutils?style=flat\u0026label=%40binutils-wasm%2Fbinutils)\n\nThis project is divided into several components:\n\n- A WebAssembly version of GNU Binutils, available as an NPM package for use in Node.js or browser environments. (See [gas](https://www.npmjs.com/package/@binutils-wasm/gas) and [binutils](https://www.npmjs.com/package/@binutils-wasm/binutils))\n- A command-line tool based on the aforementioned package, providing a variety of platform-specific Binutils for use on any device that supports Node.js (work in progress).\n- A static web page built on the aforementioned package that offers assembly and disassembly for multiple architectures, accessible directly through a web browser. (This README is about this component)\n\n## Introduction\n\nThis is a highly efficient, purely static website that offers assembly and disassembly for a variety of architectures. The site is built using [Mantine](https://mantine.dev/) and [Vite](https://vitejs.dev/).\n\n## Features\n\n- Assembly and disassembly for multiple architectures\n- Exceptionally fast execution speed, nearly real-time\n- No server-side code, eliminating any potential security concerns\n- Parallels the `asm` and `disasm` functions in PwnTools\n\n## Screenshots\n\n![Assembler](https://github.com/mnixry/binutils-wasm/assets/32300164/0042cfee-99ab-489d-82d4-78e4613adc89)\n![Disassembler](https://github.com/mnixry/binutils-wasm/assets/32300164/6174e6ba-e79c-4467-acc8-f05a5a32cb50)\n\n## Usage\n\nTo use it, simply visit the website hosted on [Vercel](https://binutils-wasm.vercel.app/).\n\n### Building for Offline Use\n\nTo build for offline use, clone the repository and run the following commands. Note that this process assumes you are operating on a Unix-like system and have Docker installed (to build the WebAssembly binary).\n\n```bash\n# in the root directory of the repository\npnpm install\n# This process will take about 1-2 hours\npnpm build\n```\n\nOnce the build process is complete, the static files can be found in the `./frontend/dist` directory.\n\n## Acknowledgments\n\n- [Mantine](https://mantine.dev/) and [Vite](https://vitejs.dev/) for the tools used to build this website\n- [EMScripten](https://emscripten.org/) for the tools to compile Binutils to WebAssembly\n- [GNU Binutils](https://www.gnu.org/software/binutils/) for the tools to assemble and disassemble binary files\n- [PwnTools](https://github.com/Gallopsled/pwntools) for providing a reference to implement the assembler and disassembler\n\n## License\n\nThis project is licensed under the GPLv3 License in accordance with the license of GNU Binutils. For more details, see the [LICENSE](./LICENSE) file.\n\n    This program is free software: you can redistribute it and/or modify\n    it under the terms of the GNU General Public License as published by\n    the Free Software Foundation, either version 3 of the License, or\n    (at your option) any later version.\n\n    This program is distributed in the hope that it will be useful,\n    but WITHOUT ANY WARRANTY; without even the implied warranty of\n    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n    GNU General Public License for more details.\n\n    You should have received a copy of the GNU General Public License\n    along with this program.  If not, see \u003chttps://www.gnu.org/licenses/\u003e.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmnixry%2Fbinutils-wasm","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmnixry%2Fbinutils-wasm","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmnixry%2Fbinutils-wasm/lists"}