shimmy 0.1.1

5MB Ollama alternative with dynamic port management and zero-friction LoRA serving. 95%+ test coverage, <100ms startup.
Documentation
// RustChain compatibility layer
#![allow(dead_code)]

use axum::{http::StatusCode, response::Json};
use serde::{Deserialize, Serialize};

#[derive(Deserialize)]
pub struct RustChainRequest {
    pub prompt: String,
    pub model: Option<String>,
    pub max_tokens: Option<u32>,
    pub temperature: Option<f32>,
}

#[derive(Serialize)]
pub struct RustChainResponse {
    pub text: String,
    pub tokens_used: Option<u32>,
}

pub async fn rustchain_generate(
    Json(request): Json<RustChainRequest>,
) -> Result<Json<RustChainResponse>, StatusCode> {
    // Convert to shimmy format and generate
    let _shimmy_request = crate::api::GenerateRequest {
        model: request.model.unwrap_or_default(),
        prompt: Some(request.prompt),
        messages: None,
        system: None,
        max_tokens: request.max_tokens.map(|t| t as usize),
        temperature: request.temperature,
        top_p: None,
        top_k: None,
        stream: Some(false),
    };

    // For now, return a placeholder response since we don't have the full server context
    // This would need proper integration with the AppState and engine
    Ok(Json(RustChainResponse {
        text: "RustChain compatibility endpoint - integration needed".to_string(),
        tokens_used: Some(0),
    }))
}