Skip to main content
Crate layout | LLMFourteen workspace crates. Twelve are implemented, two are empty placeholders.LLMreferencellmreferencedeveloperoperatorbuild-agent-systemsdeploy-operate-productsreference

Crate layout

The workspace is publish = false at version 0.1.4. Nothing is on a registry. Package names start with b10x-; library names do not (b10x-llm-core is use llm_core). unsafe_code is forbidden workspace-wide, and Clippy runs all plus pedantic at deny.

Implemented​

CrateWhat it ownsPerforms I/O
b10x-llm-coreThe neutral turn: Model, requests, items, stream events, outcomes, observations, capabilities and typed failuresNo
b10x-llm-credentialsSecretRef, the injected SecretResolver, coordinated renewal, and optional file and keychain adaptersOnly the optional adapters
b10x-llm-httpBounded single-attempt HTTP and SSE transport: deadlines, no redirects, no automatic retryYes
b10x-llm-providersBindings: provider, account, endpoint, model and serving declaration, and request-time authentication headersOnly through the injected resolver
b10x-llm-routingllm.catalog/1 TOML catalogs, selection, explanation and ordered fallback over caller-supplied modelsNo; the models it runs do
b10x-llm-costPrice books, usage pricing, and the optional SQLite spending ledgerOnly the sqlite feature
b10x-llm-chatChat Completions projection, ChatClient and ingress codecChatClient
b10x-llm-messagesMessages projection, MessagesClient and ingress codecMessagesClient
b10x-llm-responsesResponses projection and ingress codecNo
b10x-llm-gatewayAuthenticated single-owner HTTP surface: probes and read-only route inventoryYes; no dependencies at all
b10x-llm-provisionThe hosting lifecycle contract and an in-process FakeProviderNo; no dependencies at all
b10x-llm-runpodRunpod vLLM adapter behind the hosting contract, with the in-process EmulatedRunpodNo production transport exists

Also in the workspace: checks/conformance, the b10x-llm-conformance ESS adapter and runner. It is verification tooling, not a library to depend on.

Which crate do I need?​

To…Depend on
Write a caller that works with any modelb10x-llm-core
Call a Chat Completions or vLLM endpointb10x-llm-chat, b10x-llm-http, b10x-llm-credentials, and a binding from b10x-llm-routing or b10x-llm-providers
Call a Messages endpointb10x-llm-messages and the same three
Build or read Responses bodies yourselfb10x-llm-responses
Declare routes in TOML and fall back between targetsb10x-llm-routing
Price usage, or limit spendb10x-llm-cost, with sqlite for the ledger

Optional features​

CrateFeatureAdds
b10x-llm-credentialsfileExplicit protected-file resolution (Linux)
b10x-llm-credentialskeychainAn injected keyring_core::CredentialStore
b10x-llm-credentialsnative-keychainNative store constructors; includes keychain
b10x-llm-costsqliteSqliteLedger, the durable single-owner spending journal

All are off by default, and the gate builds each crate with --no-default-features to prove it.

Placeholders​

CrateIntended boundaryState
b10x-llm-modalModal hosting adapterExports nothing
b10x-llm-cliOperator command line: validate, inspect, run one configurationExports nothing

Each exists so that the dependency seams are fixed before the code arrives. Not yet says what blocks them.

Dependency direction​

Core depends on no consumer. No crate here depends on an agent loop or on the gateway it is meant to replace; code ported from those projects is attributed as source, never kept as a dependency. Core will never depend on a secret-storage product either: a new storage backend is one more SecretResolver, and no route reference changes.