Metadata-Version: 1.1
Name: setuptools-rust
Version: 0.3.1
Summary: Setuptools rust extension plugin
Home-page: https://github.com/fafhrd91/setuptools-rust
Author: Nikolay Kim
Author-email: fafhrd91@gmail.com
License: MIT
Description: 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.1 (2017-03-09)
        ------------------
        
        - Fix compatibility with some old versions of setuptools
        
        
        0.3 (2017-03-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
        
Keywords: distutils setuptools rust
Platform: UNKNOWN
Classifier: Topic :: Software Development :: Version Control
Classifier: License :: OSI Approved :: MIT License
Classifier: Intended Audience :: Developers
Classifier: Programming Language :: Python :: 2
Classifier: Programming Language :: Python :: 2.7
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.5
Classifier: Programming Language :: Python :: 3.6
Classifier: Development Status :: 5 - Production/Stable
Classifier: Operating System :: POSIX
Classifier: Operating System :: MacOS :: MacOS X
Classifier: Operating System :: Microsoft :: Windows
