#tauri #events #command #leptos #wasm #front-end

nightly tauri-interop

Easily connect your rust frontend and backend without writing duplicate code

13 stable releases

2.1.6 Mar 24, 2024
2.1.5 Mar 20, 2024
1.3.0 Dec 26, 2023
1.2.0 Nov 27, 2023

#1219 in Web programming

Download history 4/week @ 2024-02-22 2/week @ 2024-02-29 771/week @ 2024-03-14 285/week @ 2024-03-21 31/week @ 2024-03-28 37/week @ 2024-04-04 1/week @ 2024-04-11

458 downloads per month

MIT/Apache

31KB
395 lines

Tauri-Interop

Latest version Documentation License

This crate tries to provide a general more enjoyable experience for developing tauri apps with a rust frontend.

tbf it is a saner approach to write the app in a mix of js + rust, because the frameworks are more mature, there are way more devs who have experience with js and their respective frameworks etc...

but tbh... just because something is saner, doesn't stop us from doing things differently ^ヮ^

Writing an app in a single language gives us the option of building a common crate/module which connects the backend and frontend. A common model itself can most of the time be easily compiled to both architectures (arch's) when the types are compatible with both. The commands on the other hand don't have an option to be compiled to wasm. Which means they need to be handled manually or be called via a wrapper/helper each time.

The crates therefore provides the following features:

  • generate a wasm function out of the defined tauri-command
  • collect and register all defined tauri-commands
  • QOL-macros to exclude multiple imports in wasm or the host architecture
  • easier usage of tauri's event feature

Note

The library uses a resolver 2 features to allow easy inclusion without configuration. When working with virtual workspaces the resolver defaults to 1. In that case it is required to set the resolver manually to version 2,
otherwise the target specific compilation will not resolve correctly. When the wrong resolver is used, an error should state that the Listen trait is missing.

Dependencies

~2–49MB
~689K SLoC