Skip to content

felix-scheib/smash

Repository files navigation

SMasH

Shared Memory (adaption for speedy) Hermit(s)

SMasHprovides an easy to use interface for sharing memory among multiple Hermit unikernels.

Although SMAsH is primarily developed for the Hermit unikernel it can also be used in other Rust environments to share memory amogn processes.

Prerequisites

To run Hermit unikernels two additional files are needed.

  • hermit loader to run the unikernel with QEMU (./get_loader.sh provides an easy way to get the latest version)
  • virtiofsd to bridge the unikernel's filesystem with the host (prebuild binaries available for x86_64)

Objectives

  • handling of shared memory like any other smartpointer
  • no unsafe code for the user
  • fully distributed memory, no single points of failure
  • usage of idiomantic Rust

Building

To use Hermit the Rust toolchain and rust-std-hermit are required. The Protocol Buffers compiler protoc is needed for the shared memory objects.

The complete development environment is provided by as Docker image.

The following command will build the current directory in development configuration. To use any other cargo command, simply override the entrypoint of the container.

docker run -v $(pwd):/app:Z ghcr.io/felix-scheib/felix-scheib/smash/buildenv:1.0

Releases

No releases published

Packages

No packages published