Hi there, just want to clarify that Nebulus is not a replacement for IPFS or competes with IPFS. In fact it internally uses all the features you just mentioned. In fact it's even powered by JS-IPFS and makes use of the "--only-hash" features and other features you mentioned.
I needed a programmatic way to do all these things (as well as many other user friendly features that the IPFS raw protocol will never provide) and the existing IPFS libraries don't provide a way to do so, so I built it and have been using it from another project, and it was so useful that I decided to extract it out of that project into a standalone one. Just hope others find it useful as well. Thank you.
I mentioned this in above thread, but I am thinking of ways to mash up Nebulus with Hypercore (Because the content addressable aspect has been unbundled from the networking aspect of IPFS, I think there will be some interesting ways to deliver IPFS over Hypercore). Will keep the hypercore community posted when I make some progress, and thank you for all your work with Hypercore. I use Hypercore for several of my projects.
> 1) I wonder why this wasn't written in a language that can compile to wasm, so it could be used on both native and js without reimplementing.
The most straightforward answer is, I extracted this out of an existing project I've been working on: https://rarepress.org/ I had to build a system that makes use of IPFS without having to publish everything to the public network, and this was where the idea came from. But the "IPFS-Less IPFS" turned out to be much more powerful idea than I originally thought, so decided to turn it into its own open source project.
That said, I think it shouldn't be difficult to implement this using Go at some point if this approach becomes popular. For now I wanted to keep the initiative minimal so I can move fast.
> 2) Can someone contrast hypercore and IPFS?
This is a great question in this context. Hypercore is more focused on the networking aspect, but IPFS is not just a networking protocol but also a way to represent files using immutable identifiers (content addressable file system). What I just did with Nebulus is unbundle the "file system" from the "network" so we can use IPFS in more flexible manner.
Speaking of Hypercore, because Nebulus unbundles the network aspect of IPFS from the content addressable file system aspect, it is possible to use ANY network transport to replicate IPFS files, which includes Hypercore.
It lets you write to files. Except that these are files that exist in a self contained virtual file system in the browser. You can do things like fs.writeFile() or fs.readFile() (like electron, but without needing a desktop app, but directly inside the browser), and push that entire file system to a remote git repository, or pull from one.
Thank you, in the video I intentionally positioned Offbase as a "static site generator" and a "blogging engine" just to focus the minimal viable product and avoid confusion, but the actual platform I'm working toward releasing is really a generic shell that can run anything, the blogging package will be the one thing I will focus on building myself, but since it will be a completely open platform where you can download any git repository into the browser, anyone should be able to build their own package. For example you can build a documentation engine package, or an image editor package. And going further, even the static site generator logic itself is nothing more than a single use case where it simply runs a template logic and writes to the virtual file system, while using the service worker to render the files in realtime, for example. You can think of Offbase as something like Electron, but in a browser. This means a lot of things that you used to need a server for, you can build with Offbase purely inside the browser. Which means, I think Offbase may fit right in with what you're trying to build, it should handle a lot of headaches you might otherwise have. Will try to get this rolled out public as soon as I can, it's almost there, just trying to deal with some last mile problems and documentation.