PyScript

This page summarizes the projects mentioned and recommended in the original post on news.ycombinator.com

Our great sponsors
  • WorkOS - The modern identity platform for B2B SaaS
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • SaaSHub - Software Alternatives and Reviews
  • hal9ai

    Discontinued Hal9 — Data apps powered by code and LLMs [Moved to: https://github.com/hal9ai/hal9]

  • We are not using libfortran not gdpr, we are basically using whatever libraries are available for the web. Since most data scientists don't want to use JS per se, you can build the apps as blocks in the Hal9 site or using a soon-to-be-released Python/R package, see https://notebooks.hal9.com

    Feel free to check out our repo as well, all the "primitives" / blocks code is in the scripts folder: https://github.com/hal9ai/hal9ai

  • Fennel

    Lua Lisp Language

  • Other languages have done that :)

    Lua in the browser: https://fengari.io/

    And then you can use that to run Fennel, a Lisp that compiles to Lua https://fennel-lang.org/

    I think TypeScript also has a script you can include that lets you put your TS code in a special script tag, and it gets compiled in-browser.

  • WorkOS

    The modern identity platform for B2B SaaS. The APIs are flexible and easy-to-use, supporting authentication, user identity, and complex enterprise features like SSO and SCIM provisioning.

    WorkOS logo
  • fengari

    🌙 φεγγάρι - The Lua VM written in JS ES6 for Node and the browser

  • Other languages have done that :)

    Lua in the browser: https://fengari.io/

    And then you can use that to run Fennel, a Lisp that compiles to Lua https://fennel-lang.org/

    I think TypeScript also has a script you can include that lets you put your TS code in a special script tag, and it gets compiled in-browser.

  • rapydscript-ng

    A transpiler for a Python like language to JavaScript

  • Also check out "rapydscript-ng", by the author of Calibre e-book reader:

    https://github.com/kovidgoyal/rapydscript-ng

  • design

    WebAssembly Design Documents

  • There are some important differences in approach. Java was never designed to be downloaded over a network, and didn't have a module format or JARs back then. This is part of what made it so slow. In contrast, efforts to make the encoding of modules as compact as possible started the moment WASM began. [1] It was based on past research in compactly encoding IRs, and the modules are often processed in parallel.

    The IR is also a lot less opinionated than other VMs. It started out being similar to a stripped-down JavaScript in capability, but broadened. At the same time it remained easy for browser engines to process into native code. Compared to optimizing applets, it has a simpler task to solve. This does have the disadvantage that modules need to come with their own runtimes. Compilers for established languages have to deal with the fact that their host languages expect to be running on a fully-featured OS instead of a browser.

    Even though it is a binary blob downloaded over the web, browsers come with disassemblers that allow you to see what is actually running. This is a step up over the JVM, but this is one part of WASM I find underwhelming. The messy development of the VM affected the text format the most, so it's more confusing than it really needs to be. Some docs expect you to write it like a Lisp, while disassemblers don't bother with that.

    WASM has quite a few problems, but they're at least different problems than the ones applets had.

    1. https://github.com/WebAssembly/design/blob/a19e4ccf9c250cc73...

  • gradio

    Build and share delightful machine learning apps, all in Python. 🌟 Star to support our work!

  • You can, if that that specific DOM element is a Gradio component (e.g. a button, image, textbox, etc). Here's a very simple example: https://github.com/gradio-app/gradio/blob/main/demo/blocks_h...

  • wave

    Realtime Web Apps and Dashboards for Python and R (by h2oai)

  • InfluxDB

    Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.

    InfluxDB logo
  • nitro

    Create apps 10x quicker, without Javascript/HTML/CSS. (by h2oai)

  • Does PyScript offer anything of significance over and above what Pyodide already offers, other than several py-* tags?

    In my experience, it's trivial accomplish this with Pyodide.

    Here's a web worker that hosts Pyodide and loads packages, PyPI wheels, external modules, etc. and launches type=text/python script tags in-browser:

    https://github.com/h2oai/nitro/blob/main/web/public/nitride....

    About ~100 lines of code.

  • collagraph

    Collagraph 📓 Reactive user interfaces

  • https://github.com/fork-tongue/collagraph/pull/66

    From the project README:

    Write your Python interfaces in a declarative manner with plain render functions, component classes or even single-file components using Vue-like syntax, but with Python!

    - Reactivity (made possible by leveraging observ)

    - Function components

    - Class components with local state and life-cycle methods/hooks

    -Single-file components with Vue-like syntax (.cgx files)

    - Custom renderers (PySide, pygfx and now PyScript)

NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts