{"id":13565867,"url":"https://github.com/initia-labs/movevm","last_synced_at":"2026-02-19T05:09:36.633Z","repository":{"id":239777407,"uuid":"764617647","full_name":"initia-labs/movevm","owner":"initia-labs","description":null,"archived":false,"fork":false,"pushed_at":"2024-10-29T12:06:09.000Z","size":2378177,"stargazers_count":18,"open_issues_count":5,"forks_count":11,"subscribers_count":11,"default_branch":"main","last_synced_at":"2024-10-29T12:16:02.072Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Move","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/initia-labs.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":".github/CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-02-28T12:07:05.000Z","updated_at":"2024-10-29T12:06:10.000Z","dependencies_parsed_at":"2024-11-07T10:33:08.707Z","dependency_job_id":null,"html_url":"https://github.com/initia-labs/movevm","commit_stats":null,"previous_names":["initia-labs/movevm"],"tags_count":36,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/initia-labs%2Fmovevm","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/initia-labs%2Fmovevm/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/initia-labs%2Fmovevm/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/initia-labs%2Fmovevm/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/initia-labs","download_url":"https://codeload.github.com/initia-labs/movevm/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247097616,"owners_count":20883121,"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":[],"created_at":"2024-08-01T13:01:56.918Z","updated_at":"2026-02-19T05:09:36.627Z","avatar_url":"https://github.com/initia-labs.png","language":"Move","funding_links":[],"categories":["Move"],"sub_categories":[],"readme":"# Initia MoveVM\n\nThe Initia MoveVM is forked from [wasmvm](https://github.com/CosmWasm/wasmvm) with some modifications to support ([Aptos](https://github.com/aptos-labs/aptos-core)) MoveVM.\nThis mechanism allows the users to compile, initialize, and execute Move Smart Contracts from Go applications, in particular from [x/move](https://github.com/initia-labs/initia/tree/main/x/move).\n\n## Structure\n\nThis repo contains both Rust and Go code. The rust code is compiled into a dll/so to be linked via cgo and wrapped with a pleasant Go API. The full build step involves compiling rust -\u003e C library, and linking that library to the Go code. For ergonomics of the user, we will include pre-compiled libraries to easily link with, and Go developers should just be able to import this directly.\n\n## Supported Platform\n\nRequires **Rust 1.86+ and Go 1.22+.**\n\nThe Rust implementation of the VM is compiled to a library called libmovevm. This is then linked to the Go code when the final binary is built. For that reason not all systems supported by Go are supported by this project.\n\nLinux (tested on Ubuntu, Debian, and Alpine) and macOS are supported.\n\n### Builds of libmovevm\n\nOur system currently supports the following builds. In general we can only support targets that are supported by Move's singlepass backend, which for example excludes all 32 bit systems.\n\n\u003c!-- AUTO GENERATED BY libmovevm_builds.py START --\u003e\n| OS family       | Arch    | Linking | Supported                     | Note    |\n| --------------- | ------- | ------- | ----------------------------- | ------- |\n| Linux (glibc)   | x86_64  | shared  | ✅​libmovevm.x86_64.so         |  |\n| Linux (glibc)   | x86_64  | static  | 🚫​                            | Would link libmovevm statically but glibc dynamically as static glibc linking is not recommended. Potentially interesting for Osmosis. |\n| Linux (glibc)   | aarch64 | shared  | ✅​libmovevm.aarch64.so        |  |\n| Linux (glibc)   | aarch64 | static  | 🚫​                            |  |\n| Linux (musl)    | x86_64  | shared  | 🚫​                            | Possible but not needed |\n| Linux (musl)    | x86_64  | static  | ✅​libmovevm_muslc.x86_64.a    |  |\n| Linux (musl)    | aarch64 | shared  | 🚫​                            | Possible but not needed |\n| Linux (musl)    | aarch64 | static  | ✅​libmovevm_muslc.aarch64.a   |  |\n| macOS           | x86_64  | shared  | ✅​libmovevm.dylib             |  |\n| macOS           | x86_64  | static  | 🚫​                            |  |\n| macOS           | aarch64 | shared  | ✅​libmovevm.dylib             |  |\n| macOS           | aarch64 | static  | 🚫​                            |  |\n\u003c!-- AUTO GENERATED BY libmovevm_builds.py END --\u003e\n\n## Development\n\nThere are two parts to this code - go and rust. The first step is to ensure that there is a proper dll built for your platform. This should be api/libmovevm.X, where X is:\n\n- `aarch64.so` or `x86_64.so` for Linux systems\n- `dylib` for MacOS\n\nIf this is present, then `make test` will run the Go test suite and you can import this code freely. If it is not present you will have to build it for your system, and ideally add it to this repo with a PR (on your fork). We will set up a proper CI system for building these binaries, but we are not there yet.\n\nTo build the rust side, try make `build-rust` and wait for it to compile. This depends on `cargo` being installed with rustc version 1.86+. Generally, you can just use rustup to install all this with no problems.\n\n### How to use inita-move-cli\n\nTo use the `initia-move-cli`, refer to the [initia-move-cli README](../../../tools/initia-move-cli/README.md) for detailed instructions and examples. This document provides guidance on installation, usage, and available commands for interacting with Move Smart Contracts.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Finitia-labs%2Fmovevm","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Finitia-labs%2Fmovevm","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Finitia-labs%2Fmovevm/lists"}