Since we are in the fediverse, I think it would be convenient to have a fediverse-wide resolvable fediverse URI scheme, that would look like so:
fediverse://
edit: Found a relevant FEP: https://codeberg.org/fediverse/fep/src/branch/main/fep/07d7/fep-07d7.md
It’s an intriguing idea and might well be in line with the founding principles of the internet.
As I understand it, the URI is supposed to define the type of data you will find at the address, allowing you to use a client dedicated to that type. So: use a Gopher client for
gopher://
data, a newsgroup program fornntp://
data, and of course a web browser forhttp://
.So the issue here would be to define what “fediverse data” actually looks like. This is quickly becoming quite a technical challenge.
Personally I like the idea of standardizing communication paradigms with a protocol, but you do first have to decide what the paradigms are. A few obvious suggestions:
- IM, or one-to-one message (holy grail! but then not public, by definition)
- many-to-many text message (IRC)
- forum post with comments (this thing right here)
- one-to-many message (Xitter, Mastodon)
Since the ActivityPub protocol seems to be the de-facto glue to this fediverse thing, maybe that’s where to look first.
it’s not really about the type of data, it’s more about how you get it. web browsers could open gopher URIs for a long time, it was just a separate access method.
but the thing is, it doesn’t really make a difference today, because we’ve decided that http is some sort of base protocol.
someone decided to try making a custom
matrix://
scheme (it’s called a scheme btw) for matrix clients and it’s just been a nightmare. clients don’t know what to do with the url, servers block it, we had to patch it out to get it to properly encrypt messages to our local homeserver. and matrix just uses http on top anyway.no, i think they should be reserved for protocols that are important enough to be in the <1000 range of ports. like SSH, or Doom multiplayer.
Interesting anecdote. Yes I’m aware that the “ht” in
http
is now basically a historical artifact. It all feels a bit dirty but, as you say, doing things the way the architects intended is probably not worth the effort.
So http is hypertext transfer protocol. Maybe activity pub transfer protocol could be aptp://
Changing the scheme doesn’t really make any difference if it’s still just HTTP underneath. The scheme is just for indicating a protocol. So what’s the different protocol you’d actually propose?
Apps (at least on android, no idea both iOS) could claim support for the protocol. Removing the need to claim hundreds or thousands of addresses.
By “claiming addresses” you mean domains? Or what?
You mean because the address in the fediverse scheme would be domain-independent? How in the world would that work? How would it know what to connect to? You’re proposing something completely different than ActivityPub at least.
On android, when you click a link that has an association with an app you get the choice to open the app instead of being redirected to the website. Right now every app developer for the fediverse needs to maintain a list of instances for this. If you had a protocol instead you would only need to specify the one.
Look up what a URL schema is. Examples include
https
(obviously handled by your browser),ftp
,mailto
,ms-word
etc. Themailto
one is most well-known for letting you choose between in-browser (Gmail etc.) and native (Thunderbird, Outlook etc.) options on desktop and mobile. There does not need to be a formal protocol and port, it’s just a way to signal support for a kind of content via URL.Okay, sure you could have apps open links to external posts, as the app would know that it would need to fetch the post by searching the URL (switched with a HTTPS scheme). I can kinda see the point of that. I’m not sure the fediverse and ActivityPub is really super mature enough for that yet. For instance you can’t fetch Mastodon posts from Lemmy.
For instance you can’t fetch Mastodon posts from Lemmy.
Having a standard URL scheme would precisely help us develop ActivityPub clients and get rid of application-specific servers.
Doesn’t change the fact that Lemmy does not support posts outside of communities.
Not that I’m opposed, but I’m not sure if it’s practical to make a fediverse-wide link that’s resolvable between platforms since there are so many differences and little incompatibilities and developers who don’t directly interact with each other – or even know each other exist!
Even if it isn’t though, it would be nice to be able to do something like
lemmy://(rest of regular url)
to indicate data from a lemmy(-compatible) server that should be viewable by all other lemmy clients without leaving your particular client and having to open some other website.silly. this would be like expecting to use IE:// for internet explorer webpages instead of an expected protocol standard like http. defeats the purpose of protocol designed around content not applications.
imagine how shitty email would be if we had to tag the server application somewhere in the uri. silly.
It’s not a particular protocol right now, but it would be a URI that refers to a specific resource. A protocol could also be defined – e.g. a restricted subset of HTTPS that returns JSON objects following a defined schema or something like that – but the point really is that I want to be able to refer to a thread not a webpage. I don’t think that’s a silly thing to want to be able to do.
Right now, I can only effectively link to a post or thread as rendered by a specific interface – e.g. for me, this thread is https://old.reddthat.com/post/30710789 using reddthat’s mlmym interface. That’s probably not how most users would like to view the thread if I want to link it to them. Any software that recognizes the new URI scheme could understand that I mean a particular thread rather than how it’s rendered by a particular web app, and go fetch it and render it appropriately in their client if I link it. (If current clients try to be clever about HTTP links, it becomes ambiguous if I mean the thread as rendered into a webpage in specific way or if I actually meant the thread itself but had to refer to it indirectly; that causes problems too.)
I don’t think
lemmy://
is necessarily the best prefix – especially if mbin, piefed, etc. get on board – just that I would like functionality like that very much, and that something like a lemmy URI scheme (or whatever we can get people to agree on) might be a good way to accomplish it.if anything, the op had it correct with fedi:// or ap://
the requests and responses standardized as with any protocol regardless of underlying server.
objects in the fediverse are urls. thats just how it works.
apps (clients) accessing that content are outside the scope of the protocol… its their own implementation problem with how they render stuff (those object urls).
for example; mbin can already consume/ingest a given fediverse thread, post or comment if it has never seen it before (given the url) and render it correctly.
We do.
It’s mailto or mime for the scheme. There’s even mbox as a scheme.
Upside down, as the other comment says. It should rather be
forum://
or similar, i.e. a generic self-explanatory term for the type of data. The branded networks like this one would then follow the standard in order to display properly.
The disadvantage is, Reddit and other platforms will never add support for
[fediverse hyperlink](fediverse://example.com/post/1337)
Markdown syntax, or even start blocking it (they can already block known Fediverse domains but there would be backlash if they did).How would that work? Who would resolve it?
Client software (browsers, etc) would need to resolve it, just like mailto:
It certainly should happen, but it’s not likely because it takes too much momentum
To what end?
You wouldn’t need browser extensions to open links on your instance
App maintainers wouldn’t need to maintain lists of instances to correctly signal “I can open this” to the OS
So if your Mastodon instance just sprung up, you can just give someone a link like
fediverse://masto.darkthough.ts/post/1337
and it will auto-open using the app and instance account of their choosing.
That would be awesome!