FazBrowse GitHub Viewer | Trending |
URL:
| Home
Tools: [Download Repo ZIP]   [Original HTTPS Page]

gproxy/crates/gproxy-transform at main · LeenHawk/gproxy · GitHub

Latest commit

 

History

History

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 
 
 

README.md

gproxy-transform

Pure, synchronous pairwise protocol transforms for OpenAI, Anthropic Claude, and Google Gemini. The crate contains no HTTP client, runtime, routing policy, or server framework.

Typed pairs

Call typed pairs directly when protocol models are already available:

use gproxy_transform::protocol::openai;
use gproxy_transform::typed::{RequestContext, generate_content};

fn convert(
    request: openai::ChatCompletionRequest,
) -> Result<gproxy_transform::protocol::claude::CreateMessageRequestBody,
            gproxy_transform::TransformError> {
    generate_content::openai_chat_to_claude_messages::request(
        request,
        RequestContext::new("claude-sonnet-4-6", false),
    )
}

Every content pair also exposes a stateful typed stream converter under typed::stream. One source event may produce zero or many target events.

Bytes and framing

request, response, ResponseStream, and ResponseCollector are the dynamic Bytes facade used by GPROXY. They parse once, call the same typed core, and serialize once. synthesize_response turns a complete response into a strict SSE, Gemini JSON-array, or Responses WebSocket stream.

Transforms are direct pairs with no intermediate representation. Same-wire traffic bypasses semantic conversion. Unknown source extensions never leak into another provider's wire shape.

License

Licensed under the MIT License.


Back | FazBrowse Home | New Git URL