pyo3

Rust bindings for the Python interpreter

https://github.com/pyo3/pyo3

Science Score: 54.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
  • Committers with academic emails
    9 of 403 committers (2.2%) from academic institutions
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (15.6%) to scientific vocabulary

Keywords

binding ffi python python-c-api rust

Keywords from Contributors

argument-parser unit-testing command-line-parser fuzzing parsed-arguments positional-arguments subcommands property-based-testing pydantic json-schema
Last synced: 6 months ago · JSON representation ·

Repository

Rust bindings for the Python interpreter

Basic Info
  • Host: GitHub
  • Owner: PyO3
  • License: apache-2.0
  • Language: Rust
  • Default Branch: main
  • Homepage: https://pyo3.rs
  • Size: 46.4 MB
Statistics
  • Stars: 14,276
  • Watchers: 100
  • Forks: 867
  • Open Issues: 310
  • Releases: 97
Topics
binding ffi python python-c-api rust
Created almost 9 years ago · Last pushed 6 months ago
Metadata Files
Readme Changelog Contributing License Code of conduct Citation

README.md

PyO3

actions status benchmark codecov crates.io minimum rustc 1.63 discord server contributing notes

Rust bindings for Python, including tools for creating native Python extension modules. Running and interacting with Python code from a Rust binary is also supported.

Usage

Requires Rust 1.74 or greater.

PyO3 supports the following Python distributions: - CPython 3.7 or greater - PyPy 7.3 (Python 3.9+) - GraalPy 24.2 or greater (Python 3.11+)

You can use PyO3 to write a native Python module in Rust, or to embed Python in a Rust binary. The following sections explain each of these in turn.

Using Rust from Python

PyO3 can be used to generate a native Python module. The easiest way to try this out for the first time is to use maturin. maturin is a tool for building and publishing Rust-based Python packages with minimal configuration. The following steps install maturin, use it to generate and build a new Python package, and then launch Python to import and execute a function from the package.

First, follow the commands below to create a new directory containing a new Python virtualenv, and install maturin into the virtualenv using Python's package manager, pip:

```bash

(replace string_sum with the desired package name)

$ mkdir stringsum $ cd stringsum $ python -m venv .env $ source .env/bin/activate $ pip install maturin ```

Still inside this string_sum directory, now run maturin init. This will generate the new package source. When given the choice of bindings to use, select pyo3 bindings:

bash $ maturin init ✔ 🤷 What kind of bindings to use? · pyo3 ✨ Done! New project created string_sum

The most important files generated by this command are Cargo.toml and lib.rs, which will look roughly like the following:

Cargo.toml

```toml [package] name = "string_sum" version = "0.1.0" edition = "2021"

[lib]

The name of the native library. This is the name which will be used in Python to import the

library (i.e. import string_sum). If you change this, you must also change the name of the

#[pymodule] in src/lib.rs.

name = "string_sum"

"cdylib" is necessary to produce a shared library for Python to import from.

Downstream Rust code (including code in bin/, examples/, and tests/) will not be able

to use string_sum; unless the "rlib" or "lib" crate type is also included, e.g.:

crate-type = ["cdylib", "rlib"]

crate-type = ["cdylib"]

[dependencies] pyo3 = { version = "0.26.0", features = ["extension-module"] } ```

src/lib.rs

```rust use pyo3::prelude::*;

/// Formats the sum of two numbers as string.

[pyfunction]

fn sumasstring(a: usize, b: usize) -> PyResult { Ok((a + b).to_string()) }

/// A Python module implemented in Rust. The name of this function must match /// the lib.name setting in the Cargo.toml, else Python will not be able to /// import the module.

[pymodule]

fn stringsum(m: &Bound<', PyModule>) -> PyResult<()> { m.addfunction(wrappyfunction!(sumasstring, m)?)?; Ok(()) } ```

Finally, run maturin develop. This will build the package and install it into the Python virtualenv previously created and activated. The package is then ready to be used from python:

```bash $ maturin develop

lots of progress output as maturin runs the compilation...

$ python

import stringsum stringsum.sumasstring(5, 20) '25' ```

To make changes to the package, just edit the Rust source code and then re-run maturin develop to recompile.

To run this all as a single copy-and-paste, use the bash script below (replace string_sum in the first command with the desired package name):

bash mkdir string_sum && cd "$_" python -m venv .env source .env/bin/activate pip install maturin maturin init --bindings pyo3 maturin develop

If you want to be able to run cargo test or use this project in a Cargo workspace and are running into linker issues, there are some workarounds in the FAQ.

As well as with maturin, it is possible to build using setuptools-rust or manually. Both offer more flexibility than maturin but require more configuration to get started.

Using Python from Rust

To embed Python into a Rust binary, you need to ensure that your Python installation contains a shared library. The following steps demonstrate how to ensure this (for Ubuntu), and then give some example code which runs an embedded Python interpreter.

To install the Python shared library on Ubuntu:

bash sudo apt install python3-dev

To install the Python shared library on RPM based distributions (e.g. Fedora, Red Hat, SuSE), install the python3-devel package.

Start a new project with cargo new and add pyo3 to the Cargo.toml like this:

toml [dependencies.pyo3] version = "0.26.0" features = ["auto-initialize"]

Example program displaying the value of sys.version and the current user name:

```rust use pyo3::prelude::*; use pyo3::types::IntoPyDict; use pyo3::ffi::c_str;

fn main() -> PyResult<()> { Python::attach(|py| { let sys = py.import("sys")?; let version: String = sys.getattr("version")?.extract()?;

    let locals = [("os", py.import("os")?)].into_py_dict(py)?;
    let code = c_str!("os.getenv('USER') or os.getenv('USERNAME') or 'Unknown'");
    let user: String = py.eval(code, None, Some(&locals))?.extract()?;

    println!("Hello {}, I'm Python {}", user, version);
    Ok(())
})

} ```

The guide has a section with lots of examples about this topic.

Tools and libraries

  • maturin Build and publish crates with pyo3, rust-cpython or cffi bindings as well as rust binaries as python packages
  • setuptools-rust Setuptools plugin for Rust support.
  • pyo3-built Simple macro to expose metadata obtained with the built crate as a PyDict
  • rust-numpy Rust binding of NumPy C-API
  • dict-derive Derive FromPyObject to automatically transform Python dicts into Rust structs
  • pyo3-log Bridge from Rust to Python logging
  • pythonize Serde serializer for converting Rust objects to JSON-compatible Python objects
  • pyo3-async-runtimes Utilities for interoperability with Python's Asyncio library and Rust's async runtimes.
  • rustimport Directly import Rust files or crates from Python, without manual compilation step. Provides pyo3 integration by default and generates pyo3 binding code automatically.
  • pyo3-arrow Lightweight Apache Arrow integration for pyo3.
  • pyo3-bytes Integration between bytes and pyo3.
  • pyo3-object_store Integration between object_store and pyo3.

Examples

  • arro3 A minimal Python library for Apache Arrow, connecting to the Rust arrow crate.
  • bed-reader Read and write the PLINK BED format, simply and efficiently.
    • Shows Rayon/ndarray::parallel (including capturing errors, controlling thread num), Python types to Rust generics, Github Actions
  • blake3-py Python bindings for the BLAKE3 cryptographic hash function.
    • Parallelized builds on GitHub Actions for MacOS, Linux, Windows, including free-threaded 3.13t wheels.
  • cellular_raza A cellular agent-based simulation framework for building complex models from a clean slate.
  • connector-x Fastest library to load data from DB to DataFrames in Rust and Python.
  • cryptography Python cryptography library with some functionality in Rust.
  • css-inline CSS inlining for Python implemented in Rust.
  • datafusion-python A Python library that binds to Apache Arrow in-memory query engine DataFusion.
  • deltalake-python Native Delta Lake Python binding based on delta-rs with Pandas integration.
  • fastbloom A fast bloom filter | counting bloom filter implemented by Rust for Rust and Python!
  • fastuuid Python bindings to Rust's UUID library.
  • feos Lightning fast thermodynamic modeling in Rust with fully developed Python interface.
  • finalytics Investment Analysis library in Rust | Python.
  • forust A lightweight gradient boosted decision tree library written in Rust.
  • geo-index A Rust crate and Python library for packed, immutable, zero-copy spatial indexes.
  • granian A Rust HTTP server for Python applications.
  • haem A Python library for working on Bioinformatics problems.
  • html2text-rs Python library for converting HTML to markup or plain text.
  • html-py-ever Using html5ever through kuchiki to speed up html parsing and css-selecting.
  • hudi-rs The native Rust implementation for Apache Hudi, with C++ & Python API bindings.
  • inline-python Inline Python code directly in your Rust code.
  • johnnycanencrypt OpenPGP library with Yubikey support.
  • jsonschema A high-performance JSON Schema validator for Python.
  • mocpy Astronomical Python library offering data structures for describing any arbitrary coverage regions on the unit sphere.
  • obstore The simplest, highest-throughput Python interface to Amazon S3, Google Cloud Storage, Azure Storage, & other S3-compliant APIs, powered by Rust.
  • opendal A data access layer that allows users to easily and efficiently retrieve data from various storage services in a unified way.
  • orjson Fast Python JSON library.
  • ormsgpack Fast Python msgpack library.
  • polars Fast multi-threaded DataFrame library in Rust | Python | Node.js.
  • pycrdt Python bindings for the Rust CRDT implementation Yrs.
  • pydantic-core Core validation logic for pydantic written in Rust.
  • primp The fastest python HTTP client that can impersonate web browsers by mimicking their headers and TLS/JA3/JA4/HTTP2 fingerprints.
  • rateslib A fixed income library for Python using Rust extensions.
  • river Online machine learning in python, the computationally heavy statistics algorithms are implemented in Rust.
  • robyn A Super Fast Async Python Web Framework with a Rust runtime.
  • rust-python-coverage Example PyO3 project with automated test coverage for Rust and Python.
  • rnet Asynchronous Python HTTP Client with Black Magic
  • sail Unifying stream, batch, and AI workloads with Apache Spark compatibility.
  • tiktoken A fast BPE tokeniser for use with OpenAI's models.
  • tokenizers Python bindings to the Hugging Face tokenizers (NLP) written in Rust.
  • tzfpy A fast package to convert longitude/latitude to timezone name.
  • utiles Fast Python web-map tile utilities

Articles and other media

Contributing

Everyone is welcomed to contribute to PyO3! There are many ways to support the project, such as:

  • help PyO3 users with issues on GitHub and Discord
  • improve documentation
  • write features and bugfixes
  • publish blogs and examples of how to use PyO3

Our contributing notes and architecture guide have more resources if you wish to volunteer time for PyO3 and are searching where to start.

If you don't have time to contribute yourself but still wish to support the project's future success, some of our maintainers have GitHub sponsorship pages:

License

PyO3 is licensed under the Apache-2.0 license or the MIT license, at your option.

Python is licensed under the Python License.

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in PyO3 by you, as defined in the Apache License, shall be dual-licensed as above, without any additional terms or conditions.

Deploys by Netlify

Owner

  • Name: PyO3
  • Login: PyO3
  • Kind: organization

Pythonium Trioxide

Citation (CITATION.cff)

cff-version: 1.2.0
title: PyO3
message: >-
  If you use this software as part of a publication and wish to cite
  it, please use the metadata from this file.
type: software
authors:
  - name: PyO3 Project and Contributors
    website: https://github.com/PyO3
license:
  - Apache-2.0
  - MIT

Committers

Last synced: 8 months ago

All Time
  • Total Commits: 4,900
  • Total Committers: 403
  • Avg Commits per committer: 12.159
  • Development Distribution Score (DDS): 0.743
Past Year
  • Commits: 464
  • Committers: 92
  • Avg Commits per committer: 5.043
  • Development Distribution Score (DDS): 0.733
Top Committers
Name Email Commits
David Hewitt 1****t 1,261
kngwyu y****e@g****m 395
Nikolay Kim f****1@g****m 352
konstin k****n@m****g 262
Daniel Grunwald d****l@d****e 224
mejrs b****r@h****m 208
messense m****e@i****m 192
Icxolu 1****u 181
Adam Reichold a****d@t****e 150
Georg Brandl g****g@p****g 119
Alexander Niederbühl a****l@g****m 101
Alex Gaynor a****r@g****m 101
Paul Ganssle p****l@g****o 60
Nathan Goldbaum n****m@g****m 55
Nicholas Sim n****m@p****t 51
Martin Larralde m****e@e****r 48
dependabot[bot] 4****] 34
Thomas Tanon t****n@h****i 34
ijl i****l@m****g 33
Bas Schoenmaeckers 7****s 31
Sebastian Pütz s****z@g****m 30
Sergey Kvachonok r****p@g****m 29
mejrs 26
Lily Foote c****e@l****g 23
Gregory Szorc g****c@g****m 23
Ashley Anderson a****n@h****m 20
R2D2 j****0@g****m 19
Martin Larralde m****e@e****r 17
Samuele Maci m****e@g****m 17
Dean Li d****v@g****m 17
and 373 more...

Issues and Pull Requests

Last synced: 6 months ago

All Time
  • Total issues: 606
  • Total pull requests: 2,232
  • Average time to close issues: 6 months
  • Average time to close pull requests: 21 days
  • Total issue authors: 339
  • Total pull request authors: 226
  • Average comments per issue: 4.02
  • Average comments per pull request: 2.38
  • Merged pull requests: 1,714
  • Bot issues: 1
  • Bot pull requests: 47
Past Year
  • Issues: 214
  • Pull requests: 872
  • Average time to close issues: 17 days
  • Average time to close pull requests: 8 days
  • Issue authors: 127
  • Pull request authors: 101
  • Average comments per issue: 1.57
  • Average comments per pull request: 1.64
  • Merged pull requests: 629
  • Bot issues: 0
  • Bot pull requests: 27
Top Authors
Issue Authors
  • davidhewitt (110)
  • ngoldbaum (21)
  • alex (11)
  • wyfo (7)
  • Tpt (7)
  • Icxolu (6)
  • ChayimFriedman2 (6)
  • attack68 (5)
  • birkenfeld (5)
  • adamreichold (5)
  • konstin (5)
  • LilyFoote (5)
  • kylebarron (5)
  • jakelishman (5)
  • mejrs (4)
Pull Request Authors
  • davidhewitt (764)
  • Icxolu (355)
  • ngoldbaum (119)
  • Tpt (77)
  • alex (77)
  • bschoenmaeckers (75)
  • LilyFoote (58)
  • dependabot[bot] (47)
  • adamreichold (44)
  • mejrs (25)
  • messense (24)
  • Cheukting (22)
  • wyfo (20)
  • birkenfeld (16)
  • Owen-CH-Leung (13)
Top Labels
Issue Labels
bug (172) enhancement (163) Good First Issue (33) needs-design (33) documentation (17) needs-implementer (11) 1.0-candidate (9) free-threading (7) Unsound (6) performance (5) CI-skip-changelog (5) confusing-api (5) help-wanted (4) refactoring (4) hard (3) question (3) github-actions (3) 1.0-must (2) dependencies (2) Waiting for response (2) bugfix (2) duplicate (1) FFI (1) CI (1) f-extension-module (1) hacktoberfest (1) proc-macro (1) linker (1) blocked (1)
Pull Request Labels
CI-skip-changelog (913) CI-build-full (150) dependencies (49) bugfix (41) rust (34) github-actions (25) CI-no-fail-fast (22) proc-macro (15) free-threading (13) refactoring (6) CI (5) documentation (4) confusing-api (2) performance (2) blocked (2) 1.0-must (1) FFI (1) enhancement (1)

Packages

  • Total packages: 12
  • Total downloads:
    • cargo 465,419,975 total
    • pypi 1,137 last-month
  • Total docker downloads: 163,467,079
  • Total dependent packages: 731
    (may contain duplicates)
  • Total dependent repositories: 10,393
    (may contain duplicates)
  • Total versions: 699
  • Total maintainers: 5
  • Total advisories: 5
crates.io: pyo3

Bindings to Python interpreter

  • Versions: 105
  • Dependent Packages: 666
  • Dependent Repositories: 2,349
  • Downloads: 97,251,129 Total
  • Docker Downloads: 23,463,016
Rankings
Dependent packages count: 0.1%
Downloads: 0.4%
Docker downloads count: 0.4%
Average: 0.7%
Dependent repos count: 0.8%
Stargazers count: 1.0%
Forks count: 1.4%
Maintainers (1)
Last synced: 6 months ago
crates.io: pyo3-build-config

Build configuration for the PyO3 ecosystem

  • Versions: 55
  • Dependent Packages: 58
  • Dependent Repositories: 1,891
  • Downloads: 101,662,412 Total
  • Docker Downloads: 23,360,911
Rankings
Downloads: 0.4%
Docker downloads count: 0.4%
Average: 0.9%
Dependent repos count: 0.9%
Dependent packages count: 1.0%
Stargazers count: 1.0%
Forks count: 1.4%
Maintainers (1)
Last synced: 6 months ago
crates.io: pyo3-ffi

Python-API bindings for the PyO3 ecosystem

  • Versions: 44
  • Dependent Packages: 3
  • Dependent Repositories: 1,576
  • Downloads: 80,746,632 Total
  • Docker Downloads: 23,350,358
Rankings
Downloads: 0.5%
Docker downloads count: 0.8%
Dependent repos count: 1.0%
Stargazers count: 1.0%
Forks count: 1.4%
Average: 2.2%
Dependent packages count: 8.7%
Maintainers (1)
Last synced: 6 months ago
crates.io: pyo3-macros-backend

Code generation for PyO3 package

  • Versions: 57
  • Dependent Packages: 1
  • Dependent Repositories: 1,816
  • Downloads: 90,487,728 Total
  • Docker Downloads: 23,369,352
Rankings
Downloads: 0.4%
Docker downloads count: 0.4%
Dependent repos count: 0.9%
Stargazers count: 1.0%
Forks count: 1.4%
Average: 3.6%
Dependent packages count: 17.2%
Maintainers (1)
Last synced: 7 months ago
crates.io: pyo3-macros

Proc macros for PyO3 package

  • Versions: 57
  • Dependent Packages: 1
  • Dependent Repositories: 1,846
  • Downloads: 92,306,683 Total
  • Docker Downloads: 23,369,352
Rankings
Downloads: 0.4%
Docker downloads count: 0.4%
Dependent repos count: 0.9%
Stargazers count: 1.0%
Forks count: 1.4%
Average: 3.6%
Dependent packages count: 17.2%
Maintainers (1)
Last synced: 6 months ago
crates.io: pyo3cls

Proc macros for PyO3 package

  • Versions: 43
  • Dependent Packages: 1
  • Dependent Repositories: 461
  • Downloads: 1,497,162 Total
  • Docker Downloads: 23,277,045
Rankings
Docker downloads count: 0.5%
Stargazers count: 1.1%
Forks count: 1.5%
Dependent repos count: 1.9%
Downloads: 2.0%
Average: 4.2%
Dependent packages count: 18.2%
Maintainers (1)
Last synced: 6 months ago
crates.io: pyo3-derive-backend

Code generation for PyO3 package

  • Versions: 39
  • Dependent Packages: 1
  • Dependent Repositories: 454
  • Downloads: 1,468,229 Total
  • Docker Downloads: 23,277,045
Rankings
Docker downloads count: 0.5%
Stargazers count: 1.1%
Forks count: 1.5%
Dependent repos count: 1.9%
Downloads: 2.0%
Average: 4.2%
Dependent packages count: 18.2%
Maintainers (2)
Last synced: 6 months ago
proxy.golang.org: github.com/PyO3/pyo3
  • Versions: 99
  • Dependent Packages: 0
  • Dependent Repositories: 0
Rankings
Dependent packages count: 6.3%
Average: 6.5%
Dependent repos count: 6.7%
Last synced: 6 months ago
proxy.golang.org: github.com/PyO3/PyO3
  • Versions: 99
  • Dependent Packages: 0
  • Dependent Repositories: 0
Rankings
Dependent packages count: 7.0%
Average: 8.2%
Dependent repos count: 9.3%
Last synced: 6 months ago
proxy.golang.org: github.com/pyo3/pyo3
  • Versions: 99
  • Dependent Packages: 0
  • Dependent Repositories: 0
Rankings
Dependent packages count: 7.0%
Average: 8.2%
Dependent repos count: 9.3%
Last synced: 6 months ago
pypi.org: pyo3-runtime
  • Versions: 1
  • Dependent Packages: 0
  • Dependent Repositories: 0
  • Downloads: 1,137 Last month
Rankings
Stargazers count: 0.3%
Forks count: 2.0%
Dependent packages count: 7.4%
Average: 19.9%
Downloads: 21.1%
Dependent repos count: 69.0%
Maintainers (1)
Last synced: 6 months ago
crates.io: pyo3-introspection

Introspect dynamic libraries built with PyO3 to get metadata about the exported Python types

  • Versions: 1
  • Dependent Packages: 0
  • Dependent Repositories: 0
  • Downloads: 0 Total
Rankings
Dependent repos count: 20.6%
Dependent packages count: 27.2%
Average: 47.5%
Downloads: 94.6%
Maintainers (1)
Last synced: 7 months ago

Dependencies

examples/string-sum/.template/Cargo.toml cargo
examples/string-sum/Cargo.toml cargo
examples/string-sum/.template/pyproject.toml pypi
examples/string-sum/pyproject.toml pypi
examples/string-sum/requirements-dev.txt pypi
  • maturin >=0.12,<0.13 development
  • pip >=21.3 development
  • pytest >=3.5.0 development
.github/workflows/build.yml actions
  • PyO3/maturin-action v1 composite
  • Swatinem/rust-cache v2 composite
  • actions/checkout v4 composite
  • actions/setup-python v4 composite
  • dorny/paths-filter v2 composite
  • dtolnay/rust-toolchain master composite
.github/workflows/changelog.yml actions
  • actions/checkout v4 composite
  • actions/setup-python v4 composite
.github/workflows/ci.yml actions
  • Swatinem/rust-cache v2 composite
  • actions/cache v3 composite
  • actions/checkout v4 composite
  • actions/setup-node v3 composite
  • actions/setup-python v4 composite
  • codecov/codecov-action v3 composite
  • dtolnay/rust-toolchain master composite
  • dtolnay/rust-toolchain nightly composite
  • dtolnay/rust-toolchain stable composite
  • taiki-e/install-action valgrind composite
  • taiki-e/install-action cargo-llvm-cov composite
.github/workflows/gh-pages.yml actions
  • actions/cache v3 composite
  • actions/checkout v4 composite
  • actions/setup-python v4 composite
  • benchmark-action/github-action-benchmark v1 composite
  • dtolnay/rust-toolchain nightly composite
  • dtolnay/rust-toolchain stable composite
  • peaceiris/actions-gh-pages v3 composite
  • peaceiris/actions-mdbook v1 composite
Cargo.toml cargo
  • assert_approx_eq 1.1.0 development
  • chrono 0.4.25 development
  • proptest 1.0 development
  • rayon 1.0.2 development
  • rust_decimal 1.8.0 development
  • send_wrapper 0.6 development
  • serde 1.0 development
  • serde_json 1.0.61 development
  • trybuild >=1.0.70 development
  • widestring 0.5.1 development
  • anyhow 1.0
  • cfg-if 1.0
  • chrono 0.4
  • eyre >= 0.4, < 0.7
  • hashbrown >= 0.9, < 0.15
  • indexmap >= 1.6, < 3
  • indoc 2.0.1
  • inventory 0.3.0
  • libc 0.2.62
  • memoffset 0.9
  • num-bigint 0.4
  • num-complex >= 0.2, < 0.5
  • parking_lot >= 0.11, < 0.13
  • pyo3-ffi =0.19.2
  • pyo3-macros =0.19.2
  • rust_decimal 1.0.0
  • serde 1.0
  • unindent 0.2.1
examples/Cargo.toml cargo
examples/decorator/.template/Cargo.toml cargo
examples/decorator/Cargo.toml cargo
examples/getitem/.template/Cargo.toml cargo
examples/getitem/Cargo.toml cargo
examples/maturin-starter/.template/Cargo.toml cargo
examples/maturin-starter/Cargo.toml cargo
examples/plugin/.template/Cargo.toml cargo
examples/plugin/.template/plugin_api/Cargo.toml cargo
examples/plugin/Cargo.toml cargo
examples/plugin/plugin_api/Cargo.toml cargo
examples/setuptools-rust-starter/.template/Cargo.toml cargo
examples/setuptools-rust-starter/Cargo.toml cargo
examples/word-count/.template/Cargo.toml cargo
examples/word-count/Cargo.toml cargo
pyo3-benches/Cargo.toml cargo
  • criterion 0.5.1 development
  • num-bigint 0.4.3 development
pyo3-build-config/Cargo.toml cargo
pyo3-ffi/Cargo.toml cargo
pyo3-ffi-check/Cargo.toml cargo
pyo3-ffi-check/macro/Cargo.toml cargo
pyo3-macros/Cargo.toml cargo
pyo3-macros-backend/Cargo.toml cargo
pytests/Cargo.toml cargo
examples/decorator/.template/pyproject.toml pypi
examples/decorator/pyproject.toml pypi
examples/decorator/requirements-dev.txt pypi
  • maturin >=0.12,<0.13 development
  • pip >=21.3 development
  • pytest >=3.5.0 development
examples/getitem/.template/pyproject.toml pypi
examples/getitem/pyproject.toml pypi
examples/getitem/requirements-dev.txt pypi
  • maturin >=1,<2 development
  • pip >=21.3 development
  • pytest >=3.5.0 development
examples/maturin-starter/.template/pyproject.toml pypi
examples/maturin-starter/pyproject.toml pypi
examples/maturin-starter/requirements-dev.txt pypi
  • maturin >=0.12,<0.13 development
  • pip >=21.3 development
  • pytest >=3.5.0 development
examples/plugin/plugin_api/pyproject.toml pypi
examples/plugin/plugin_api/requirements-dev.txt pypi
  • maturin >=0.14 development
  • pip >=21.3 development
  • pytest >=3.5.0 development
examples/setuptools-rust-starter/pyproject.toml pypi
examples/setuptools-rust-starter/requirements-dev.txt pypi
  • pip >=21.3 development
  • pytest >=3.5.0 development
  • setuptools_rust * development
  • wheel * development
examples/setuptools-rust-starter/setup.py pypi
examples/word-count/.template/pyproject.toml pypi
examples/word-count/pyproject.toml pypi
examples/word-count/requirements-dev.txt pypi
  • pytest >=3.5.0 development
  • pytest-benchmark >=3.1.1 development
pyo3-runtime/pyproject.toml pypi
pyproject.toml pypi
pytests/pyproject.toml pypi
pytests/requirements-dev.txt pypi
  • hypothesis >=3.55 development
  • psutil >=5.6 development
  • pytest >=6.0 development
  • pytest-benchmark >=3.4 development
  • typing_extensions >=4.0.0 development