[package]
edition = "2024"
rust-version = "1.93.0"
name = "rustpython-vm"
version = "0.5.0"
authors = ["RustPython Team"]
build = "build.rs"
include = [
"src/**/*.rs",
"Cargo.toml",
"build.rs",
"Lib/**/*.py",
]
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "RustPython virtual machine."
readme = false
license = "MIT"
repository = "https://github.com/RustPython/RustPython"
resolver = "2"
[features]
ast = [
"ruff_python_ast",
"ruff_text_size",
]
codegen = [
"rustpython-codegen",
"ast",
]
compiler = [
"parser",
"codegen",
"rustpython-compiler",
]
default = [
"compiler",
"wasmbind",
"gc",
"host_env",
"stdio",
]
encodings = ["importlib"]
flame-it = [
"flame",
"flamer",
]
freeze-stdlib = ["encodings"]
gc = []
host_env = []
importlib = []
jit = ["rustpython-jit"]
parser = ["ast"]
serde = ["dep:serde"]
stdio = []
threading = ["rustpython-common/threading"]
vm-tracing-logging = []
wasmbind = [
"rustpython-common/wasm_js",
"chrono/wasmbind",
"wasm-bindgen",
]
[lib]
name = "rustpython_vm"
path = "src/lib.rs"
[dependencies.ahash]
version = "0.8.12"
[dependencies.ascii]
version = "1.1"
[dependencies.bitflags]
version = "2.11.0"
[dependencies.bstr]
version = "1"
[dependencies.caseless]
version = "0.2.2"
[dependencies.cfg-if]
version = "1.0"
[dependencies.chrono]
version = "0.4.44"
features = [
"clock",
"oldtime",
"std",
]
default-features = false
[dependencies.constant_time_eq]
version = "0.4"
[dependencies.crossbeam-utils]
version = "0.8.21"
[dependencies.flame]
version = "0.2.2"
optional = true
[dependencies.flamer]
version = "0.5"
optional = true
[dependencies.getrandom]
version = "0.3"
features = ["std"]
[dependencies.half]
version = "2"
[dependencies.hex]
version = "0.4.3"
[dependencies.indexmap]
version = "2.13.0"
features = ["std"]
[dependencies.is-macro]
version = "0.3.7"
[dependencies.itertools]
version = "0.14.0"
[dependencies.libc]
version = "0.2.183"
[dependencies.log]
version = "0.4.29"
[dependencies.malachite-bigint]
version = "0.9.1"
[dependencies.memchr]
version = "2.8.0"
[dependencies.num-complex]
version = "0.4.6"
[dependencies.num-integer]
version = "0.1.46"
[dependencies.num-traits]
version = "0.2"
[dependencies.num_enum]
version = "0.7"
default-features = false
[dependencies.optional]
version = "0.5"
[dependencies.parking_lot]
version = "0.12.3"
[dependencies.paste]
version = "1.0.15"
[dependencies.psm]
version = "0.1"
[dependencies.result-like]
version = "0.5.0"
[dependencies.ruff_python_ast]
version = "0.15.8"
optional = true
package = "rustpython-ruff_python_ast"
[dependencies.ruff_python_parser]
version = "0.15.8"
package = "rustpython-ruff_python_parser"
[dependencies.ruff_text_size]
version = "0.15.8"
optional = true
package = "rustpython-ruff_text_size"
[dependencies.rustpython-codegen]
version = "0.5.0"
optional = true
[dependencies.rustpython-common]
version = "0.5.0"
[dependencies.rustpython-compiler]
version = "0.5.0"
optional = true
[dependencies.rustpython-compiler-core]
version = "0.5.0"
[dependencies.rustpython-derive]
version = "0.5.0"
[dependencies.rustpython-jit]
version = "0.5.0"
optional = true
[dependencies.rustpython-literal]
version = "0.5.0"
[dependencies.rustpython-sre_engine]
version = "0.5.0"
[dependencies.scoped-tls]
version = "1"
[dependencies.scopeguard]
version = "1"
[dependencies.serde]
version = "1.0.225"
features = ["alloc"]
optional = true
default-features = false
package = "serde_core"
[dependencies.static_assertions]
version = "1.1"
[dependencies.strum]
version = "0.28"
[dependencies.strum_macros]
version = "0.28"
[dependencies.thiserror]
version = "2.0"
[dependencies.timsort]
version = "0.1.2"
[dependencies.unic-ucd-bidi]
version = "0.9.0"
[dependencies.unic-ucd-category]
version = "0.9.0"
[dependencies.unic-ucd-ident]
version = "0.9.0"
[dependencies.unicode-casing]
version = "0.1.1"
[build-dependencies.glob]
version = "0.3"
[build-dependencies.itertools]
version = "0.14.0"
[target.'cfg(all(any(target_os = "linux", target_os = "macos", target_os = "windows", target_os = "android"), not(any(target_env = "musl", target_env = "sgx"))))'.dependencies.libffi]
version = "5"
features = ["system"]
[target.'cfg(all(any(target_os = "linux", target_os = "macos", target_os = "windows", target_os = "android"), not(any(target_env = "musl", target_env = "sgx"))))'.dependencies.libloading]
version = "0.9"
[target.'cfg(all(target_arch = "wasm32", target_os = "unknown"))'.dependencies.wasm-bindgen]
version = "0.2.106"
optional = true
[target.'cfg(any(not(target_arch = "wasm32"), target_os = "wasi"))'.dependencies.num_cpus]
version = "1.17.0"
[target.'cfg(not(target_arch = "wasm32"))'.dependencies.errno]
version = "0.3"
[target.'cfg(not(target_arch = "wasm32"))'.dependencies.rustyline]
version = "17.0.1"
[target.'cfg(not(target_arch = "wasm32"))'.dependencies.which]
version = "8"
[target.'cfg(not(target_arch = "wasm32"))'.dependencies.widestring]
version = "1.2.0"
[target."cfg(unix)".dependencies.exitcode]
version = "1.1.2"
[target."cfg(unix)".dependencies.nix]
version = "0.30"
features = [
"fs",
"user",
"process",
"term",
"time",
"signal",
"ioctl",
"socket",
"sched",
"zerocopy",
"dir",
"hostname",
"net",
"poll",
]
[target."cfg(unix)".dependencies.rustix]
version = "1.1"
features = ["event"]
[target."cfg(unix)".dependencies.uname]
version = "0.1.1"
[target."cfg(windows)".dependencies.junction]
version = "1.4.2"
[target."cfg(windows)".dependencies.windows-sys]
version = "0.61.2"
features = [
"Win32_Foundation",
"Win32_Globalization",
"Win32_Media_Audio",
"Win32_Networking_WinSock",
"Win32_Security",
"Win32_Security_Authorization",
"Win32_Storage_FileSystem",
"Win32_System_Console",
"Win32_System_Diagnostics_Debug",
"Win32_System_Environment",
"Win32_System_IO",
"Win32_System_Ioctl",
"Win32_System_JobObjects",
"Win32_System_Kernel",
"Win32_System_LibraryLoader",
"Win32_System_Memory",
"Win32_System_Performance",
"Win32_System_Pipes",
"Win32_System_Registry",
"Win32_System_SystemInformation",
"Win32_System_SystemServices",
"Win32_System_Threading",
"Win32_System_Time",
"Win32_System_WindowsProgramming",
"Win32_UI_Shell",
"Win32_UI_WindowsAndMessaging",
]
[lints.clippy]
alloc_instead_of_core = "warn"
complexity = "warn"
correctness = "warn"
perf = "warn"
std_instead_of_alloc = "warn"
std_instead_of_core = "warn"
style = "warn"
suspicious = "warn"
[lints.rust]
elided_lifetimes_in_paths = "warn"
unsafe_code = "allow"
unsafe_op_in_unsafe_fn = "deny"