ipfs / apps

Coordinating writing apps on top of ipfs, and their concerns.
60 stars 9 forks source link

non-web apps #4

Open eminence opened 8 years ago

eminence commented 8 years ago

I think neat things can be done with using IPFS to run/distribute traditional command-line applications, especially with the /ipfs fuse layer.

The super simple example is just sh /ipfs/QmRWKeMFYnby9YFHyUYfiGLX8ZcLu3XR4R36ark2MeYGCg

At the moment, I think the most important blocking issue is that ipfs unixfs nodes have no notion of file permissions, so it's not possible to add a binary to ipfs with the execute bit set.

Applications could also make use of IPNS to do automatic update checking (the details of this are pending on details on the new IPNS system)

davidar commented 8 years ago

Definitely, I'm very much in favour of native apps on IPFS, for both code and data distribution. See my comments on ipfs/ipfs#4 and jbenet/random-ideas#27 for example. Adding an executable bit to unixfs sounds reasonable to me (cc @whyrusleeping). The ipfs CLI itself is supposed to update itself over IPFS at some point, but I'm not sure when that's going to happen (cc @jbenet).

On a semi-related note, I'd also like to have a system for distributing cross-platform QML/QtQuick-based apps over IPFS, for GUIs that are too heavyweight to be shoehorning into HTML cough @atom. See this blog post by @shaan7 for example.

This could be useful for #2 since Qt actually supports JPEG2000 natively, unlike the sorry state of image formats supported by web browsers, and the performance issues with mobile browsers (cc @jbenet).

jbenet commented 8 years ago

unix permissions can go in the unixfs metadata object. (metadata can also carry mimetypes, etc).

@whyrusleeping i think we should just have a subthing inside metadata with all the unix-specific attrs, like:

{
  "unix": { // unix specific attrs
    "perm": <permissions>,
  }
  "xattrs": {}, // k-v for xattrs.
  "mime": "<mimetype>",
}
// all of them optional of course.

or something.

See https://github.com/ipfs/notes/issues/60