-
-
Notifications
You must be signed in to change notification settings - Fork 284
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #491 from PyO3/platform_support
Add platform support draft
- Loading branch information
Showing
1 changed file
with
17 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,17 @@ | ||
# Platform Support | ||
|
||
Being built on cargo and rustc, maturin is limited by [rust's platform support](https://doc.rust-lang.org/nightly/rustc/platform-support.html). | ||
|
||
**Automated tests**: On github actions, windows, macOS and linux are tested, all on 64-bit x86. FreeBSD is also tested though circle ci, but might get removed at some point. Since CI is very time intensive to maintain, I'd like to stick to github action and these three platforms. | ||
|
||
**Releases**: The following targets are built into wheels and downloadable binaries: | ||
|
||
* windows: 32-bit and 64-bit x86 | ||
* linux 32-bit and 64-bit x86 as well as armv7 and aarch64 (musl) | ||
* macOS: 64-bit and aarch64 | ||
|
||
**Other Operating Systems**: It should be possible to build maturin and for maturin to build wheels on other platforms supported by rust. To add a new os, add it in target.rs and, if it doesn't behave like the other unixes, in `PythonInterpreter::get_tag`. Please also submit the output of `python -m sysconfig` as a file in the `sysconfig` folder. It's ok to edit setup.py to deactivate default features so `pip install` works, but new platforms should not require complex workaround in `compile.rs`. | ||
|
||
**Architectures**: All architectures included in manylinux (aarch64, armv7l, ppc64le, ppc64, i686, x86_64, s390x) are supported. I'm not sure whether it makes sense to allow architectures that aren't even supported by manylinux. | ||
|
||
**Python Support**: CPython 3.6 to 3.9 are supported and tested on CI, though the entire 3.x series should work. This will be changed as new python versions are released and others have their end of life. PyPy works but could be better, contributions are welcome (see also [#115](https://github.com/PyO3/maturin/issues/115)). I also haven't check if we can test pypy on github actions. |