3 ms·
I’ve enjoyed working with Tauri a lot, and I’m excited to check out the mobile release. I’ve been using it for about a year now, paired with Svelte, to build a
by dceddia 4y ago
I’ve enjoyed working with Tauri a lot, and I’m excited to check out the mobile release. I’ve been using it for about a year now, paired with Svelte, to build a video editor [0] and it’s been really nice speed-wise. I haven’t felt like Tauri is the bottleneck in probably 99% of cases (usually it ends up being my own code!).
One area they could improve, and I think they’re working on for 2.0, is the IPC mechanism between JS and Rust. It’s not as fast as a true function call and bogs down if you try to send large amounts of data over it, so I’ve tried to architect around it. It’s been fine but I’m looking forward to when it’s more efficient.
It still lacks some features that Electron has too, and it feels a little bleeding edge sometimes. But I feel a lot better with shipping a lighter app that’s closer to native-size. If the alternative is maintaining 2 codebases in different languages as a solo developer, I’ll gladly take the tradeoff to go with Tauri, whereas Electron felt like a much bigger gap.
0: https://getrecut.com https://getrecut.com
- CharlesW 4y ago> But I feel a lot better with shipping a lighter app that’s closer to native-size. Out of curiosity: How much time (if any) have you spent addressing differences in OS web renderers? Is not supporting Linux a business or technical decision?
- dceddia 4y agoI hit a few bugs on older Safari (like, macOS 10.14) that I had to work around but otherwise it’s been pretty good. Linux should be technically possible, but it’s a combination of the two that’s made it a lower priority so far. I’m a bit worried about the potential support burden, given how widely systems vary. But it’s on my list of things to look into, at least to try getting it running.
- mccorrinall 4y agoWhat I’ve been missing in tauri is being able to manipulate the window title bar similar to firefox or vscode (electron actually allows this). Anyway, regarding your IPC bottleneck: I found it faster to spawn a local websocket server in rust and let my vue app connect to it. It’s really ugly and I hate myself for working like this, but albeit the tcp overhead it is actually faster for transferring bigger amounts of data than IPC.
- dceddia 4y agoAh yeah, I miss the title bar access too. I had a “# days remaining” button there in the first version of the app when it was native to Mac and went with something less slick this time. The nice thing about Tauri is the native access if you need it, and I think this is probably possible because you can get a handle to the native window, and call native Mac APIs to e.g. access the title bar view and add subviews to it. (of course the downside is having to adapt that code to every platform) My workaround for the IPC stuff was to just avoid sending binary data at all. I originally wanted to send video frames but it was pretty quickly clear that would not work well at all. So I just send commands, and serialize the timeline back and forth, and do the video on a native layer.