Git Product home page Git Product logo

nativeshell's Introduction

NativeShell (Experimental embedder for Flutter)

Sponsors

Features

  • Leverages existing Flutter desktop embedder on each platform
  • Unlike Flutter desktop embedders, NativeShell provides consistent platform agnostic API
  • Multi-window support
  • Window management
    • Adjusting window styles and geometry
    • Modal dialogs
    • Windows can be set to track content size and resize automatically when content changes
  • Platform menus (popup menu, menu bar)
  • Drag and Drop
  • Written in Rust, Flutter build transparently integrated with cargo

Status

  • This is project in a very experimental stage

Getting started

Prerequisites:

  1. Install Rust
  2. Install Flutter
  3. Enable Flutter desktop support
  4. Switch to Flutter Master (flutter channel master; flutter upgrade)

Clone and run examples:

git clone https://github.com/nativeshell/examples.git
cd examples
cargo run

For Apple Silicon Macs, you might need to run the example using the flag to force x86_64 architecture:

rustup target add x86_64-apple-darwin
cargo run --target=x86_64-apple-darwin

Alternatively you can use environment variables:

# Recommended if using rust-analyzer to minimize redundant rebuilds
export CARGO_TARGET_DIR=target/x86_64
export CARGO_BUILD_TARGET=x86_64-apple-darwin
cargo run

For more information read the introductory post or go to nativeshell.dev.

nativeshell's People

Contributors

knopp avatar jonas-schievink avatar bk-one avatar bernaferrari avatar thenextman avatar zicklag avatar

Stargazers

Lukasz Hanusik avatar みづな れい avatar Zine Eddine avatar ROG avatar Thipok Cholsaipant avatar Jaymo Codes avatar  avatar Ovi Trif avatar LZ91X  avatar M Haidar Hanif avatar Robert Saramet avatar Michael Bushe avatar Simon Pham avatar Soumyajit Pathak avatar Marcin Jeleński avatar Egor Kolesnikov avatar mono — Masayuki Ono avatar haratak avatar Yusuke Otsuka avatar Evgenii Khramkov avatar Ricardo Canastro avatar Tushar Asodariya avatar Jason Choo avatar Hyun Sick Moon avatar Junyi avatar Cillian Myles avatar Britannio Jarrett avatar Yasin Arık avatar

Watchers

みづな れい avatar Oussama Maatallah avatar  avatar

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.