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