{"id":13643654,"url":"https://github.com/unikraft/kraftkit","last_synced_at":"2026-04-23T16:02:05.009Z","repository":{"id":62173983,"uuid":"470572304","full_name":"unikraft/kraftkit","owner":"unikraft","description":"Build and use highly customized and ultra-lightweight unikernel VMs.","archived":false,"fork":false,"pushed_at":"2026-03-27T09:36:45.000Z","size":24554,"stargazers_count":395,"open_issues_count":71,"forks_count":103,"subscribers_count":5,"default_branch":"staging","last_synced_at":"2026-03-27T20:38:41.635Z","etag":null,"topics":["docker","go","golang","osdev","unikernel","unikraft"],"latest_commit_sha":null,"homepage":"https://unikraft.org/docs/cli","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/unikraft.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2022-03-16T12:25:39.000Z","updated_at":"2026-03-27T09:24:51.000Z","dependencies_parsed_at":"2026-02-12T23:01:54.507Z","dependency_job_id":null,"html_url":"https://github.com/unikraft/kraftkit","commit_stats":{"total_commits":3173,"total_committers":30,"mean_commits":"105.76666666666667","dds":0.4286164513079105,"last_synced_commit":"f141dafb593e71d2ae527d5b17f0df906c294322"},"previous_names":[],"tags_count":2031,"template":false,"template_full_name":null,"purl":"pkg:github/unikraft/kraftkit","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/unikraft%2Fkraftkit","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/unikraft%2Fkraftkit/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/unikraft%2Fkraftkit/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/unikraft%2Fkraftkit/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/unikraft","download_url":"https://codeload.github.com/unikraft/kraftkit/tar.gz/refs/heads/staging","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/unikraft%2Fkraftkit/sbom","scorecard":{"id":373416,"data":{"date":"2025-08-11","repo":{"name":"github.com/unikraft/kraftkit","commit":"74fa5e4d9b0f4338c00558b9b95fc53d16a506d3"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":5.4,"checks":[{"name":"Maintained","score":10,"reason":"30 commit(s) and 8 issue activity found in the last 90 days -- score normalized to 10","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Code-Review","score":10,"reason":"all changesets reviewed","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Dangerous-Workflow","score":10,"reason":"no dangerous workflow patterns detected","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Warn: jobLevel 'actions' permission set to 'write': .github/workflows/chore-expire-action-caches.yml:13","Warn: no topLevel permission defined: .github/workflows/actionlint.yaml:1","Warn: no topLevel permission defined: .github/workflows/build.yaml:1","Warn: no topLevel permission defined: .github/workflows/buildenvs.yaml:1","Warn: no topLevel permission defined: .github/workflows/check-pr.yaml:1","Warn: no topLevel permission defined: .github/workflows/check-static.yaml:1","Warn: no topLevel permission defined: .github/workflows/chore-expire-action-caches.yml:1","Warn: no topLevel permission defined: .github/workflows/myself-full.yaml:1","Warn: no topLevel permission defined: .github/workflows/notarization.yaml:1","Warn: topLevel 'contents' permission set to 'write': .github/workflows/release-stable.yaml:8","Warn: topLevel 'packages' permission set to 'write': .github/workflows/release-stable.yaml:9","Warn: topLevel 'contents' permission set to 'write': .github/workflows/release-staging.yaml:8","Warn: topLevel 'packages' permission set to 'write': .github/workflows/release-staging.yaml:9","Warn: no topLevel permission defined: .github/workflows/tests.yaml:1","Warn: no topLevel permission defined: .github/workflows/tools-dockerfile-llb-frontend.yaml:1","Warn: no topLevel permission defined: .github/workflows/tools-go-generate-qemu-device.yaml:1","Warn: no topLevel permission defined: .github/workflows/tools-protoc-gen-go-netconn.yaml:1","Warn: no topLevel permission defined: .github/workflows/tools-webinstall.yaml:1"],"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE.md:0","Info: FSF or OSI recognized license: BSD 3-Clause \"New\" or \"Revised\" License: LICENSE.md:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Signed-Releases","score":0,"reason":"Project has not signed or included provenance with any releases.","details":["Warn: release artifact v0.11.6-310-g74fa5e4d not signed: https://api.github.com/repos/unikraft/kraftkit/releases/239903801","Warn: release artifact v0.11.6-308-gb6e2f69e not signed: https://api.github.com/repos/unikraft/kraftkit/releases/239889681","Warn: release artifact v0.11.6-306-gc7a62751 not signed: https://api.github.com/repos/unikraft/kraftkit/releases/239653692","Warn: release artifact v0.11.6-304-g4d4ee1f7 not signed: https://api.github.com/repos/unikraft/kraftkit/releases/239580214","Warn: release artifact v0.11.6-302-gc2a4435b not signed: https://api.github.com/repos/unikraft/kraftkit/releases/239172513","Warn: release artifact v0.11.6-310-g74fa5e4d does not have provenance: https://api.github.com/repos/unikraft/kraftkit/releases/239903801","Warn: release artifact v0.11.6-308-gb6e2f69e does not have provenance: https://api.github.com/repos/unikraft/kraftkit/releases/239889681","Warn: release artifact v0.11.6-306-gc7a62751 does not have provenance: https://api.github.com/repos/unikraft/kraftkit/releases/239653692","Warn: release artifact v0.11.6-304-g4d4ee1f7 does not have provenance: https://api.github.com/repos/unikraft/kraftkit/releases/239580214","Warn: release artifact v0.11.6-302-gc2a4435b does not have provenance: https://api.github.com/repos/unikraft/kraftkit/releases/239172513"],"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"Packaging","score":10,"reason":"packaging workflow detected","details":["Info: Project packages its releases by way of GitHub Actions.: .github/workflows/buildenvs.yaml:395"],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"Branch-Protection","score":-1,"reason":"internal error: error during branchesHandler.setup: internal error: githubv4.Query: Resource not accessible by integration","details":null,"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}},{"name":"SAST","score":4,"reason":"SAST tool is not run on all commits -- score normalized to 4","details":["Warn: 14 commits out of 30 are checked with a SAST tool"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}},{"name":"Pinned-Dependencies","score":0,"reason":"dependency not pinned by hash detected -- score normalized to 0","details":["Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/actionlint.yaml:14: update your workflow using https://app.stepsecurity.io/secureworkflow/unikraft/kraftkit/actionlint.yaml/staging?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/build.yaml:49: update your workflow using https://app.stepsecurity.io/secureworkflow/unikraft/kraftkit/build.yaml/staging?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/build.yaml:64: update your workflow using https://app.stepsecurity.io/secureworkflow/unikraft/kraftkit/build.yaml/staging?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/buildenvs.yaml:33: update your workflow using https://app.stepsecurity.io/secureworkflow/unikraft/kraftkit/buildenvs.yaml/staging?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/buildenvs.yaml:56: update your workflow using https://app.stepsecurity.io/secureworkflow/unikraft/kraftkit/buildenvs.yaml/staging?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/buildenvs.yaml:60: update your workflow using https://app.stepsecurity.io/secureworkflow/unikraft/kraftkit/buildenvs.yaml/staging?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/buildenvs.yaml:64: update your workflow using https://app.stepsecurity.io/secureworkflow/unikraft/kraftkit/buildenvs.yaml/staging?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/buildenvs.yaml:72: update your workflow using https://app.stepsecurity.io/secureworkflow/unikraft/kraftkit/buildenvs.yaml/staging?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/buildenvs.yaml:86: update your workflow using https://app.stepsecurity.io/secureworkflow/unikraft/kraftkit/buildenvs.yaml/staging?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/buildenvs.yaml:93: update your workflow using https://app.stepsecurity.io/secureworkflow/unikraft/kraftkit/buildenvs.yaml/staging?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/buildenvs.yaml:113: update your workflow using https://app.stepsecurity.io/secureworkflow/unikraft/kraftkit/buildenvs.yaml/staging?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/buildenvs.yaml:129: update your workflow using https://app.stepsecurity.io/secureworkflow/unikraft/kraftkit/buildenvs.yaml/staging?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/buildenvs.yaml:133: update your workflow using https://app.stepsecurity.io/secureworkflow/unikraft/kraftkit/buildenvs.yaml/staging?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/buildenvs.yaml:137: update your workflow using https://app.stepsecurity.io/secureworkflow/unikraft/kraftkit/buildenvs.yaml/staging?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/buildenvs.yaml:145: update your workflow using https://app.stepsecurity.io/secureworkflow/unikraft/kraftkit/buildenvs.yaml/staging?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/buildenvs.yaml:159: update your workflow using https://app.stepsecurity.io/secureworkflow/unikraft/kraftkit/buildenvs.yaml/staging?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/buildenvs.yaml:166: update your workflow using https://app.stepsecurity.io/secureworkflow/unikraft/kraftkit/buildenvs.yaml/staging?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/buildenvs.yaml:182: update your workflow using https://app.stepsecurity.io/secureworkflow/unikraft/kraftkit/buildenvs.yaml/staging?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/buildenvs.yaml:202: update your workflow using https://app.stepsecurity.io/secureworkflow/unikraft/kraftkit/buildenvs.yaml/staging?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/buildenvs.yaml:208: update your workflow using https://app.stepsecurity.io/secureworkflow/unikraft/kraftkit/buildenvs.yaml/staging?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/buildenvs.yaml:218: update your workflow using https://app.stepsecurity.io/secureworkflow/unikraft/kraftkit/buildenvs.yaml/staging?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/buildenvs.yaml:222: update your workflow using https://app.stepsecurity.io/secureworkflow/unikraft/kraftkit/buildenvs.yaml/staging?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/buildenvs.yaml:226: update your workflow using https://app.stepsecurity.io/secureworkflow/unikraft/kraftkit/buildenvs.yaml/staging?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/buildenvs.yaml:234: update your workflow using https://app.stepsecurity.io/secureworkflow/unikraft/kraftkit/buildenvs.yaml/staging?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/buildenvs.yaml:241: update your workflow using https://app.stepsecurity.io/secureworkflow/unikraft/kraftkit/buildenvs.yaml/staging?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/buildenvs.yaml:253: update your workflow using https://app.stepsecurity.io/secureworkflow/unikraft/kraftkit/buildenvs.yaml/staging?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/buildenvs.yaml:271: update your workflow using https://app.stepsecurity.io/secureworkflow/unikraft/kraftkit/buildenvs.yaml/staging?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/buildenvs.yaml:278: update your workflow using https://app.stepsecurity.io/secureworkflow/unikraft/kraftkit/buildenvs.yaml/staging?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/buildenvs.yaml:295: update your workflow using https://app.stepsecurity.io/secureworkflow/unikraft/kraftkit/buildenvs.yaml/staging?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/buildenvs.yaml:311: update your workflow using https://app.stepsecurity.io/secureworkflow/unikraft/kraftkit/buildenvs.yaml/staging?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/buildenvs.yaml:317: update your workflow using https://app.stepsecurity.io/secureworkflow/unikraft/kraftkit/buildenvs.yaml/staging?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/buildenvs.yaml:322: update your workflow using https://app.stepsecurity.io/secureworkflow/unikraft/kraftkit/buildenvs.yaml/staging?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/buildenvs.yaml:326: update your workflow using https://app.stepsecurity.io/secureworkflow/unikraft/kraftkit/buildenvs.yaml/staging?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/buildenvs.yaml:330: update your workflow using https://app.stepsecurity.io/secureworkflow/unikraft/kraftkit/buildenvs.yaml/staging?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/buildenvs.yaml:338: update your workflow using https://app.stepsecurity.io/secureworkflow/unikraft/kraftkit/buildenvs.yaml/staging?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/buildenvs.yaml:345: update your workflow using https://app.stepsecurity.io/secureworkflow/unikraft/kraftkit/buildenvs.yaml/staging?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/buildenvs.yaml:352: update your workflow using https://app.stepsecurity.io/secureworkflow/unikraft/kraftkit/buildenvs.yaml/staging?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/buildenvs.yaml:364: update your workflow using https://app.stepsecurity.io/secureworkflow/unikraft/kraftkit/buildenvs.yaml/staging?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/buildenvs.yaml:379: update your workflow using https://app.stepsecurity.io/secureworkflow/unikraft/kraftkit/buildenvs.yaml/staging?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/buildenvs.yaml:386: update your workflow using https://app.stepsecurity.io/secureworkflow/unikraft/kraftkit/buildenvs.yaml/staging?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/buildenvs.yaml:402: update your workflow using https://app.stepsecurity.io/secureworkflow/unikraft/kraftkit/buildenvs.yaml/staging?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/buildenvs.yaml:420: update your workflow using https://app.stepsecurity.io/secureworkflow/unikraft/kraftkit/buildenvs.yaml/staging?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/buildenvs.yaml:424: update your workflow using https://app.stepsecurity.io/secureworkflow/unikraft/kraftkit/buildenvs.yaml/staging?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/buildenvs.yaml:428: update your workflow using https://app.stepsecurity.io/secureworkflow/unikraft/kraftkit/buildenvs.yaml/staging?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/buildenvs.yaml:436: update your workflow using https://app.stepsecurity.io/secureworkflow/unikraft/kraftkit/buildenvs.yaml/staging?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/buildenvs.yaml:443: update your workflow using https://app.stepsecurity.io/secureworkflow/unikraft/kraftkit/buildenvs.yaml/staging?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/buildenvs.yaml:450: update your workflow using https://app.stepsecurity.io/secureworkflow/unikraft/kraftkit/buildenvs.yaml/staging?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/buildenvs.yaml:462: update your workflow using https://app.stepsecurity.io/secureworkflow/unikraft/kraftkit/buildenvs.yaml/staging?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/buildenvs.yaml:477: update your workflow using https://app.stepsecurity.io/secureworkflow/unikraft/kraftkit/buildenvs.yaml/staging?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/buildenvs.yaml:484: update your workflow using https://app.stepsecurity.io/secureworkflow/unikraft/kraftkit/buildenvs.yaml/staging?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/buildenvs.yaml:501: update your workflow using https://app.stepsecurity.io/secureworkflow/unikraft/kraftkit/buildenvs.yaml/staging?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/buildenvs.yaml:518: update your workflow using https://app.stepsecurity.io/secureworkflow/unikraft/kraftkit/buildenvs.yaml/staging?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/buildenvs.yaml:524: update your workflow using https://app.stepsecurity.io/secureworkflow/unikraft/kraftkit/buildenvs.yaml/staging?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/buildenvs.yaml:534: update your workflow using https://app.stepsecurity.io/secureworkflow/unikraft/kraftkit/buildenvs.yaml/staging?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/buildenvs.yaml:538: update your workflow using https://app.stepsecurity.io/secureworkflow/unikraft/kraftkit/buildenvs.yaml/staging?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/buildenvs.yaml:544: update your workflow using https://app.stepsecurity.io/secureworkflow/unikraft/kraftkit/buildenvs.yaml/staging?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/buildenvs.yaml:551: update your workflow using https://app.stepsecurity.io/secureworkflow/unikraft/kraftkit/buildenvs.yaml/staging?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/buildenvs.yaml:563: update your workflow using https://app.stepsecurity.io/secureworkflow/unikraft/kraftkit/buildenvs.yaml/staging?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/buildenvs.yaml:571: update your workflow using https://app.stepsecurity.io/secureworkflow/unikraft/kraftkit/buildenvs.yaml/staging?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/buildenvs.yaml:585: update your workflow using https://app.stepsecurity.io/secureworkflow/unikraft/kraftkit/buildenvs.yaml/staging?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/buildenvs.yaml:604: update your workflow using https://app.stepsecurity.io/secureworkflow/unikraft/kraftkit/buildenvs.yaml/staging?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/check-pr.yaml:14: update your workflow using https://app.stepsecurity.io/secureworkflow/unikraft/kraftkit/check-pr.yaml/staging?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/check-pr.yaml:20: update your workflow using https://app.stepsecurity.io/secureworkflow/unikraft/kraftkit/check-pr.yaml/staging?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/check-pr.yaml:32: update your workflow using https://app.stepsecurity.io/secureworkflow/unikraft/kraftkit/check-pr.yaml/staging?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/check-pr.yaml:46: update your workflow using https://app.stepsecurity.io/secureworkflow/unikraft/kraftkit/check-pr.yaml/staging?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/check-pr.yaml:57: update your workflow using https://app.stepsecurity.io/secureworkflow/unikraft/kraftkit/check-pr.yaml/staging?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/check-pr.yaml:69: update your workflow using https://app.stepsecurity.io/secureworkflow/unikraft/kraftkit/check-pr.yaml/staging?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/check-static.yaml:20: update your workflow using https://app.stepsecurity.io/secureworkflow/unikraft/kraftkit/check-static.yaml/staging?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/check-static.yaml:24: update your workflow using https://app.stepsecurity.io/secureworkflow/unikraft/kraftkit/check-static.yaml/staging?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/check-static.yaml:39: update your workflow using https://app.stepsecurity.io/secureworkflow/unikraft/kraftkit/check-static.yaml/staging?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/check-static.yaml:49: update your workflow using https://app.stepsecurity.io/secureworkflow/unikraft/kraftkit/check-static.yaml/staging?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/check-static.yaml:62: update your workflow using https://app.stepsecurity.io/secureworkflow/unikraft/kraftkit/check-static.yaml/staging?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/check-static.yaml:69: update your workflow using https://app.stepsecurity.io/secureworkflow/unikraft/kraftkit/check-static.yaml/staging?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/check-static.yaml:76: update your workflow using https://app.stepsecurity.io/secureworkflow/unikraft/kraftkit/check-static.yaml/staging?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/chore-expire-action-caches.yml:17: update your workflow using https://app.stepsecurity.io/secureworkflow/unikraft/kraftkit/chore-expire-action-caches.yml/staging?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/myself-full.yaml:12: update your workflow using https://app.stepsecurity.io/secureworkflow/unikraft/kraftkit/myself-full.yaml/staging?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/myself-full.yaml:15: update your workflow using https://app.stepsecurity.io/secureworkflow/unikraft/kraftkit/myself-full.yaml/staging?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/myself-full.yaml:19: update your workflow using https://app.stepsecurity.io/secureworkflow/unikraft/kraftkit/myself-full.yaml/staging?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/myself-full.yaml:26: update your workflow using https://app.stepsecurity.io/secureworkflow/unikraft/kraftkit/myself-full.yaml/staging?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/myself-full.yaml:40: update your workflow using https://app.stepsecurity.io/secureworkflow/unikraft/kraftkit/myself-full.yaml/staging?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/myself-full.yaml:46: update your workflow using https://app.stepsecurity.io/secureworkflow/unikraft/kraftkit/myself-full.yaml/staging?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/notarization.yaml:117: update your workflow using https://app.stepsecurity.io/secureworkflow/unikraft/kraftkit/notarization.yaml/staging?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/release-stable.yaml:17: update your workflow using https://app.stepsecurity.io/secureworkflow/unikraft/kraftkit/release-stable.yaml/staging?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/release-staging.yaml:17: update your workflow using https://app.stepsecurity.io/secureworkflow/unikraft/kraftkit/release-staging.yaml/staging?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/tests.yaml:27: update your workflow using https://app.stepsecurity.io/secureworkflow/unikraft/kraftkit/tests.yaml/staging?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/tests.yaml:32: update your workflow using https://app.stepsecurity.io/secureworkflow/unikraft/kraftkit/tests.yaml/staging?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/tests.yaml:35: update your workflow using https://app.stepsecurity.io/secureworkflow/unikraft/kraftkit/tests.yaml/staging?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/tests.yaml:57: update your workflow using https://app.stepsecurity.io/secureworkflow/unikraft/kraftkit/tests.yaml/staging?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/tests.yaml:72: update your workflow using https://app.stepsecurity.io/secureworkflow/unikraft/kraftkit/tests.yaml/staging?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/tests.yaml:100: update your workflow using https://app.stepsecurity.io/secureworkflow/unikraft/kraftkit/tests.yaml/staging?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/tests.yaml:106: update your workflow using https://app.stepsecurity.io/secureworkflow/unikraft/kraftkit/tests.yaml/staging?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/tests.yaml:121: update your workflow using https://app.stepsecurity.io/secureworkflow/unikraft/kraftkit/tests.yaml/staging?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/tests.yaml:155: update your workflow using https://app.stepsecurity.io/secureworkflow/unikraft/kraftkit/tests.yaml/staging?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/tests.yaml:161: update your workflow using https://app.stepsecurity.io/secureworkflow/unikraft/kraftkit/tests.yaml/staging?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/tests.yaml:176: update your workflow using https://app.stepsecurity.io/secureworkflow/unikraft/kraftkit/tests.yaml/staging?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/tools-dockerfile-llb-frontend.yaml:18: update your workflow using https://app.stepsecurity.io/secureworkflow/unikraft/kraftkit/tools-dockerfile-llb-frontend.yaml/staging?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/tools-dockerfile-llb-frontend.yaml:21: update your workflow using https://app.stepsecurity.io/secureworkflow/unikraft/kraftkit/tools-dockerfile-llb-frontend.yaml/staging?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/tools-dockerfile-llb-frontend.yaml:25: update your workflow using https://app.stepsecurity.io/secureworkflow/unikraft/kraftkit/tools-dockerfile-llb-frontend.yaml/staging?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/tools-dockerfile-llb-frontend.yaml:32: update your workflow using https://app.stepsecurity.io/secureworkflow/unikraft/kraftkit/tools-dockerfile-llb-frontend.yaml/staging?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/tools-go-generate-qemu-device.yaml:21: update your workflow using https://app.stepsecurity.io/secureworkflow/unikraft/kraftkit/tools-go-generate-qemu-device.yaml/staging?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/tools-go-generate-qemu-device.yaml:23: update your workflow using https://app.stepsecurity.io/secureworkflow/unikraft/kraftkit/tools-go-generate-qemu-device.yaml/staging?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/tools-go-generate-qemu-device.yaml:45: update your workflow using https://app.stepsecurity.io/secureworkflow/unikraft/kraftkit/tools-go-generate-qemu-device.yaml/staging?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/tools-go-generate-qemu-device.yaml:49: update your workflow using https://app.stepsecurity.io/secureworkflow/unikraft/kraftkit/tools-go-generate-qemu-device.yaml/staging?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/tools-go-generate-qemu-device.yaml:64: update your workflow using https://app.stepsecurity.io/secureworkflow/unikraft/kraftkit/tools-go-generate-qemu-device.yaml/staging?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/tools-protoc-gen-go-netconn.yaml:21: update your workflow using https://app.stepsecurity.io/secureworkflow/unikraft/kraftkit/tools-protoc-gen-go-netconn.yaml/staging?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/tools-protoc-gen-go-netconn.yaml:23: update your workflow using https://app.stepsecurity.io/secureworkflow/unikraft/kraftkit/tools-protoc-gen-go-netconn.yaml/staging?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/tools-protoc-gen-go-netconn.yaml:45: update your workflow using https://app.stepsecurity.io/secureworkflow/unikraft/kraftkit/tools-protoc-gen-go-netconn.yaml/staging?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/tools-protoc-gen-go-netconn.yaml:49: update your workflow using https://app.stepsecurity.io/secureworkflow/unikraft/kraftkit/tools-protoc-gen-go-netconn.yaml/staging?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/tools-protoc-gen-go-netconn.yaml:64: update your workflow using https://app.stepsecurity.io/secureworkflow/unikraft/kraftkit/tools-protoc-gen-go-netconn.yaml/staging?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/tools-webinstall.yaml:12: update your workflow using https://app.stepsecurity.io/secureworkflow/unikraft/kraftkit/tools-webinstall.yaml/staging?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/tools-webinstall.yaml:15: update your workflow using https://app.stepsecurity.io/secureworkflow/unikraft/kraftkit/tools-webinstall.yaml/staging?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/tools-webinstall.yaml:22: update your workflow using https://app.stepsecurity.io/secureworkflow/unikraft/kraftkit/tools-webinstall.yaml/staging?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/tools-webinstall.yaml:27: update your workflow using https://app.stepsecurity.io/secureworkflow/unikraft/kraftkit/tools-webinstall.yaml/staging?enable=pin","Warn: containerImage not pinned by hash: buildenvs/base-golang.Dockerfile:8","Warn: containerImage not pinned by hash: buildenvs/base-golang.Dockerfile:9","Warn: containerImage not pinned by hash: buildenvs/base.Dockerfile:11","Warn: containerImage not pinned by hash: buildenvs/base.Dockerfile:12","Warn: containerImage not pinned by hash: buildenvs/base.Dockerfile:13","Warn: containerImage not pinned by hash: buildenvs/base.Dockerfile:14","Warn: containerImage not pinned by hash: buildenvs/devcontainer.Dockerfile:5: pin your Docker image by updating kraftkit.sh/base-golang:latest to kraftkit.sh/base-golang:latest@sha256:aa08c66c58fbe1f8909e588b0863454e89415cacef96dafb22ba7457924982b3","Warn: containerImage not pinned by hash: buildenvs/github-action.Dockerfile:11","Warn: containerImage not pinned by hash: buildenvs/github-action.Dockerfile:25","Warn: containerImage not pinned by hash: buildenvs/github-action.Dockerfile:26","Warn: containerImage not pinned by hash: buildenvs/github-action.Dockerfile:27","Warn: containerImage not pinned by hash: buildenvs/myself.Dockerfile:10","Warn: containerImage not pinned by hash: buildenvs/myself.Dockerfile:11","Warn: containerImage not pinned by hash: buildenvs/myself.Dockerfile:79","Warn: containerImage not pinned by hash: buildenvs/qemu.Dockerfile:8","Warn: containerImage not pinned by hash: buildenvs/xen.Dockerfile:8","Warn: containerImage not pinned by hash: tools/dockerfile-llb-frontend/Dockerfile:6","Warn: containerImage not pinned by hash: tools/webinstall/Dockerfile:8","Warn: containerImage not pinned by hash: tools/webinstall/Dockerfile:25","Warn: pipCommand not pinned by hash: buildenvs/xen.Dockerfile:16-62","Warn: downloadThenRun not pinned by hash: .github/workflows/actionlint.yaml:19","Info:   0 out of  54 GitHub-owned GitHubAction dependencies pinned","Info:   0 out of  59 third-party GitHubAction dependencies pinned","Info:   0 out of  19 containerImage dependencies pinned","Info:   0 out of   1 pipCommand dependencies pinned","Info:   0 out of   1 downloadThenRun dependencies pinned"],"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"Vulnerabilities","score":5,"reason":"5 existing vulnerabilities detected","details":["Warn: Project is vulnerable to: GO-2025-3528 / GHSA-265r-hfxg-fhmg","Warn: Project is vulnerable to: GO-2025-3701 / GHSA-cxfp-7pvr-95ff","Warn: Project is vulnerable to: GO-2025-3829 / GHSA-4vq8-7jfc-9cvp","Warn: Project is vulnerable to: GO-2025-3787 / GHSA-fv92-fjc5-jj9h","Warn: Project is vulnerable to: GO-2025-3595 / GHSA-vvgc-356p-c3xw"],"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}}]},"last_synced_at":"2025-08-18T13:32:02.508Z","repository_id":62173983,"created_at":"2025-08-18T13:32:02.508Z","updated_at":"2025-08-18T13:32:02.508Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31290911,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-01T13:12:26.723Z","status":"ssl_error","status_checked_at":"2026-04-01T13:12:25.102Z","response_time":53,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":["docker","go","golang","osdev","unikernel","unikraft"],"created_at":"2024-08-02T01:01:50.798Z","updated_at":"2026-04-01T18:37:26.846Z","avatar_url":"https://github.com/unikraft.png","language":"Go","funding_links":[],"categories":["Go"],"sub_categories":[],"readme":"# KraftKit 🚀🐒🧰\n\n[![](https://pkg.go.dev/badge/kraftkit.sh.svg)](https://pkg.go.dev/kraftkit.sh)\n![](https://img.shields.io/static/v1?label=license\u0026message=BSD-3\u0026color=%23385177)\n[![](https://img.shields.io/discord/762976922531528725.svg?label=discord\u0026logo=discord\u0026logoColor=ffffff\u0026color=7389D8\u0026labelColor=6A7EC2)][unikraft-discord]\n[![Go Report Card](https://goreportcard.com/badge/kraftkit.sh)](https://goreportcard.com/report/kraftkit.sh)\n![Latest release](https://img.shields.io/github/v/release/unikraft/kraftkit)\n\nKraftKit provides a suite of tools and Go-based framework for building custom, minimal, immutable lightweight unikernel virtual machines based on [Unikraft](https://unikraft.org): a fast, secure and open-source library operating system.\n\n![](docs/demo.gif)\n\nWith KraftKit, you can easily leverage Unikraft and manage specialized, high-performance applications at every stage of their lifecycle: from construction to production.\n\n * [Getting started guide][kraftkit-getting-started] 📖\n * [Key differences between containers and unikernels](https://unikraft.org/docs/concepts/) 🤔\n * [Join `#kraftkit` on Unikraft's Community Discord](https://bit.ly/UnikraftDiscord) 👾\n\nThere are many benefits in running your application as a unikernel: for more information about [the performance of unikernels 🚀](https://unikraft.org/docs/features/performance/), [the added security 🔒](https://unikraft.org/docs/features/security/) and [a positive impact on the environment 🌱](https://unikraft.org/docs/features/green/) please [check out Unikraft's documentation][unikraft-docs] and the introductory chapters on these impacts\n\n\n## Features\n\n- 🚧 Build, run and package unikernel VMs;\n- 🐳 Use existing Dockerfiles and Composefiles;\n- 📚 Fetch and run pre-built unikernel from the [app catalog](https://github.com/unikraft/catalog);\n- 🔥 Run unikernel VMs using QEMU, Xen and [Firecracker MicroVM](https://firecracker-microvm.github.io/);\n- 🤹‍♀️ Daemonless unikernel local VM instance manager;\n- ⛅️ Deploy unikernel VMs to the [cloud](https://unikraft.cloud);\n- 🍎 Native Linux, macOS and Windows support;\n- 📦 Package and push unikernels in OCI format for easy distribution;\n- 🚜 ELF binary / POSIX-compatibility support;\n- 🧰 Go SDK for building unikernels programmatically; and\n- 🚀 _much more!_\n\n\n## Installation\n\nYou can quickly and easily install KraftKit using the interactive installer.\nRun the following command to get started:\n\n```shell\ncurl --proto '=https' --tlsv1.2 -sSf https://get.kraftkit.sh | sh\n```\n\nAlternatively, you can download the binaries from the [releases pages](https://github.com/unikraft/kraftkit/releases).\n\nSee [additional installation instructions](https://unikraft.org/docs/cli/install).\n\nSee also the [hacking documentation on how to build KraftKit from source](https://unikraft.org/docs/cli/hacking).\n\n\n### Container build environment\n\nKraftKit ships a container build environment which you can use instead of installing any dependencies directly on your host.\nIt includes the `kraft` binary as well as all the additional tools and libraries for building Unikraft unikernels.\nAttach a working directory on your host as a mount path volume mapped to `/workspace`, e.g.:\n\n```shell\ndocker run -it --rm -v $(pwd):/workspace --entrypoint bash kraftkit.sh/base:latest\n```\n\nThe above command will drop you into a container shell.\nType `exit` or Ctrl+D to quit.\n\n\n## Quickstart\n\n### Test your installation\n\nRunning unikernels with `kraft` is designed to be simple and familiar.\nTo test your installation of `kraft`, you can run the following:\n\n```\nkraft run unikraft.org/helloworld:latest\n```\n\n### Build your first unikernel\n\nBuilding unikernels is also designed to be simple.  Build your first unikernel\nby placing a `Kraftfile` into your repo and pointing it to your existing\n`Dockerfile`:\n\n```yaml\nspec: v0.6\n\nruntime: base:latest\n\nrootfs: ./Dockerfile\n\ncmd: [\"/path/to/my-server-app\"]\n```\n\nOnce done, invoke:\n\n```\nkraft run .\n```\n\n### Examples and pre-built images\n\nYou can find some common project examples below:\n\n| | Example |\n|-|:-|\n| ![](https://raw.githubusercontent.com/unikraft/catalog/main/.github/icons/c.svg) | [Simple \"Hello, world!\" application written in C](https://github.com/unikraft/catalog/tree/main/examples/helloworld-gcc13.2) |\n| ![](https://raw.githubusercontent.com/unikraft/catalog/main/.github/icons/cpp.svg) | [Simple \"Hello, world!\" application written in C++](https://github.com/unikraft/catalog/tree/main/examples/helloworld-g%2B%2B13.2) |\n| ![](https://raw.githubusercontent.com/unikraft/catalog/main/.github/icons/rust-white.svg#gh-dark-mode-only)![](https://raw.githubusercontent.com/unikraft/catalog/main/.github/icons/rust-black.svg#gh-light-mode-only) | [Simple \"Hello, world!\" application written in Rust built via `cargo`](https://github.com/unikraft/catalog/tree/main/examples/helloworld-rust1.75) |\n| ![](https://raw.githubusercontent.com/unikraft/catalog/main/.github/icons/js.svg) | [Simple NodeJS 18 HTTP Web Server with `http`](https://github.com/unikraft/catalog/tree/main/examples/httpserver-nodejs18) |\n| ![](https://raw.githubusercontent.com/unikraft/catalog/main/.github/icons/go.svg) | [Simple Go 1.21 HTTP Web Server with `net/http`](https://github.com/unikraft/catalog/tree/main/examples/httpserver-go1.21) |\n| ![](https://raw.githubusercontent.com/unikraft/catalog/main/.github/icons/python3.svg) | [Simple Flask 3.0 HTTP Web Server](https://github.com/unikraft/catalog/tree/main/examples/flask3.0-python3.12) |\n| ![](https://raw.githubusercontent.com/unikraft/catalog/main/.github/icons/python3.svg) | [Simple Python 3.10 HTTP Web Server with `http.server.HTTPServer`](https://github.com/unikraft/catalog/tree/main/examples/httpserver-python3.10) |\n\nFind [more examples and applications in our community catalog](https://github.com/unikraft/catalog)!\n\n\n## Use in GitHub Actions\n\nKraftKit can be used to automatically build your application into a unikernel in a GitHub Actions workflow, \"`use`\" `unikraft/kraftkit@staging`.\n\nIn the following example, a repository that has been initialized with a top-level `Kraftfile` that contains a target for qemu/x86_64 will be built every time a PR is opened, synchronized or re-opened:\n\n```yaml\nname: example\n\non:\n  pull_request:\n    types: [opened, synchronize, reopened]\n\njobs:\n  build:\n    steps:\n    - uses: actions/checkout@v4\n\n    - uses: unikraft/kraftkit@staging\n      with:\n        workdir: .\n        kraftfile: Kraftfile\n        arch: x86_64\n        plat: qemu\n```\n\nFor other CI's and integrations, including GitLab, check out [the getting started guide](https://unikraft.org/docs/getting-started).\n\n\n## Compatibility\n\n| Hypervisor  | Supported Version    |\n|-------------|----------------------|\n| Xen         | \u003c= 4.19              |\n| QEMU        | \u003c= 9.2.1 \u0026\u0026 \u003e= 4.2.0 |\n| Firecracker | \u003e= 1.4.1             |\n\n|                 | QEMU | Firecracker | Xen | [containerd](/oci/README.md#supported-backends) |\n|-----------------|------|-------------|-----|-------------------------------------------------|\n| `linux/amd64`   | ✅   | ✅          | ✅  | ✅                                              |\n| `linux/arm64`   | ✅   | ✅          | --  | ✅                                              |\n| `darwin/amd64`  | ✅   | --          | --  | ✅                                              |\n| `darwin/arm64`  | ✅   | --          | --  | ✅                                              |\n| `freebsd/amd64` | ✅   | --          | --  | ✅                                              |\n| `freebsd/arm64` | ✅   | --          | --  | ✅                                              |\n| `netbsd/amd64`  | ✅   | --          | --  | --                                              |\n| `netbsd/arm64`  | ✅   | --          | --  | --                                              |\n| `openbsd/amd64` | ✅   | --          | --  | --                                              |\n| `openbsd/arm64` | ✅   | --          | --  | --                                              |\n\n\n## Support, Community \u0026 Meetings\n\nIf you have any further questions or need more information about KraftKit or Unikraft, please refer to [the official Unikraft documentation][unikraft-docs] or ask for help on the Unikraft community forum.\n\nA KraftKit Working Group (WG) meets every other Wednesday at 13:00 PM (CET) on [Discord][unikraft-discord].\nInvites and additional details are available on the [Unikraft OSS Public calendar][unikraft-calendar].\n\n\n## License\n\nKraftKit is part of the [Unikraft OSS Project][unikraft-website] and licensed under `BSD-3-Clause`.\n\n[unikraft-website]: https://unikraft.org\n[unikraft-docs]: https://unikraft.org/docs\n[unikraft-discord]: https://bit.ly/UnikraftDiscord\n[unikraft-calendar]: https://unikraft.org/community/events/\n[kraftkit-getting-started]: https://unikraft.org/docs/getting-started/\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Funikraft%2Fkraftkit","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Funikraft%2Fkraftkit","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Funikraft%2Fkraftkit/lists"}