[package] name = "rustpython-vm" description = "RustPython virtual machine." include = ["src/**/*.rs", "Cargo.toml", "build.rs", "Lib/**/*.py"] version.workspace = true authors.workspace = true edition.workspace = true rust-version.workspace = true repository.workspace = true license.workspace = true [features] default = ["compiler", "wasmbind"] importlib = [] encodings = ["importlib"] vm-tracing-logging = [] flame-it = ["flame", "flamer"] freeze-stdlib = ["encodings"] jit = ["rustpython-jit"] threading = ["rustpython-common/threading"] compiler = ["parser", "codegen", "rustpython-compiler"] ast = ["rustpython-ast"] codegen = ["rustpython-codegen", "ast"] parser = ["rustpython-parser", "ast"] serde = ["dep:serde"] wasmbind = ["chrono/wasmbind", "getrandom/wasm_js", "wasm-bindgen"] [dependencies] rustpython-compiler = { workspace = true, optional = true } rustpython-codegen = { workspace = true, optional = true } rustpython-common = { workspace = true } rustpython-derive = { workspace = true } rustpython-jit = { workspace = true, optional = true } rustpython-ast = { workspace = true, optional = true } rustpython-parser = { workspace = true, optional = true } rustpython-compiler-core = { workspace = true } rustpython-parser-core = { workspace = true } rustpython-literal = { workspace = true } rustpython-format = { workspace = true } rustpython-sre_engine = { workspace = true } ascii = { workspace = true } ahash = { workspace = true } bitflags = { workspace = true } bstr = { workspace = true } cfg-if = { workspace = true } crossbeam-utils = { workspace = true } chrono = { workspace = true, features = ["wasmbind"] } flame = { workspace = true, optional = true } getrandom = { workspace = true } hex = { workspace = true } indexmap = { workspace = true } itertools = { workspace = true } is-macro = { workspace = true } libc = { workspace = true } log = { workspace = true } nix = { workspace = true } malachite-bigint = { workspace = true } num-complex = { workspace = true } num-integer = { workspace = true } num-traits = { workspace = true } num_enum = { workspace = true } once_cell = { workspace = true } parking_lot = { workspace = true } paste = { workspace = true } rand = { workspace = true } serde = { workspace = true, optional = true } static_assertions = { workspace = true } strum = { workspace = true } strum_macros = { workspace = true } thiserror = { workspace = true } thread_local = { workspace = true } memchr = { workspace = true } caseless = "0.2.2" flamer = { version = "0.4", optional = true } half = "2" memoffset = "0.9.1" optional = "0.5.0" result-like = "0.5.0" timsort = "0.1.2" ## unicode stuff unicode_names2 = { workspace = true } # TODO: use unic for this; needed for title case: # https://github.com/RustPython/RustPython/pull/832#discussion_r275428939 unicode-casing = "0.1.0" # update version all at the same time unic-ucd-bidi = "0.9.0" unic-ucd-category = "0.9.0" unic-ucd-ident = "0.9.0" [target.'cfg(unix)'.dependencies] rustix = { workspace = true } exitcode = "1.1.2" uname = "0.1.1" [target.'cfg(not(target_arch = "wasm32"))'.dependencies] rustyline = { workspace = true } which = "6" errno = "0.3" widestring = { workspace = true } [target.'cfg(all(any(target_os = "linux", target_os = "macos", target_os = "windows"), not(any(target_env = "musl", target_env = "sgx"))))'.dependencies] libffi = "3.2" libloading = "0.8" [target.'cfg(any(not(target_arch = "wasm32"), target_os = "wasi"))'.dependencies] num_cpus = "1.13.1" [target.'cfg(windows)'.dependencies] junction = { workspace = true } schannel = { workspace = true } winreg = "0.55" [target.'cfg(windows)'.dependencies.windows] version = "0.52.0" features = [ "Win32_Foundation", "Win32_System_LibraryLoader", "Win32_System_Threading", "Win32_System_Time", "Win32_UI_Shell", ] [target.'cfg(windows)'.dependencies.windows-sys] workspace = true features = [ "Win32_Foundation", "Win32_Globalization", "Win32_Networking_WinSock", "Win32_Security", "Win32_Storage_FileSystem", "Win32_System_Console", "Win32_System_Diagnostics_Debug", "Win32_System_Environment", "Win32_System_Ioctl", "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_WindowsProgramming", "Win32_UI_Shell", "Win32_UI_WindowsAndMessaging", ] [target.'cfg(all(target_arch = "wasm32", target_os = "unknown"))'.dependencies] wasm-bindgen = { workspace = true, optional = true } getrandom = { workspace = true } [build-dependencies] glob = { workspace = true } itertools = { workspace = true } rustc_version = "0.4.0" [lints] workspace = true