Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

MSC2312: Matrix URI scheme proposal #2312

Open
wants to merge 3 commits into
base: master
from

Conversation

@KitsuneRal
Copy link
Member

commented Oct 4, 2019

This is a remake of #455 - now in Markdown, and greatly extended.

Rendered

A remake of MSC455.
Copy link

left a comment

This looks like a solid MSC to me, with good self-consistency. I am still not sold on the type specifier, though maybe the way to go is to have a first version out and iterate on it (with all the complexity due to backwards compatibility).

I would put a lot more real-life examples in the spec, as advised in the RFCs. Have this been trough a lot of verification, or does it need further analysis (like fuzzing) to check that no ambiguous situation might arise?

I would like to see someone from the IETF review this MSC once it is approved on the Matrix side, before accepting this, as they are likely to have a lot more experience on that topic.
Here are my previous notes on the subject (sigil-based)

The most relevant stuff from those notes is probably the action plan I wrote:


Action plan:

The following steps are required to bootstrap the ecosystem once the proposal has been accepted:

  • Declare the matrix: protocol to the IANA BCP35
  • matrix.to improvements:
    • add a matrix: scheme generator
    • add a parser for matrix: urls
  • Add matrix.to as a default handler for matrix: URLs
    • Mozilla Firefox
    • Chromium
    • Various desktop environments
    • Open issues for proprietary browsers
The authority part is used for the specific case of getting access
to a Matrix resource (such as a room or a user) through a given server.
```text
authority = host [ “:” port ]

This comment has been minimized.

Copy link
@MayeulC

MayeulC Oct 4, 2019

Do we have a use-case for multiple authorities? To protect against bit-rot and servers being decommissioned, I could see multiple authorities being used (unless the routing part is enough)

This comment has been minimized.

Copy link
@KitsuneRal

KitsuneRal Oct 5, 2019

Author Member

That's a great question to which I don't have a definitive answer. This MSC is written with an assumption that the authority is basically singular (i.e. there's a single entity controlling that authority). But I can conceive a case with several Matrix federations being co-accessible from a single client, even though I doubt this has much merit. In that setting a use case for multiple authorities under each federation becomes viable. While in theory we could use , or ; to make a list of host-ports, I'm pretty sure not too many parsers will handle this reasonably (especially the port part). I also added some ramblings on the subject here: #2309 (comment).

proposals/2312-matrix-uri.md Show resolved Hide resolved
proposals/2312-matrix-uri.md Show resolved Hide resolved
proposals/2312-matrix-uri.md Outdated Show resolved Hide resolved
1. (still open)
_Should we advise using the query part for collections then?_
1. (still open)
_Why not Reddit-style single-letter type specifiers? That's almost

This comment has been minimized.

Copy link
@MayeulC

MayeulC Oct 4, 2019

Interesting question, worth discussing. If emojis were easier to enter on all platforms, thy might even have been a good choice.

This comment has been minimized.

Copy link
@KitsuneRal

KitsuneRal Oct 5, 2019

Author Member

Emojis in URIs don't quite fly - not as a primary medium at least. You should be able to write a URI on a napkin, and emojis are terrible for that. (WIth that said, for napkins we already have Matrix identifiers.)

This comment has been minimized.

Copy link
@MayeulC

MayeulC Oct 13, 2019

One of the issues I see with using plain english words is that those can be as opaque as sigils (but longer) for those who do not speak it (and could hypothetically be harde to type on some keyboard layouts).
I would really like to give Matrix all the chances it deserves on the International scene, as a communication tool. One-letter sigils might be more universal? Though harder to understand than words for English-speaking users. Of course, the client itself could explain the URLs in a locale-appropriate way, or display it with sigils, regardless of the URI form. So is it a non-issue as well? Especially with many Internet technologies (and the scheme itself) being English-focused.

This comment has been minimized.

Copy link
@auscompgeek

auscompgeek Oct 13, 2019

One issue with the # sigil is that they denote fragments in URIs, so that's already a showstopper unless you want to make consuming matrix URIs significantly more difficult than necessary.

This comment has been minimized.

Copy link
@MayeulC

MayeulC Oct 13, 2019

Woops, I wrote "one-letter sigils" without explicitly stating that I meant /r/ instead of /room/(or /#/ for that matter). Here, the alpha character acts as a sigil.
That said, it doesn't need to be significantly more complex, as you can just s,#,room/, and parse the URI as usual, whenever you detect a matrix: scheme URI. But we might as well elect to pick the /room/ version as the actual URI, and let the client do the opposite transform, as I wrote :)

proposals/2312-matrix-uri.md Show resolved Hide resolved
application will open the correct application for Telegram without
user intervention or can even offer to install one, if needed).
The proposed syntax makes conversion between Matrix URIs
and Matrix identifiers as easy as a bunch of regular expressions; so

This comment has been minimized.

Copy link
@MayeulC

MayeulC Oct 4, 2019

should those regexes be provided in the MSC as well?

This comment has been minimized.

Copy link
@KitsuneRal

KitsuneRal Oct 5, 2019

Author Member

Yes and no. RFC 3986 is quite diligent at providing such regex for the high-level parsing; but these days such high-level parsing should be done by some already existing library rather than custom code. This MSC would surely benefit from an algorithm turning the path into Matrix identifiers though; and half of that work is already done in the "URI semantics" section.

Copy link

left a comment

It looks like "smart quotes" have been used throughout this doc (except in one or two places), even in the BNF. Is that intentional?

proposals/2312-matrix-uri.md Outdated Show resolved Hide resolved
Co-Authored-By: David Vo <auscompgeek@users.noreply.github.com>
@KitsuneRal

This comment has been minimized.

Copy link
Member Author

commented Oct 5, 2019

It looks like "smart quotes" have been used throughout this doc (except in one or two places), even in the BNF. Is that intentional?

Not exactly, it's just a result of copy-pasting from the older Google doc. If that causes problems, I can revert to ASCII quotes.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
4 participants
You can’t perform that action at this time.