3 ms·
Never heard of Matrix... looked it up; gross... python2.7
by ericfrederich 8y ago
Never heard of Matrix... looked it up; gross... python2.7
- kuschku 8y agoAlso take a look at the network "protocol": JSON over HTTP longpolling, requiring usually a separate socket for each batch of messages sent or received (unless HTTP/2 is available, then it’s a bit less expensive, still has a massive overhead). Matrix has so much potential – someday, when it’s built on technologically more ideal foundations. Python2.7 you’ll barely notice, but the network overhead of the Matrix protocol becomes heavily noticeable by the end user (especially if your cell phone’s data plan runs out, and you’re stuck on 64kbps until the end of the month, then Matrix in larger rooms just becomes impossible)
- vbezhenar 8y agoI think HTTP Keep Alive mechanism should help with sockets and it does not require HTTP/2.
- amandine 8y agoThe spec only states the use of JSON over HTTP as a baseline so anyone is welcome to implement more efficient transports like CBOR/COAP or MQTT or whatever :) But yes the goal of the reference implementations was to showcase the simplest transport: one PUT to send and one GET to retrieve it. Meanwhile we’re working on improving the performance of the servers with some rather nice breakthroughs on the horizon.
- kuschku 8y agoAs I said, the potential is there, the current implementations just aren’t there yet. In a few years it might be entirely different. And I’m not sure PUT and GET are the simplest solution, I’d think a simple socket over which messages are transmitted in both directions would be simpler than implementing an entire HTTP stack.
- lpghatguy 8y agoBeing able to implement a client that runs in a browser (and can thus only deal in terms of HTTP) is very valuable, and one reason to claim that the simplest solution is HTTP PUT and GET.
- zAy0LfpBZLC8mAC 8y agoAnd that is precisely why it is an idiotic design decision. HTTP is extremely complex (well, and Matrix doesn't actually use HTTP, they just claim they do, but as usual noone reads the specs, everyone just builds crap based on what they think the spec says, because the spec is too complicated), and as such is an absolute dead end if your goal supposedly is to build something secure.
- majewsky 8y agoWork is underway to rewrite Synapse (the Python server implementation) in Go: https://github.com/matrix-org/dendrite https://github.com/matrix-org/dendrite
- zeratax 8y agothere was also work being done to port to python3 https://github.com/matrix-org/synapse/pull/2539 https://github.com/matrix-org/synapse/pull/2539 but it looks like this hasn't been worked on since october last year.
- Arathorn 8y agoActually, a separate thread of porting work has been happening over the last month and it's looking very promising indeed: https://github.com/matrix-org/synapse/pulls?utf8=%E2%9C%93&q=is%3Apr++python3+ https://github.com/matrix-org/synapse/pulls?utf8=%E2%9C%93&q... etc.