{"id":13637351,"url":"https://github.com/oxidecomputer/propolis","last_synced_at":"2025-07-22T23:38:36.802Z","repository":{"id":37069880,"uuid":"301513440","full_name":"oxidecomputer/propolis","owner":"oxidecomputer","description":"VMM userspace for illumos bhyve","archived":false,"fork":false,"pushed_at":"2025-07-07T22:44:56.000Z","size":3996,"stargazers_count":198,"open_issues_count":122,"forks_count":23,"subscribers_count":27,"default_branch":"master","last_synced_at":"2025-07-08T01:37:37.457Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mpl-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/oxidecomputer.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,"zenodo":null}},"created_at":"2020-10-05T19:09:41.000Z","updated_at":"2025-07-07T22:44:59.000Z","dependencies_parsed_at":"2022-07-11T16:01:33.454Z","dependency_job_id":"890aa49b-be5c-4018-82c1-a075dce61fd9","html_url":"https://github.com/oxidecomputer/propolis","commit_stats":{"total_commits":558,"total_committers":27,"mean_commits":"20.666666666666668","dds":0.5268817204301075,"last_synced_commit":"4019eb10fc2f4ba9bf210d0461dc6292b68309c2"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/oxidecomputer/propolis","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oxidecomputer%2Fpropolis","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oxidecomputer%2Fpropolis/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oxidecomputer%2Fpropolis/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oxidecomputer%2Fpropolis/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/oxidecomputer","download_url":"https://codeload.github.com/oxidecomputer/propolis/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oxidecomputer%2Fpropolis/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":266591232,"owners_count":23953082,"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","status":"online","status_checked_at":"2025-07-22T02:00:09.085Z","response_time":66,"last_error":null,"robots_txt_status":null,"robots_txt_updated_at":null,"robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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-02T00:01:15.897Z","updated_at":"2025-07-22T23:38:36.758Z","avatar_url":"https://github.com/oxidecomputer.png","language":"Rust","readme":"# Propolis\n\nPropolis VMM userspace for use with illumos bhyve.\n\n## Prerequisites\n\nGiven the current tight coupling of the `bhyve-api` component to the ioctl\ninterface presented by the bhyve kernel component, running on recent illumos\nbits is required.\n\nPropolis works best (and its CI tests run) on AMD hosts, but it can also be used\nto run VMs on Intel hosts. Live migration is primarily supported on AMD hosts\nbut may work on Intel hosts as well.\n\n## Components\n\nPrograms:\n- [propolis-server](bin/propolis-server): Run a Propolis VM instance, operated\n  via REST API calls (typically by\n  [omicron](https://github.com/oxidecomputer/omicron))\n- [propolis-cli](bin/propolis-cli): CLI wrapper interface for `propolis-server`\n  API calls\n- [propolis-standalone](bin/propolis-standalone): Simple standalone program to\n  run a Propolis VM instance, operated via a local config file\n\nLibraries:\n- [propolis-client](lib/propolis-client): Rust crate for `propolis-server` API\n- [propolis](lib/propolis): Represents the bulk of the emulation logic required\n  to implement a userspace VMM.  Both `propolis-server` and\n  `propolis-standalone` are built around this.\n\n## Internal Crates\n\nThese are not meant as committed public interfaces, but rather internal\nimplementation details, consumed by Propolis components.\n\n- bhyve-api: API (ioctls \u0026 structs) for the illumos bhyve kernel VMM\n- dladm: Some thin wrappers around `dladm` queries\n- propolis-server-config: Type definitions for `propolis-server` config file\n- propolis-types: Publically exposed (via `propolis-server`) types, intergral\n  to the `propolis` library\n- viona-api: API (ioctls \u0026 structs) for the illumos viona driver\n\n## xtasks\n\nPropolis uses the `cargo xtask` pattern in order to conveniently expose certain\ntasks to developers.\n\n- `clippy`: Run suite of clippy checks.  This performs more than a simple\n  `cargo clippy`, since there are several combinations of feature flags which\n  must be checked.\n- `fmt`: Check style according to `rustfmt`\n- `license`:  Check (crudely) that files bear appropriate license headers\n- `phd`: Run the PHD test suite\n- `style`: Perform miscellaneous style checks\n- `prepush`: Preform pre-push checks (`clippy`, `fmt`, `license`, `style`) in a\n  manner which resembles (but does not exactly match) how they are run in CI.\n  Running tests (unit, integration, or phd) are not included and are left to\n  the user.\n\nIt is recommended that developers run the `prepush` test before pushing a\nbranch which will be subsequently checked by CI.  Doing so currently requires\nan x86\\_64 UNIX/Linux machine.\n\n## License\n\nUnless otherwise noted, all components are licensed under the [Mozilla Public\nLicense Version 2.0](LICENSE).\n","funding_links":[],"categories":["Libraries","库 Libraries","Rust"],"sub_categories":["Virtualization","虚拟化 Virtualization"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Foxidecomputer%2Fpropolis","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Foxidecomputer%2Fpropolis","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Foxidecomputer%2Fpropolis/lists"}