Skip to main content

Crate rune_chain_core

Crate rune_chain_core 

Source
Expand description

Core traits and types for the rune-chain LLM orchestration framework.

rune-chain-core is the foundation layer of the rune-chain-* crate family — a modern, async-first Rust port of the LangChain concept. It defines the shared vocabulary (types, traits, error variants) that every other rune-chain-* crate depends on, without pulling in any LLM provider SDK itself.

§Features

§Quick Start

use rune_chain_core::{Chain, ChainError, GenerateResult, PromptArgs, prompt_args};
use async_trait::async_trait;

struct EchoChain;

#[async_trait]
impl Chain for EchoChain {
    async fn call(&self, input: PromptArgs) -> Result<GenerateResult, ChainError> {
        let text = input
            .get("input")
            .and_then(|v| v.as_str())
            .unwrap_or("")
            .to_string();
        Ok(GenerateResult::from_text(text))
    }
}

let chain = EchoChain;
let result = chain.invoke(prompt_args! { "input" => "hello" }).await.unwrap();
assert_eq!(result, "hello");

Macros§

prompt_args
Build a PromptArgs map from key-value pairs.

Structs§

FunctionDefinition
JSON-Schema-based description of a tool the LLM may call.
GenerateResult
The result of a single LLM generation call.
Message
A single turn in a conversation, carrying a Role, rich MessageContent, and optional tool-call metadata for function-calling workflows.
StreamData
A single chunk delivered by a streaming LLM response.
TokenUsage
Token consumption reported by a single LLM generation call.
ToolCall
A single tool/function call requested by the model in a generation response.

Enums§

ChainError
Errors produced by a Chain during execution.
ContentPart
A single part within a multi-part message content.
ImageData
Raw image payload that can be embedded in a message.
LlmError
Errors produced by an Llm during generation.
MessageContent
The body of a Message: either plain text or a list of rich content parts.
Role
The originator of a Message in a conversation turn.
ToolChoice
How the model should choose whether to call a tool.
ToolError
Errors produced by a Tool during execution.

Traits§

Chain
A composable unit of LLM work that maps PromptArgs to a GenerateResult.
Llm
An async interface to a large language model.
Memory
Persistent conversation history attached to a Chain.
Tool
An LLM-callable tool that an agent can invoke during its reasoning loop.

Type Aliases§

PromptArgs
Key-value map of variables substituted into prompt templates.