| 1 | [workspace] |
| 2 | members = [ |
| 3 | "proto", |
| 4 | "src/bench", |
| 5 | "src/build-info", |
| 6 | "src/chat", |
| 7 | "src/cmd", |
| 8 | "src/engine-core-client", |
| 9 | "src/llm", |
| 10 | "src/managed-engine", |
| 11 | "src/metrics", |
| 12 | "src/mock-engine", |
| 13 | "src/parser", |
| 14 | "src/parser/python", |
| 15 | "src/server", |
| 16 | "src/text", |
| 17 | "src/tokenizer", |
| 18 | "src/tracing", |
| 19 | ] |
| 20 | resolver = "3" |
| 21 | |
| 22 | [workspace.package] |
| 23 | version = "0.1.0" |
| 24 | edition = "2024" |
| 25 | license = "Apache-2.0" |
| 26 | |
| 27 | [workspace.dependencies] |
| 28 | anyhow = "1.0.100" |
| 29 | arc-swap = "1.9.0" |
| 30 | async-openai = { version = "0.33.1", default-features = false, features = ["native-tls"] } |
| 31 | async-trait = "0.1.89" |
| 32 | asynk-strim-attr = "0.1.0" |
| 33 | auto_enums = { version = "0.8.9", features = ["tokio1"] } |
| 34 | auto_impl = "1.3.0" |
| 35 | axum = "0.8.8" |
| 36 | base64 = "0.22.1" |
| 37 | bytemuck = { version = "1.25.0", features = ["extern_crate_alloc"] } |
| 38 | byteorder = "1.5.0" |
| 39 | bytes = "1.12.0" |
| 40 | chrono = "0.4.42" |
| 41 | clap = { version = "4.5.38", features = ["derive", "env"] } |
| 42 | criterion = "0.5.1" |
| 43 | dirs = "6.0.0" |
| 44 | easy-ext = "1.0.3" |
| 45 | educe = "0.6.0" |
| 46 | enum-as-inner = "0.7.0" |
| 47 | expect-test = "1.5.1" |
| 48 | fastokens = { version = "0.2.1", default-features = false } |
| 49 | futures = "0.3.31" |
| 50 | half = { version = "2.7.1", features = ["bytemuck"] } |
| 51 | hex = "0.4.3" |
| 52 | hf-hub = { version = "0.5.0", default-features = false, features = ["tokio"] } |
| 53 | http-body = "1.0.1" |
| 54 | hyper = { version = "1.10.1", features = ["http1", "server"] } |
| 55 | hyper-util = { version = "0.1.20", features = [ |
| 56 | "server-graceful", |
| 57 | "service", |
| 58 | "tokio", |
| 59 | ] } |
| 60 | image = { version = "0.25.9", default-features = false, features = ["jpeg"] } |
| 61 | indexmap = "2.13.0" |
| 62 | indicatif = "0.18.4" |
| 63 | itertools = "0.14.0" |
| 64 | libc = "0.2.177" |
| 65 | llm-multimodal = { git = "https://github.com/smg-project/llm-multimodal", rev = "f0985ef65967615db2c79279aa07818499301bfd", default-features = false, features = ["native-tls"] } |
| 66 | mimalloc = "0.1.52" |
| 67 | minijinja = { version = "2.24", features = ["unstable_machinery", "json", "builtins", "loader", "loop_controls", "preserve_order", "fuel"] } |
| 68 | minijinja-contrib = { version = "2.24", features = ["pycompat"] } |
| 69 | native-tls-vendored = { package = "native-tls", version = "0.2.18", features = ["vendored"] } |
| 70 | ndarray = { version = "0.17", features = ["serde"] } |
| 71 | openai-harmony = { package = "oss-harmony", git = "https://github.com/oss-harmony/harmony", tag = "v0.0.11", default-features = false } |
| 72 | openai-protocol = "1.6.0" |
| 73 | openssl = "0.10" |
| 74 | parking_lot = "0.12.5" |
| 75 | parquet = { version = "59.2.0", default-features = false, features = ["json", "snap", "zstd", "flate2", "flate2-rust_backend", "lz4", "brotli"] } |
| 76 | paste = "1.0.15" |
| 77 | prometheus-client = "0.24.0" |
| 78 | prometheus-client-derive-encode = "0.5.0" |
| 79 | prost = "0.14.3" |
| 80 | prost-types = "0.14.3" |
| 81 | protox = "0.9.1" |
| 82 | pyo3 = "0.29.0" |
| 83 | pythonize = "0.29.0" |
| 84 | rand = "0.9.3" |
| 85 | rand_distr = "0.5.1" |
| 86 | rayon = "1.11.0" |
| 87 | reasoning-parser = "1.2.2" |
| 88 | regex-automata = "0.4.14" |
| 89 | regex-syntax = "0.8.10" |
| 90 | reqwest = { version = "0.12.8", default-features = false, features = ["native-tls"] } |
| 91 | reqwest-0-13 = { package = "reqwest", version = "0.13.4", default-features = false, features = ["native-tls"] } |
| 92 | riptoken = { version = "0.3.0", default-features = false } |
| 93 | rlimit = "0.11.0" |
| 94 | rmp-serde = "1.3.1" |
| 95 | rmpv = { version = "1.3.1", features = ["with-serde"] } |
| 96 | rustc-hash = "1.1.0" |
| 97 | serde = { version = "1.0.228", features = ["derive", "rc"] } |
| 98 | serde-json-fmt = "0.1.0" |
| 99 | serde_default = "0.2.0" |
| 100 | serde_json = { version = "1.0.145", features = ["preserve_order"] } |
| 101 | serde_path_to_error = "0.1.20" |
| 102 | serde_repr = "0.1.20" |
| 103 | serde_tuple = "1.1.3" |
| 104 | serde_with = "3.21.0" |
| 105 | serial_test = { version = "3.2.0", features = ["file_locks"] } |
| 106 | sha2 = "0.10.9" |
| 107 | smallvec = "1.15.1" |
| 108 | socket2 = "0.6.3" |
| 109 | strum = { version = "0.27.2", features = ["derive"] } |
| 110 | subenum = "1.1.3" |
| 111 | subtle = "2.6" |
| 112 | task-local = "0.1.1" |
| 113 | tekken = { version = "0.2.0", default-features = false } |
| 114 | tempfile = "3.23.0" |
| 115 | thiserror = "2.0.16" |
| 116 | thiserror-ext = "0.3.0" |
| 117 | tiktoken-rs = "0.9.1" |
| 118 | time = { version = "0.3.47", features = ["formatting", "local-offset", "macros"] } |
| 119 | tls-listener = { version = "0.11.2", default-features = false, features = ["openssl", "tokio-net", "axum"] } |
| 120 | tokenizers = "0.22.0" |
| 121 | tokio = { version = "1.47.1", features = [ |
| 122 | "macros", |
| 123 | "net", |
| 124 | "rt-multi-thread", |
| 125 | "sync", |
| 126 | "time", |
| 127 | ] } |
| 128 | tokio-openssl = "0.6" |
| 129 | tokio-stream = "0.1" |
| 130 | tokio-util = { version = "0.7.18", features = ["rt"] } |
| 131 | tonic = "0.14.6" |
| 132 | tonic-build = "0.14.6" |
| 133 | tonic-health = "0.14.6" |
| 134 | tonic-prost = "0.14.6" |
| 135 | tonic-prost-build = "0.14.6" |
| 136 | tool-parser = "1.2.0" |
| 137 | tower = { version = "0.5.3", features = ["util"] } |
| 138 | tower-http = { version = "0.6.8", features = ["cors", "trace"] } |
| 139 | tracing = { version = "0.1.44", features = ["release_max_level_debug"] } |
| 140 | tracing-futures = { version = "0.2.5", features = ["futures-03"] } |
| 141 | tracing-subscriber = { version = "0.3.20", features = ["env-filter", "fmt"] } |
| 142 | trait-set = "0.3.0" |
| 143 | url = "2.5.7" |
| 144 | uuid = { version = "1.22.0", features = ["v4"] } |
| 145 | validator = { version = "0.20.0", features = ["derive"] } |
| 146 | vllm-bench = { path = "src/bench" } |
| 147 | vllm-build-info = { path = "src/build-info" } |
| 148 | vllm-chat = { path = "src/chat" } |
| 149 | vllm-engine-core-client = { path = "src/engine-core-client" } |
| 150 | vllm-llm = { path = "src/llm" } |
| 151 | vllm-managed-engine = { path = "src/managed-engine" } |
| 152 | vllm-metrics = { path = "src/metrics" } |
| 153 | vllm-parser = { path = "src/parser" } |
| 154 | vllm-proto = { path = "proto" } |
| 155 | vllm-server = { path = "src/server" } |
| 156 | vllm-text = { path = "src/text" } |
| 157 | vllm-tokenizer = { path = "src/tokenizer" } |
| 158 | vllm-tracing = { path = "src/tracing" } |
| 159 | winnow = { version = "1.0.2", features = ["simd"] } |
| 160 | xgrammar-structural-tag = "0.4.1" |
| 161 | zeromq = { version = "0.6.0", default-features = false, features = [ |
| 162 | "tokio-runtime", |
| 163 | "all-transport", |
| 164 | ] } |
| 165 | |
| 166 | [workspace.lints.clippy] |
| 167 | too_many_arguments = "allow" |
| 168 | |
| 169 | [profile.dev] |
| 170 | panic = "abort" |
| 171 | |
| 172 | # Speed up cold tokenizer construction in tests. |
| 173 | [profile.dev.package] |
| 174 | fastokens = { opt-level = 3 } |
| 175 | regex-automata = { opt-level = 3 } |
| 176 | serde_json = { opt-level = 3 } |
| 177 | tokenizers = { opt-level = 3 } |
| 178 | |
| 179 | [profile.release] |
| 180 | lto = "thin" |
| 181 | panic = "abort" |