[package] name = "rustpython" version = "0.4.0" authors = ["RustPython Team"] edition = "2021" rust-version = "1.75.0" description = "A python interpreter written in rust." repository = "https://github.com/RustPython/RustPython" license = "MIT" include = ["LICENSE", "Cargo.toml", "src/**/*.rs"] [workspace] resolver = "2" members = [ "compiler", "compiler/core", "compiler/codegen", ".", "common", "derive", "jit", "vm", "vm/sre_engine", "pylib", "stdlib", "wasm/lib", "derive-impl", ] [workspace.dependencies] rustpython-compiler-core = { path = "compiler/core", version = "0.4.0" } rustpython-compiler = { path = "compiler", version = "0.4.0" } rustpython-codegen = { path = "compiler/codegen", version = "0.4.0" } rustpython-common = { path = "common", version = "0.4.0" } rustpython-derive = { path = "derive", version = "0.4.0" } rustpython-derive-impl = { path = "derive-impl", version = "0.4.0" } rustpython-jit = { path = "jit", version = "0.4.0" } rustpython-vm = { path = "vm", default-features = false, version = "0.4.0" } rustpython-pylib = { path = "pylib", version = "0.4.0" } rustpython-stdlib = { path = "stdlib", default-features = false, version = "0.4.0" } rustpython-sre_engine = { path = "vm/sre_engine", version = "0.4.0" } rustpython-doc = { git = "https://github.com/RustPython/__doc__", tag = "0.3.0", version = "0.3.0" } rustpython-literal = { version = "0.4.0" } rustpython-parser-core = { version = "0.4.0" } rustpython-parser = { version = "0.4.0" } rustpython-ast = { version = "0.4.0" } rustpython-format= { version = "0.4.0" } # rustpython-literal = { git = "https://github.com/RustPython/Parser.git", version = "0.4.0", rev = "00d2f1d1a7522ef9c85c10dfa5f0bb7178dee655" } # rustpython-parser-core = { git = "https://github.com/RustPython/Parser.git", version = "0.4.0", rev = "00d2f1d1a7522ef9c85c10dfa5f0bb7178dee655" } # rustpython-parser = { git = "https://github.com/RustPython/Parser.git", version = "0.4.0", rev = "00d2f1d1a7522ef9c85c10dfa5f0bb7178dee655" } # rustpython-ast = { git = "https://github.com/RustPython/Parser.git", version = "0.4.0", rev = "00d2f1d1a7522ef9c85c10dfa5f0bb7178dee655" } # rustpython-format = { git = "https://github.com/RustPython/Parser.git", version = "0.4.0", rev = "00d2f1d1a7522ef9c85c10dfa5f0bb7178dee655" } # rustpython-literal = { path = "../RustPython-parser/literal" } # rustpython-parser-core = { path = "../RustPython-parser/core" } # rustpython-parser = { path = "../RustPython-parser/parser" } # rustpython-ast = { path = "../RustPython-parser/ast" } # rustpython-format = { path = "../RustPython-parser/format" } ahash = "0.8.11" ascii = "1.0" atty = "0.2.14" bitflags = "2.4.1" bstr = "0.2.17" cfg-if = "1.0" chrono = "0.4.37" crossbeam-utils = "0.8.19" flame = "0.2.2" glob = "0.3" hex = "0.4.3" indexmap = { version = "2.2.6", features = ["std"] } insta = "1.38.0" itertools = "0.11.0" is-macro = "0.3.0" junction = "1.0.0" libc = "0.2.153" log = "0.4.16" nix = { version = "0.27", features = ["fs", "user", "process", "term", "time", "signal", "ioctl", "socket", "sched", "zerocopy", "dir", "hostname", "net", "poll"] } malachite-bigint = "0.2.0" malachite-q = "0.4.4" malachite-base = "0.4.4" memchr = "2.7.2" num-complex = "0.4.0" num-integer = "0.1.44" num-traits = "0.2" num_enum = "0.7" once_cell = "1.19.0" parking_lot = "0.12.1" paste = "1.0.7" rand = "0.8.5" rustyline = "14.0.0" serde = { version = "1.0.133", default-features = false } schannel = "0.1.22" static_assertions = "1.1" syn = "1.0.109" thiserror = "1.0" thread_local = "1.1.4" unicode_names2 = "1.2.0" widestring = "1.1.0" windows-sys = "0.52.0" [features] default = ["threading", "stdlib", "zlib", "importlib"] importlib = ["rustpython-vm/importlib"] encodings = ["rustpython-vm/encodings"] stdlib = ["rustpython-stdlib", "rustpython-pylib", "encodings"] flame-it = ["rustpython-vm/flame-it", "flame", "flamescope"] freeze-stdlib = ["stdlib", "rustpython-vm/freeze-stdlib", "rustpython-pylib?/freeze-stdlib"] jit = ["rustpython-vm/jit"] threading = ["rustpython-vm/threading", "rustpython-stdlib/threading"] zlib = ["stdlib", "rustpython-stdlib/zlib"] bz2 = ["stdlib", "rustpython-stdlib/bz2"] ssl = ["rustpython-stdlib/ssl"] ssl-vendor = ["ssl", "rustpython-stdlib/ssl-vendor"] [dependencies] rustpython-compiler = { workspace = true } rustpython-pylib = { workspace = true, optional = true } rustpython-stdlib = { workspace = true, optional = true, features = ["compiler"] } rustpython-vm = { workspace = true, features = ["compiler"] } rustpython-parser = { workspace = true } atty = { workspace = true } cfg-if = { workspace = true } log = { workspace = true } flame = { workspace = true, optional = true } clap = "2.34" dirs = { package = "dirs-next", version = "2.0.0" } env_logger = { version = "0.9.0", default-features = false, features = ["atty", "termcolor"] } flamescope = { version = "0.1.2", optional = true } [target.'cfg(windows)'.dependencies] libc = { workspace = true } [target.'cfg(not(target_arch = "wasm32"))'.dependencies] rustyline = { workspace = true } [dev-dependencies] criterion = { version = "0.3.5", features = ["html_reports"] } pyo3 = { version = "0.20.2", features = ["auto-initialize"] } [[bench]] name = "execution" harness = false [[bench]] name = "microbenchmarks" harness = false [[bin]] name = "rustpython" path = "src/main.rs" [profile.dev.package."*"] opt-level = 3 [profile.test] opt-level = 3 # https://github.com/rust-lang/rust/issues/92869 # lto = "thin" [profile.bench] lto = "thin" codegen-units = 1 opt-level = 3 [profile.release] lto = "thin" [patch.crates-io] # REDOX START, Uncomment when you want to compile/check with redoxer # REDOX END # Used only on Windows to build the vcpkg dependencies [package.metadata.vcpkg] git = "https://github.com/microsoft/vcpkg" # The revision of the vcpkg repository to use # https://github.com/microsoft/vcpkg/tags rev = "2024.02.14" [package.metadata.vcpkg.target] x86_64-pc-windows-msvc = { triplet = "x64-windows-static-md", dev-dependencies = ["openssl" ] } # Lints [workspace.lints.rust] unsafe_code = "allow" [workspace.lints.clippy] perf = "warn" style = "warn" complexity = "warn" suspicious = "warn" correctness = "warn"