Hey Dev Community! We're Clein, Kelly, and Ronald, the team behind Sphere.
A few weeks ago, we introduced Sphere v0.1 – a Rust-based CLI tool for running commands in isolated, portable sandboxes, born out of our experiences developing on mobile with Termux in Kenya. [https://dev.to/spheredevs/we-built-a-docker-alternative-in-rust-on-our-phones-in-kenya-heres-why-21c0].
Today, we're incredibly excited to launch Sphere v0.2.0, which takes a giant leap forward by introducing the SphereHub MVP!
What is the SphereHub?
Imagine a world where any script, tool, or simple utility you write can be easily shared with others, and where you can just as easily pull in tools built by the community, all with guarantees of isolation and integrity. That's the vision behind SphereHub.
With v0.2.0, Sphere is no longer just a local tool. It's the beginning of an ecosystem.
How It Works:
1. Publishing Your Sphere (Sharing is Caring!)
Got a cool .sphere
file that automates a task or provides a useful utility? You can now prepare it for the public SphereHub with our new command:
bash
sphere publish ./my-utility.sphere
This command doesn't directly upload (for security and moderation in this MVP stage). Instead, it:
Validates your .sphere file (ensuring it has an id).
Prompts you for metadata like author and description.
Calculates a SHA256 hash of your file's content.
Then, it gives you clear, step-by-step instructions on how to create a Pull Request to our central, GitHub-based registry: https://github.com/Nakadra/sphere-hub-registry.
Once your PR is merged, your Sphere is "live"!
2. Consuming Public Spheres (Effortless Dependencies!)
This is where the magic happens. Let's say someone published a Sphere with the ID com.community.super-formatter/v1.0.0. You can now use it in your own my-project.sphere like this:
# my-project.sphere
id = "com.me.my-project/v1"
entrypoint = "echo 'Formatting code...'; formatter my-code.txt; echo 'Done!'"
[dependencies]
formatter = "com.community.super-formatter/v1.0.0"
When you run sphere run my-project.sphere:
Sphere checks your local cache.
If com.community.super-formatter/v1.0.0 isn't there, it automatically fetches the master index from the SphereHub.
It downloads the super-formatter .sphere file.
Crucially, it verifies the downloaded file's SHA256 hash against the one listed in the Hub's index. This ensures you're running exactly what was published, with no tampering.
It caches the dependency locally and then runs your project!
Why This Matters
Simplicity: No complex package management configurations. Just list your dependency ID.
Security: Hash verification provides a strong guarantee of integrity.
Portability: Because every Sphere runs in its own sandbox, dependencies "just work."
Community: We're laying the groundwork for a rich ecosystem of reusable computational building blocks.
Try It Out!
Sphere v0.2.0 is available now on GitHub:
https://github.com/Nakadra/sphere-runtime/releases/tag/v0.2.0
The SphereHub registry is young and needs your contributions to grow:
https://github.com/Nakadra/sphere-hub-registry
We're still very early in this journey, and your feedback is more valuable than ever. What do you think of the SphereHub concept? What tools would you like to see published?
Join our Discord Server to chat with us![https://discord.gg/ZnUCaUGr]
Thanks for reading!
Clein, Kelly and Ronald
Top comments (0)