1 //! Builds wheels from a crate that exposes python bindings through pyo3 2 //! 3 //! The high-level api is [BuildOptions], which can be converted into the [BuildContext], which 4 //! then uses [compile()] and builds the appropriate wheels. 5 //! 6 //! # Cargo features 7 //! 8 //! Default features: auditwheel, log, upload, rustls 9 //! 10 //! - auditwheel: Reimplements the more important part of the auditwheel 11 //! package in rust. A wheel is checked by default, unless deactivated by cli arguments 12 //! 13 //! - log: Configures pretty-env-logger, even though maturin doesn't use logging itself. 14 //! 15 //! - upload: Uses reqwest to add the upload command. 16 //! 17 //! - rustls: Makes reqwest use the rustls stack so that we can build maturin in a CentOS 6 18 //! docker container and which maturin itself manylinux compliant. 19 //! 20 //! - human-panic: Adds https://github.com/rust-clique/human-panic 21 //! 22 //! - password-storage (off by default): Uses the keyring package to store the password. keyring 23 //! pulls in a lot of shared libraries and outdated dependencies, so this is off by default, except 24 //! for the build on the github releases page. 25 //! (https://github.com/hwchen/secret-service-rs/issues/9) 26 27 #![deny(missing_docs)] 28 29 pub use crate::auditwheel::{auditwheel_rs, AuditWheelError}; 30 pub use crate::build_context::{BridgeModel, BuildContext, BuiltWheelMetadata}; 31 pub use crate::build_options::BuildOptions; 32 pub use crate::cargo_toml::CargoToml; 33 pub use crate::compile::compile; 34 pub use crate::develop::develop; 35 pub use crate::metadata::{Metadata21, WheelMetadata}; 36 pub use crate::module_writer::{ 37 write_dist_info, ModuleWriter, PathWriter, SDistWriter, WheelWriter, 38 }; 39 pub use crate::pyproject_toml::PyProjectToml; 40 pub use crate::python_interpreter::PythonInterpreter; 41 pub use crate::target::Target; 42 pub use auditwheel::PlatformTag; 43 pub use source_distribution::source_distribution; 44 #[cfg(feature = "upload")] 45 pub use { 46 crate::registry::Registry, 47 crate::upload::{upload, UploadError}, 48 }; 49 50 mod auditwheel; 51 mod build_context; 52 mod build_options; 53 mod cargo_toml; 54 mod compile; 55 mod cross_compile; 56 mod develop; 57 mod metadata; 58 mod module_writer; 59 mod pyproject_toml; 60 mod python_interpreter; 61 #[cfg(feature = "upload")] 62 mod registry; 63 mod source_distribution; 64 mod target; 65 #[cfg(feature = "upload")] 66 mod upload; 67