{"id":13638449,"url":"https://github.com/satabin/swam","last_synced_at":"2025-04-19T17:33:55.524Z","repository":{"id":56092031,"uuid":"127969338","full_name":"satabin/swam","owner":"satabin","description":"WebAssembly engine in Scala","archived":true,"fork":false,"pushed_at":"2020-11-25T21:38:39.000Z","size":8977,"stargazers_count":50,"open_issues_count":8,"forks_count":10,"subscribers_count":10,"default_branch":"master","last_synced_at":"2024-05-17T03:12:03.724Z","etag":null,"topics":["cats","cats-effect","fs2","scala","scodec","wasm","wast","webassembly"],"latest_commit_sha":null,"homepage":"https://swam.gnieh.org","language":"WebAssembly","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/satabin.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}},"created_at":"2018-04-03T21:11:31.000Z","updated_at":"2024-03-01T05:30:34.000Z","dependencies_parsed_at":"2022-08-15T13:00:48.117Z","dependency_job_id":null,"html_url":"https://github.com/satabin/swam","commit_stats":null,"previous_names":[],"tags_count":9,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/satabin%2Fswam","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/satabin%2Fswam/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/satabin%2Fswam/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/satabin%2Fswam/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/satabin","download_url":"https://codeload.github.com/satabin/swam/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":249750198,"owners_count":21320094,"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":["cats","cats-effect","fs2","scala","scodec","wasm","wast","webassembly"],"created_at":"2024-08-02T01:00:46.042Z","updated_at":"2025-04-19T17:33:54.973Z","avatar_url":"https://github.com/satabin.png","language":"WebAssembly","funding_links":[],"categories":["Dynamic analysis (tracing, profiling)","Runtimes"],"sub_categories":["**WebAssembly**"],"readme":"# Swam [![Build Status](https://travis-ci.org/satabin/swam.svg?branch=master)](https://travis-ci.org/satabin/swam) [![Codacy Badge](https://api.codacy.com/project/badge/Grade/6cadb836067c4e4696c3c15ab9510a3a)](https://www.codacy.com/app/satabin/swam?utm_source=github.com\u0026amp;utm_medium=referral\u0026amp;utm_content=satabin/swam\u0026amp;utm_campaign=Badge_Grade)\n\nSwam is a [WebAssembly][1] interpreter written in Scala with the [cats][7] library. It passes all the official specification tests. It is under an Apache 2 license.\n\n[![Cats Friendly Badge][6]][7]\n\n[![Join the chat at https://gitter.im/satabin/swam](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/satabin/swam?utm_source=share-link\u0026utm_medium=link\u0026utm_campaign=share-link)\n\n## Getting Started\n\nTo build it, we use [mill](http://www.lihaoyi.com/mill/). Mill is not packaged for all Linux distributions, but you can use curl to install it (see Installation instructions in the [doc](http://www.lihaoyi.com/mill/)).\n\nYou can also use the [mill wrapper](https://github.com/lefou/millw) provided in this repository with the recommended mill version. It will download mill for you if you do not have it already, and run it. To use it, replace following `mill` commands by `./millw`\n\nIf you want to run the specification tests, just type:\n\n```sh\nmill runtime.test\n```\n\nIt you want to test swam in a REPL session, just type tostart an ammonite shell with runtime project in classpath.:\n\n```sh\nmill -i runtime.console\n```\n\nIf you want a REPL session with both runtime and text, the easiest way is to start a session for the runtime.test project:\n\n    $ mill -i runtime.test.console\n\n## Architecture\n\nThis project defines several modules:\n - The [`core`](core/) module is a library that makes it possible to manipulate [binary][3] representation of WebAssembly modules. In particular it contains:\n   - a streaming parser for the binary format;\n   - a compiler from text to binary format.\n - The [`runtime`](runtime/) module is a [non-web embedding][4] to instantiate and run WebAssembly modules.\n - The [`text`](text/) module is a library that makes it possible to manipulate [text][2] representation of WebAssembly modules.\n   It is not included in the `core` module as text representation is more of a debug feature, and the runtime does not want to bring\n   that dependency with it.\n\nIf you want more details, please refer to the [website][website].\n\n[1]: https://webassembly.org/\n[2]: https://webassembly.org/docs/text-format/\n[3]: https://webassembly.org/docs/binary-encoding/\n[4]: https://webassembly.org/docs/non-web/\n[6]: https://typelevel.org/cats/img/cats-badge-tiny.png\n[7]: https://typelevel.org/cats\n[website]: https://swam.gnieh.org\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsatabin%2Fswam","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsatabin%2Fswam","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsatabin%2Fswam/lists"}