candle-vllm
App Listed
Efficent platform for inference and serving local LLMs including an OpenAI compatible API server.
- Downloads
- 138
- Dependents
- Not applicable
- Stars
- 739
- Forks
- 91
- Contributors
- 8
- Commits
- 620
- Latest release
About

Efficient, easy-to-use platform for inference and serving local LLMs including an OpenAI compatible API server.
English | 简体中文
✨ Why Candle-vLLM?
| Feature | Details | |
|---|---|---|
| ⚡ | High Performance | Native Flash Attention, FlashInfer, CUDA Graphs, continuous batching, prefix caching. |
| 🗜️ | Aggressive KV Compression | TurboQuant (2–4 bit KV cache) extends context up to 4.7× with minimal quality loss |
| 🌍 | Cross-platform | CUDA (Linux), Metal (macOS). Same codebase, same API |
| 🏭 | Production-ready | OpenAI-compatible API server, built-in ChatGPT-style Web UI, MCP tool calling, streaming |
| 📦 | Easy to deploy | One-line install script, Docker images, or build from source |
| 🔧 | Extensible | Trait-based architecture for rapid implementation of new model pipelines |
| 🖥️ | Multi-GPU & Multi-Node | Multi-process and multi-threaded tensor parallelism, TCP-based multi-node inference |
🚀 Quick Start
📦 Install
Option 1 — One-line install (DEB or binary)
curl -sSL https://ericlbuehler.github.io/candle-vllm/install.sh | bash
Option 2 — Build from source
Read the full README
git clone git@github.com:EricLBuehler/candle-vllm.git
cd candle-vllm
# CUDA (11+, 12+, 13.0) — remove flashinfer,cutlass for sm_70/sm_75
cargo install --features cuda,nccl,flashinfer,cutlass --path .
# macOS/Metal
cargo install --features metal --path .
Option 3 — Docker
# Pass custom SM version and CUDA version: ./build_docker.sh "cuda,nccl,flashinfer,cutlass" sm_90 13.0.0
./build_docker.sh "cuda,nccl,flashinfer,cutlass"
▶️ Run
Using HuggingFace Model ID:
candle-vllm --m Qwen/Qwen3.6-27B-FP8 --ui-server
candle-vllm --m unsloth/Qwen3.5-122B-A10B-GGUF --f Q3_K_S --d 0,1 --ui-server
candle-vllm --m zai-org/GLM-5.2-FP8 --d 0,1,2,3,4,5,6,7 --ui-server
Using local model path:
# Local safetensors directory
candle-vllm --d 0,1,2,3,4,5,6,7 --m /home/data/GLM-5.2-FP8/ --ui-server
# Local GGUF file (single or split-shard)
candle-vllm --d 0,1 --m /home/data/model-Q4_K_M.gguf --ui-server
# Local directory containing GGUF files (auto-detected)
candle-vllm --d 0,1 --m /home/data/Qwen3.5-35B-A3B-GGUF/ --ui-server
Tip: Add
--ui-serverto launch the built-in ChatGPT-style Web UI. The UI server uses the API port minus one (e.g., API on2000, UI on1999).
📈 Performance
Single-request decode speed (input 4k, output 1k, on
Hopper80G)
| # | Model | BF16 (Decode Speed / req) | Quantized |
|---|---|---|---|
| 1 | LLAMA | 119 tks/s (8B) | 163 tks/s (8B, Q4K), 171 tks/s (8B, Marlin) |
| 2 | Mistral | 122 tks/s (7B) | 181 tks/s (7B, Q4K), 190 tks/s (7B, Marlin) |
| 3 | Phi3/Phi4 | 153 tks/s (3.8B) | 196 tks/s (3.8B, Q4K) |
| 4 | QWen2/Qwen3 Dense | 127 tks/s (8B) | 154 tks/s (8B, Q4K) |
| 5 | QWen3 MoE | 102 tks/s (30B) | 124 tks/s (30B, Q4K) |
| 6 | QWen3-Next MoE | 80 tks/s (80B, BF16, tp=2) | 89 tks/s (AWQ, tp=1) |
| 7 | QWen3.5/3.6/3.8 Dense | 36 tks/s (27B, BF16) | 49/58 tks/s (27B, Q4K / FP8) |
| 8 | QWen3.5/3.6 MoE | 90 tks/s (35B) | 118 tks/s (35B, FP8) |
| 9 | Yi | 168 tks/s (6B) | 199 tks/s (6B, Q4K) |
| 10 | StableLM | 251 tks/s (3B) | - |
| 11 | Gemma-2/Gemma-3 | 103 tks/s (9B) | 130 tks/s (9B, Marlin) |
| 12 | DeepSeek V2/V3/V3.2/R1 | TBD | ~20 tks (AWQ 671B, tp=8, offloading) |
| 13 | QwQ-32B | 51 tks/s (32B, tp=2) | 70 tks/s (32B, Q4K) |
| 14 | GLM4 | 96 tks/s (9B) | 139 tks/s (9B, Q4K) |
| 15 | GLM4.7 Flash | TBD | 82 tks/s (31B, Software NVFP4) |
| 16 | LLama4 | TBD | 47 tks/s (107B, Software NVFP4) |
| 17 | Gemma4 | (26B) 83 tks/s | 82 tks/s (26B, Software NVFP4) |
| 18 | MiniMax-M2.5/M2.7 | TBD | 72 tks/s (229B, Software NVFP4, TP=2) |
| 19 | GLM-5.2 | TBD | Supported (FP8, tp=8) |
Demo Video — GPU & Apple Silicon
Chat demo on GPU (A100, BF16, QWen3-8B Reasoning Model)

Chat demo on Apple Silicon (M4, 16GB unified memory, Q2K, QWen3-8B)

🧠 Features
- OpenAI compatible API server for serving LLMs
- Streaming support in generation
- Efficient KV cache management with PagedAttention
- Continuous batching (batched decoding for incoming requests over time)
In-situquantization (andIn-situMarlin format conversion)GPTQ/Marlinformat quantization (4-bit)- Support
Mac/Metaldevices - Support
Multi-GPUinference (bothmulti-processandmulti-threadedmode) - Support
Multi-nodeinference via TCP-based coordination - Support Chunked Prefilling (default chunk size 8K)
- Support CUDA Graph
- Support Qwen3.5 MTP speculative decoding with CUDA Graph via
--mtp - Support external DFlash2 speculative decoding via
--draft-modeland--num-speculative-tokens - Support Model Context Protocol (MCP) and OpenAI-compatible tool calling
- Support Prefix Caching
- Support Block-wise FP8 Models (SM90+, Qwen3 Series)
- Support FP8 KV Cache on all CUDA and Metal platforms
- Support TurboQuant KV Cache (turbo8/turbo4/turbo3) with native flash attention kernels
- Support Flashinfer Backend
- Support manual YaRN RoPE scaling override via
--yarn-scaling-factor - Support MXFP4/NVFP4 models
- Support GPTQ/AWQ/Marlin models, including pack-quantized AWQ MoE
- Support DeepSeek V3.2 and GLM-5.2 FP8 models
📘 Usage
Running Models
Tip: By default, candle-vllm starts an OpenAI-compatible API server at
http://localhost:2000. Add--ui-serverto also launch the built-in ChatGPT-style Web UI.
# FP8 model + Web UI
candle-vllm --m Qwen/Qwen3.8-27B-FP8 --ui-server
# GLM-5.2 FP8 model
candle-vllm --d 0,1,2,3,4,5,6,7 --m zai-org/GLM-5.2-FP8 --ui-server
# Unquantized Safetensors (multi-GPU)
candle-vllm --d 0,1 --w /home/Qwen3-30B-A3B-Instruct-2507/
# ISQ on-the-fly quantization
candle-vllm --m Qwen/Qwen3.6-27B --isq q4k
# FP4 Model
candle-vllm --m GadflyII/GLM-4.7-Flash-NVFP4 --ui-server
# GGUF model
candle-vllm --m unsloth/Qwen3-30B-A3B-Instruct-2507-GGUF --f Qwen3-30B-A3B-Instruct-2507-Q4_K_M.gguf --ui-server
# Manual YaRN scaling
candle-vllm --m Qwen/Qwen3.6-35B-A3B --yarn-scaling-factor 4.0 --ui-server
FP8 / FP4 models
# FP8 Model (block-wise quant, build with cutlass feature)
candle-vllm --m Qwen/Qwen3.8-27B-FP8 --ui-server
# Faster GDN prefill on Hopper with slight precision loss
SM90_LOWER_PRECISION_GDN_PREFILL=1 candle-vllm --m Qwen/Qwen3.5-35B-A3B-FP8
# Qwen3.5 MTP speculative decoding (2 draft tokens per step)
candle-vllm --w /data/Qwen3.5-35B-A3B-FP8/ --mtp 2 --ui-server
# External DFlash2 speculative decoding
candle-vllm --w /data/Qwen3.5-target/ --draft-model /data/Qwen3.5-DFlash2/ --num-speculative-tokens 7 --ui-server
# GLM-5.2 FP8 Model
candle-vllm --d 0,1,2,3,4,5,6,7 --m zai-org/GLM-5.2-FP8 --ui-server
# FP8 on MacOS/Metal (Dense)
candle-vllm --m Qwen/Qwen3-4B-Instruct-2507-FP8 --ui-server
# FP4 Model (MXFP4/NVFP4, MLX quantized format not supported)
candle-vllm --m GadflyII/GLM-4.7-Flash-NVFP4 --ui-server
# MXFP4
candle-vllm --m nm-testing/Qwen3-30B-A3B-MXFP4A16 --ui-server
GGUF models
# Local GGUF file via --m (recommended)
candle-vllm --m /home/data/Qwen3-30B-A3B-Instruct-2507-Q4_K_M.gguf --ui-server
# Local GGUF file via --f (legacy)
candle-vllm --f /home/data/Qwen3-30B-A3B-Instruct-2507-Q4_K_M.gguf --ui-server
# Local directory containing GGUF (auto-detected, mmproj loaded on demand)
candle-vllm --m /home/data/Qwen3.5-35B-A3B-GGUF/ --ui-server
# From HuggingFace (exact file)
candle-vllm --m unsloth/Qwen3-30B-A3B-Instruct-2507-GGUF --f Qwen3-30B-A3B-Instruct-2507-Q4_K_M.gguf --ui-server
# From HuggingFace (subfolder — downloads all GGUF files in the remote path)
candle-vllm --m unsloth/Qwen3.5-122B-A10B-GGUF --f Q3_K_S --d 0,1 --ui-server
# Local multi-shard GGUF (split files auto-discovered from local path)
candle-vllm --m /home/data/model-00001-of-00003.gguf --d 0,1 --ui-server
# GGUF on Apple Silicon
candle-vllm --m /home/qwq-32b-q4_k_m.gguf --ui-server
candle-vllm --m Qwen/QwQ-32B-GGUF --f qwq-32b-q4_k_m.gguf --ui-server
Multi-shard GGUF: Split GGUF files (e.g., model-00001-of-00005.gguf) are automatically discovered — both locally (from the same directory) and remotely (from the HuggingFace repo). When --f is a subfolder name (not ending in .gguf), all GGUF files in that remote subfolder are downloaded. Vision tower auxiliary files (mmproj*.gguf) are loaded on demand for multimodal models.
ISQ (In-situ quantization)
Simply add --isq parameter when running unquantized models:
candle-vllm --m Qwen/Qwen3.6-27B --isq q4k
Options: q4_0, q4_1, q5_0, q5_1, q8_0, q2k, q3k, q4k, q5k, q6k
GPTQ / AWQ / Marlin models
# Marlin-compatible GPTQ (4-bit, 128-group, desc_act=False)
candle-vllm --m thesven/Llama-3-8B-GPTQ-4bit
# Convert uncompressed model to Marlin-compatible format
python3 examples/convert_marlin.py --src /home/DeepSeek-R1-Distill-Qwen-14B/ --dst /home/DeepSeek-R1-Distill-Qwen-14B-GPTQ_4bit-128g
candle-vllm --w /home/DeepSeek-R1-Distill-Qwen-14B-GPTQ_4bit-128g
# Convert AWQ to Marlin-compatible format
python3 examples/convert_awq_marlin.py --src /home/Meta-Llama-3.1-8B-Instruct-AWQ-INT4/ --dst /home/Meta-Llama-3.1-8B-Instruct-AWQ-INT4-Marlin/ --bits 4 --method awq --group 128 --nk False
candle-vllm --d 0 --w /home/Meta-Llama-3.1-8B-Instruct-AWQ-INT4-Marlin/
# AWQ MoE (pack-quantized), e.g. Qwen3-Coder-Next
candle-vllm --m cyankiwi/Qwen3-Coder-Next-AWQ-4bit
# Direct Marlin-format model
candle-vllm --w /home/DeepSeek-R1-Distill-Qwen-14B-GPTQ-Marlin/
🗜️ TurboQuant KV Cache
TurboQuant compresses the KV cache using Walsh-Hadamard transform for higher throughput and longer context:
| Mode | Description | KV Cache Compression | Recommended Use |
|---|---|---|---|
turbo8 | FP8 K + 4-bit V | ~2.6x | Best quality-compression trade-off |
turbo4 | 4-bit K + 4-bit V | ~3.7x | Balanced quality and memory savings |
turbo3 | 3-bit K + 4-bit V | ~4.7x | Maximum memory savings |
# Turbo4 (4-bit KV cache, ~3.7x compression)
candle-vllm --w /data/Qwen3.5-27B-FP8/ --kvcache-dtype turbo4
# Turbo8 (FP8 K + 4-bit V, ~2.6x compression)
candle-vllm --w /data/Qwen3.5-27B-FP8/ --kvcache-dtype turbo8
# Turbo3 (3-bit K + 4-bit V, ~4.7x compression)
candle-vllm --w /data/Qwen3.5-27B-FP8/ --kvcache-dtype turbo3
# FP8 KV Cache
candle-vllm --w /data/Qwen3.5-35B-A3B-FP8/ --kvcache-dtype fp8
Note: TurboQuant uses native flash attention kernels (flashinfer is automatically disabled). Supported on both CUDA (SM70+) and Metal (Apple Silicon) platforms. MLA models (DeepSeek, GLM4/GLM-5.2) auto-fallback to standard KV cache as TurboQuant is incompatible with their compressed KV layout.
🖥️ Multi-GPU Inference
Multi-process mode (recommended)
# QwQ-32B BF16 on two GPUs
candle-vllm --d 0,1 --w /home/QwQ-32B/
# QwQ-32B 4-bit AWQ on two GPUs
python3 examples/convert_awq_marlin.py --src /home/QwQ-32B-AWQ/ --dst /home/QwQ-32B-AWQ-Marlin/ --bits 4 --method awq --group 128 --nk False
candle-vllm --d 0,1 --w /home/QwQ-32B-AWQ-Marlin/
Note: Number of GPUs (--d) must be a power of 2 (e.g., 2, 4, or 8).
Multi-threaded mode (debug)
# Add --multithread parameter
candle-vllm --multithread --d 0,1 --w /home/QwQ-32B/
# Troubleshooting
export NCCL_P2P_DISABLE=1 # disable P2P if encountering illegal memory access
Speculative decoding: MTP and DFlash2
Candle-vLLM supports two speculative-decoding modes for Qwen3.5/3.6/3.8-family targets:
- Built-in MTP (Multi-Token Prediction): the target checkpoint contains
mtp.*weights. Use--mtp Nor the equivalent--num-speculative-tokens N. - External DFlash2: use a matching DFlash2 draft checkpoint with
--draft-model. If--draft-modelis set, DFlash2 takes priority over MTP;--num-speculative-tokensoptionally overrides the draft width (otherwiseblock_size - 1from the draft config is used).
MTP example:
# Three MTP draft tokens per decode step
candle-vllm --m /data/Qwen3.5-35B-A3B-FP8/ \
--num-speculative-tokens 3 --ui-server
DFlash2 example:
# Qwen3.8 target and its matching DFlash2 draft checkpoint
candle-vllm --m /data/Qwen3.8-27B-FP8/ \
--draft-model /data/Qwen3.8-27B-DFlash2-FP8/ \
--num-speculative-tokens 7 --ui-server
🌐 Multi-Node Inference
Distribute inference across multiple machines using TCP-based NCCL bootstrap. No MPI required.
# On master node (192.168.1.100):
candle-vllm --d 0,1,2,3,4,5,6,7 --w /data/DeepSeek-R1-AWQ-Marlin/ \
--num-nodes 2 --node-rank 0 --master-addr 192.168.1.100 --master-port 29500
# On worker node (192.168.1.101):
candle-vllm --d 0,1,2,3,4,5,6,7 --w /data/DeepSeek-R1-AWQ-Marlin/ \
--num-nodes 2 --node-rank 1 --master-addr 192.168.1.100 --master-port 29500
All nodes must have model weights locally and be TCP-reachable on --master-port (default 29500).
| Flag | Description |
|---|---|
--num-nodes N | Total number of nodes in the cluster |
--node-rank R | This node's rank (0 = master) |
--master-addr ADDR | IP address of the master node |
--master-port PORT | Port for NCCL ID exchange (default: 29500) |
📐 NUMA Binding
Show command
sudo apt-get install numactl
# 8 GPUs, 2 NUMA nodes
MAP_NUMA_NODE=0,0,0,0,1,1,1,1 numactl --cpunodebind=0 --membind=0 candle-vllm --d 0,1,2,3,4,5,6,7 --w /home/data/DeepSeek-V2-Chat-AWQ-Marlin
# 4 GPUs
MAP_NUMA_NODE=0,0,0,0 numactl --cpunodebind=0 --membind=0 candle-vllm --d 0,1,2,3 --w /home/data/DeepSeek-V2-Chat-AWQ-Marlin
numactl --cpunodebind=0 --membind=0 specifies the master rank's NUMA binding and must match MAP_NUMA_NODE.
⚙️ CLI Reference
| Flag | Description |
|---|---|
--h | Bind address (default 0.0.0.0). Supports host, host:port, [ipv6]:port, tcp://host[:port], file:///path, socket:///path, unix:///path |
--p | TCP server port when --h does not include a port (default 2000) |
--d | Device IDs (e.g. --d 0,1) |
--m | Model source: HuggingFace model ID, local directory, or local .gguf file. Auto-detects GGUF vs safetensors in directories |
--w | Local weight directory (safetensors or GGUF). Prefer --m <local_dir> for new commands |
--f | GGUF file or subfolder: --m repo --f file.gguf (exact file), --m repo --f subfolder (all GGUFs in path), or local GGUF path |
--dtype | Data type (bf16, f16) |
--isq | In-situ quantization: q4_0, q4_1, q5_0, q5_1, q8_0, q2k, q3k, q4k, q5k, q6k |
--kvcache-dtype | KV cache quantization: auto, fp8, turbo8, turbo4, turbo3 |
--kv-fraction | Auto-size KV cache as fraction of remaining GPU memory (default 0.6) |
--mem | Fixed KV cache budget in MB |
--prefill-chunk-size | Prefill chunk size (default 8K, 0 to disable) |
--max-gen-tokens | Max output tokens per response (default: 1/5 of max_sequence_len) |
--frequency-penalty | Frequency penalty (−2.0 to 2.0) |
--presence-penalty | Presence penalty (−2.0 to 2.0) |
--yarn-scaling-factor | YaRN RoPE context extension factor |
--enforce-parser | Force tool parser backend: qwen_coder, qwen, json, mistral |
--ui-server | Start with built-in ChatGPT-like Web UI |
--multithread | Use multi-threaded mode (debug) |
--num-nodes | Total nodes in cluster (multi-node) |
--node-rank | This node's rank (0 = master) |
--master-addr | Master node IP address |
--master-port | NCCL ID exchange port (default 29500) |
--disable-prefix-cache | Disable prefix caching (enabled by default) |
--prefix-cache-max-tokens | Cap prefix cache size |
--disable-cuda-graph | Disable CUDA graph capture (enabled by default on CUDA) |
Binding examples:
candle-vllm --h 127.0.0.1 --p 8000 --m Qwen/Qwen3.6-27B-FP8
candle-vllm --h 127.0.0.1:8000 --m Qwen/Qwen3.6-27B-FP8
candle-vllm --h '[::1]:8000' --m Qwen/Qwen3.6-27B-FP8
candle-vllm --h unix:///tmp/candle-vllm.sock --m Qwen/Qwen3.6-27B-FP8
📚 Documentation
| Guide | Description |
|---|---|
| Rust Crate Usage | Use as a Rust library |
| Embedding Models | Text embedding API |
| MCP & Tool Calling | Model Context Protocol integration |
| Tool Call Parsing | Tool call detection and parsing |
| Prefix Cache | Automatic KV cache reuse |
| Speculative Decoding | MTP and external DFlash2 |
| Multimodal Models | Vision-language models |
Using Agents under Candle-vLLM backend: xbot · OpenCode · Kilo Code
🛠️ Roadmap
- [x] OpenAI-compatible API server (streaming)
- [x] Continuous batching
- [x] Flash Attention (CUDA)
- [x] FlashInfer backend
- [x] CUDA Graph
- [x] Chunked Prefill
- [x] Prefix Caching (CUDA & Metal)
- [x] Multi-GPU inference (multi-process & multi-threaded)
- [x] Multi-node tensor parallelism (TCP-based NCCL, no MPI)
- [x] In-situ quantization (GGML/GGUF + Marlin)
- [x] FP8 KV Cache (CUDA & Metal, all backends)
- [x] TurboQuant KV Cache (2–4 bit compression)
- [x] FP8 Models (block-wise, SM90+)
- [x] MXFP4/NVFP4 Model Support
- [x] DeepSeek V3.2 and GLM-5.2 FP8 Model Support
- [x] MCP Integration & Tool Calling
- [x] Built-in ChatGPT-style Web UI
📚 References
- Python implementation:
vllm-project vllmpaper
Report Issue
If you encounter any problems, please create an issue.
Compatibility
- License
- MIT
- Crate facts
- Not measured
- Runs on, Native code and Python bindings read crates on crates.io. This entry lists no crate.
Compare with similar projects
Order: strongest tier first, then most downloads, then name, with unmeasured values last. A library counts downloads over 30 days. An app counts binary downloads per release. An app with none counts its crate downloads over 30 days. ML Rust runs this catalogue, so its closest project always gets a row.
| Project | Downloads | Dependents | Stars | Latest release | Runs on (GPU) | Native code | License |
|---|---|---|---|---|---|---|---|
|
Efficent platform for inference and serving local LLMs including an OpenAI compatible API server. |
138 binary downloads per release | Not applicable | 739 | Not measured | Not measured | MIT | |
|
ort Featured
A safe Rust wrapper for ONNX Runtime 1.31 - Optimize and accelerate machine learning inference & training Also in Run and serve models. |
3,902,768 downloads over 30 days | 694 | 2,611 | 2.0.0-rc.15 | CUDA, WebGPU, ROCm | Binds native code: onnxruntime, ort-sys. Build uses a native toolchain: pkg-config (feature pkg-config) | Apache-2.0 OR MIT |
|
Lightweight Ollama-compatible inference server with native SafeTensors support. No Python dependencies, cross-platform WebGPU acceleration via Airframe. Also in Build LLM apps and agents. |
352 binary downloads per release | Not applicable | 6,014 | 2.6.6 | GPU support unknown | Binds native code: sys-info | Apache-2.0 |
|
cake Listed
Distributed LLM inference for mobile, desktop and server. Also in Run and serve models. |
22 downloads over 30 days | 0 | 3,131 | 0.1.0 | CUDA, Metal | No native code found | GPL-3.0 |
|
Inference server for LLMs, speech and embeddings: OpenAI-compatible routes with streaming, plus speech synthesis (TTS) and transcription (ASR). Serves Llama, Mistral, Qwen, Mamba2, MLA+MoE and hybrid models from SafeTensors, AWQ, GPTQ and GGUF. Also in Build LLM apps and agents. |
8 binary downloads per release | Not applicable | 7 | 0.7.1 | CUDA, WebGPU | Binds native code: ring (feature distributed) | Apache-2.0 |
|
furnace New
Fast, unified, Rust-native, Axum-compatible inference endpoints and nervous system for tensor models and LLMs: KServe / Triton and OpenAI APIs from one pure-Rust server Also in Build LLM apps and agents. |
241 downloads over 30 days | 0 | 66 | 0.16.2 | CUDA, WebGPU, Metal | No native code found | MIT |
All projects in Build LLM apps and agentsAll projects in Run and serve models
Why ListedNo archive, New or Featured rule places it, so it is Listed.
What it lacks for Featured
- The check holds no value for Homebrew installs on request over 365 days, Repology repository families, Docker pull growth over 90 days. A gate that lacks its signal does not pass.
What else the check found
- The last activity is on 18 Oct 2026, 22 days ago. The rules expect an update within 365 days. Dormancy rule
Not measured: First release, Homebrew installs on request over 365 days, Repology repository families, Docker pull growth over 90 days.
Exact rules: Listed, Featured app. The check on applied thresholds version 9.
Every rule outcome, as the check records it
expected-interval: app: E = 365 daysdormancy: last activity 2026-10-18, 22 days ago, E = 365: activefeatured: not featured: unknown homebrew_on_request_365d, repology_families, docker_pull_growth_90dlisted: listed: no archive, new or featured rule applies
Measurements and sources
Each signal row shows the raw value, its source and the fetch date. The Sources list gathers every distinct source on this page. Movement needs more history.
Sources4 sources
- Description: the GitHub repository description
- GitHub releases, fetched
- GitHub repository, fetched
- GitHub contributors, fetched
Adoption138 binary downloads per release4 not measured
| Signal | Value | Source | Fetched | Counts |
|---|---|---|---|---|
| Active dependents | Not measured | Yes | ||
| New dependents (365 days) | Not measured | Yes | ||
| Peak active dependents | Not measured | Yes | ||
| Active dependents as a share of the peak | Not measured | Yes | ||
| Binary downloads per release | 138 | GitHub releases | Yes |
MaintenanceLatest human commit: 22 days ago7 not measured
| Signal | Value | Source | Fetched | Counts |
|---|---|---|---|---|
| Latest human commit | 2026-10-18 | GitHub repository | Yes | |
| Latest release | 2026-08-20 | GitHub releases | Yes | |
| First release | Not measured | Yes | ||
| Latest version | Not measured | Yes | ||
| Days the oldest outside issue waits for a reply | 448 | GitHub repository | Yes | |
| Maintainer replies over 365 days | 22 | GitHub repository | Yes | |
| Repository archived | false | GitHub repository | Yes | |
| Repository gone | false | GitHub repository | Yes | |
| Release commit or manifest in the repo | Not measured | Yes | ||
| Published docs | Not measured | Yes | ||
| Latest release fails cargo check | Not measured | Yes | ||
| Build check date | Not measured | Yes | ||
| Build check toolchain | Not measured | Yes |
SecurityNot measured
| Signal | Value | Source | Fetched | Counts |
|---|---|---|---|---|
| Unpatched vulnerabilities past the grace window | Not measured | Yes | ||
| RustSec unmaintained advisory | Not measured | Yes | ||
| Deprecation notice | Not measured | Yes | ||
| Deprecated requirement | Not measured | Yes |
Distribution414 binary downloads over the last 3 releases10 not measured
| Signal | Value | Source | Fetched | Counts |
|---|---|---|---|---|
| Releases | Not measured | Yes | ||
| Downloads over 30 days | Not measured | Yes | ||
| Binary downloads over the last 3 releases | 414 | GitHub releases | Yes | |
| Homebrew installs on request over 365 days | Not measured | Yes | ||
| Repology repository families | Not measured | Yes | ||
| Docker pull growth over 90 days | Not measured | Yes | ||
| Docker pulls at the growth baseline | Not measured | Yes | ||
| Every version a prerelease | Not measured | Yes | ||
| Every version 0.0.x | Not measured | Yes | ||
| Every version yanked | Not measured | Yes | ||
| Crate deleted from crates.io | Not measured | Yes |
Repository739 stars, 91 forks, 8 contributors, 620 commits. Stars alone never qualify a project.1 not measured
| Signal | Value | Source | Fetched | Counts |
|---|---|---|---|---|
| GitHub stars | 739 | GitHub repository | Yes — one part of the repository route | |
| GitHub forks | 91 | GitHub repository | Yes — one part of the repository route | |
| Contributors with a GitHub account | 8 | GitHub contributors | Yes — one part of the repository route | |
| Commits on the default branch | 620 | GitHub repository | No | |
| Repository's main crate left out of the entry | Not measured | Yes |
Facts that never count
| Signal | Value | Source | Fetched | Counts |
|---|---|---|---|---|
| License | MIT | GitHub repository | No | |
| Runs on, from listed crates and their direct dependencies | Not measured | No | ||
| What shows each backend | Not measured | No | ||
| Native code, from listed crates and their dependencies | Not measured | No | ||
| Python bindings, from direct dependencies of listed crates | Not measured | No | ||
| Crates that depend on a listed crate directly | Not measured | No |
Corrections and review history
No correction applies to this entry.
Judgments
A judgment enters only through an approved issue and a merged pull request.
No judgment applies to this entry.