{"id":13930184,"url":"https://github.com/ipvm-wg/homestar","last_synced_at":"2025-04-07T04:19:22.272Z","repository":{"id":64746081,"uuid":"575268277","full_name":"ipvm-wg/homestar","owner":"ipvm-wg","description":"Homestar is the individual node that makes up the Everywhere Computer network (similar to how IPFS Kubo, Iroh, Nabu, or other implementation nodes make up the IPFS network). It's written in Rust and is designed for performance and composability.","archived":false,"fork":false,"pushed_at":"2024-09-26T17:11:35.000Z","size":20684,"stargazers_count":233,"open_issues_count":87,"forks_count":27,"subscribers_count":15,"default_branch":"main","last_synced_at":"2025-03-31T03:12:37.724Z","etag":null,"topics":["compute","fission","ipvm","rust","wasm","wit","workflows"],"latest_commit_sha":null,"homepage":"https://docs.everywhere.computer/homestar/what-is-homestar/","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/ipvm-wg.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-12-07T05:54:56.000Z","updated_at":"2025-03-24T20:39:02.000Z","dependencies_parsed_at":"2023-07-19T14:04:14.296Z","dependency_job_id":"fec9ab5d-c648-4420-99a7-df391a8fd5b2","html_url":"https://github.com/ipvm-wg/homestar","commit_stats":{"total_commits":371,"total_committers":15,"mean_commits":"24.733333333333334","dds":0.5336927223719676,"last_synced_commit":"0f0a4f5b4c00c856c6eb865da087c0332b119e8d"},"previous_names":["ipvm-wg/ipvm"],"tags_count":16,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ipvm-wg%2Fhomestar","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ipvm-wg%2Fhomestar/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ipvm-wg%2Fhomestar/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ipvm-wg%2Fhomestar/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ipvm-wg","download_url":"https://codeload.github.com/ipvm-wg/homestar/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247589826,"owners_count":20963025,"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":["compute","fission","ipvm","rust","wasm","wit","workflows"],"created_at":"2024-08-07T18:05:04.261Z","updated_at":"2025-04-07T04:19:22.249Z","avatar_url":"https://github.com/ipvm-wg.png","language":"Rust","funding_links":[],"categories":["rust","Rust","wasm"],"sub_categories":[],"readme":"\u003cdiv align=\"center\"\u003e\n  \u003ca href=\"https://github.com/ipvm-wg/homestar\" target=\"_blank\"\u003e\n    \u003cimg src=\"https://raw.githubusercontent.com/ipvm-wg/homestar/main/assets/mascot_full_transparent.png\" alt=\"Homestar logo\" width=\"400\"\u003e\u003c/img\u003e\n  \u003c/a\u003e\n\n  \u003ch1 align=\"center\"\u003eHomestar\u003c/h1\u003e\n\n  \u003cp\u003e\n    \u003ca href=\"https://crates.io/crates/homestar-invocation\"\u003e\n      \u003cimg src=\"https://img.shields.io/crates/v/homestar-invocation?label=crates\" alt=\"Crate\"\u003e\n    \u003c/a\u003e\n    \u003ca href=\"https://crates.io/crates/homestar-runtime\"\u003e\n      \u003cimg src=\"https://img.shields.io/crates/v/homestar-runtime?label=crates\" alt=\"Crate\"\u003e\n    \u003c/a\u003e\n    \u003ca href=\"https://crates.io/crates/homestar-wasm\"\u003e\n      \u003cimg src=\"https://img.shields.io/crates/v/homestar-wasm?label=crates\" alt=\"Crate\"\u003e\n    \u003c/a\u003e\n    \u003ca href=\"https://crates.io/crates/homestar-workflow\"\u003e\n      \u003cimg src=\"https://img.shields.io/crates/v/homestar-workflow?label=crates\" alt=\"Crate\"\u003e\n    \u003c/a\u003e\n    \u003ca href=\"https://codecov.io/gh/ipvm-wg/homestar\"\u003e\n      \u003cimg src=\"https://codecov.io/gh/ipvm-wg/homestar/branch/main/graph/badge.svg?token=SOMETOKEN\" alt=\"Code Coverage\"/\u003e\n    \u003c/a\u003e\n    \u003ca href=\"https://github.com/ipvm-wg/homestar/actions/workflows/tests_and_checks.yml\"\u003e\n      \u003cimg src=\"https://github.com/ipvm-wg/homestar/actions/workflows/tests_and_checks.yml/badge.svg\" alt=\"Tests and Checks Status\"\u003e\n    \u003c/a\u003e\n    \u003ca href=\"https://github.com/ipvm-wg/homestar/actions/workflows/docker.yml\"\u003e\n      \u003cimg src=\"https://github.com/ipvm-wg/homestar/actions/workflows/docker.yml/badge.svg\" alt=\"Build Docker Status\"\u003e\n    \u003c/a\u003e\n    \u003ca href=\"https://github.com/ipvm-wg/homestar/actions/workflows/audit.yml\"\u003e\n      \u003cimg src=\"https://github.com/ipvm-wg/homestar/actions/workflows/audit.yml/badge.svg\" alt=\"Cargo Audit Status\"\u003e\n    \u003c/a\u003e\n    \u003ca href=\"https://github.com/ipvm-wg/homestar/blob/main/LICENSE\"\u003e\n      \u003cimg src=\"https://img.shields.io/badge/License-Apache%202.0-blue.svg\" alt=\"License\"\u003e\n    \u003c/a\u003e\n    \u003ca href=\"https://docs.rs/homestar-invocation\"\u003e\n      \u003cimg src=\"https://img.shields.io/static/v1?label=Docs\u0026message=invocation.docs.rs\u0026color=pink\" alt=\"Docs\"\u003e\n    \u003c/a\u003e\n    \u003ca href=\"https://docs.rs/homestar-runtime\"\u003e\n      \u003cimg src=\"https://img.shields.io/static/v1?label=Docs\u0026message=runtime.docs.rs\u0026color=pink\" alt=\"Docs\"\u003e\n    \u003c/a\u003e\n    \u003ca href=\"https://docs.rs/homestar-wasm\"\u003e\n      \u003cimg src=\"https://img.shields.io/static/v1?label=Docs\u0026message=wasm.docs.rs\u0026color=pink\" alt=\"Docs\"\u003e\n    \u003c/a\u003e\n    \u003ca href=\"https://docs.rs/homestar-workflow\"\u003e\n      \u003cimg src=\"https://img.shields.io/static/v1?label=Docs\u0026message=workflow.docs.rs\u0026color=pink\" alt=\"Docs\"\u003e\n    \u003c/a\u003e\n    \u003ca href=\"https://fission.codes/discord\"\u003e\n      \u003cimg src=\"https://img.shields.io/static/v1?label=Discord\u0026message=join%20us!\u0026color=mediumslateblue\" alt=\"Discord\"\u003e\n    \u003c/a\u003e\n  \u003c/p\u003e\n\u003c/div\u003e\n\n##\n\n## Outline\n\n- [Quickstart](#quickstart)\n- [Packages](#packages)\n- [Running Examples](#running-examples)\n- [Workspace](#workspace)\n- [Contributing](#contributing)\n- [Releases and Builds](#releases-and-builds)\n- [Getting Help](#getting-help)\n- [External Resources](#external-resources)\n- [License](#license)\n\n## Quickstart\n\nIf you're looking to help develop `Homestar`, please dive right into our\n[development](./DEVELOPMENT.md) guide.\n\nOtherwise, the easiest way to get started and see `Homestar` in action is to\nfollow-along with our [examples](./examples). To start, try out our\nimage-processing [websocket relay](./examples/websocket-relay) example, which\nintegrates `Homestar` with a browser application to run a\nstatically-configured workflow. The associated `README.md` walks through\nwhat to install (i.e. `rust`, `node/npm`, `ipfs`), what commands\nto run, and embeds a video demonstrating its usage.\n\nThroughout the `Homestar` ecosystem and documentation, we'll draw a distinction\nbetween the [host runtime][host-runtime] and the support for different\n[guest languages and bindings][guest].\n\nIf you're mainly interested in learning how to write and build-out Wasm\ncomponents (currently focused on authoring in Rust), please jump into\nour [`homestar-functions`](./homestar-functions) directory and check out\nour examples there.\n\n## Packages\n\nEach `Homestar` release will also build packages for distribution across\ndifferent platforms.\n\n- [homebrew][homebrew]: `brew install fission-codes/fission/homestar`\n  This includes `ipfs` in the install by default.\n- [npm](https://www.npmjs.com/package/homestar-runtime): `npm install homestar-runtime -g` Wraps the `homestar-runtime` binary in a node script.\n\n## Running Examples\n\nAll [examples](./examples) contain instructions for running\nthem, including what to install and how to run them. Please clone this repo,\nand get started!\n\nEach example showcases something specific and interesting about `Homestar`\nas a system.\n\nOur current list includes:\n\n- [websocket relay](./examples/websocket-relay/README.md) - An example\n  (browser-based) application that connects to the `homestar-runtime` over a\n  WebSocket connection in order to run a couple static Wasm-based, image\n  processing workflows that chain inputs and outputs.\n\n## Workspace\n\nThis repository is comprised of a few library packages and a library/binary that\nrepresents the `Homestar` runtime. We recommend diving into each package's own\n`README.md` for more information when available.\n\n### Core Crates\n\n- [homestar-invocation](./homestar-invocation)\n\n  The *invocation* library implements much of the [Ucan Invocation][ucan-invocation]\n  specification and is used as the foundation for other packages in this\n  `workspace` and within the runtime engine.\n\n- [homestar-wasm](./homestar-wasm)\n\n  This *wasm* library manages the [wasmtime][wasmtime] runtime, provides the\n  [IPLD][ipld] to/from [WIT][wit] interpreter/translation-layer, and implements\n  the input interface for working with Ipvm's standard Wasm tasks.\n\n  You can find the spec for translating between IPLD and WIT runtime values\n  based on WIT types [here](./homestar-wasm/README.md#interpreting-between-ipld-and-wit).\n\n  *Note*: This library also includes a [WIT `world`][wa.dev-homestar-host] for\n  bindings implemented on the host runtime.\n\n- [homestar-workflow](./homestar-workflow)\n\n  The *workflow* library implements workflow-centric [Ipvm features][ipvm-spec]\n  and is used as the foundation for other packages in this `workspace` and\n  within the runtime engine.\n\n### Runtime Crate\n\n- [homestar-runtime](./homestar-runtime)\n\n  The *runtime* is responsible for bootstrapping and running nodes, scheduling\n  and executing workflows as well as tasks within workflows, handling retries\n  and failure modes, etc.\n\n### Non-published Crates\n\n- [homestar-functions/*](./homestar-functions)\n\n  `homestar-functions` is a directory of helper, test, and example crates for\n  writing and compiling [Wasm component][wasm-component] modules using\n  [wit-bindgen][wit-bindgen].\n\n  You can find our component packages on [wa.dev][wa.dev-homestar].\n\n- [homestar-schemas](./homestar-schemas)\n\n`homestar-schemas` is a crate for generating OpenRPC docs and JSON Schemas that document the [homestar-runtime](./homestar-runtime) JSON-RPC API, workflows, and receipts.\n\n- [examples/*](./examples)\n\n  `examples` contains examples and demos showcasing `Homestar` packages\n  and the `Homestar` runtime. Each example is set up as its own crate,\n  demonstrating the necessary dependencies and setup(s).\n\n## Contributing\n\n:balloon: We're thankful for any feedback and help in improving our project!\nWe have a focused [development](./DEVELOPMENT.md) guide, as well as a\nmore general [contributing](./CONTRIBUTING.md) guide to help you get involved.\nWe always adhere to our [Code of Conduct](./CODE_OF_CONDUCT.md).\n\n## Releases and Builds\n\n### Crates, Tags, and GitHub Releases\n\nHomestar uses [release-plz][release-plz] to publish [crates][rel-crates],\n[tags][rel-tags], changelogs, and [GitHub Releases][rel-gh]. Upon merging,\na `release-plz` bot PR, four crates are continuously published,\n**all tied to the same cargo version currently** (though this may change in the\nfuture):\n\n- [homestar-runtime][crate-runtime]\n- [homestar-invocation][crate-invocation]\n- [homestar-workflow][crate-workflow]\n- [homestar-wasm][crate-wasm]\n\n### Build Targets\n\nEvery [GitHub release of the homestar-runtime][rel-latest] contains build assets\nfor running the `homestar-runtime` on different target architectures, as well as\n[DEB][deb] and [RPM][rpm] packages (tagged with the architectured they were\ncompiled for). Our homebrew package for the runtime is also tied to releases\nand can be installed with `brew install fission-codes/fission/homestar`.\n\nWe also leverage [cross][cross-rs] for [locally cross-compiling](./Cross.toml)\nto varying Linux and Apple target platforms.\n\n### NPM Packages\n\nWe also release some of our cross-compiled runtime binaries as\n[npm binary packages](./homestar-runtime/npm/README.md):\n\n- [homestar-runtime](https://www.npmjs.com/package/homestar-runtime) - This is\n  the main package that installs the os specific binary package and runs it.\n- [homestar-darwin-arm64](https://www.npmjs.com/package/homestar-darwin-arm64)\n- [homestar-darwin-x64](https://www.npmjs.com/package/homestar-darwin-x64)\n- [homestar-linux-arm64](https://www.npmjs.com/package/homestar-linux-arm64)\n- [homestar-linux-x64](https://www.npmjs.com/package/homestar-linux-x64)\n- [homestar-windows-x64](https://www.npmjs.com/package/homestar-windows-x64)\n\n## Getting Help\n\nFor usage questions, usecases, or issues reach out to us in our [Discord channel](https://fission.codes/discord).\n\nWe would be happy to try to answer your question or try opening a new issue on GitHub.\n\n## External Resources\n\n- [What Is An IPVM][ipvm-wg]\n- [IPVM: High-Level Spec][ipvm-spec]\n- [Contributing Research][research]\n- [Seamless Services for an Open World][seamless-services] by Brooklyn Zelenka\n- [Foundations for Open-World Compute][foundations-for-openworld-compute] by Zeeshan Lakhani\n- [IPVM: The Long-Fabled Execution Layer][cod-ipvm] by Brooklyn Zelenka\n- [IPVM - IPFS and WASM][ipfs-thing-ipvm] by Brooklyn Zelenka\n- [Breaking Down the Interplanetary Virtual Machine][blog-1]\n- [Ucan Invocation Spec][ucan-invocation]\n\n## License\n\nThis project is licensed under the [Apache License 2.0](./LICENSE), or\n[http://www.apache.org/licenses/LICENSE-2.0][apache].\n\n### Contribution\n\nUnless you explicitly state otherwise, any contribution intentionally\nsubmitted for inclusion in the work by you, as defined in the Apache-2.0\nlicense, shall be dual licensed as above, without any additional terms or\nconditions.\n\n[apache]: https://www.apache.org/licenses/LICENSE-2.0\n[blog-1]: https://fission.codes/blog/ipfs-thing-breaking-down-ipvm/\n[cod-ipvm]: https://www.youtube.com/watch?v=3y1RB8wt_YY\n[crate-runtime]: https://crates.io/crates/homestar-runtime\n[crate-invocation]: https://crates.io/crates/homestar-invocation\n[crate-workflow]: https://crates.io/crates/homestar-workflow\n[crate-wasm]: https://crates.io/crates/homestar-wasm\n[cross-rs]: https://github.com/cross-rs/cross\n[deb]: https://www.debian.org/doc/manuals/debian-faq/pkg-basics.en.html\n[demo-1]: https://www.loom.com/share/3204037368fe426ba3b4c952b0691c5c\n[foundations-for-openworld-compute]: https://youtu.be/dRz5mau6fsY\n[guest]: https://github.com/bytecodealliance/wit-bindgen#supported-guest-languages\n[homebrew]: https://brew.sh/\n[host-runtime]: https://github.com/bytecodealliance/wit-bindgen#host-runtimes-for-components\n[ipfs-thing-ipvm]: https://www.youtube.com/watch?v=rzJWk1nlYvs\n[ipld]: https://ipld.io/\n[ipvm-spec]: https://github.com/ipvm-wg/spec\n[ipvm-wg]: https://github.com/ipvm-wg\n[ipvm-workflow-spec]: https://github.com/ipvm-wg/workflow\n[mit]: http://opensource.org/licenses/MIT\n[rel-crates]: https://crates.io/search?q=homestar\n[rel-gh]: https://github.com/ipvm-wg/homestar/releases\n[rel-latest]: https://github.com/ipvm-wg/homestar/releases/latest\n[rel-tags]: https://github.com/ipvm-wg/homestar/tags\n[release-plz]: https://release-plz.ieni.dev/\n[rpm]: https://rpm.org/\n[research]: https://github.com/ipvm-wg/research\n[seamless-services]: https://youtu.be/Kr3B3sXh_VA\n[ucan-invocation]: https://github.com/ucan-wg/invocation\n[wa.dev-homestar]: https://wa.dev/homestar\n[wa.dev-homestar-host]: https://wa.dev/homestar:host\n[wasm-component]: https://github.com/WebAssembly/component-model\n[wasmtime]: https://github.com/bytecodealliance/wasmtime\n[wit]: https://github.com/WebAssembly/component-model/blob/main/design/mvp/WIT.md\n[wit-bindgen]: https://github.com/bytecodealliance/wit-bindgen\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fipvm-wg%2Fhomestar","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fipvm-wg%2Fhomestar","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fipvm-wg%2Fhomestar/lists"}