Coder Social home page Coder Social logo

chimeraflutter / chimera-flutter-code-push Goto Github PK

View Code? Open in Web Editor NEW
180.0 8.0 36.0 8.41 MB

This SDK helps Flutter implement Code Push(热更新). Official Blog: https://medium.com/@chimerapush

License: Other

Kotlin 0.01% Ruby 0.05% Swift 0.02% Objective-C 0.01% Dart 99.47% HTML 0.09% CMake 0.15% C++ 0.20% C 0.01%
flutter code-push

chimera-flutter-code-push's Introduction

中文版

Chimera Flutter Code Push

​ Chimera is a Dart compiler developed by ourselves, which generates interpretable and executable bytecode to implement code push (hot update).

Look for like-minded people to join this project

​ I hope more people will participate in this project. Among many customers, the most difficult thing is to use, so I want to open up the core principles of the compiler code so that everyone can be familiar with this project and solve problems. So if you have time and are interested in developing and helping, you can join us. If the project is profitable, all people participating in the project can get cash rewards. Friends who are helpful to this project, welcome to contact us.

Advantages of our products

  • Support all pub.dev libraries, no library restrictions.
  • It does not affect the original project structure when used, as long as the code that needs hot update is generated by compiling.
  • SDK does not use JS, LUA and Apple's official sensitive API, so don't worry about being blocked.
  • You can switch this function remotely at any time as needed, or you can customize the framework that suits you to achieve hot fixes for logic problems, etc.
  • Support hot updates for all platforms (Android, IOS, Windows, Mac) released by Flutter.
  • Support Dart code obfuscation to prevent App from being decompiled.
  • Support memory detection and performance analysis.
  • As long as the compilation is passed, the App can load and execute code through the network, and easily implement WeChat applets.

Example project

​ Our open source sample project (Flutter Gallery), Flutter Gallery is Google's official sample App, it uses a lot of Dart features, and we have supported them.

Use tutorial

​ Currently we only support versions above Flutter2. The old version was simply abandoned due to lack of manpower. I believe everyone will upgrade to the Flutter2 version.

​ For tutorials, we only released video tutorials. Of course, video tutorials are not enough. Please be patient and wait for us to release more tutorials.

  1. Get to know the SDK

    https://b23.tv/B2MShU

    Supplement iOS release tutorial

    https://b23.tv/wnOHYV

  2. Flutter Gallery access to SDK super detailed tutorial

    https://b23.tv/PU8Jc9

New World

Execution performance is increased by 10 times, WebAssembly bytes are generated, and WebAssembly bytecodes are interpreted and executed on the machine to improve virtual performance.

There are two options

Solution 1: performance can be infinitely close to Dart AOT performance, but whether iOS supports TBD.

Solution 2: Performance increase 10 times execution performance, support all platforms.

Regarding performance improvement, I don't recommend having to generate WebAssembly bytecode. Determine whether bytecode needs to be generated according to the scenario (for example, there is a large amount of data calculation), or a separate thread (Isolate) can be set to support it.

It is recommended to compile a small part of Dart code to generate WebAssembly.

Participate in contribution

We still have a lot of work to do in improving and constructing supporting facilities. Everyone is welcome to participate in the development.

I need a friend who knows how to develop web. Hope to help develop the official website and website backend (hope to be more beautiful). Friends who are interested can contact me.

Email contact

[email protected]

chimera-flutter-code-push's People

Contributors

chimeraflutter avatar

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

chimera-flutter-code-push's Issues

Compiler issue

Already set chmod 777 to compiler but getting this error:
Current version 1.0.7 thread 'main' panicked at 'called Result::unwrap()on anErrvalue: Os { code: 13, kind: PermissionDenied, message: "Permission denied" }', rust_compile/src/lib.rs:174:44 note: run withRUST_BACKTRACE=1 environment variable to display a backtrace

如何解决系统代理问题

您好,我最近也在探索 Flutter 动态化,遇到了些问题请教下。

请问下,您是如何解决动态化中,遇到的系统库、三方库的代理问题?

比如:如何构造出一个 Container()、如何调用 dart sdk 中的 jsonDecode('source');

Team

How can I be part of this team to develop these packages because they are very important and will work on a quantum leap? I want to be part of this team...

./rust_compile 无法使用,执行后编译不过

环境:
Flutter 3.0.5 • channel stable • https://github.com/flutter/flutter.git
Framework • revision f1875d570e (9 months ago) • 2022-07-13 11:24:16 -0700
Engine • revision e85ea0e79c
Tools • Dart 2.17.6 • DevTools 2.12.2

-> % ./rust_compile
Current version 1.0.7
Couldn't connect to the server...

WTAnalysisReadCode

Undefined class 'RegisterBindClass'.\nTry changing the name to the name of an existing class, or creating a class with the name 'RegisterBindClass'.
The method 'PointerAttribute' isn't defined for the type 'WTAnalysisReadCode'.
Try correcting the name to the name of an existing method, or defining a method named 'PointerAttribute'.

rust_compile not working on Ubunto

I have downloaded the rust_compile to use it but got no luck running it.
Does it only work on Mac OS?

Please list where the compiler can be run.

Talks about Chimera

Hi there,

Do you know any app that uses Chimera in production? Any case or talk about Chimera? Thank you.

What newest supported flutter version?

I read your article on medium. i see you have flutter 1.22.6 for the tutorial. do you have any update what newest version of the flutter sdk that supported this library?

Apple app store guidelines

I'm still concern about Apple approval for this library when submitting app for review. As described In License agreement and section 2.5.2 of AppStore Review Guidelines, an interpreted code may be downloaded to application but may not change the primarily purpose of the app nor changing the whole app binary structure

./rust_compile 失败

执行./rust_compile之后显示Couldn't connect to the server... 但是http-server已经启动起来了

http-server启动信息:

wudan:flutter_code_push/ $ http-server -c -1                                                                                                                                                                          [17:27:32]
Starting up http-server, serving ./

http-server version: 14.1.1

http-server settings:
CORS: disabled
Cache: true seconds
Connection Timeout: 120 seconds
Directory Listings: visible
AutoIndex: visible
Serve GZIP Files: false
Serve Brotli Files: false
Default File Extension: none

Available on:
  http://127.0.0.1:8080
  http://10.252.206.119:8080
Hit CTRL-C to stop the server

Issue while compiling

Unhandled exception:
DioError [DioErrorType.other]: SocketException: Failed host lookup: 'chimera-code.com' (OS Error: nodename nor servname provided, or not known, errno = 8)
#0      DioMixin.assureDioError (package:dio/src/dio_mixin.dart:819)
#1      DioMixin._dispatchRequest (package:dio/src/dio_mixin.dart:678)
<asynchronous suspension>
#2      DioMixin.fetch.<anonymous closure>.<anonymous closure> (package:dio/src/dio_mixin.dart:586)
<asynchronous suspension>

#0      DioMixin.fetch.<anonymous closure> (package:dio/src/dio_mixin.dart:618)
#1      _RootZone.runBinary (dart:async/zone.dart:1690)
#2      _FutureListener.handleError (dart:async/future_impl.dart:174)
#3      Future._propagateToListeners.handleError (dart:async/future_impl.dart:778)
#4      Future._propagateToListeners (dart:async/future_impl.dart:799)
#5      Future._completeError (dart:async/future_impl.dart:609)
#6      _SyncCompleter._completeError (dart:async/future_impl.dart:60)
#7      _Completer.completeError (dart:async/future_impl.dart:32)
#8      Future.any.onError (dart:async/future.dart:544)
#9      _RootZone.runBinary (dart:async/zone.dart:1690)
#10     _FutureListener.handleError (dart:async/future_impl.dart:174)
#11     Future._propagateToListeners.handleError (dart:async/future_impl.dart:778)
#12     Future._propagateToListeners (dart:async/future_impl.dart:799)
#13     Future._completeError (dart:async/future_impl.dart:609)
#14     Future._chainForeignFuture.<anonymous closure> (dart:async/future_impl.dart:554)
#15     _microtaskLoop (dart:async/schedule_microtask.dart:40)
#16     _startMicrotaskLoop (dart:async/schedule_microtask.dart:49)
#17     _runPendingImmediateCallback (dart:isolate-patch/isolate_patch.dart:122)
#18     _RawReceivePortImpl._handleMessage (dart:isolate-patch/isolate_patch.dart:193)

Getting this error while compiling the code using rust_compiler 1.0.7.

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.