The main value seems to be as a research vehicle and teaching tool rather than production-ready infrastructure. The Rust version being archived suggests this might not be under active development currently.
Good for simple stateless services (web servers, API endpoints, microservices)
applications that fit the unikernel model - single-purpose, statically linked
Running on one's own Xen hypervisor infrastructure.
I would argue that stateful services (databases, message queues, CDNs) all perfectly fit the unikernel model. The question is whether the additional engineering effort and system design is worth the performance gain.
I’m one of the authors of Stardust - thanks to everyone who’s taken the time to look at it and share their thoughts here.
The project started with two questions:
- How small can a deployment unit be while still supporting real service workloads?
- What if distributed systems were built from components that can be deployed quickly or dynamically relocated across a network?
Instead of large virtual machines or container images, we turned to Unikernels; tiny, and easily deployable anywhere a hypervisor runs. If deployment becomes cheap, we can rethink system design: mobile agents, compute-near-data, ephemeral tasks, dynamic composition, and so on.
Stardust lets us explore that space, and both the C and Rust versions are stable.
Stateful services are possible with Unikernels, though library porting still takes work, and there’s plenty of room for innovation around hypervisor and tooling. WebAssembly is a promising direction as well, though it would require adapting Stardust to support an appropriate runtime. Some Unikernels have already gone down that path, and there’s definitely room for more experimentation.
The main value seems to be as a research vehicle and teaching tool rather than production-ready infrastructure. The Rust version being archived suggests this might not be under active development currently.
Good for simple stateless services (web servers, API endpoints, microservices) applications that fit the unikernel model - single-purpose, statically linked Running on one's own Xen hypervisor infrastructure.
It reminds me of the old OSKit project from the Univ of Utah, which was also developed for research and teaching.
https://www-old.cs.utah.edu/flux/oskit/
I would argue that stateful services (databases, message queues, CDNs) all perfectly fit the unikernel model. The question is whether the additional engineering effort and system design is worth the performance gain.
Interesting. Are there any research and papers on potential performance gains?
Looks promising but the last update appears to be a few years ago. OPS is a modern alternative: https://docs.ops.city/ops/
I’m one of the authors of Stardust - thanks to everyone who’s taken the time to look at it and share their thoughts here.
The project started with two questions:
- How small can a deployment unit be while still supporting real service workloads?
- What if distributed systems were built from components that can be deployed quickly or dynamically relocated across a network?
Instead of large virtual machines or container images, we turned to Unikernels; tiny, and easily deployable anywhere a hypervisor runs. If deployment becomes cheap, we can rethink system design: mobile agents, compute-near-data, ephemeral tasks, dynamic composition, and so on.
Stardust lets us explore that space, and both the C and Rust versions are stable.
Stateful services are possible with Unikernels, though library porting still takes work, and there’s plenty of room for innovation around hypervisor and tooling. WebAssembly is a promising direction as well, though it would require adapting Stardust to support an appropriate runtime. Some Unikernels have already gone down that path, and there’s definitely room for more experimentation.
> Stardust-oxide is a re-implementation of the unikernel in Rust.
Not "Starrust"? What a missed opportunity...
Galen Erso disagrees.
Could this be good for compiling as a small Wasm OS for the Browser? Instead of Alpine Linux or things like that?
[dead]
[dead]