Join the discussion

Write your take first — we'll ask for email only when you're ready to publish.

  • Hacker News
  • This is for WASM, but you can also do it to use a Qt frontend via Python's PySide6 with a Rust backend, avoiding the need of Rust bindings for Qt.
  • They’re not running Rust they’re running machine code compiled with the Rust compiler. Like many other Python libraries such as numpy are running machine code compiled with C++, C or Fortran. That was always the case for Python and is its main selling point, it’s a slow but easy to write glue language that can make faster native code scriptable.

    Also the article reeks of AI slop, it’s just trying to sell you a Rust course.

  • How much of the existing PyPI ecosystem do you think could realistically work this way without package authors doing anything specifically for WASM?
  • But does it work everywhere Python works? My main issue with this Rust move has always been compatibility. Python can be embedded and ran in a heck of a lot of places. What's the story when libraries that I may want to depend on are actually implemented in Rust and my target doesn't/can't handle the toolchain and there's no build target?
  • High performance polars dataFrame processing library [0] is written in Rust with Python bindings via PyO3/maturin. It exposes huge dataframes to python and successfully solved the interface boundayr problems described in the article.

    [0] https://github.com/pola-rs/polars

  • > reach for, a Rust extension does the work

    ai; dr, sorry

  • This is a nice party trick! I use it to provide easy installation of software that is written in rust, but is primarily used by Python users. (e.g.: Biology tools) They can do `pip install <name>`, since some people prefer this over downloading executables/installers. Bonus: Maturin/PyO3 can build "manylinux" binaries automatically, which helps with the Linux ABI diaspora.
  • I was a bit nervous about this trend when it started picking up because I care about Pyodide (Python running via WebAssembly) and libraries that use PyO3 might not work in Pyodide.

    Thankfully that's now been mostly solved - you can compile and publish WASM builds of Rust or C extensions on PyPI now and a Pyodide can then use them.

    Here's the WASM build of the Rust-including Pydantic-core package for example: https://pypi.org/project/pydantic_core/#pydantic_core-2.49.0...

Explore Birbla archives

Libraries Run Rust Inside Python (With PyO3) · Birbla