cunarist / rinf Goto Github PK
View Code? Open in Web Editor NEWRust for native business logic, Flutter for flexible and beautiful GUI
License: MIT License
Rust for native business logic, Flutter for flexible and beautiful GUI
License: MIT License
The web has very many restrictions due to the sandboxed environment. Native threads, atomics, and time are not possible in webassembly and therefore many features are missing from the Rust's std
and other crates due to these limitations.
flutter_rust_bridge
does provide some way to utilize web workers and streams thanks to its bindings with JavaScript. However, there are still additional support needed from various libraries.
We think that when Threads Proposal for WebAssembly is fully accepted and realized, support from Rust and various libraries will mature. For now, there is a long way to go.
For developers, it should be written in README.md
This package is currently building and shipping dead native code on every platform. If you use ffiPlugin: true
instead of pluginClass
those dummy native plugin implementations will no longer be necessary.
Some middle dependencies can be just removed since it is available to directly interact with Dart VM with allo-isolate.
Flutter is a reactive framework and a widget gets updated every time when the underlying value changes(In this app, through StreamBuilder
). Even if the viewmodel item uses the nested structure, when the Rust logic updates the viewmodel item multiple times, Flutter app will be re-build the relying widget multiple times. Therefore, there's no point of using nested structures on viewmodel items.
Viewmodel itself would be a nested hashmap, with only the simplest data types included, organized with an enum.
This idea can be also applied to the data model on the Rust side.
More specifically:
bridge
crate into hub
xcodeproj
folder's presenceWhen running
flutter build apk --release
the rust code is compiled in dev mode:
Finished dev [unoptimized + debuginfo] target(s) in 0.08s
Is it possible to pass --release
flag to the rust build
command?
Balancing the performance and readability
Auto formatting with clilppy
, dart fix
, and black
should be applied first.
This can be done by removing the workspace crate. However, we need to first find out what happens when crate A and B depends on the same third-party crate but expect different version.
Use tokio futures for concurrency in a single thread
When calling a string character, the data type must be converted once before it can be used
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.