| Crates.io | oak-lsp |
| lib.rs | oak-lsp |
| version | 0.0.1 |
| created_at | 2026-01-23 02:30:20.644352+00 |
| updated_at | 2026-01-23 02:30:20.644352+00 |
| description | Lightweight LSP types for the Oak framework |
| homepage | https://github.com/ygg-lang/oaks |
| repository | https://github.com/ygg-lang/oaks |
| max_upload_size | |
| id | 2063206 |
| size | 96,880 |
A high-performance Language Server Protocol (LSP) framework built specifically for Oak-based languages.
Oak LSP provides the glue between Oak's powerful parsing/analysis tools and the Language Server Protocol. It offers a structured way to build language servers, handling common tasks like VFS management, request dispatching, and type conversion between Oak and LSP standards.
LanguageService trait for implementing language features.tokio for high-concurrency request handling.Defining a simple language service:
use oak_lsp::service::LanguageService;
use oak_vfs::MemoryVfs;
use my_language::MyLanguage;
pub struct MyService {
vfs: MemoryVfs,
}
impl LanguageService for MyService {
type Lang = MyLanguage;
type Vfs = MemoryVfs;
fn vfs(&self) -> &Self::Vfs {
&self.vfs
}
// Override methods like hover, folding_ranges, etc.
}
use oak_lsp::LanguageService;
use std::sync::Arc;
async fn start_server<S: LanguageService>(service: Arc<S>) {
// Oak LSP provides handlers that can be plugged into web frameworks or stdio
// e.g., using axum or actix-web
}
Oak LSP provides a unified interface for:
Arc and efficient VFS caching.Oak LSP is the foundation for:
Contributions are welcome! Please feel free to submit issues or pull requests.
Oak LSP - Powering the next generation of language tools 🚀