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