Live data from Hacker News

Mars – A cross-platform network component developed by WeChat

github.com

21–26 of 26 posts

Re: Mars – A cross-platform network component developed by WeChat

#21
post #18

Earlier quoted context omitted.

Im surprised no one brings up how bad Slack's infrastructure or backend design is. It's my slowest app from launch to signed in and can see the latest message. In the old days MSN messenger was faster.

So it's not just me! I have issues with Slack quite regularly, from messages simply not appearing on web (usually iOS works fine) to the app not being able to reconnect without a hard refresh. Add to that the slow 'boot-up' and memory usage and all in all the experience is quite disappointing, especially for such a loved product where good connectivity should be a core requirement.

I think I read somewhere the client is hybrid? That does not explain the very bad connectivity but could explain boot up and memory. I find it quite weird that so many techies adore it to be honest.

Re: Mars – A cross-platform network component developed by WeChat

#22

I hope this contains the code that makes Wechat connections work so well on the often intermediate/slow/bad connections in China. Because then most companies can learn something from it (looking at Skype, Slack etc here which are horrible with bad connections).

Im surprised no one brings up how bad Slack's infrastructure or backend design is. It's my slowest app from launch to signed in and can see the latest message. In the old days MSN messenger was faster.

The popularity of Slack despite their horrible apps never ceases to amaze me.

Re: Mars – A cross-platform network component developed by WeChat

#23

Pardon my ignorance, but I tried reading through the page and could not figure out what this is or does. Can someone point me to a quick summary or overview?

It has a lot of overlaps with other network frameworks such as OkHttp, AFNetworking, cronet, etc., but I think it main contributions are these two components: Xlog: in memory mmap log for fast logging and also supports encryption. Xlog log enables them to log everything fast and "safely" even in production build to quickly identify bugs. STN: short and long TCP connection manager, which is optimized for various netwo…

Out of curiosity, is XLog better than the app simply logging everything to STD out, then let the invoker worry about the storage?

Re: Mars – A cross-platform network component developed by WeChat

#24

Earlier quoted context omitted.

It has a lot of overlaps with other network frameworks such as OkHttp, AFNetworking, cronet, etc., but I think it main contributions are these two components: Xlog: in memory mmap log for fast logging and also supports encryption. Xlog log enables them to log everything fast and "safely" even in production build to quickly identify bugs. STN: short and long TCP connection manager, which is optimized for various netwo…

Out of curiosity, is XLog better than the app simply logging everything to STD out, then let the invoker worry about the storage?

Depends on what the invokers wants. If the invoker only wants to log things to disk and read those logs later, surely he can do it himself. What XLog provides for the invoker under the hood is essentially performance: the invoker can log lots of things and does not need to worry about IO speed, disk space, and log safety. And of course it's cross platform. A detailed performance analysis is here (in Mandarin Chinese): http://mp.weixin.qq.com/s/cnhuEodJGIbdodh0IxNeXQ

Re: Mars – A cross-platform network component developed by WeChat

#25
post #18

Earlier quoted context omitted.

So it's not just me! I have issues with Slack quite regularly, from messages simply not appearing on web (usually iOS works fine) to the app not being able to reconnect without a hard refresh. Add to that the slow 'boot-up' and memory usage and all in all the experience is quite disappointing, especially for such a loved product where good connectivity should be a core requirement.

I think I read somewhere the client is hybrid? That does not explain the very bad connectivity but could explain boot up and memory. I find it quite weird that so many techies adore it to be honest.

Oh yeah, it's most definitely a 'web app' packaged as an executable.

I mean, I get why people like it. When it works it's a pretty decent experience (and I grew up with IRC).

Re: Mars – A cross-platform network component developed by WeChat

#26

This looks like a cross between OkHTTP and a jobqueue (like https://github.com/WhisperSystems/jobmanager or https://github.com/yigit/android-priority-jobqueue ). But I think this is the first cross platform framework that does this.

Can you explain what is the definition of cross platform here, I mean in which part of it is "cross-platform"? Is Realm also consider a cross-platform database solution for mobile?

I guess there are two ways to define cross-platform. The obvious one is the software being available for more than one platform, but since that could really be accomplished with two separate implementations, there is also the more generic definition as a piece if software that is build in such a portable way that it can easily be ported to any platform.

Since Realm is available for iOS, Android and Linus from one code base(and open source, so you could port it to other platforms) I would definitely term it as being cross-platform.

Post reply on HN