Skip to main content
Setuptools helpers for rust Python extensions.

Compile and distribute Python extensions written in rust as easily as if they were written in C.

Example
-------

setup.py
^^^^^^^^

.. code-block:: python

from setuptools import setup
from setuptools_rust import RustExtension

setup(name='hello-rust',
version='1.0',
rust_extensions=[RustExtension('hello_rust._helloworld', 'extensions/Cargo.toml')],
packages=['hello_rust'],
# rust extensions are not zip safe, just like C-extensions.
zip_safe=False
)


You can use same commands as for c-extensions. For example::

>>> python ./setup.py develop
running develop
running egg_info
writing hello-rust.egg-info/PKG-INFO
writing top-level names to hello_rust.egg-info/top_level.txt
writing dependency_links to hello_rust.egg-info/dependency_links.txt
reading manifest file 'hello_rust.egg-info/SOURCES.txt'
writing manifest file 'hello_rust.egg-info/SOURCES.txt'
running build_ext
running build_rust
cargo build --manifest-path extensions/Cargo.toml --features python27-sys
Finished debug [unoptimized + debuginfo] target(s) in 0.0 secs

Creating /.../lib/python2.7/site-packages/hello_rust.egg-link (link to .)

Installed hello_rust
Processing dependencies for hello_rust==1.0
Finished processing dependencies for hello_rust==1.0


Or you can use commands like `bdist_wheel` or `bdist_egg`


RustExtension
-------------

You can define rust extension with `RustExtension` class:

*RustExtension*(name, path, args=None, features=None, rust_version=None, quiet=False, debug=False)

The class for creating rust extensions.

:param str name: the full name of the extension, including any packages -- ie.
*not* a filename or pathname, but Python dotted name

:param str path: path to the Cargo.toml manifest file

:param [str] args: a list of extra argumenents to be passed to cargo.

:param [str] features: a list of features to also build

:param str rust_version: sematic version of rust compiler version -- for example
*>1.14,<1.16*, default is None

:param bool quiet: Does not echo cargo's output. default is False

:param bool debug: Controls whether --debug or --release is passed to cargo.


CHANGES
=======

0.3 (2017-04-09)
----------------

- Fixed OSX extension compilation

- Use distutils exceptions for errors

- Add rust version check for extension

- Cleanup example project


0.2 (2017-03-08)
----------------

- Fix bdist_egg and bdist_wheel commands


0.1 (2017-03-08)
----------------

- Initial release

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

setuptools-rust-0.3.tar.gz (6.1 kB view details)

Uploaded Source

File details

Details for the file setuptools-rust-0.3.tar.gz.

File metadata

  • Download URL: setuptools-rust-0.3.tar.gz
  • Upload date:
  • Size: 6.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for setuptools-rust-0.3.tar.gz
Algorithm Hash digest
SHA256 7dfff86359277fd73b8ee892fe548d6d7add308f3d3505f85435f419737c0626
MD5 cadbb54c054c43fe018af29cdd61dd42
BLAKE2b-256 622642d99980736e0bb7408777a94d628aa35cd723d2b46be212dec9775e5580

See more details on using hashes here.

Release history Release notifications | RSS feed

1.13.0

2 files

1.12.1

2 files

1.12.0

2 files

1.11.1

2 files

1.11.0

2 files

1.10.2

2 files

1.10.1

2 files

1.10.0

2 files

1.9.0

2 files

1.8.1

2 files

1.8.0

2 files

1.7.0

2 files

1.6.0

2 files

1.5.2

2 files

1.5.1

2 files

1.5.0

2 files

1.4.1

2 files

1.4.0

2 files

1.3.0

2 files

1.2.0

2 files

1.1.2

2 files

1.1.1

2 files

1.1.0

2 files

1.0.0

2 files

0.12.1

2 files

0.12.0

2 files

0.11.6

2 files

0.11.5

2 files

0.11.4

2 files

0.11.3

2 files

0.11.2

2 files

0.11.1

2 files

0.11.0

2 files

0.10.6

1 file

0.10.5

1 file

0.10.4

1 file

0.10.3

2 files

0.10.2

2 files

0.10.1

2 files

0.10.0

2 files

0.9.2

2 files

0.9.1

1 file

0.9.0

1 file

0.8.4

1 file

0.8.3

1 file

0.8.2

1 file

0.8.1

1 file

0.8.0

1 file

0.7.2

1 file

0.7.1

1 file

0.7.0

1 file

0.6.4

1 file

0.6.3

1 file

0.6.2

1 file

0.6.1

1 file

0.6.0

1 file

0.5.1

1 file

0.5.0

1 file

0.4.2

1 file

0.4.1

1 file

0.4

1 file

0.3.1

1 file

This release

0.3 This release

1 file

0.2

1 file

0.1

1 file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page