Crate coderlib

Source
Expand description

§CoderLib

A Rust library for LLM-powered code generation, ported from OpenCode.

CoderLib provides a comprehensive framework for integrating AI coding assistance into text editors and development tools. It supports multiple LLM providers, tool execution, session management, and seamless integration with host applications.

§Features

  • Multiple LLM Providers: OpenAI, Anthropic, Google Gemini, AWS Bedrock, and more
  • Tool System: File operations, shell commands, code analysis
  • Session Management: Persistent conversation sessions with context
  • Streaming Responses: Real-time AI response streaming
  • Permission System: Secure tool execution with user approval
  • Host Integration: Clean API for editor integration

§Quick Start

use coderlib::{CoderLib, CoderLibConfig, CodeRequest};

#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
    let config = CoderLibConfig::default();
    let coder_lib = CoderLib::new(config).await?;

    let request = CodeRequest {
        session_id: "example".to_string(),
        content: "Write a hello world function".to_string(),
        ..Default::default()
    };

    let mut response_stream = coder_lib.process_request(request).await?;
    // Handle streaming response...

    Ok(())
}

Re-exports§

pub use core::CoderLib;
pub use core::CoderLibConfig;
pub use core::CodeRequest;
pub use core::CodeResponse;
pub use llm::Provider;
pub use llm::ProviderEvent;
pub use llm::ProviderResponse;
pub use llm::Model;
pub use tools::Tool;
pub use tools::ToolResponse;
pub use tools::ToolError;
pub use storage::Storage;
pub use storage::Message;
pub use core::session::Session;
pub use integration::HostIntegration;
pub use integration::CoderEvent;
pub use mcp::McpConfig;
pub use permission::Permission;
pub use permission::PermissionService;
pub use permission::PermissionRequest;
pub use permission::PermissionResponse;
pub use core::CoderLibError;

Modules§

commands
Custom Commands System
core
Core functionality for CoderLib
integration
Integration module for CoderLib
llm
LLM integration module for CoderLib
lsp
Language Server Protocol (LSP) integration for CoderLib
mcp
Model Context Protocol (MCP) support for CoderLib
permission
Permission System for CoderLib
storage
Storage module for CoderLib
summarization
Auto-Summarization System
tools
Tools module for CoderLib
utils
Utility functions and helpers for CoderLib

Macros§

require_permission
Macro for requesting permissions in tools

Type Aliases§

Result
Result type alias for CoderLib operations