pierogis
setuptools-rust
pierogis | setuptools-rust | |
---|---|---|
7 | 5 | |
119 | 560 | |
0.8% | 0.9% | |
2.6 | 8.6 | |
about 2 years ago | about 1 month ago | |
Python | Python | |
GNU Affero General Public License v3.0 | MIT License |
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.
pierogis
- pierogis/pierogis a framework for image and animation processing
- Pierogis – Python/rust image and animation processing
-
avalanche sorted and quantized
made with pierogis
-
cold
pierogis -> now with animations
-
tunnel (000000 ffffff 65615C EBECE5 322E28 9CC0CE 5E4E3C 4B7BA3)
pierogis 0.2.0 is live
-
wave
process all of the pngs in ./frames using pyrogis and put them into ./cooked
-
PyO3: Rust Bindings for the Python Interpreter
https://github.com/pierogis/pierogis
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.
https://github.com/PyO3/setuptools-rust
What are some alternatives?
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!
maturin - Build and publish crates with pyo3, cffi and uniffi bindings as well as rust binaries as python packages
rust-numpy - PyO3-based Rust bindings of the NumPy C-API
pybind11 - Seamless operability between C++11 and Python
pythran - Ahead of Time compiler for numeric kernels
tokenizers - 💥 Fast State-of-the-Art Tokenizers optimized for Research and Production
dtparse - Fast datetime parser for Python written in Rust
winsafe-examples - Examples of native Windows applications written in Rust with WinSafe.
opencv-python - Automated CI toolchain to produce precompiled opencv-python, opencv-python-headless, opencv-contrib-python and opencv-contrib-python-headless packages.
json - Strongly typed JSON library for Rust
rust-cpython - Rust <-> Python bindings
PyO3 - Rust bindings for the Python interpreter