Skip to main content

Crate py2pyd

Crate py2pyd 

Source
Expand description

§py2pyd

A Rust library for compiling Python modules to pyd/so extension files.

This library provides programmatic access to py2pyd’s compilation capabilities, allowing you to integrate Python-to-pyd compilation into your own Rust projects.

§Features

  • Compile single Python files to pyd/so extensions
  • Batch compile multiple Python files
  • Support for uv-based Python environment management
  • Automatic build tools detection (MSVC, MinGW, GCC, Xcode)
  • Python AST parsing and transformation

§Example

use py2pyd::{compile_file, CompileConfig};
use std::path::Path;

fn main() -> anyhow::Result<()> {
    let config = CompileConfig::default();
    compile_file(
        Path::new("input.py"),
        Path::new("output.pyd"),
        &config,
    )?;
    Ok(())
}

Re-exports§

pub use build_tools::check_build_tools;
pub use build_tools::detect_build_tools;
pub use build_tools::BuildTools;
pub use compiler::batch_compile as compiler_batch_compile;
pub use compiler::compile_file as compiler_compile_file;
pub use parser::extract_classes;
pub use parser::extract_from_imports;
pub use parser::extract_functions;
pub use parser::extract_imports;
pub use parser::extract_module_vars;
pub use parser::parse_file;
pub use parser::parse_source;
pub use transformer::generate_cargo_toml;
pub use transformer::transform_ast;
pub use transformer::transform_file;
pub use transformer::TransformedModule;
pub use uv_compiler::CompileConfig;
pub use uv_env::UvEnv;
pub use uv_env::UvEnvConfig;

Modules§

build_tools
compiler
parser
python_env
transformer
turbo_downloader
uv_compiler
uv_env

Functions§

batch_compile
Batch compile multiple Python files to pyd/so extensions.
batch_compile_legacy
Batch compile using the legacy compiler (without uv).
compile_file
Compile a single Python file to a pyd/so extension using uv-based compilation.
compile_file_legacy
Compile a Python file using the legacy compiler (without uv).
create_uv_env
Create a new uv-based Python virtual environment.
get_extension
Get the appropriate extension for compiled Python modules on the current platform.
verify_build_tools
Check if the required build tools are available on the system.