litellm/litellm-rust/crates
devin-ai-integration[bot] 3106d9c573
feat(rust-bridge): add cache and secret migration foundations (#42328)
* docs(rust): plan Python interop foundation

* fix(rust): preserve Python settings coercion at the native boundary

* chore(rust): drop interop planning note

Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>

* feat(rust): resolve OCR provider secrets through an async SecretSource before transformation

Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>

* feat(rust): project the Python secret manager into the bridge and resolve OCR secrets through it

Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>

* refactor(rust): drop premium_user from the secret manager snapshot

Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>

* fix(rust-bridge): read the private key management globals once in the settings snapshot

Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>

* fix(rust): bound the bridge secret manager state cache to the active snapshot

Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>

* test(rust): inline coercion unit tests

* fix(rust): preserve Python secret manager bindings

* refactor(rust-bridge): let settings projectors own their contract specs

Each settings group now declares its SettingSpec rows next to the projector
that reads them, and the manifest test derives python_settings.json from those
tables instead of a hand-copied duplicate. Field carries (group, name) instead
of a dotted path, and coercion gains the dict-item reader plus the Redis
Boolean, certificate-requirement, non-empty string, and numeric adapters that
the cache configuration projection adopts next.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>

* refactor(rust-bridge): capture the secret manager binding in one settings read

The secret_manager accessor now carries the live client and settings objects,
so the bridge classifies the binding from a single snapshot instead of
re-reading litellm globals. The unreachable native arm and the service alias
go away, the binding-to-state mapping moves next to the snapshot, and the
Python callback precomputes its key_manager name.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>

* refactor(rust-bridge): execute typed settings field declarations

* refactor(rust-bridge): compare cache backends by identity behind one exact trait

cache-response gains an object-safe ExactResponseCache so every exact-match
backend sits behind one pointer; WriteBuffer flushes through it. The bridge's
NativeResponseCache shrinks from nine variants and fifteen per-backend
accessors to an exact service plus the three semantic backends, and facade
mismatch detection compares BackendIdentity values instead of matching on
each backend type. Request projections move next to NativeRequest.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>

* refactor(rust-bridge): drive both Python-embedded semantic caches through one execution

Redis-semantic and Valkey-semantic operations now share one SemanticExecution
body: await the Python embedder, seed the task-local vector, run the native
backend, repeat per batch entry. Valkey drops its with_embedder path in favor
of the same seeded embedder, and each backend keeps its own embedding-failure
policy. PythonEmbedder exposes one call shape. Redis-semantic thresholds are
compared at the backend's f32 width, which un-breaks the redis-stack parity
tests that a 0.8 facade threshold failed before this branch.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>

* wip

* feat(rust-bridge): complete response cache runtime surface

* fix(rust-bridge): preserve secret manager callback exceptions

* refactor(rust-bridge): unify route cache and secret rollout catalog

---------

Co-authored-by: Yujong Lee <yujong@berri.ai>
Co-authored-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
Co-authored-by: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-22 03:41:04 +00:00
..
auth refactor(rust): split auth facade from shared types 2026-09-20 15:45:38 -07:00
auth-aws feat(rust-bridge): add cache and secret migration foundations (#42328) 2026-09-22 03:41:04 +00:00
auth-azure feat(rust-bridge): add cache and secret migration foundations (#42328) 2026-09-22 03:41:04 +00:00
auth-gcp feat(rust-bridge): add cache and secret migration foundations (#42328) 2026-09-22 03:41:04 +00:00
auth-types feat(rust-bridge): add cache and secret migration foundations (#42328) 2026-09-22 03:41:04 +00:00
cache Merge origin/main into litellm_rust_qdrant_semantic_cache 2026-09-22 00:19:34 +00:00
cache-azure-blob chore: merge main into litellm_native_azure_blob_cache 2026-09-21 21:43:08 +00:00
cache-disk fix(cache-disk): absolutize store directory and stamp async expiry at write time 2026-09-21 22:06:55 +00:00
cache-gcs test(rust): add GCS native cache parity fixtures 2026-09-21 20:38:20 +00:00
cache-memory refactor(rust): align cache foundation with Python backends 2026-09-21 12:50:21 -07:00
cache-qdrant-semantic Merge origin/main into litellm_rust_qdrant_semantic_cache 2026-09-22 00:19:34 +00:00
cache-redis Merge remote-tracking branch 'origin/main' into litellm_native_redis_semantic_cache 2026-09-21 23:51:16 +00:00
cache-redis-semantic Merge remote-tracking branch 'origin/main' into litellm_native_redis_semantic_cache 2026-09-21 23:51:16 +00:00
cache-response feat(rust-bridge): add cache and secret migration foundations (#42328) 2026-09-22 03:41:04 +00:00
cache-s3 fix(rust): isolate explicit s3 keys from env tokens and treat 403 misses 2026-09-21 22:17:11 +00:00
cache-valkey-semantic fix(cache): honor controls and tenant metadata in valkey semantic bridge 2026-09-21 22:33:11 +00:00
callbacks-legacy-python style(rust): format renamed callback adapter 2026-09-19 23:08:37 +00:00
core feat(rust-bridge): add cache and secret migration foundations (#42328) 2026-09-22 03:41:04 +00:00
core-utils feat(rust-bridge): add cache and secret migration foundations (#42328) 2026-09-22 03:41:04 +00:00
framer fix(rust): pin aws-sdk-s3 without relaxing eventstream pins 2026-09-21 20:39:17 +00:00
host refactor(rust): move RouteMachine out of core into litellm-host next to the Machine trait 2026-09-18 15:45:08 -07:00
host-python fix(rust): preserve structured conversion semantics 2026-09-21 21:32:33 +00:00
http fix(rust): preserve HTTP host and TLS error context 2026-09-21 21:32:33 +00:00
llms feat(rust-bridge): add cache and secret migration foundations (#42328) 2026-09-22 03:41:04 +00:00
python-bridge feat(rust-bridge): add cache and secret migration foundations (#42328) 2026-09-22 03:41:04 +00:00
secrets feat(rust-bridge): add cache and secret migration foundations (#42328) 2026-09-22 03:41:04 +00:00
secrets-aws refactor(rust): define consistent secret lookup contracts 2026-09-20 19:08:25 -07:00
secrets-azure refactor(rust): build Azure Key Vault auth inputs directly and keep credential tests offline 2026-09-21 20:36:10 +00:00
secrets-cyberark fix(rust): coalesce CyberArk authentication 2026-09-21 20:36:59 +00:00
secrets-google refactor(rust): define consistent secret lookup contracts 2026-09-20 19:08:25 -07:00
secrets-hashicorp refactor(rust): trim vault cert login endpoint 2026-09-21 21:35:39 +00:00
secrets-types feat(rust-bridge): add cache and secret migration foundations (#42328) 2026-09-22 03:41:04 +00:00
token-counter fix(rust): validate tokenizer ranks and cover backend features 2026-09-20 15:13:59 -07:00
token-counter-fast fix(rust): validate tokenizer ranks and cover backend features 2026-09-20 15:13:59 -07:00
token-counter-huggingface fix(rust): validate tokenizer ranks and cover backend features 2026-09-20 15:13:59 -07:00
token-counter-tiktoken fix(rust): validate tokenizer ranks and cover backend features 2026-09-20 15:13:59 -07:00
types refactor(rust): add types and core-utils crates, unify the provider error 2026-09-17 22:01:14 -07:00