edgequake-llm
Library Listed
Multi-provider LLM abstraction library with caching, rate limiting, and cost tracking
- Downloads
- 5,446
- Dependents
- 15
- Stars
- 44
- Forks
- 5
- Contributors
- 1
- Commits
- 189
- Latest release
- 0.10.10 ·
About
edgequake-llm is a Rust AI runtime with a single abstraction over cloud APIs,
local gateways, enterprise deployments, and testing backends. It ships
first-class support for chat, streaming, tool calling, embeddings, image
generation, caching, retries, rate limiting, cost tracking, and release-grade
CI/CD.
Python users should use edgequake-litellm, the LiteLLM-compatible package backed by this crate.
Read the full README
What It Covers
- One trait-based surface for LLMs, embeddings, and Rust image generation.
- Production backends: OpenAI, Azure OpenAI, Anthropic, Gemini, Vertex AI, xAI, OpenRouter, NVIDIA NIM, Mistral, AWS Bedrock.
- Local and gateway backends: Ollama, LM Studio, oMLX, MTPLX, llama-server (
llamacpp), vLLM-MLX, mlx-lm (thinLocalOpenAiProvidershell), GitHub Copilot direct mode (proxy optional), generic OpenAI-compatible APIs. - Additional embedding backend: Jina.
- Image generation backends in the Rust crate: Gemini image generation, Vertex Imagen, FAL, mock image generation.
- Model Discovery — programmatic capability discovery, provider catalog, and name/fuzzy search across 11+ providers with zero heuristics.
- Operational layers: caching, retry, rate limiting, cost tracking, tracing, reranking, mock providers.
Install
[dependencies]
edgequake-llm = "0.10.3"
tokio = { version = "1", features = ["macros", "rt-multi-thread"] }
bedrock is feature-gated:
[dependencies]
edgequake-llm = { version = "0.10.3", features = ["bedrock"] }
Note: the repository is now pinned to Rust 1.95.0, and the Bedrock integration is verified against the latest published AWS SDK crate set, including the current Bedrock runtime release.
Provider compatibility highlights in this release:
- Anthropic-compatible adapters now preserve final streamed tool-call deltas even when the upstream SSE stream ends without a trailing newline.
- Provider-side schema normalization now aligns Anthropic, Bedrock, and Gemini tool declarations with the stricter subsets those APIs actually accept.
- Normalized usage reporting distinguishes cache writes from cache hits where the upstream provider reports both.
- Gemini provider now preserves function-call IDs across assistant tool calls, streamed deltas, and tool-result follow-ups.
- Mistral provider now includes native audio (
speech,transcriptions,voices) and OCR endpoint wrappers.
New capabilities in v0.10.0:
- Application attribution —
ApplicationContext,ProviderFactory::create_llm_provider_with_context(), PythonApplicationContext+application_id=kwargs, OTELgen_ai.application.*spans andedgequake.attribution.*audit events,get_provider_attribution()catalog helpers - Ollama Cloud —
OllamaProvider::from_env_cloud(), autohttps://ollama.comwhenOLLAMA_API_KEYis set; latest API (think, JSON schema, embeddimensions) - Examples —
application_attribution,ollama_cloud
New in v0.10.5 / v0.10.6 (SPEC-113 / #369):
- Capability-gated Ollama
think— Auto no longer injectsthink: truefrom name substrings (qwen3, …). Truth is Ollama/api/show(and tags)capabilitiesincluding"thinking". Unknown/error → omitthink. - Env:
EDGEQUAKE_OLLAMA_THINK_CAPABILITY(auto|force_off|force_on|legacy_name),EDGEQUAKE_OLLAMA_CAPABILITY_TTL_SECS,EDGEQUAKE_OLLAMA_CAPABILITY_TIMEOUT_MS - v0.10.6:
Unknowncapability answers use a 5s TTL (not the full probe TTL);EDGEQUAKE_OLLAMA_THINK_CAPABILITYis read per request (not frozen atbuild()).
New capabilities in v0.9.0:
- Provider Catalog —
ProviderFactory::list_providers(),ProviderCatalog::resolve_id(), unified metadata for chat/embed/discovery/image-gen surfaces - Capability search —
find_static_models(),ModelCapabilityenum, min/max input and output token bounds - Model name search — exact, substring, fuzzy, and
provider/modelqueries viaModelSearchQuery - Python discovery —
search_models(),search_static_models_by_name(),lookup_model_by_name()
Capabilities from v0.8.0 still included:
- Structured Outputs —
CompletionOptions::json_schema(schema)for JSON Schema-constrained responses - OpenRouter fallback models —
with_fallback_models()for sequential model failover - Azure Managed Identity —
AzureCredential::BearerTokenfor Entra ID auth - Vertex AI ADC — automatic GCE metadata token refresh
- Mistral variable embedding dimensions —
with_embed_dimensions(dim) - Ollama truncate parameter in embedding requests
- Bedrock Nova 2 multimodal embeddings
- NVIDIA vision model detection improvements
Latest model IDs validated on 2026-10-01 from official provider documentation:
- OpenAI (models): chat default
gpt-5.6-terra(Chat Completions still supports tools). Catalog also includesgpt-6-astra,gpt-6.1-sol,gpt-6-luna, and the GPT-5.6 family. Image defaultgpt-image-2.5-flare. - Anthropic (overview): default
claude-sonnet-5-5; alsoclaude-opus-5-5,claude-fable-5-1. - Gemini (models): default
gemini-3.8-flash. Image defaultgemini-3.1-flash-image. - Mistral (models): default
mistral-medium-3-5. - xAI (models): default
grok-4.7. Image defaultgrok-imagine-image-2.0. - Cohere (models): default
command-a-plus-05-2026.
Quick Start
use edgequake_llm::{ChatMessage, LLMProvider, OpenAIProvider};
#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
let provider = OpenAIProvider::from_env()?;
let messages = vec![ChatMessage::user("Explain Rust ownership in one sentence.")];
let response = provider.chat(&messages, None).await?;
println!("{}", response.content);
Ok(())
}
Environment:
export OPENAI_API_KEY=sk-...
Provider Matrix
| Provider | Prefix / Type | Chat | Stream | Tools | Embeddings | Notes |
|---|---|---|---|---|---|---|
| OpenAI | openai | Yes | Yes | Yes | Yes | GPT, o-series, vision |
| Azure OpenAI | azure | Yes | Yes | Yes | Yes | Deployment-based |
| Anthropic | anthropic | Yes | Yes | Yes | No | Claude thinking + caching |
| Gemini | gemini | Yes | Yes | Yes | Yes | Google AI Studio |
| Vertex AI | vertexai | Yes | Yes | Yes | Yes | Gemini on GCP auth |
| xAI | xai | Yes | Yes | Yes | No | Grok models |
| OpenRouter | openrouter | Yes | Yes | Yes | No | Multi-provider gateway |
| Mistral | mistral | Yes | Yes | Yes | Yes | La Plateforme |
| NVIDIA NIM | nvidia | Yes | Yes | Yes | Yes | OpenAI-compatible + dynamic model listing + 202 polling |
| AWS Bedrock | bedrock | Yes | Yes | Yes | Yes | Feature-gated |
| HuggingFace | huggingface | Yes | Yes | Limited | No | Inference API |
| OpenAI Compatible | openai-compatible | Yes | Yes | Yes | Yes | Groq, Together, DeepSeek, custom |
| Ollama | ollama | Yes | Yes | Yes | Yes | Local or Cloud (OLLAMA_API_KEY); vision model-dependent |
| LM Studio | lmstudio | Yes | Yes | Yes | Yes | Local OpenAI-compatible |
| VSCode Copilot | vscode-copilot | Yes | Yes | Yes | Yes | Direct auth by default, proxy optional |
| Jina | embedding only | No | No | No | Yes | Dedicated embeddings |
| Mock | mock | Yes | No | Yes | Yes | Tests and offline dev |
Image Generation Providers
Rust-only image generation support is exposed through ImageGenProvider and
ImageGenFactory:
| Provider | Type | Auth / Environment | Notes |
|---|---|---|---|
| OpenAI | OpenAIImageGen | OPENAI_API_KEY | Default model: gpt-image-2.5-flare |
| Gemini image generation | GeminiImageGenProvider | GEMINI_API_KEY or Vertex AI auth | Default model: gemini-3.1-flash-image |
| Vertex Imagen | VertexAIImageGen | GOOGLE_CLOUD_PROJECT and ADC / GOOGLE_ACCESS_TOKEN | Default model: imagen-4.0-generate-001 |
| FAL | FalImageGen | FAL_KEY | Default model: fal-ai/flux/dev |
| Mock | MockImageGenProvider | none | Tests and offline development |
| Azure OpenAI images | AzureImageGen | AZURE_OPENAI_ENDPOINT, AZURE_OPENAI_API_KEY, AZURE_OPENAI_IMAGE_DEPLOYMENT | Default deployment name: gpt-image-2 |
| NVIDIA NIM | NvidiaImageGen | NVIDIA_API_KEY | Default model: stabilityai/stable-diffusion-3.5-large |
| Bedrock Stability | BedrockStabilityImageGen | AWS credential chain | Feature-gated (bedrock), Stability AI models |
Common Setup
| Provider | Required environment |
|---|---|
| OpenAI | OPENAI_API_KEY |
| Azure OpenAI | AZURE_OPENAI_ENDPOINT, AZURE_OPENAI_API_KEY, AZURE_OPENAI_DEPLOYMENT_NAME |
| Anthropic | ANTHROPIC_API_KEY |
| Gemini | GEMINI_API_KEY or GOOGLE_API_KEY |
| Vertex AI | GOOGLE_CLOUD_PROJECT and ADC / GOOGLE_ACCESS_TOKEN |
| xAI | XAI_API_KEY |
| OpenRouter | OPENROUTER_API_KEY |
| Mistral | MISTRAL_API_KEY |
| NVIDIA NIM | NVIDIA_API_KEY |
| AWS Bedrock | standard AWS credential chain plus AWS_REGION |
| HuggingFace | HF_TOKEN or HUGGINGFACE_TOKEN |
| OpenAI Compatible | OPENAI_COMPATIBLE_BASE_URL, optional OPENAI_COMPATIBLE_API_KEY |
| Ollama | optional OLLAMA_HOST; Cloud: OLLAMA_API_KEY (docs) |
| LM Studio | optional LMSTUDIO_HOST |
| VSCode Copilot | optional VSCODE_COPILOT_PROXY_URL; otherwise reuses the official VS Code Copilot auth cache or a fresh device login |
| Jina | JINA_API_KEY |
GitHub Copilot direct mode
Use vscode-copilot/auto unless you have a strong reason to pin a specific model.
Why this is now the default:
- GitHub's live Auto routing knows which chat-capable model family is actually available for the current account and session.
- Some Copilot catalog entries are responses-only or temporarily throttled; Auto avoids hard-coding a brittle premium path.
- Reusing the real VS Code auth cache keeps parity with the official extension instead of depending on stale local token copies.
Legacy proxy setups still work through VSCODE_COPILOT_PROXY_URL, but no proxy is required for the normal path anymore.
Image generation environment:
| Provider | Required environment |
|---|---|
| Gemini image generation | GEMINI_API_KEY or Vertex AI auth |
| Vertex Imagen | GOOGLE_CLOUD_PROJECT and ADC / GOOGLE_ACCESS_TOKEN |
| FAL | FAL_KEY |
| Azure OpenAI images | AZURE_OPENAI_ENDPOINT, AZURE_OPENAI_API_KEY, AZURE_OPENAI_IMAGE_DEPLOYMENT |
| NVIDIA NIM | NVIDIA_API_KEY |
| Bedrock Stability | AWS credential chain plus AWS_REGION |
Factory Usage
ProviderFactory is the fastest way to wire environments or provider/model routing:
use edgequake_llm::{ProviderFactory, ProviderType};
let (llm, embedding) = ProviderFactory::from_env()?;
println!("llm={} embedding={}", llm.name(), embedding.name());
let (vertex_llm, _) = ProviderFactory::create_with_model(
ProviderType::VertexAI,
Some("gemini-3.8-flash"),
)?;
let custom = ProviderFactory::create_llm_provider(
"openai-compatible",
"deepseek-chat",
)?;
For generic OpenAI-compatible routing, set:
export OPENAI_COMPATIBLE_BASE_URL=https://api.groq.com/openai/v1
export OPENAI_COMPATIBLE_API_KEY=...
For Rust image generation, use:
use edgequake_llm::{ImageGenFactory, ImageGenRequest};
#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
let provider = ImageGenFactory::from_env()?;
let response = provider
.generate(&ImageGenRequest::new("Editorial product photo on a concrete desk"))
.await?;
println!("generated {} image(s)", response.images.len());
Ok(())
}
Header Propagation
All five major providers support caller-supplied HTTP headers for B2B/multi-tenant deployments (closes edgequake#132):
| Provider | Since |
|---|---|
OpenAICompatibleProvider | 0.6.16 |
MistralProvider | 0.6.16 |
AnthropicProvider | 0.6.17 |
GeminiProvider | 0.6.17 |
NvidiaProvider | 0.6.17 |
Use with_extra_headers() to inject custom headers — trace IDs, tenant identifiers, HMAC
tokens, or traceparent — into every outgoing LLM API call:
use edgequake_llm::{AnthropicProvider, GeminiProvider, MistralProvider};
// Anthropic
let provider = AnthropicProvider::from_env()?
.with_extra_headers([
("x-request-id".to_string(), "req-abc-123".to_string()),
("x-tenant-id".to_string(), "tenant-42".to_string()),
]);
// Gemini (Google AI or VertexAI)
let provider = GeminiProvider::from_env()?
.with_extra_headers([
("x-correlation-id".to_string(), "corr-xyz".to_string()),
]);
// Mistral
let provider = MistralProvider::from_env()?
.with_extra_headers([
("traceparent".to_string(), "00-abc123-def456-01".to_string()),
]);
Reserved headers (authorization, x-api-key, anthropic-version, content-type,
content-length, host, user-agent) are silently dropped to prevent accidental credential
overrides. All other headers pass through to every request made by that provider instance.
Python Package
edgequake-litellm is the Python package in this repo. It is a drop-in LiteLLM replacement backed by the Rust runtime:
import edgequake_litellm as litellm
resp = litellm.completion(
model="openai/gpt-5.6-terra",
messages=[{"role": "user", "content": "Hello"}],
)
print(resp.choices[0].message.content)
Install:
pip install edgequake-litellm
See edgequake-litellm/README.md for provider routing, migration notes, wheel coverage, and release instructions.
The Python package does not expose the Rust image-generation APIs yet.
Model Discovery
Programmatic model discovery across all providers — no hardcoded model IDs, no name-pattern heuristics.
List providers
use edgequake_llm::{ProviderCatalog, ProviderFactory};
let chat = ProviderFactory::list_providers();
let discovery = ProviderCatalog::list_discovery_providers();
import edgequake_litellm as litellm
print(litellm.list_providers())
print(litellm.discovery.list_discovery_providers())
Search by capability
use edgequake_llm::{find_static_models, CapabilityFilter, ModelCapability, ModelDiscoveryService};
// Offline — no API keys required
let filter = CapabilityFilter::default()
.requiring(ModelCapability::Vision)
.with_min_context_length(100_000)
.with_min_output_tokens(8_192);
let models = find_static_models(&filter);
// Live discovery
let service = ModelDiscoveryService::new();
let live = service.find_models(&filter).await?;
Search by name (exact, substring, fuzzy)
use edgequake_llm::{search_static_models, ModelSearchQuery};
let hits = search_static_models(
&ModelSearchQuery::new("claude sonnet")
.fuzzy(true)
.with_min_context_length(200_000)
.with_min_output_tokens(16_384),
);
for hit in hits {
println!("{} score={:.2}", hit.model.id, hit.score);
}
Python:
import edgequake_litellm as litellm
# Capability filter
models = litellm.discovery.find_static_models(
requires_vision=True,
min_context_length=100_000,
)
# Name / fuzzy search with length bounds
hits = litellm.discovery.search_static_models_by_name(
"claude",
fuzzy=True,
min_context_length=200_000,
min_output_tokens=16_384,
)
for hit in hits:
print(f"{hit.model.provider}/{hit.model.id} score={hit.score:.2f}")
Features:
- Unified provider catalog — single source of truth for list/resolve APIs (Rust + Python)
- 11+ providers with dynamic, hybrid, or static discovery strategies
- Per-provider caching with configurable TTL and stale-on-error fallback
- Capability filtering — vision, tools, thinking, min/max input & output length, cost, deprecation
- Name search — exact ID, display name,
provider/model, substring, and fuzzy matching - Zero heuristics — capabilities from API responses or cited documentation only
- Static registry — 30+ models with verified data for offline/fallback use
See docs/discovery.md for full documentation.
Development
Local validation:
cargo fmt --all -- --check
cargo clippy --workspace --all-targets --all-features -- -D warnings
cargo test --workspace --locked
cargo doc --workspace --no-deps --all-features
Python package validation:
cd edgequake-litellm
pip install . -v
pytest -q -k "not e2e"
Documentation
| Document | Description |
|---|---|
docs/discovery.md | Model discovery system architecture and usage |
docs/providers.md | Provider-by-provider setup and model tables |
docs/architecture.md | System design and trait architecture |
docs/caching.md | Response caching (prompt + completion) |
docs/cost-tracking.md | Session-level cost tracking and budgets |
docs/rate-limiting.md | Per-provider rate limiting |
docs/observability.md | OpenTelemetry integration |
docs/reranking.md | BM25, RRF, and cross-encoder reranking |
docs/testing.md | Testing guide (mock providers, e2e) |
docs/security.md | API key management and security |
docs/migration-guide.md | Version migration guide |
docs/faq.md | Troubleshooting and FAQ |
Specifications
Design specifications are tracked in specs/001-edgequake-llm/:
| # | Document | Purpose |
|---|---|---|
| 01 | 5-WHY Analysis | Root-cause analysis |
| 02 | Provider Conformance Audit | Gap analysis per provider |
| 03 | Model Discovery API | Core discovery API design |
| 04 | Provider Discovery Approaches | Per-provider strategy |
| 05 | Architecture & Implementation | DRY/SOLID plan |
| 06 | Model Capability Registry | Type system design |
| 07 | Edge Cases & Migration | Compatibility and edge cases |
| 08 | Research Findings | Ground-truth corrections |
| 09 | Implementation Plan | Phased plan with roadblocks |
Upgrade specs for v0.9.0 are in specs/002-upgrade-support/, including the Provider Catalog API design.
Release
Release guides:
docs/releasing.md: release checklist, tags, registry setupdocs/release-cycle.md: end-to-end CI/CD flowCHANGELOG.md: release notes for the Rust crateedgequake-litellm/CHANGELOG.md: release notes for the Python package
Tag conventions:
Both publish workflows validate versions before publishing and attach release artifacts to GitHub Releases.
License
Apache-2.0. See LICENSE-APACHE.
Compatibility
- Runs on
- GPU support unknown
What shows it
- no dependency or feature matches a backend row
- Native code
- None found
- No native code found
- Python bindings
- No Python binding crate found
- License
- Apache-2.0
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 |
|---|---|---|---|---|---|---|---|
|
Multi-provider LLM abstraction library with caching, rate limiting, and cost tracking |
5,446 downloads over 30 days | 15 | 44 | 0.10.10 | GPU support unknown | No native code found | Apache-2.0 |
|
rust-genai Featured
Multi-AI Providers Library for Rust. (OpenAI, Gemini, Anthropic, DeepSeek, Ollama, OMLX, AWS Bedrock, Vertex, Xai, Groq, Kimi, GLM and many more) |
118,643 downloads over 30 days | 81 | 938 | 0.7.3 | GPU support unknown | No native code found | Apache-2.0 OR MIT |
|
All-in-one LLM CLI tool featuring Shell Assistant, Chat-REPL, RAG, AI Tools & Agents, with access to OpenAI, Claude, Gemini, Ollama, Groq, and more. |
28,422 binary downloads per release | Not applicable | 10,556 | 0.30.0 | GPU support unknown | No native code found | Apache-2.0 OR MIT |
|
aisdk Listed
An open-source Rust library for building AI-powered applications, inspired by the Vercel AI SDK. It provides a robust, type-safe, and easy-to-use interface for interacting with various Large Language Models (LLMs). |
36,877 downloads over 30 days | 4 | 263 | 0.6.1 | GPU support unknown | No native code found | MIT |
|
Terminal UI to chat with large language models (LLM) using different model backends, and integrations with your favourite editors! |
5,642 binary downloads per release | Not applicable | 772 | 0.13.0 | GPU support unknown | No native code found | MIT |
|
An open protocol that gives AI agents a secure, sandboxed place to run code and use tools — with lean context usage. AXP works alongside MCP |
Not measured | Not applicable | 3 | Not measured | Not measured | Not measured | Apache-2.0 |
|
llm-kernel New
Foundation library for Rust AI-native apps — provider catalog, LLM client, MCP server, search, telemetry, and safety |
791 downloads over 30 days | 8 | 3 | 0.33.1 | GPU support unknown | Binds native code: libsqlite3-sys (feature store), mach-sys (feature embedding-mlx), mlx-sys (feature embedding-mlx), openssl-sys (feature graph-pg-tls), ort-sys (feature embedding-fastembed-coreml) | Apache-2.0 |
Why ListedNo archive, New or Featured rule places it, so it is Listed.
What it lacks for Featured
- It has 2 active dependents and 2 new dependents in 365 days. Featured needs 11 active dependents or 9 new dependents in 365 days. The repository route reads 44 stars, 5 forks and 1 contributor. It needs 4,539 stars, 434 forks and 79 contributors together.
What else the check found
- The last activity is on 1 Nov 2026, 8 days ago. The rules expect an update within 450 days. Dormancy rule
- The latest release requires the deprecated dependency backoff. RUSTSEC-2025-0012 Rot signals rule
Exact rules: Listed, Featured library. The check on applied thresholds version 9.
Every rule outcome, as the check records it
expected-interval: version 0.10.10 base 450: E = 450 daysdormancy: last activity 2026-11-01, 8 days ago, E = 450: activerot: deprecated requirement `backoff (RUSTSEC-2025-0012, https://rustsec.org/advisories/RUSTSEC-2025-0012.html)`featured: not featured: active_users 2 < 11 and new_adopters 2 < 9 and repository route stars 44 (needs 4539), forks 5 (needs 434), contributors 1 (needs 79)listed: 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.
Sources6 sources
- Description: the crates.io description
- crates.io database dump, fetched
- RustSec advisory database, fetched
- GitHub repository, fetched
- crates.io package, fetched
- GitHub contributors, fetched
Adoption2 active dependents, 2 new dependents in 365 days1 not measured
| Signal | Value | Source | Fetched | Counts |
|---|---|---|---|---|
| Active dependents | 2 | crates.io database dump | Yes | |
| New dependents (365 days) | 2 | crates.io database dump | Yes | |
| Peak active dependents | 2 | crates.io database dump | Yes | |
| Active dependents as a share of the peak | 1 | crates.io database dump | Yes | |
| Binary downloads per release | Not measured | Yes |
MaintenanceLatest human commit: 8 days ago3 not measured
| Signal | Value | Source | Fetched | Counts |
|---|---|---|---|---|
| Latest human commit | 2026-11-01 | GitHub repository | Yes | |
| Latest release | 2026-11-01 | crates.io database dump | Yes | |
| First release | 2026-02-14 | crates.io database dump | Yes | |
| Latest version | 0.10.10 | crates.io database dump | Yes | |
| Days the oldest outside issue waits for a reply | 20 | GitHub repository | Yes | |
| Maintainer replies over 365 days | 2 | GitHub repository | Yes | |
| Repository archived | false | GitHub repository | Yes | |
| Repository gone | false | GitHub repository | Yes | |
| Release commit or manifest in the repo | true | crates.io package | Yes | |
| Published docs | true | crates.io database dump | Yes | |
| Latest release fails cargo check | Not measured | Yes | ||
| Build check date | Not measured | Yes | ||
| Build check toolchain | Not measured | Yes |
SecurityUnpatched vulnerabilities: none
| Signal | Value | Source | Fetched | Counts |
|---|---|---|---|---|
| Unpatched vulnerabilities past the grace window | none | RustSec advisory database | Yes | |
| RustSec unmaintained advisory | none | RustSec advisory database | Yes | |
| Deprecation notice | none | crates.io database dump | Yes | |
| Deprecated requirement | backoff (RUSTSEC-2025-0012, https://rustsec.org/advisories/RUSTSEC-2025-0012.html) | crates.io database dump | Yes |
Distribution51 releases, 5,446 downloads over 30 days5 not measured
| Signal | Value | Source | Fetched | Counts |
|---|---|---|---|---|
| Releases | 51 | crates.io database dump | Yes | |
| Downloads over 30 days | 5446 | crates.io database dump | Yes | |
| Binary downloads over the last 3 releases | Not measured | 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 | false | crates.io database dump | Yes | |
| Every version 0.0.x | false | crates.io database dump | Yes | |
| Every version yanked | false | crates.io database dump | Yes | |
| Crate deleted from crates.io | false | crates.io database dump | Yes |
Repository44 stars, 5 forks, 1 contributors, 189 commits. Stars alone never qualify a project.
| Signal | Value | Source | Fetched | Counts |
|---|---|---|---|---|
| GitHub stars | 44 | GitHub repository | Yes — one part of the repository route | |
| GitHub forks | 5 | GitHub repository | Yes — one part of the repository route | |
| Contributors with a GitHub account | 1 | GitHub contributors | Yes — one part of the repository route | |
| Commits on the default branch | 189 | GitHub repository | No | |
| Repository's main crate left out of the entry | none | crates.io database dump | Yes |
Facts that never count
| Signal | Value | Source | Fetched | Counts |
|---|---|---|---|---|
| License | Apache-2.0 | crates.io database dump | No | |
| Runs on, from listed crates and their direct dependencies | GPU support unknown | crates.io database dump | No | |
| What shows each backend | no dependency or feature matches a backend row | crates.io database dump | No | |
| Native code, from listed crates and their dependencies | No native code found | crates.io database dump | No | |
| Python bindings, from direct dependencies of listed crates | No Python binding crate found | crates.io database dump | No | |
| Crates that depend on a listed crate directly | 15 | crates.io database dump | 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.