llm_client

Library Listed Dormant

llm_client: The easiest Rust interface for local LLMs

Checked · Sources

Downloads
43
Dependents
1
Stars
254
Forks
26
Contributors
2
Commits
71
Latest release
0.0.7 ·

About

From the project README ·

llm_client will return

lmcpp – llama.cpp's llama-server for Rust

Fully Managed

  • Automated Toolchain – Downloads, builds, and manages the llama.cpp toolchain with [LmcppToolChain].
  • Supported Platforms – Linux, macOS, and Windows with CPU, CUDA, and Metal support.
  • Multiple Versions – Each release tag and backend is cached separately, allowing you to install multiple versions of llama.cpp.

Blazing Fast UDS

  • UDS IPC – Integrates with llama-server’s Unix-domain-socket client on Linux, macOS, and Windows.
  • Fast! – Is it faster than HTTP? Yes. Is it measurably faster? Maybe.

Fully Typed / Fully Documented

  • Server Args – All llama-server arguments implemented by [ServerArgs].
  • Endpoints – Each endpoint has request and response types defined.
  • Good Docs – Every parameter was researched to improve upon the original llama-server documentation.

CLI Tools & Web UI

  • lmcpp-toolchain-cli – Manage the llama.cpp toolchain: download, build, cache.
  • lmcpp-server-cli    – Start, stop, and list servers.
  • Easy Web UI – Use [LmcppServerLauncher::webui] to start with HTTP and the Web UI enabled.

Read the full README
use lmcpp::*;

fn main() -> LmcppResult<()> {
    let server = LmcppServerLauncher::builder()
        .server_args(
            ServerArgs::builder()
                .hf_repo("bartowski/google_gemma-3-1b-it-qat-GGUF")?
                .build(),
        )
        .load()?;

    let res = server.completion(
        CompletionRequest::builder()
            .prompt("Tell me a joke about Rust.")
            .n_predict(64),
    )?;

    println!("Completion response: {:#?}", res.content);
    Ok(())
}
# With default model
cargo run --bin lmcpp-server-cli -- --webui
# Or with a specific model from URL:
cargo run --bin lmcpp-server-cli -- --webui -u https://huggingface.co/bartowski/google_gemma-3-1b-it-qat-GGUF/blob/main/google_gemma-3-1b-it-qat-Q4_K_M.gguf
# Or with a specific local model:
cargo run --bin lmcpp-server-cli -- --webui -l /path/to/local/model.gguf

How It Works

Your Rust App
      │
      ├─→ LmcppToolChain        (downloads / builds / caches)
      │         ↓
      ├─→ LmcppServerLauncher   (spawns & monitors)
      │         ↓
      └─→ LmcppServer           (typed handle over UDS*)
                │
                ├─→ completion()       → text generation
                └─→ other endpoints    → stuff

Endpoints ⇄ Typed Helpers
HTTP RouteHelper on LmcppServerRequest typeResponse type
POST /completioncompletion()[CompletionRequest][CompletionResponse]
POST /infillinfill()[InfillRequest][CompletionResponse]
POST /embeddingsembeddings()[EmbeddingsRequest][EmbeddingsResponse]
POST /tokenizetokenize()[TokenizeRequest][TokenizeResponse]
POST /detokenizedetokenize()[DetokenizeRequest][DetokenizeResponse]
GET  /propsprops()–[PropsResponse]
customstatus() ¹–[ServerStatus]
Open AIopen_ai_v1_*()[serde_json::Value][serde_json::Value]

¹ Internal helper for server health.


Supported Platforms

PlatformCPUCUDAMetalBinary Sources
Linux x64✅✅–Pre-built + Source
macOS ARM✅–✅Pre-built + Source
macOS x64✅–✅Pre-built + Source
Windows x64✅✅–Pre-built + Source

What happened to llm_client?

And llm_devices, llm_testing, llm_prompt, llm_models, and the other crates that used to be in this repo?

  • I moved cross country and took a long time off.
  • Supporting local and cloud models exploded complexity.
  • I realized the goals of llm_client and the goals of most people did not overlap; most people just want an Open AI compatible endpoint. They didn't want a new DSL for building AI agents or low level workflow builders.

So, I decided to narrow my scope, and start fresh. The new goal of this project is to be the best Llama.cpp integration possible.

And so, this repo will stick to the barebones and low level LLM implementation details. Shortly I will rework llm_prompt, and llm_models towards this goal.

Any further tooling built on top of that, will be a different project, which I will link to here once published.

Contact

Shelby Jenkins - Here or Linkedin

Runs on
Metal
What shows it
  • Metal: llm_devices dependency objc2-metal, lmcpp dependency objc2-metal
Native code
Required
  • Binds native code: nvml-wrapper-sys
Python bindings
No Python binding crate found
License
MIT

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.

llm_client beside the projects that share a topic with it
ProjectDownloadsDependentsStarsLatest releaseRuns on (GPU)Native codeLicense
llm_client This page Listed Dormant

llm_client: The easiest Rust interface for local LLMs

43 downloads over 30 days 1 254 0.0.7 Metal Binds native code: nvml-wrapper-sys 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
tenere App Listed

TUI interface for LLMs written in Rust

569 binary downloads per release Not applicable 686 0.11.3 GPU support unknown No native code found GPL-3.0-or-later
smg App Listed

High-performance model-routing gateway for large-scale LLM deployments

116 downloads over 30 days Not applicable 703 1.14.0 GPU support unknown Binds native code: k8s-openapi, odpic-sys, openssl-sys, tikv-jemalloc-sys, nixl-sys (feature nixl). Build uses a native toolchain: cc, pkg-config Apache-2.0
icebreaker Listed

A local AI chat app powered by 🦀Rust, 🧊iced, 🤗Hugging Face, and 🦙llama.cpp

12 downloads over 30 days 0 468 2026.2.0 GPU support unknown No native code found MIT
blazr App Listed

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.

8 binary downloads per release Not applicable 7 0.7.1 CUDA, WebGPU Binds native code: ring (feature distributed) Apache-2.0

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 0 active dependents and 0 new dependents in 365 days. Featured needs 11 active dependents or 9 new dependents in 365 days. The repository route reads 254 stars, 26 forks and 2 contributors. It needs 4,539 stars, 434 forks and 79 contributors together.
  • Every version is 0.0.x.
  • The project is dormant and not finished. Dormancy rule

What else the check found

  • The last activity is on 6 Aug 2025, 460 days ago. That reaches the 365 days the rules expect, so the project is dormant. Dormancy rule

Not measured: Latest release fails cargo check.

Exact rules: Listed, Featured library. The check on applied thresholds version 9.

Every rule outcome, as the check records it
  • expected-interval: version 0.0.7 base 450, capped at 5 releases = 250, raised to the 365-day floor: E = 365 days
  • dormancy: last activity 2025-08-06, 460 days ago, E = 365: dormant
  • featured: not featured: active_users 0 < 11 and new_adopters 0 < 9 and repository route stars 254 (needs 4539), forks 26 (needs 434), contributors 2 (needs 79); every version is 0.0.x; dormant and not stable
  • listed: listed: no archive, new or featured rule applies
Crates6 crates

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
Adoption0 active dependents, 0 new dependents in 365 days1 not measured
Adoption measurements
SignalValueSourceFetchedCounts
Active dependents0crates.io database dumpYes
New dependents (365 days)0crates.io database dumpYes
Peak active dependents0crates.io database dumpYes
Active dependents as a share of the peak1crates.io database dumpYes
Binary downloads per releaseNot measuredYes
MaintenanceLatest human commit: 15 months ago3 not measured
Maintenance measurements
SignalValueSourceFetchedCounts
Latest human commit2025-08-06GitHub repositoryYes
Latest release2025-08-06crates.io database dumpYes
First release2024-05-28crates.io database dumpYes
Latest version0.0.7crates.io database dumpYes
Days the oldest outside issue waits for a reply0GitHub repositoryYes
Maintainer replies over 365 days0GitHub repositoryYes
Repository archivedfalseGitHub repositoryYes
Repository gonefalseGitHub repositoryYes
Release commit or manifest in the repotruecrates.io packageYes
Published docstruecrates.io database dumpYes
Latest release fails cargo checkNot measuredYes
Build check dateNot measuredYes
Build check toolchainNot measuredYes
SecurityUnpatched vulnerabilities: none
Security measurements
SignalValueSourceFetchedCounts
Unpatched vulnerabilities past the grace windownoneRustSec advisory databaseYes
RustSec unmaintained advisorynoneRustSec advisory databaseYes
Deprecation noticenonecrates.io database dumpYes
Deprecated requirementnonecrates.io database dumpYes
Distribution5 releases, 43 downloads over 30 days5 not measured
Distribution measurements
SignalValueSourceFetchedCounts
Releases5crates.io database dumpYes
Downloads over 30 days43crates.io database dumpYes
Binary downloads over the last 3 releasesNot measuredYes
Homebrew installs on request over 365 daysNot measuredYes
Repology repository familiesNot measuredYes
Docker pull growth over 90 daysNot measuredYes
Docker pulls at the growth baselineNot measuredYes
Every version a prereleasetruecrates.io database dumpYes
Every version 0.0.xtruecrates.io database dumpYes
Every version yankedfalsecrates.io database dumpYes
Crate deleted from crates.iofalsecrates.io database dumpYes
Repository254 stars, 26 forks, 2 contributors, 71 commits. Stars alone never qualify a project.
Repository measurements
SignalValueSourceFetchedCounts
GitHub stars254GitHub repositoryYes — one part of the repository route
GitHub forks26GitHub repositoryYes — one part of the repository route
Contributors with a GitHub account2GitHub contributorsYes — one part of the repository route
Commits on the default branch71GitHub repositoryNo
Repository's main crate left out of the entrynonecrates.io database dumpYes
Facts that never count
Facts that never count measurements
SignalValueSourceFetchedCounts
LicenseMITcrates.io database dumpNo
Runs on, from listed crates and their direct dependenciesMetalcrates.io database dumpNo
What shows each backendMetal: llm_devices dependency objc2-metal, lmcpp dependency objc2-metalcrates.io database dumpNo
Native code, from listed crates and their dependenciesBinds native code: nvml-wrapper-syscrates.io database dumpNo
Python bindings, from direct dependencies of listed cratesNo Python binding crate foundcrates.io database dumpNo
Crates that depend on a listed crate directly1crates.io database dumpNo

Corrections and review history

Report a correction

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.