setuptools-rust
pierogis
Our great sponsors
setuptools-rust | pierogis | |
---|---|---|
5 | 7 | |
555 | 118 | |
2.7% | 0.0% | |
8.7 | 2.6 | |
22 days ago | almost 2 years ago | |
Python | Python | |
MIT License | GNU Affero General Public License v3.0 |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
setuptools-rust
-
How do i go about building a vidoe conferencing app?
For Python specifically, In addition to using rust-cpython or PyO3, maturin makes it really comfortable to build, package, and publish Rust code into Python packages and, if your niche doesn't quite fit, there's setuptools-python which might do it.
-
Python extensions in Rust
Aside from the PyO3 and rust-cpython crates already mentioned, I'd suggest maturin as a way to integrate your build processes or possibly setuptools-rust.
-
Good use cases for Rust? I'm trying to find a reason to use Rust
Compiled modules for Python stuff (I'd recommend PyO3 but the last one I started was before that worked on stable Rust, so I used its progenitor, rust-cpython. See also maturin or setuptools-rust).
-
Can someone help me understand PyO3? I'm not sure how it works.
...but you will need to rename the generated library to match import conventions. setuptools-rust or Maturin can help with that.
-
PyO3: Rust Bindings for the Python Interpreter
Between pyodide, pyo3, rust-cpython, and rustpython, I think Pyo3 is the best way to drop in rust in a python project for a speed up, if that is your goal. Some of the demos show using python from rust, but to me the biggest feature is without a doubt compiling rust code to native python modules. I'm using it to speed up image manipulation backed by numpy arrays.
There’s a setuptools rust [0] extension package that can be used to hook the compilation of the rust into the wheel building or install from source. Maturin [1] seems to be regarded as the new and improved solution for this, but I found that it’s angled toward the using python from rust.
There’s also the rust numpy [2] package by the same org which is fantastic in that it lets you pass a numpy matrix to a native method written in rust and convert it to the rust equivalent data structure, perform whatever transformation you want (in parallel using rayon [3]), and return the array. When building for release, I was seeing speed ups of 100x over numpy on the most matrix mathable function imaginable, and numpy is no joke.
I think there is a lot of potential for these two ecosystems together. If there’s not a python package for something, there’s probably a rust crate.
If anyone is interested the python package that I'm building with some rust backend, its called pyrogis [4] for making custom image manipulations through numpy arrays.
pierogis
What are some alternatives?
maturin - Build and publish crates with pyo3, rust-cpython and cffi bindings as well as rust binaries as python packages
pybind11 - Seamless operability between C++11 and Python
tokenizers - 💥 Fast State-of-the-Art Tokenizers optimized for Research and Production
opencv-python - Automated CI toolchain to produce precompiled opencv-python, opencv-python-headless, opencv-contrib-python and opencv-contrib-python-headless packages.
winsafe-examples - Examples of native Windows applications written in Rust with WinSafe.
json - Strongly typed JSON library for Rust
PyO3 - Rust bindings for the Python interpreter
rust-cpython - Rust <-> Python bindings
Datamosher-Pro - A GUI based powerful automatic datamoshing application for free! Easily apply this trippy glitch effect in your videos. Contains 30+ cool glitch effects!
pythran - Ahead of Time compiler for numeric kernels
webrtc - A pure Rust implementation of WebRTC
rust-numpy - PyO3-based Rust bindings of the NumPy C-API