logo

kraken

A web standards-compliant, high-performance rendering engine based on Flutter.

StarsStars4130
ForksForks221
WatchersWatchers4130
Open issuesOpen issues187
Last updateLast update2022-01-05

Kraken

💁 Have a try

  1. Install Kraken CLI (macOS only currently)

    $ npm i @openkraken/cli -g
    
  2. Open with kraken

    # kraken [localfile|URL]
    $ kraken https://raw.githubusercontent.com/openkraken/kraken/master/kraken/example/assets/bundle.js
    

💌 Why kraken

  • Quick development ğŸŽ‰

    Compatibility with web standards means you don't have to change your stack.

    const text = document.createTextNode('Hello World!');
    document.body.appendChild(text);
    
  • Cross platform ⚛️

    Seamless integration with Flutter, supports web, mobile (iOS, Android) and desktop (MacOS, Linux, Windows).

  • Fast performance 🚀

    Provide native-like performance such as navigation, animation and infinite list scrolling.

Flutter version scope

Only flutter stable released version are fully tested.

Kraken Flutter
>= 0.7.0 < 0.8.0 1.22.0 ~ 1.22.6
>= 0.8.0 < 0.10.0 2.2.0 ~ 2.2.3
>= 0.10.0 < 0.12.0 2.5.0 ~ 2.5.3

👏 Contributing

By contributing to Kraken, you agree that your contributions will be licensed under its Apache-2.0 License.

  1. Prerequisites

    • Node.js v12.0 or later
    • Flutter version in the kraken/pubspec.yaml
    • CMake v3.2.0 or later
    • Xcode (10.12) or later (Running on macOS or iOS)
    • Android NDK version 21.4.7075529 (Running on Android)
  2. Install

    $ npm install
    
  3. Building bridge

    Building bridge for all supported platform (macOS, iOS, Android)

    $ npm run build:bridge:all
    

    Building bridge for one platform

    macOS

    $ npm run build:bridge:macos
    

    iOS

    $ npm run build:bridge:ios
    

    Android

    For Windows users, make sure that running this command under MINGW64 environment(eg. Git Bash).

    $ npm run build:bridge:android
    
  4. Start example

    $ cd kraken/example
    $ flutter run
    
  5. Test (Unit Test and Integration Test)

    $ npm test