refactor(rust): rename litellm-framing crate to litellm-framer (#44683)

Co-authored-by: Yujong Lee <yujong@berri.ai>
Co-authored-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
This commit is contained in:
devin-ai-integration[bot] 2026-10-05 22:32:00 +00:00 • committed by GitHub
parent a6b7f62760
commit 74ad633e53
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
12 changed files with 14 additions and 14 deletions

View file

@ -3711,7 +3711,7 @@ dependencies = [
"litellm-cache-memory",
"litellm-cache-response",
"litellm-core-utils",
"litellm-framing",
"litellm-framer",
"litellm-host",
"litellm-host-native",
"litellm-http",
@ -3796,7 +3796,7 @@ dependencies = [
]
[[package]]
name = "litellm-framing"
name = "litellm-framer"
version = "0.1.0"
dependencies = [
"aws-smithy-eventstream",
@ -4053,7 +4053,7 @@ dependencies = [
"litellm-auth-azure",
"litellm-auth-gcp",
"litellm-core-utils",
"litellm-framing",
"litellm-framer",
"litellm-host",
"litellm-http",
"litellm-llms-types",

View file

@ -28,7 +28,7 @@ litellm-host = { path = "crates/host" }
litellm-host-http = { path = "crates/host-http" }
litellm-host-native = { path = "crates/host-native" }
litellm-callbacks-legacy-python = { path = "crates/callbacks-legacy-python" }
litellm-framing = { path = "crates/framer" }
litellm-framer = { path = "crates/framer" }
litellm-auth = { path = "crates/auth" }
litellm-auth-types = { path = "crates/auth-types" }
litellm-auth-aws = { path = "crates/auth-aws" }

View file

@ -28,7 +28,7 @@ The workspace `Error definitions` rules shape each crate's error; this section d
A failure is declared once, by the lowest crate that raises it. Every crate above nests that error unchanged (`#[error(transparent)] Auth(#[from] litellm_auth::Error)`) or maps it once at its boundary, as `src/error.rs` does for `litellm_llms::Error`. `RouteError` collects route failures and never re-declares a variant a lower crate raises
Scope follows the concept, not the first caller. An error type under `litellm-llms`'s `<provider>/` is private to that provider: no other provider and nothing in `base_llm` may import it. A failure two providers or two routes can hit, such as wire framing, stream event decoding, or a malformed provider response, belongs to the crate that owns the concept: `litellm-framing` for framing, `litellm_llms::Error` for the transformation layer
Scope follows the concept, not the first caller. An error type under `litellm-llms`'s `<provider>/` is private to that provider: no other provider and nothing in `base_llm` may import it. A failure two providers or two routes can hit, such as wire framing, stream event decoding, or a malformed provider response, belongs to the crate that owns the concept: `litellm-framer` for framing, `litellm_llms::Error` for the transformation layer
`litellm_llms::Error` (`crates/llms/src/error.rs`) is the one transformation error for every provider and API. `base_llm/ocr/error.rs` is the recorded exception until OCR folds into it

View file

@ -8,7 +8,7 @@ repository.workspace = true
[dependencies]
litellm-cache.workspace = true
litellm-cache-response.workspace = true
litellm-framing.workspace = true
litellm-framer.workspace = true
tokio-util = { version = "0.7", features = ["codec"] }
litellm-secrets.workspace = true
litellm-llms-types.workspace = true

View file

@ -341,7 +341,7 @@ fn now() -> Duration {
fn successful_stream(text: &str, terminal: &str) -> bool {
let mut pending = BytesMut::from(text.as_bytes());
let mut codec = litellm_framing::sse::SseCodec::default();
let mut codec = litellm_framer::sse::SseCodec::default();
let mut complete = false;
loop {
let event = match codec.decode(&mut pending) {

View file

@ -1,5 +1,5 @@
[package]
name = "litellm-framing"
name = "litellm-framer"
version = "0.1.0"
edition.workspace = true
license.workspace = true

View file

@ -6,7 +6,7 @@ use std::io;
use bytes::Bytes;
use futures_util::{StreamExt, TryStreamExt, stream};
use litellm_framing::{
use litellm_framer::{
EventStreamError,
aws_event_stream::{AwsEventStreamCodec, Header, HeaderValue, Message},
frames,

View file

@ -4,7 +4,7 @@ mod support;
use bytes::Bytes;
use futures_util::{StreamExt, TryStreamExt};
use litellm_framing::{
use litellm_framer::{
EventStreamError, SseError,
aws_event_stream::{AwsEventStreamCodec, Message},
frames,

View file

@ -6,7 +6,7 @@ use std::io;
use bytes::Bytes;
use futures_util::{StreamExt, TryStreamExt, stream};
use litellm_framing::{
use litellm_framer::{
SseError, frames,
sse::{SseCodec, SseEvent},
};

View file

@ -16,7 +16,7 @@ litellm-auth-aws.workspace = true
litellm-auth-azure.workspace = true
litellm-auth-gcp.workspace = true
litellm-host.workspace = true
litellm-framing.workspace = true
litellm-framer.workspace = true
litellm-http.workspace = true
litellm-secrets.workspace = true
litellm-python-compat.workspace = true

View file

@ -1,6 +1,6 @@
use bytes::Bytes;
use futures_util::{StreamExt, stream::BoxStream};
use litellm_framing::{frames, sse::SseCodec};
use litellm_framer::{frames, sse::SseCodec};
use litellm_llms_types::formats::messages::streaming::MessagesStreamEvent;
use crate::Error;

View file

@ -1,7 +1,7 @@
use base64::Engine;
use bytes::Buf;
use futures_util::{Stream, StreamExt};
use litellm_framing::{
use litellm_framer::{
aws_event_stream::{AwsEventStreamCodec, Message},
frames,
};