{"id":13837221,"url":"https://github.com/d-edge/fasmi","last_synced_at":"2025-12-24T09:17:41.815Z","repository":{"id":44727514,"uuid":"365752530","full_name":"d-edge/fasmi","owner":"d-edge","description":"F# -\u003e ASM disassembler","archived":false,"fork":false,"pushed_at":"2023-11-22T16:31:43.000Z","size":2093,"stargazers_count":183,"open_issues_count":3,"forks_count":8,"subscribers_count":8,"default_branch":"main","last_synced_at":"2024-05-18T21:52:57.525Z","etag":null,"topics":["assembler","disassembler","dotnet","dotnet-tool","fsharp","jit","msil"],"latest_commit_sha":null,"homepage":"","language":"F#","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/d-edge.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null}},"created_at":"2021-05-09T12:54:57.000Z","updated_at":"2024-05-11T23:27:36.000Z","dependencies_parsed_at":"2024-01-07T00:08:41.829Z","dependency_job_id":null,"html_url":"https://github.com/d-edge/fasmi","commit_stats":null,"previous_names":["d-edge/fasm"],"tags_count":6,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/d-edge%2Ffasmi","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/d-edge%2Ffasmi/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/d-edge%2Ffasmi/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/d-edge%2Ffasmi/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/d-edge","download_url":"https://codeload.github.com/d-edge/fasmi/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247369952,"owners_count":20927928,"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","disassembler","dotnet","dotnet-tool","fsharp","jit","msil"],"created_at":"2024-08-04T15:01:03.710Z","updated_at":"2025-12-24T09:17:41.807Z","avatar_url":"https://github.com/d-edge.png","language":"F#","funding_links":[],"categories":["F# #"],"sub_categories":[],"readme":"\u003cbr /\u003e\n\n\u003cp align=\"center\"\u003e\n    \u003cimg src=\"https://raw.githubusercontent.com/d-edge/fasmi/main/img/fasmi.png\" alt=\"fasmi logo\" height=\"140\"\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n    \u003cimg src=\"https://img.shields.io/nuget/v/fasmi\" alt=\"version\" /\u003e \n    \u003cimg src=\"https://img.shields.io/nuget/dt/fasmi\" alt=\"download\" /\u003e \n    \u003cimg src=\"https://img.shields.io/badge/license-MIT%20%2B%20BSD-green\" alt=\"license\" /\u003e\n\u003c/p\u003e\n\n\u003cbr /\u003e\n\nFasmi is a F# to Jitted ASM / IL disassembler as a dotnet tool. Maintained by folks at [D-EDGE](https://www.d-edge.com/).\n\n![fasmi demo](img/fasmi-demo.gif)\n\n# Getting Started\n\nInstall fasmi as a global dotnet tool\n\n``` bash\ndotnet tool install fasmi -g\n``` \n\nor as a dotnet local tool\n\n``` bash\ndotnet new tool-manifest\ndotnet tool install fasmi\n```` \n\n# Quickstart\n\nCreate a demo.fsx F# interactive script:\n\n``` fsharp\nlet inc x = x+1\n```\n\nrun fasmi:\n``` bash\ndotnet fasmi ./demo.fsx\n```\n\nand open at the generated demo.asm file:\n\n``` asm\nDemo.inc(Int32)\nL0000: lea eax, [rcx+1]\nL0003: ret\n```\n\n## Watch mode\n\nrun fasmi in watch mode:\n``` bash\ndotnet fasmi ./demo.fsx -w\n```\n\nOpen the demo.fsx and demo.asm files side by side in your favorite editor, make changes to demo.fsx and save. The demo.asm file is updated on the fly.\n\n\n# Usage\n\n```\nUSAGE: dotnet fasmi [--help] [--console] [--output \u003cstring\u003e] [--watch] [--platform \u003cx86|x64\u003e] [--language \u003casm|il\u003e] \u003cstring\u003e\n\nSOURCE:\n\n    \u003cstring\u003e              the source fsx or dotnet assembly file\n\nOPTIONS:\n\n    --console, -c         output to console\n    --output, -o \u003cstring\u003e specifiy the output file\n    --watch, -w           run in watch mode\n    --platform, -p \u003cx86|x64\u003e\n                          specify the platform for disassembly\n    --language, -l \u003casm|il\u003e\n                          specify the output language (asm/il)\n    --help                display this list of options.\n```\n\n## Input\n\nThe input can be a fsx F# script file or any dotnet .dll assemlby file. F# scripts are compiled for net 5.0.\n\nUsing a dotnet assembly as an input, you can use fasmi on any dotnet language.\n\n## Console\n\nWith the `-c` flag, the result is output to console rather than in a file.\n\n## Output\n\nUse the `-o` flag to specifie the target file path and name.\n\n## Watch\n\nThe `-w` flag runs fasmi in watch mode. The file is recompiled and disassembled automatically when saved.\n\n## Platform\n\nUse the `-p` flag to force x64 or x86 platform for disassembly.\n\n## Language\n\nSpecify the target language with the `-l` flag:\n\n* asm : disassemble the jit output as a x86/x86 .asm file\n* il : disassemble the output as a MSIL .il file\n\n# Acknowledgment\n\nThis tool is based on [Andrey Shchekin](https://github.com/ashmind) code for [https://sharplab.io/](https://sharplab.io/).\n\n# Contributing\n\nHelp and feedback is always welcome and pull requests get accepted.\n\n* First open an issue to discuss your changes\n* After your change has been formally approved please submit your PR against the develop branch\n* Please follow the code convention by examining existing code\n* Add/modify the README.md as required\n* Add/modify unit tests as required\n* Please document your changes in the upcoming release notes in RELEASE_NOTES.md\n* PRs can only be approved and merged when all checks succeed (builds on Windows, MacOs and Linux)\n\n# License\n\n[MIT](./LICENSE)\n\n\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fd-edge%2Ffasmi","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fd-edge%2Ffasmi","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fd-edge%2Ffasmi/lists"}