Crates.io | pyo2 |
lib.rs | pyo2 |
version | 0.1.2 |
source | src |
created_at | 2024-07-16 21:35:35.282665 |
updated_at | 2024-07-16 21:43:36.364998 |
description | A lightweight method to call Rust code from Python |
homepage | |
repository | |
max_upload_size | |
id | 1305536 |
size | 4,709 |
Not affiliated at all with PyO3. Is that what you were looking for?
File: Cargo.toml
[package]
name = "mylib"
version = "0.1.0"
edition = "2021"
[lib]
crate-type = ["cdylib"]
[dependencies]
pyo2 = "0.1.0"
File: src/lib.rs
use pyo2::{PyStr, PyVec};
#[no_mangle]
pub extern "C" fn test(name: &PyStr, numbers: &mut PyVec<i64>) {
println!("Hello, {}!", unsafe { name.as_str_unchecked() });
println!("Sum of numbers: {}", numbers.iter().cloned().sum::<i64>());
numbers[0] = 6;
}
File: test.py
from pyo2 import RustDLL
dll = RustDLL('./libmylib.so')
s = 'World'
lst = [1, 2, 3, 4, 5]
dll.test(s, lst)
print(lst)
Output:
Hello, World!
Sum of numbers: 15
[6, 2, 3, 4, 5]