PHPackages                             kreuzberg/liter-llm - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [API Development](/categories/api)
4. /
5. kreuzberg/liter-llm

ActivePhp-ext[API Development](/categories/api)

kreuzberg/liter-llm
===================

Universal LLM API client with Rust-powered polyglot bindings.

1.3.0(2mo ago)2101916[1 issues](https://github.com/kreuzberg-dev/liter-llm/issues)[2 PRs](https://github.com/kreuzberg-dev/liter-llm/pulls)MITRustPHP ^8.2CI failing

Since Mar 27Pushed 1w ago1 watchersCompare

[ Source](https://github.com/kreuzberg-dev/liter-llm)[ Packagist](https://packagist.org/packages/kreuzberg/liter-llm)[ Docs](https://github.com/kreuzberg-dev/liter-llm)[ RSS](/packages/kreuzberg-liter-llm/feed)WikiDiscussions main Synced 3w ago

READMEChangelog (10)Dependencies (6)Versions (116)Used By (0)

liter-llm
=========

[](#liter-llm)

 [ ![Bindings](https://camo.githubusercontent.com/23b2c7873e51d39aafa797a5571f07783c505f083f976594e38024d10eb4e433/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f42696e64696e67732d616c65662532302544372539302d303037656336) ](https://github.com/kreuzberg-dev/alef) [ ![Rust](https://camo.githubusercontent.com/5e0e1e81af4e148d2fe6e84ea6baa20203dffd1614c2b3dd0a385765f2f94627/68747470733a2f2f696d672e736869656c64732e696f2f6372617465732f762f6c697465722d6c6c6d3f6c6162656c3d5275737426636f6c6f723d303037656336) ](https://crates.io/crates/liter-llm) [ ![Python](https://camo.githubusercontent.com/be6d36408f87ce8c92a07f44e5abac12b8ef0450ff30d20b90d03faf6124c729/68747470733a2f2f696d672e736869656c64732e696f2f707970692f762f6c697465722d6c6c6d3f6c6162656c3d507974686f6e26636f6c6f723d303037656336) ](https://pypi.org/project/liter-llm/) [ ![Node.js](https://camo.githubusercontent.com/4685c3293c807572a6735baa6a0737cc3c89c76501334d0ed6c0c58bbe7ca693/68747470733a2f2f696d672e736869656c64732e696f2f6e706d2f762f406b7265757a626572672f6c697465722d6c6c6d2d6e6f64653f6c6162656c3d4e6f64652e6a7326636f6c6f723d303037656336) ](https://www.npmjs.com/package/@kreuzberg/liter-llm-node) [ ![WASM](https://camo.githubusercontent.com/91c0d7511d5d53e5f0e411e3565eba8744949339ab9c5affe25a69f76eac093e/68747470733a2f2f696d672e736869656c64732e696f2f6e706d2f762f406b7265757a626572672f6c697465722d6c6c6d2d7761736d3f6c6162656c3d5741534d26636f6c6f723d303037656336) ](https://www.npmjs.com/package/@kreuzberg/liter-llm-wasm) [ ![Java](https://camo.githubusercontent.com/2eb4c6934df7e96e0d1641f6bd001f943bbe25b7b8ed4fca95eab750516f7b33/68747470733a2f2f696d672e736869656c64732e696f2f6d6176656e2d63656e7472616c2f762f6465762e6b7265757a626572672e6c697465726c6c6d2f6c697465722d6c6c6d3f6c6162656c3d4a61766126636f6c6f723d303037656336) ](https://central.sonatype.com/artifact/dev.kreuzberg.literllm/liter-llm) [ ![Go](https://camo.githubusercontent.com/7dba1f8124ca9d9dc112ba46d67f1d7e72fee01819fa88d8489ae890ce9cb178/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f762f7461672f6b7265757a626572672d6465762f6c697465722d6c6c6d3f6c6162656c3d476f26636f6c6f723d303037656336) ](https://github.com/kreuzberg-dev/liter-llm/tree/main/packages/go) [ ![C#](https://camo.githubusercontent.com/913d82218ab797d4b7d971fd9a312f7199f664cd87942d20efe3e4337b4eba58/68747470733a2f2f696d672e736869656c64732e696f2f6e756765742f762f4c697465724c6c6d3f6c6162656c3d4325323326636f6c6f723d303037656336) ](https://www.nuget.org/packages/LiterLlm) [ ![PHP](https://camo.githubusercontent.com/b70d2fffb7bfb1a30834e4feb1951aa17291f530dd6e3139ad97ab62b9d2830d/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f6b7265757a626572672d6465762f6c697465722d6c6c6d3f6c6162656c3d50485026636f6c6f723d303037656336) ](https://packagist.org/packages/kreuzberg-dev/liter-llm) [ ![Ruby](https://camo.githubusercontent.com/3330365b40db2e36aa119aff0895d65d1528145a77278f9e9805dbcefe606a5d/68747470733a2f2f696d672e736869656c64732e696f2f67656d2f762f6c697465725f6c6c6d3f6c6162656c3d5275627926636f6c6f723d303037656336) ](https://rubygems.org/gems/liter_llm) [ ![Elixir](https://camo.githubusercontent.com/d1a8f034af793514d50387310a93f989a23a3b4f5500ac6b46141b62878fe970/68747470733a2f2f696d672e736869656c64732e696f2f686578706d2f762f6c697465725f6c6c6d3f6c6162656c3d456c6978697226636f6c6f723d303037656336) ](https://hex.pm/packages/liter_llm) [ ![C FFI](https://camo.githubusercontent.com/41b9c58c3810775402965a3a7652da9832ea83391c1ff255081e5551900db8f2/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f432d4646492d303037656336) ](https://github.com/kreuzberg-dev/liter-llm/tree/main/crates/liter-llm-ffi) [ ![Docker](https://camo.githubusercontent.com/7d83f05278efa79f40cf820ee19ebf22bd638c94cb23b09bb354e7d1e3282496/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f446f636b65722d676863722e696f2d3030376563363f6c6f676f3d646f636b6572266c6f676f436f6c6f723d7768697465) ](https://github.com/kreuzberg-dev/liter-llm/pkgs/container/liter-llm) [ ![Homebrew](https://camo.githubusercontent.com/89adc3bced935477f7a304616be593e795f30dafef2d47ab950f5d1c4f0cd387/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f486f6d65627265772d3030376563363f6c6f676f3d686f6d6562726577266c6f676f436f6c6f723d7768697465) ](https://github.com/kreuzberg-dev/homebrew-tap/blob/main/Formula/liter-llm.rb) [ ![License](https://camo.githubusercontent.com/2d9625df144a4f5af0784d0669d17a624b41369a41ca568bf79f12d517315afc/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4c6963656e73652d4d49542d3030376563362e737667) ](https://github.com/kreuzberg-dev/liter-llm/blob/main/LICENSE) [ ![Docs](https://camo.githubusercontent.com/69a64c0e16180d52e993ac387ebb1928b2c6b0b70065b61af114942f787a188a/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f446f63732d6c697465722d2d6c6c6d2d303037656336) ](https://docs.liter-llm.kreuzberg.dev)

 [ ![kreuzberg.dev](https://private-user-images.githubusercontent.com/247880403/531720042-1b6c6ad7-3b6d-4171-b1c9-f2026cc9deb8.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3ODE3ODU0OTIsIm5iZiI6MTc4MTc4NTE5MiwicGF0aCI6Ii8yNDc4ODA0MDMvNTMxNzIwMDQyLTFiNmM2YWQ3LTNiNmQtNDE3MS1iMWM5LWYyMDI2Y2M5ZGViOC5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjYwNjE4JTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI2MDYxOFQxMjE5NTJaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT1lNWRjZGE0OGU5NzAxMzE3ZjQwMWI1Mzc0ZTIxOGE3NDdjMjMyODQyM2IzNzMwYWM5NWIwNTZjOWZiMWI0OWQ0JlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCZyZXNwb25zZS1jb250ZW50LXR5cGU9aW1hZ2UlMkZwbmcifQ.ZLLnb1FCBxm5WLPPTP3T0MQdaxmA1jZdDCdvS6S_2vQ) ](https://kreuzberg.dev)

 [ ![Join Discord](https://camo.githubusercontent.com/c3d59355bb5f7fc8224936ba897a06b87e5ba6f52bd08dfd2f7f78bf669c550d/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f446973636f72642d436861742d3030376563363f6c6f676f3d646973636f7264266c6f676f436f6c6f723d7768697465) ](https://discord.gg/xt9WY3GnKR)

**A lighter, faster, safer universal LLM API client** -- one Rust core, 14 native language bindings, 143 providers.

Why liter-llm?
--------------

[](#why-liter-llm)

A universal LLM API client, compiled from the ground up in Rust. No interpreter, no transitive dependency tree, no supply chain surface area. One binary, 14 native language bindings, 143 providers.

- **Compiled Rust core.** No `pip install` supply chain. No `.pth` auto-execution hooks. No runtime dependency tree to compromise. The kind of [supply chain attack that hit litellm](https://www.xda-developers.com/popular-python-library-backdoor-machine/) in 2026 is structurally impossible here.
- **Secrets stay secret.** API keys are wrapped in [`secrecy::SecretString`](https://docs.rs/secrecy/) -- zeroed on drop, redacted in logs, never serialized.
- **Polyglot from day one.** Python, TypeScript, Go, Java, Kotlin, C#, Ruby, PHP, Elixir, Dart, Swift, Zig, WebAssembly -- all thin wrappers around the same Rust core, plus a C/FFI surface for everything else. No reimplementation drift.
- **Observability built in.** Production-grade [OpenTelemetry](https://opentelemetry.io/) with GenAI semantic conventions -- not an afterthought callback system.
- **Composable middleware.** Rate limiting, caching, cost tracking, health checks, and fallback as [Tower](https://docs.rs/tower/) layers you stack like building blocks.

We give credit to [litellm](https://github.com/BerriAI/litellm) for proving the category -- our provider registry was bootstrapped from theirs. See [ATTRIBUTIONS.md](ATTRIBUTIONS.md).

Feature Comparison
------------------

[](#feature-comparison)

An honest look at where things stand. We're newer and leaner -- litellm has breadth we haven't matched yet, and we have depth they can't easily retrofit.

liter-llmlitellm**Language**Rust (compiled, memory-safe)Python**Bindings**14 native (Rust, Python, TS, Go, Java, Kotlin, C#, Ruby, PHP, Elixir, Dart, Swift, Zig, WASM) + C/FFIPython (+ OpenAI-compatible proxy)**Providers**143 (compiled at build time)100+ (runtime resolution)**Streaming**SSE + AWS EventStream binary protocolSSE + AWS EventStream**Observability**Built-in OpenTelemetry (GenAI semconv)40+ callback integrations**API key safety**`secrecy::SecretString` (zeroed, redacted)Plain strings**Middleware**Composable Tower stackBuilt-in callback system**Proxy / Gateway**Yes (22 OpenAI-compatible endpoints, 35MB Docker)Yes**Guardrails**--10+ integrations, 4 execution modes (advanced: enterprise)**Semantic caching**--Redis + Qdrant backends**Virtual key mgmt**Yes (per-key model restrictions, RPM/TPM, budgets)Yes (key rotation: enterprise)**Management API**Config-driven (REST admin API planned)Multi-tenant (teams, budgets, keys; tiers + reporting: enterprise)**Fine-tuning API**--Enterprise only**Load balancer**Fallback + round-robin via Tower routerFull router with strategies**Cost tracking**Embedded pricing + OTEL spansPer-key/team/model budgets**Rate limiting**Per-model RPM/TPM (Tower layer)Per-key/user/team/model**Caching**In-memory LRU + 40+ backends via OpenDAL (S3, Redis, GCS, DynamoDB, disk, ...)7 backends (Redis, S3, GCS, disk, Qdrant)**Tool calling**Parallel tools, structured output, JSON schemaFull support**Embeddings**YesYes**Batch API**YesYes**Audio / Speech**YesYes**Lifecycle hooks**onRequest/onResponse/onError per-clientCallback integrations**Budget enforcement**Per-model + global limits, hard/soft modesPer-key/team budgets**Health checks**Automatic provider probes + cooldown--**Custom providers**Runtime API + TOML config fileConfig + code-based**Config files**TOML with auto-discovery (`liter-llm.toml`)YAML proxy config**Search / OCR**12 search + 4 OCR providersYes**Image generation**YesYesKey Features
------------

[](#key-features)

- **143 providers** -- OpenAI, Anthropic, Google, AWS Bedrock, Groq, Mistral, Together AI, Fireworks, Perplexity, DeepSeek, Cohere, and [130+ more](schemas/providers.json)
- **14 native bindings** -- Rust, Python, TypeScript/Node.js, Go, Java, Kotlin, C#, Ruby, PHP, Elixir, Dart, Swift, Zig, WebAssembly (plus a C/FFI surface shared across them)
- **First-class streaming** -- SSE and AWS EventStream binary protocol with zero-copy buffers
- **TOML configuration** -- `liter-llm.toml` with auto-discovery, custom providers, cache backends, middleware config
- **OpenTelemetry** -- GenAI semantic conventions, cost tracking spans, HTTP-level tracing
- **Tower middleware** -- Rate limiting, caching (40+ OpenDAL backends), cost tracking, budget enforcement, health checks, cooldowns, hooks, fallback -- all composable
- **Search &amp; OCR** -- Web search across 12 providers, document OCR across 4 providers
- **Tool calling** -- Parallel tools, structured outputs, JSON schema validation
- **Embeddings** -- Dimension selection, base64 format, multi-provider support
- **Per-request routing** -- Automatic provider detection from model name prefix, custom provider registration at runtime
- **Schema-driven** -- Provider registry and API types compiled from JSON schemas, no runtime lookups
- **Local LLM support** — Run models locally with Ollama, LM Studio, vLLM, llama.cpp, LocalAI, and llamafile via OpenAI-compatible APIs

Proxy Server &amp; CLI
----------------------

[](#proxy-server--cli)

Drop-in replacement for litellm's proxy -- 22 OpenAI-compatible endpoints. Install the `liter-llm` CLI (which ships both the proxy server and the MCP tool server) one of three ways:

```
# Homebrew (macOS / Linux)
# Homebrew 6.0+ requires explicit trust for third-party taps.
brew trust kreuzberg-dev/tap
brew install kreuzberg-dev/tap/liter-llm

# Pre-built binary (Linux x86_64/arm64, macOS arm64, Windows x86_64)
curl -L https://github.com/kreuzberg-dev/liter-llm/releases/latest/download/liter-llm-${VERSION}-${TARGET}.tar.gz | tar xz

# Docker (35MB image)
docker run -p 4000:4000 -e LITER_LLM_MASTER_KEY=sk-your-key ghcr.io/kreuzberg-dev/liter-llm
```

Then call it like OpenAI:

```
curl http://localhost:4000/v1/chat/completions \
  -H "Authorization: Bearer sk-your-key" \
  -d '{"model": "openai/gpt-4o", "messages": [{"role": "user", "content": "Hello"}]}'
```

Or with a TOML config file:

```
# liter-llm-proxy.toml
[general]
master_key = "${LITER_LLM_MASTER_KEY}"

[[models]]
name = "gpt-4o"
provider_model = "openai/gpt-4o"
api_key = "${OPENAI_API_KEY}"

[[models]]
name = "claude-sonnet"
provider_model = "anthropic/claude-sonnet-4-20250514"
api_key = "${ANTHROPIC_API_KEY}"

[[keys]]
key = "sk-team-a"
models = ["gpt-4o"]
rpm = 100
```

**CLI:**

```
liter-llm api --config liter-llm-proxy.toml    # Start proxy server
liter-llm mcp --transport stdio                 # Start MCP tool server
```

**Features:** Model routing, virtual API keys, per-key rate limiting (RPM/TPM), cost tracking, budget enforcement, response caching, SSE streaming, OpenAPI 3.1 spec at `/openapi.json`, MCP server with 22 tools, graceful shutdown.

Architecture
------------

[](#architecture)

```
liter-llm/
├── crates/
│   ├── liter-llm/           # Rust core library
│   ├── liter-llm-py/        # Python (PyO3) core
│   ├── liter-llm-node/      # Node.js (NAPI-RS) core
│   ├── liter-llm-ffi/       # C-compatible FFI layer
│   ├── liter-llm-php/       # PHP (ext-php-rs) core
│   └── liter-llm-wasm/      # WebAssembly (wasm-bindgen) core
├── packages/
│   ├── python/               # Python package
│   ├── typescript/           # TypeScript/Node.js package
│   ├── go/                   # Go (cgo) module
│   ├── java/                 # Java (Panama FFI) package
│   ├── ruby/                 # Ruby (Magnus) gem
│   ├── elixir/               # Elixir (Rustler NIF) package
│   ├── csharp/               # .NET (P/Invoke) package
│   └── php/                  # PHP (Composer) package
└── schemas/                  # Provider registry and API schemas

```

Quick Start
-----------

[](#quick-start)

Install in your language of choice:

LanguageInstallPython`pip install liter-llm`Node.js`pnpm add @kreuzberg/liter-llm-node`Rust`cargo add liter-llm`Go`go get github.com/kreuzberg-dev/liter-llm/packages/go`Java`dev.kreuzberg.literllm:liter-llm` (Maven/Gradle)Ruby`gem install liter_llm`PHP`composer require kreuzberg-dev/liter-llm`C#`dotnet add package LiterLlm`Elixir`{:liter_llm, "~> 1.6.0"}` in mix.exsDart / Flutter`dart pub add liter_llm`SwiftSee [Swift package](packages/swift/README.md) -- `.binaryTarget` from release notesKotlin (Android)`dev.kreuzberg:liter-llm-android` (Maven Central)ZigSee [Zig package](packages/zig/README.md)WASM`pnpm add @kreuzberg/liter-llm-wasm`C/FFIBuild from source -- see [FFI crate](crates/liter-llm-ffi)### Usage

[](#usage)

```
import asyncio
import os

from liter_llm import create_client
from liter_llm._internal_bindings import ChatCompletionRequest

async def main():
    client = create_client(api_key=os.environ["OPENAI_API_KEY"])

    # Chat with any provider using the provider/model prefix
    request = ChatCompletionRequest.from_json(
        '{"model":"openai/gpt-4o","messages":[{"role":"user","content":"Hello!"}]}'
    )
    response = await client.chat(request)
    print(response.choices[0].message.content)

    # Switch providers by changing the prefix -- no other code changes
    request = ChatCompletionRequest.from_json(
        '{"model":"anthropic/claude-sonnet-4-20250514","messages":[{"role":"user","content":"Hello!"}]}'
    )
    response = await client.chat(request)
    print(response.choices[0].message.content)

asyncio.run(main())
```

Or use a `liter-llm.toml` config file instead of passing everything in code:

```
api_key = "sk-..."
timeout_secs = 120

[cache]
max_entries = 512
ttl_seconds = 600
backend = "redis"
backend_config = { connection_string = "redis://localhost:6379" }

[budget]
global_limit = 50.0
enforcement = "hard"

[[providers]]
name = "my-provider"
base_url = "https://my-llm.example.com/v1"
model_prefixes = ["my-provider/"]
```

The same API is available in all 14 languages -- see the language READMEs below for idiomatic examples.

Core API
--------

[](#core-api)

All bindings expose a unified `chat()` function:

LanguageUsageRust`client.chat(request).await`Python`await client.chat(request)`Node.js`await client.chat(request)`Go`client.Chat(request)`Java`client.chat(request)`Ruby`client.chat_async(request)`Elixir`LiterLlm.defaultclient_chat_async(client, request)`PHP`LiterLlm::createClient($apiKey)->chat($request)`C#`await client.ChatAsync(request)`WASM`await client.chat(request)`C FFI`literllm_default_client_chat(client, request)`Language READMEs
----------------

[](#language-readmes)

LanguageREADMEBindingPython[packages/python](packages/python/README.md)PyO3TypeScript / Node.js[crates/liter-llm-node](crates/liter-llm-node/README.md)NAPI-RSGo[packages/go](packages/go/README.md)cgoJava[packages/java](packages/java/README.md)Panama FFIRuby[packages/ruby](packages/ruby/README.md)MagnusElixir[packages/elixir](packages/elixir/README.md)Rustler NIFPHP[packages/php](packages/php/README.md)ext-php-rs.NET (C#)[packages/csharp](packages/csharp/README.md)P/InvokeWebAssembly[crates/liter-llm-wasm](crates/liter-llm-wasm/README.md)wasm-bindgenC/C++ (FFI)[crates/liter-llm-ffi](crates/liter-llm-ffi)C ABIPart of Kreuzberg.dev
---------------------

[](#part-of-kreuzbergdev)

- [Kreuzberg](https://github.com/kreuzberg-dev/kreuzberg) — document intelligence: text, tables, metadata from 91+ formats with optional OCR.
- [Kreuzberg Cloud](https://github.com/kreuzberg-dev/kreuzberg-cloud) — managed extraction API with SDKs, dashboards, and observability.
- [kreuzcrawl](https://github.com/kreuzberg-dev/kreuzcrawl) — web crawling and scraping with HTML→Markdown and headless-Chrome fallback.
- [html-to-markdown](https://github.com/kreuzberg-dev/html-to-markdown) — fast, lossless HTML→Markdown engine.
- [liter-llm](https://github.com/kreuzberg-dev/liter-llm) — universal LLM API client with native bindings for 14 languages and 143 providers.
- [tree-sitter-language-pack](https://github.com/kreuzberg-dev/tree-sitter-language-pack) — tree-sitter grammars and code-intelligence primitives.
- [alef](https://github.com/kreuzberg-dev/alef) — the polyglot binding generator that produces every per-language binding across the 5 polyglot repos.
- [Discord](https://discord.gg/xt9WY3GnKR) — community, roadmap, announcements.

Contributing
------------

[](#contributing)

Contributions are welcome! See [CONTRIBUTING.md](CONTRIBUTING.md) for guidelines.

Join our [Discord community](https://discord.gg/xt9WY3GnKR) for questions and discussion.

License
-------

[](#license)

MIT -- see [LICENSE](LICENSE) for details.

###  Health Score

53

—

FairBetter than 96% of packages

Maintenance94

Actively maintained with recent releases

Popularity27

Limited adoption so far

Community19

Small or concentrated contributor base

Maturity63

Established project with proven stability

 Bus Factor1

Top contributor holds 88.1% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~1 days

Total

63

Last Release

28d ago

PHP version history (2 changes)1.0.0-rc.1PHP ^8.2

v1.4.0-rc.31PHP &gt;=8.2

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/30733348?v=4)[Na'aman Hirschfeld](/maintainers/Goldziher)[@Goldziher](https://github.com/Goldziher)

---

Top Contributors

[![Goldziher](https://avatars.githubusercontent.com/u/30733348?v=4)](https://github.com/Goldziher "Goldziher (992 commits)")[![github-actions[bot]](https://avatars.githubusercontent.com/in/15368?v=4)](https://github.com/github-actions[bot] "github-actions[bot] (66 commits)")[![dependabot[bot]](https://avatars.githubusercontent.com/in/29110?v=4)](https://github.com/dependabot[bot] "dependabot[bot] (51 commits)")[![kreuzberg-dev-publisher[bot]](https://avatars.githubusercontent.com/u/241328462?v=4)](https://github.com/kreuzberg-dev-publisher[bot] "kreuzberg-dev-publisher[bot] (9 commits)")[![kh3rld](https://avatars.githubusercontent.com/u/171191586?v=4)](https://github.com/kh3rld "kh3rld (3 commits)")[![pratik-mahalle](https://avatars.githubusercontent.com/u/124587957?v=4)](https://github.com/pratik-mahalle "pratik-mahalle (2 commits)")[![v-tan](https://avatars.githubusercontent.com/u/22367932?v=4)](https://github.com/v-tan "v-tan (2 commits)")[![oschick](https://avatars.githubusercontent.com/u/12664356?v=4)](https://github.com/oschick "oschick (1 commits)")

---

Tags

anthropicapi-clientllmmachine-learningopenaipolyglotpythonruststreamingtypescriptperformancestreamingopenaiphp8llmanthropicllm clientrusttool-callingprovider-routing

###  Code Quality

TestsPHPUnit

Static AnalysisPHPStan

Code StylePHP CS Fixer

Type Coverage Yes

### Embed Badge

![Health badge](/badges/kreuzberg-liter-llm/health.svg)

```
[![Health](https://phpackages.com/badges/kreuzberg-liter-llm/health.svg)](https://phpackages.com/packages/kreuzberg-liter-llm)
```

###  Alternatives

[theodo-group/llphant

LLPhant is a library to help you build Generative AI applications.

1.7k371.6k6](/packages/theodo-group-llphant)[mozex/anthropic-laravel

Laravel integration for the Anthropic API: facade, config publishing, install command, testing fakes, messages, streaming, tool use, thinking, and batches.

72287.1k1](/packages/mozex-anthropic-laravel)[mozex/anthropic-php

PHP client for the Anthropic API: messages, streaming, tool use, thinking, web search, code execution, batches, and more.

47480.9k16](/packages/mozex-anthropic-php)[deepseek-php/deepseek-php-client

deepseek PHP client is a robust and community-driven PHP client library for seamless integration with the Deepseek API, offering efficient access to advanced AI and data processing capabilities.

46784.5k5](/packages/deepseek-php-deepseek-php-client)[alle-ai/anthropic-api-php

The go-to PHP library for the Anthropic API — Messages, streaming, tool use, vision, prompt caching, extended thinking, MCP, Files, Batches. Maintained by Alle-AI.

2625.3k](/packages/alle-ai-anthropic-api-php)[tommyknocker/pdo-database-class

Framework-agnostic PHP database library with unified API for MySQL, MariaDB, PostgreSQL, SQLite, MSSQL, and Oracle. Query Builder, caching, sharding, window functions, CTEs, JSON, migrations, ActiveRecord, CLI tools, AI-powered analysis. Zero external dependencies.

816.0k](/packages/tommyknocker-pdo-database-class)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
