A fast, declarative, and incrementally adoptable Python web frontend framework for building reactive web user interfaces.
Project description
PyFyre - The Python Web Frontend Framework
A fast, declarative, and incrementally adoptable Python web frontend framework for building reactive web user interfaces.
PyFyre offers the following:
- Component-based framework. Developers who have experience in using other frontend frameworks should feel quite at home when using PyFyre.
- Truly reactive. PyFyre's virtual DOM allows for simple and efficient state management.
- Quick navigation. Navigation between pages is quick with PyFyre's single-page application design.
- Pythonic code with static typing. Developing with PyFyre is much easier with its type hinting and Pythonic style of coding.
- Asynchronous programming. Run non-blocking functions out of the box.
- CPython interoperability. Developers can limitedly use existing PyPi packages on the client-side web.
- JavaScript interoperability. Allowing developers to leverage NPM packages and integrate with existing JavaScript applications.
- Pure Python. Build web apps without ever touching other languages like HTML and JavaScript.
- And more!
Documentation
Learn PyFyre by reading the documentation. It is also advisable to learn Brython alongside PyFyre as it is built on top of Brython.
Examples
See the examples directory for more. But here is a super simple example.
See how easy it is to create a simple Hello World web app with PyFyre:
from pyfyre import render
from pyfyre.nodes import *
class HelloWorld(Widget):
def build(self) -> Element:
return Element("p", lambda: [Text("Hello, World!")])
render({"/": lambda: HelloWorld()})
Installation
pip install pyfyre
Create and Run a PyFyre Project
pyfyre create [name]
cd [project_directory]
pyfyre run
Contributing
Please read the contributing guide.
Stay Updated
Stay updated about the PyFyre framework by following our Facebook page.
Links
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.