#python-bindings #pyo3 #python

rigetti-pyo3

Utilities for creating a Python wrapper for a Rust library

35 releases

0.4.2 Dec 4, 2024
0.4.1 Jul 12, 2024
0.4.0 Jun 20, 2024
0.3.1 Nov 22, 2023
0.0.1 Dec 20, 2022

#113 in FFI

Download history 385/week @ 2024-08-21 631/week @ 2024-08-28 683/week @ 2024-09-04 1027/week @ 2024-09-11 632/week @ 2024-09-18 592/week @ 2024-09-25 1167/week @ 2024-10-02 1593/week @ 2024-10-09 513/week @ 2024-10-16 276/week @ 2024-10-23 680/week @ 2024-10-30 618/week @ 2024-11-06 891/week @ 2024-11-13 383/week @ 2024-11-20 217/week @ 2024-11-27 880/week @ 2024-12-04

2,473 downloads per month
Used in 2 crates

Apache-2.0

120KB
2.5K SLoC

Rigetti PyO3

This crate defines a set of macros for creating PyO3 bindings to an existing Rust crate.

That is, given Rust library crate foo, these macros can be used inside a crate foo-python to create Python bindings. This is not intended for creating a standalone Python library using Rust.

See the docs for more.

A note on feature compatibility

If you want to use PyO3's abi3 feature, you must disable this library's time feature (which is enabled by default). This library provides an abi3 feature you can enable in order to explicitly request pyo3/abi3, which will give a clearer error message in that case.


Rigetti PyO3 is licensed under the Apache License 2.0.


lib.rs:

Helpful macros and traits for creating a Python wrapper of a Rust library.

See Macros and Traits for the main items in this crate.

Usage

See the examples directory in the source for example usage of a majority of the crate.

Alternatively, check the examples on the macros in this documentation.

Dependencies

~5–10MB
~121K SLoC