Coder Social home page Coder Social logo

cunarist / rinf Goto Github PK

View Code? Open in Web Editor NEW
1.5K 1.5K 56.0 15.62 MB

Rust for native business logic, Flutter for flexible and beautiful GUI

License: MIT License

Kotlin 0.06% Python 1.17% Swift 0.77% Objective-C 0.02% Dart 56.22% CMake 11.89% C++ 10.30% C 1.57% Rust 11.04% Ruby 2.88% Shell 1.89% Batchfile 1.07% HTML 0.82% PowerShell 0.31%
android app cross-platform dart ffi flutter gui ios linux macos production-ready restful-api rust web windows

rinf's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

rinf's Issues

Make crates completely independent

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.

Web support

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.

Compile rust in release mode

When 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?

Only use simple data types for the viewmodel

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.

android build failed

The version of rust_in_flutter is 1.1.1 and running the official example packaged for Android gives the following error :

image

And also I would like to know where the built dynamic libraries are put by default ?

Use `ffiPlugin: true`

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.

Excessive dependencies

Some middle dependencies can be just removed since it is available to directly interact with Dart VM with allo-isolate.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.