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