GithubHelp home page GithubHelp logo

navdiana / flexx Goto Github PK

View Code? Open in Web Editor NEW

This project forked from flexxui/flexx

0.0 0.0 1.0 3.67 MB

Write desktop and web apps in pure Python

Home Page: http://flexx.readthedocs.io

License: BSD 2-Clause "Simplified" License

Python 99.76% JavaScript 0.24%

flexx's Introduction

Flexx

Join the chat at https://gitter.im/zoofIO/flexx Build Status Documentation Status

Introduction

Flexx is a pure Python toolkit for creating graphical user interfaces (GUI's), that uses web technology for its rendering. Apps are written purely in Python; Flexx' transpiler generates the necessary JavaScript on the fly.

You can use Flexx to create (cross platform) desktop applications, web applications, and (if designed well) export an app to a standalone HTML document. It also works in the Jupyter notebook.

The docs are on Readthedocs. the code is on Github. Flexx is currently in alpha status; any part of the public API may change without notice. Feedback is welcome.

Flexx has a modular design, consisting of a few subpackages, which can also be used by themselves:

Status

Early 2017 we were close to a new release and moving to beta-status. However, we found that in some real (bigger) applications written in Flexx, we were hitting certain boundaries. We believe that these boundaries prevent Flexx from being usable at a large scale.

We've since looked at what does boundaries are and how Flexx would need to change to be able to remove or move beyond these boundaries. This has culminated in a plan to refactor Flexx.

These changes are quite substantial. E.g. a central idea of the current Flexx is having objects that exist in both Python and JS and have properties that are settable from both ends. This will be no more. Instead, objects live/operate either in Python or JS, but objects in JS can still be referenced and influenced from Py.

Example

Click the image below for an interactive example:

demo

There are two demo servers at http://flexx1.zoof.io (an instance in Amazon's cloud) and http://flexx2.zoof.io/ (a Raspberry pi). Either might not always be on.

Motivation

The primary motivation for Flexx is the undeniable fact that the web (i.e. browser technology) has become an increasingly popular method for delivering applications to users, also for (interactive) scientific content.

The purpose of Flexx is to provide a single application framework to create desktop applications, web apps, and (hopefully soon) mobile apps. By making use of browser technology, the library itself can be relatively small and pure Python, making it widely available and easy to use.

Installation

Flexx requires Python 2.7 or Python 3.2+ and also works on pypy. Further, it needs the tornado library (pure Python). For running desktop apps, it is recommended to have Firefox installed.

To install use any of:

  • conda install flexx -c conda-forge
  • pip install flexx
  • Clone the repo and add it to your PYTHONPATH, or python setup.py install.

License

Flexx makes use of the liberal 2-clause BSD license. See LICENSE for details.

flexx's People

Contributors

almarklein avatar pigay avatar jrversteegh avatar maxyme avatar stonebig avatar konubinix avatar ivoflipse avatar kevinlondon avatar ad115 avatar andrewgrz avatar sesh avatar dwillmer avatar gregfreeman avatar hittingsmoke avatar pierrejean-coudert avatar gitter-badger avatar alexveden avatar kamoser avatar

Forkers

break

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.