setuptools-rust
pythran
Our great sponsors
setuptools-rust | pythran | |
---|---|---|
5 | 7 | |
555 | 1,962 | |
1.1% | - | |
8.7 | 8.0 | |
17 days ago | 8 days ago | |
Python | C++ | |
MIT License | BSD 3-clause "New" or "Revised" 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.
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.
pythran
- Codon: Python Compiler
-
How Python virtual environments work
Numpy and Scipy are good reasons. Unfortunately Scipy does not even compile on FreeBSD lately, and I have opened three issues about it against Scipy and Pythran (and the fix was with xsimd).
-
S6: A standalone JIT compiler library for CPython
In someone lands here seeking a maintained compiler for Python, there's a lot, on top of my head:
- Pythran (https://pythran.readthedocs.io) (ahead of time compiler)
-
Accelerate Python code 100x by import taichi as ti
Yes, I mean Pythran ( https://github.com/serge-sans-paille/pythran ). Thank you.
Was Nuitka better? Pythran is quite simple to install and use in Jupyter.
-
Omyyyy/pycom: A Python compiler, down to native code, using C++
The only project that compares 1:1 is Pythran: https://github.com/serge-sans-paille/pythran
Pythran is fairly nice, and it really does work. I tried it last year and it compiles down to modifiable templated C++. I was able to use it to build Python for a highly specialized environment.
All the others compile down to dynamically linked binaries, and that just puts them in the "other" box.
-
OpenAI Codex Python to C++ Code Generator
You might want to contact the author of Pythran [1], maybe something can be learned from what they do.
[1] https://github.com/serge-sans-paille/pythran/commits/master
- PyO3: Rust Bindings for the Python Interpreter
What are some alternatives?
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
RustPython - A Python Interpreter written in Rust
tokenizers - 💥 Fast State-of-the-Art Tokenizers optimized for Research and Production
codex_py2cpp - Converts python code into c++ by using OpenAI CODEX.
opencv-python - Automated CI toolchain to produce precompiled opencv-python, opencv-python-headless, opencv-contrib-python and opencv-contrib-python-headless packages.
shedskin - Shed Skin is a restricted-Python-to-C++ compiler. Read the introduction below to learn about the restrictions.
winsafe-examples - Examples of native Windows applications written in Rust with WinSafe.
Nuitka - Nuitka is a Python compiler written in Python. It's fully compatible with Python 2.6, 2.7, 3.4, 3.5, 3.6, 3.7, 3.8, 3.9, 3.10, and 3.11. You feed it your Python app, it does a lot of clever things, and spits out an executable or extension module.
json - Strongly typed JSON library for Rust