{"id":17654574,"url":"https://github.com/paritytech/polkavm","last_synced_at":"2025-05-16T03:05:55.424Z","repository":{"id":191600886,"uuid":"685115136","full_name":"paritytech/polkavm","owner":"paritytech","description":"A fast and secure RISC-V based virtual machine","archived":false,"fork":false,"pushed_at":"2025-05-08T16:30:27.000Z","size":85031,"stargazers_count":338,"open_issues_count":63,"forks_count":70,"subscribers_count":18,"default_branch":"master","last_synced_at":"2025-05-08T17:41:05.447Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Rust","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/paritytech.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE-APACHE","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,"zenodo":null}},"created_at":"2023-08-30T14:47:15.000Z","updated_at":"2025-05-05T01:32:52.000Z","dependencies_parsed_at":"2023-09-23T12:10:07.273Z","dependency_job_id":"6cbae0f1-3a97-417a-95ba-32bd9bbef8f2","html_url":"https://github.com/paritytech/polkavm","commit_stats":{"total_commits":715,"total_committers":18,"mean_commits":39.72222222222222,"dds":"0.12027972027972023","last_synced_commit":"8b9a836a244726dfba940aa0077b9208a2cc0c77"},"previous_names":["koute/polkavm"],"tags_count":30,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/paritytech%2Fpolkavm","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/paritytech%2Fpolkavm/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/paritytech%2Fpolkavm/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/paritytech%2Fpolkavm/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/paritytech","download_url":"https://codeload.github.com/paritytech/polkavm/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254047571,"owners_count":22005828,"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-10-23T12:31:58.245Z","updated_at":"2025-05-16T03:05:50.415Z","avatar_url":"https://github.com/paritytech.png","language":"Rust","funding_links":[],"categories":["Rust"],"sub_categories":[],"readme":"## PolkaVM\n\nPolkaVM is a general purpose user-level RISC-V based virtual machine.\n\n**This project is still unfinished and is a very heavy work-in-progress! Do not use it in production!**\n\n[See current benchmark results here](./BENCHMARKS.md).\n\n## Design goals\n\n(**Note: not all of these are currently true!**)\n\n- Secure and sandboxed by default. The code running in the VM should run in a separate process, and should not be able to access the host system, even in the presence of an attacker with full remote code execution privileges inside of the VM.\n- Fast to execute. The runtime performance of the code running in the VM should be competitive with state-of-art WebAssembly VMs, at least within the same order of magnitude.\n- Fast to compile, with guaranteed single-pass O(n) compilation. Loading new code into the VM should be near instanteneous.\n- Low memory footprint. Each concurrent instance of the VM should have a baseline memory overhead of no more than 128KB.\n- Small binaries. Programs compiled for this VM should take up as little space as possible.\n- No wasted virtual address space. The VM should not preallocate gigabytes of virtual address space for sandboxing purposes.\n- Fully deterministic. Given the same inputs and the same code the execution should always return exactly the same output.\n- Support for high performance asynchronous gas metering. Gas metering should be cheap, deterministic, and reasonably accurate.\n- Simple. It should be possible for a single programmer to write an interpreter fully compatible with this VM in less than a week.\n- Versioned operational semantics. Any future changes to the semantics that are observable by a guest program will be versioned, and will be explicitly opt-in.\n- Standardized. There should be a spec fully describing the guest-observable operational semantics of this VM.\n- Cross-platform. On unsupported OSes and platforms the VM will run in an interpreted mode.\n- Minimum external dependencies. The VM should be mostly self-contained, fast to compile, and resistant to supply-chain attacks.\n- Built-in tooling for debugging and performance profiling.\n\n## Non-goals\n\n- System level emulation. This VM will never be able to run a normal operating system.\n- Full support for architectures other than amd64 (also known as x86_64) and aarch64 (also known as arm64). Anything else will run in an interpreted mode.\n- Full support for operating systems other than Linux, macOS and Windows. On any other OS the VM will run in an interpreted mode.\n- Floating point support, SIMD, and other more niche RISC-V extensions. These could be added as an opt-in feature in the future if necessary, but this is not currently planned.\n- Support for full 32-register RISC-V ISA. This VM currently only targets the RV32EM.\n\n## License\n\nLicensed under either of\n\n  * Apache License, Version 2.0, ([LICENSE-APACHE](LICENSE-APACHE) or \u003chttp://www.apache.org/licenses/LICENSE-2.0\u003e)\n  * MIT license ([LICENSE-MIT](LICENSE-MIT) or \u003chttp://opensource.org/licenses/MIT\u003e)\n\nat your option.\n\n### Contribution\n\nUnless you explicitly state otherwise, any contribution intentionally submitted\nfor inclusion in the work by you, as defined in the Apache-2.0 license, shall be\ndual licensed as above, without any additional terms or conditions.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fparitytech%2Fpolkavm","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fparitytech%2Fpolkavm","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fparitytech%2Fpolkavm/lists"}