12 comments

  • d3Xt3r1 hour ago
    &gt; In our Linux test it opens in under a second and uses about 200 MB of idle RAM<p>Is it just me or does anyone else feel that 200 MB is a lot for a native chat app written in Rust, that&#x27;s essentially a remote interface for the WhatsApp on your phone?<p>I remember back in the day, apps like Miranda IM (and early versions of Trillian) used only digits of RAM, even when you had multiple plugins talking several protocols at the same time, whilst having a ton of advanced features not found in WhatsApp. Yes I get that times have changed and software has become bloated etc, but 200 MB still feels a bit too much.
    • rtpg1 hour ago
      &gt; Is it just me or does anyone else feel that 200 MB is a lot for a native chat app written in Rust, that&#x27;s essentially a remote interface for the WhatsApp on your phone?<p>&gt; I remember back in the day, apps like Miranda IM (and early versions of Trillian) used only digits of RAM, even when you had multiple plugins talking several protocols at the same time<p>I think what&#x27;s happening in the second one is that because you&#x27;re using the native OS toolkits a bunch of stuff is shared, whereas with these &quot;self-contained&quot; &quot;native&quot;-y apps you end up having to load up the whole world and aren&#x27;t sharing things with everything else<p>I&#x27;d love to be proven wrong but I feel like if you use e.g. Qt you&#x27;re gonna have to hold onto a bunch of stuff that you wouldn&#x27;t if you were &quot;just&quot; using OS-native stuff (though maybe that gets shared if you&#x27;re using the exact same version? Is there something that can be done in this space?)
      • elendilm1 hour ago
        With Qt, on my KDE Linux, a simple app usually stays well below 60 to 100 MB.
    • elendilm58 minutes ago
      &gt; Is it just me or does anyone else feel that 200 MB is a lot for a native chat app written in Rust ...<p>That was my first thought. But considering it as a significant improvement from &gt; 1 GB, I guess it is what it is.<p>&gt; I remember back in the day, apps like Miranda IM (and early versions of Trillian) used only digits of RAM ...<p>Sadly this was true for many apps.
  • codedokode3 hours ago
    Also, I looked at how dates are written in a screenshot and thought that &quot;2 days ago&quot; would be so much better than &quot;Tuesday&quot;. Because you do not have to compute in your head how many days ago Tuesday was.
    • sudahtigabulan1 hour ago
      Sounds reasonable, but IME apps that use relative timestamps switch to absolute time past certain threshold, and then I end up with two adjacent entries &quot;14:38” and &quot;15 minutes ago&quot; and scratching my head.<p>Signal does that and I hate it when it happens.
      • aljgz58 minutes ago
        There are other minor problems as well:<p>- Screenshots don&#x27;t age well: you need to know the screenshot time and do math<p>- They need to be maintained, which means the screen keeps updating even if nothing else is happening
    • pezezin33 minutes ago
      I hate relative timestamps, I find it much easier to remember specific week days, so I very much prefer this style so I don&#x27;t have to compute in my head which day of the week I got the text.<p>Anyway, I tried this application and it seems to mix different styles depending on how long ago you got the text: &quot;yesterday&quot;, &quot;Friday&quot;, &quot;18 Oct 2026&quot;.
  • codedokode4 hours ago
    Egui is pretty bad idea. It uses &quot;immediate mode&quot; rendering which means whole window is redrawn on every mouse move. I ran PhotoCraft (built in Rust + egui) in a VM wihout a GPU and the UI felt like it was running on 3 fps. If you use egui, try running it without a GPU before releasing.<p>Egui is definitely not what you want to use on a 4K screen. It is only good for tiny screens of embedded devices.<p>Why there is no reactive UI that tracks all dependencies and redraws only what needs to be redrawn? (not React, it also re-calculates (but not redraws) everything on every change).<p>Also why does it visually look like bad version of Telegram? And Telegram can run without a phone present.
    • d3Xt3r1 hour ago
      &gt; Why there is no reactive UI that tracks all dependencies and redraws only what needs to be redrawn?<p>There&#x27;s plenty of them. Slint, Floem, iced, Vizia, fltk etc. Slint and fltk in particular also exhibit excellent performance and very little resource usage even without a GPU.
    • ozgrakkurt2 hours ago
      What is the argument here?<p>Basically every device has a GPU.<p>Why is it bad on 4K?<p>Did you measure anything in a real setup?
      • viraptor2 hours ago
        &gt; Basically every device has a GPU.<p>Many VMs and remote desktops don&#x27;t. (Or can&#x27;t really make use of)
      • Barrin922 hours ago
        &gt;What is the argument here?<p>it&#x27;s an incredible waste of resources, especially at high resolutions, to redraw a Gui application like you would a videogame at 60 FPS. These immediate mode UI frameworks were made in particular for that case, to be embedded in real time software, not for a UI where the state is idle or changes only occasionally.
      • rixed1 hour ago
        The argument is that it&#x27;s wasteful? Even if I had a GPU, I&#x27;d rather use it to do inference for insurance rather than drawing a simple UI?<p>Why do I have to state the obvious like that?
    • dejw31 minutes ago
      nothing stops you to render gui at 5 fps. most people won&#x27;t notice
    • sexy_seedbox2 hours ago
      PDFCraft works fine for me on a 4k screen connected to an older laptop with an integrated Intel graphics card, blazing fast and smooth.
      • txdv1 hour ago
        I am using it on a 2017 intel macbook and its faster than anything else on that device
    • LoganDark3 hours ago
      &gt; Why there is no reactive UI that tracks all dependencies and redraws only what needs to be redrawn?<p>Nowadays the focus seems to be on video game-style interfaces that redraw every frame. The justification for this is typically that computers are so fast they can now come up with the entire interface every frame, so why not take advantage of that and forget all this retained-mode complexity?<p>They don&#x27;t realize that this is a classic case of the developer&#x27;s machine fallacy, where the developer has a machine so vastly more powerful than any of their users&#x27; that they produce a terrible experience for said users. This is also why games these days typically require upscaling even on 5090, because developers usually have that or something even more powerful and they think the bleeding edge is pushing even THAT machine to its knees.<p>Developers should be testing their software on the most entry-level, bottom of the barrel Chromebooks from 2015, running the heaviest and most bloated operating system they can think of. If people still optimized their software for that, then maybe computers would still feel almost as fast as the Apple II from 1977.<p><a href="https:&#x2F;&#x2F;danluu.com&#x2F;input-lag&#x2F;" rel="nofollow">https:&#x2F;&#x2F;danluu.com&#x2F;input-lag&#x2F;</a>
      • codedokode3 hours ago
        And obviously all computers have infinite capacity batteries to maintain game-level power consumption.
        • LoganDark1 hour ago
          That&#x27;s actually a very good point, I haven&#x27;t seen any care for power consumption from software developers in many many years. The only people who seem to still care about it are hardware developers like Valve and Apple. I admit I never thought about it myself either.<p>I would figure that doing less work generally requires less power, but some developers are crazy and act like they own the whole CPU, generate tons of heat, stress out the cooling system etc. with multithreaded bullshit that did NOT need to be multithreaded.
        • rixed1 hour ago
          Or are plugged into a world with infinite quantity of renewable energy.
    • fastball3 hours ago
      React doesn&#x27;t re-calc on every change either if you use memoization and such properly.
      • rtpg1 hour ago
        React isn&#x27;t immediate mode by my understanding.<p>In my head it&#x27;s retained mode + the diffing layer, which sounds the same but if you try to write an &quot;immediate-mode&quot; API (say, using hooks) in React you&#x27;ll find yourself churning a lot.<p>At least unless you use the magic React compiler that memo-izes everything correctly.
      • codedokode3 hours ago
        To use memoization you must use immutable structures (otherwise React is unable to detect changes) which are a pain to use and are slow if not designed properly. Do not believe me, try designing for example an algorithm that accepts a huge immutable sorted list with keys, a large sorted list of bulk deletes&#x2F;inserts and produces a new sorted list with minimum operations. I made 2 or 3 prototypes and they still are not good and not even working properly.<p>In my book, a good UI framework simply attaches to a mutable model made of arbitrary objects, detect changes and displays it with minimum number of operations. Doesn&#x27;t require to use any proxies or immutable data or store data in components. Shouldn&#x27;t be difficult. Why nobody made it, I do not understand.
        • asdf889903 hours ago
          This is incorrect. You don’t need to use immutable structures to have stable references which is what matters.<p>Use context liberally instead of plumbing things through prop’s needlessly and you’re halfway there.
    • todo-laterx3 hours ago
      [flagged]
  • loremdifr3 hours ago
    dont get me wrong, I like the extra performance, but every single alternative whatsapp client has the same issue where it&#x27;s missing enough core features that you end up needing to go to the browser version often enough to be a nuisance and I end up just using the browser instead (which I hate, I really really would prefer a performant client instead!)
  • aeontech4 hours ago
    Looks great, but... how can one trust it with credentials&#x2F;communication? (nothing against the developer, more the principle of the thing)
    • thehamkercat3 hours ago
      ummm, you can read the code...<p>but you shouldn&#x27;t trust these unofficial clients, easy way to get your whatsapp account banned
      • iantpe2 hours ago
        Yes, it would be great if we could set up our own test WhatsApp server.
        • pmlnr1 hour ago
          It&#x27;s called an XMPP server.
  • tombh4 hours ago
    In their own README:<p>&gt; Using an unofficial client may be against WhatsApp&#x27;s terms of service and could get an account suspended.<p>Same for all of these unofficial clients.
    • darccio50 minutes ago
      I think this doesn&#x27;t apply to European users, as WhatsApp announced around one year ago that under Digital Markets Act they were required to allow interoperability with third party providers [0].<p>0: <a href="https:&#x2F;&#x2F;www.whatsapp.com&#x2F;legal&#x2F;dma-notice-non-users" rel="nofollow">https:&#x2F;&#x2F;www.whatsapp.com&#x2F;legal&#x2F;dma-notice-non-users</a>
    • cube004 hours ago
      It&#x27;s irresponsible that the warning is hidden down in &quot;Acknowledgements&quot; and if you go via the homepage to download there&#x27;s no warning at all.
    • jedbrooke4 hours ago
      It’s really a shame that all of these unofficial clients are like this. APIs are APIs, if they’re on the public internet why can’t anybody call them? If there’s potential for abuse then that should be secured server side anyway, since needing a unofficial client isn’t going to stop hackers
    • cowlevel2 hours ago
      I actually wish they&#x27;d delete the warning so then anyone who gets banned from WhatsApp for using an unofficial client would have a more legit cause of action against WhatsApp. Meta wouldn&#x27;t be able to defend themselves with &quot;well you were warned&quot; if you weren&#x27;t warned.
      • vanviegen1 hour ago
        Oh, but it&#x27;s in Meta&#x27;s ToS of course! Didn&#x27;t you study those before agreeing to them? &#x2F;s
    • atonse4 hours ago
      Dammit. I installed it, it worked beautifully, and now I don&#x27;t want to risk it.
      • dvdyzag2 hours ago
        Eventually the unofficial client gets &quot;fingerprinted&quot; and its over. Its easy to remove the suspension, though. I vaguely remember it was through email.
        • qingcharles1 hour ago
          Eh, there&#x27;s no humans any longer IIRC. It&#x27;s all down to whether their support AI blesses you or not.<p>I got banned for trying to move my chats from Android to iOS using the app rather than the special tool I didn&#x27;t know you were supposed to use. I was lucky I eventually got unlocked.<p>I want a decent WhatsApp client that doesn&#x27;t crash constantly and where you can search properly, but it&#x27;s not worth the risk of getting banned again.
    • oofbey2 hours ago
      Too bad. WhatsApp might be a reasonable service if you could trust the client not to spy on you.
  • cowlevel2 hours ago
    I presume if I use this my phone number will be blacklisted from WhatsApp.
    • viraptor1 hour ago
      That&#x27;s the annoying thing with WhatsApp, Slack, Discord, etc. Let&#x27;s say I&#x27;ve got a personal client (that I&#x27;m definitely not using...) which works so much better than the official one. I cannot distribute it or use it according to their rules. It&#x27;s forced enshitification, even though we have better options.<p>On the good side though - if you&#x27;re replicating the official behaviour close enough... maybe nobody will know. But then you have to make sure everything, including key sort order, and JA4 of requests matches. And that&#x27;s tough...
  • dangoodmanUT3 hours ago
    it seems like we&#x27;re entering the next phase of &quot;written in rust&quot;: UIs
  • nianzhibai4 hours ago
    It&#x27;s a bit basic. I installed it and then uninstalled it.
  • Cogarith1 hour ago
    [flagged]
  • no1guangming2 hours ago
    [dead]
  • noobplusplus2 hours ago
    [dead]