Skip to content
forked from ipvm-wg/homestar

💫 A reference implementation of IPVM

License

Notifications You must be signed in to change notification settings

euamcg/homestar

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Outline

Quickstart

If you're looking to help develop Homestar, please dive right into our development guide.

Otherwise, the easiest way to get started and see Homestar in action is to follow-along with our examples. To start, try out our image-processing websocket relay example, which integrates Homestar with a browser application to run a statically-configured workflow. The associated README.md walks through what to install (i.e. rust, node/npm, ipfs), what commands to run, and embeds a video demonstrating its usage.

Throughout the Homestar ecosystem and documentation, we'll draw a distinction between the host runtime and the support for different guest languages and bindings.

If you're mainly interested in learning how to write and build-out Wasm components (currently focused on authoring in Rust), please jump into our homestar-functions directory and check out our examples there.

Packages

Each Homestar release will also build packages for distribution across different platforms.

  • homebrew: brew install fission-codes/fission/homestar This includes ipfs in the install by default.
  • npm: npm install homestar-runtime -g Wraps the homestar-runtime binary in a node script.

Running Examples

All examples contain instructions for running them, including what to install and how to run them. Please clone this repo, and get started!

Each example showcases something specific and interesting about Homestar as a system.

Our current list includes:

  • websocket relay - An example (browser-based) application that connects to the homestar-runtime over a WebSocket connection in order to run a couple static Wasm-based, image processing workflows that chain inputs and outputs.

Workspace

This repository is comprised of a few library packages and a library/binary that represents the Homestar runtime. We recommend diving into each package's own README.md for more information when available.

Core Crates

  • homestar-core

    The core library implements much of the Ucan Invocation and Ipvm Workflow specifications and is used as the foundation for other packages in this workspace and within the runtime engine.

  • homestar-wasm

    This wasm library manages the wasmtime runtime, provides the Ipld to/from Wit interpreter/translation-layer, and implements the input interface for working with Ipvm's standard Wasm tasks.

Runtime Crate

  • homestar-runtime

    The runtime is responsible for bootstrapping and running nodes, scheduling and executing workflows as well as tasks within workflows, handling retries and failure modes, etc.

Non-published Crates

  • homestar-functions/*

    homestar-functions is a directory of helper, test, and example crates for writing and compiling Wasm component modules using wit-bindgen.

  • examples/*

    examples contains examples and demos showcasing Homestar packages and the Homestar runtime. Each example is set up as its own crate, demonstrating the necessary dependencies and setup(s).

Contributing

🎈 We're thankful for any feedback and help in improving our project! We have a focused development guide, as well as a more general contributing guide to help you get involved. We always adhere to our Code of Conduct.

Releases

TBA

Getting Help

For usage questions, usecases, or issues reach out to us in our Discord channel.

We would be happy to try to answer your question or try opening a new issue on Github.

External Resources

License

This project is licensed under the Apache License 2.0, or http://www.apache.org/licenses/LICENSE-2.0.

Contribution

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.

About

💫 A reference implementation of IPVM

Resources

License

Code of conduct

Security policy

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Rust 75.2%
  • WebAssembly 23.2%
  • Nix 1.2%
  • Other 0.4%