Crate kql_language_tools

Crate kql_language_tools 

Source
Expand description

KQL Language Tools

This crate provides Rust bindings to Microsoft’s Kusto.Language library via .NET AOT compilation. It enables KQL validation, completion, and syntax highlighting in Rust applications.

§Features

  • Syntax Validation: Check KQL queries for syntax errors
  • Schema Validation: Validate queries against a database schema
  • Completions: Get intellisense suggestions at cursor position
  • Classification: Get syntax highlighting spans

§Usage

use kql_language_tools::{KqlValidator, ValidationResult};

fn main() -> Result<(), kql_language_tools::Error> {
    let validator = KqlValidator::new()?;
    let result = validator.validate_syntax("SecurityEvent | take 10")?;

    if result.is_valid() {
        println!("Query is valid!");
    } else {
        for diagnostic in result.diagnostics() {
            println!("Error at {}:{}: {}", diagnostic.line, diagnostic.column, diagnostic.message);
        }
    }
    Ok(())
}

§Native Library

This crate requires a native library built from the .NET AOT project. The library can be:

  1. Built from source: cd dotnet && dotnet publish -c Release -r <rid>
  2. Downloaded from releases (if using bundled feature)
  3. Specified via kql_language_tools_PATH environment variable

Structs§

ClassificationResult
Result of syntax classification
ClassifiedSpan
A classified span for syntax highlighting
Column
Column definition
CompletionItem
A completion item
CompletionResult
Result of completion request
Diagnostic
A diagnostic message from validation
Function
User-defined function definition
KqlValidator
KQL query validator
Schema
Database schema for semantic validation
Table
Table definition
ValidationResult
Result of validating a KQL query

Enums§

ClassificationKind
Classification kind for syntax highlighting
CompletionKind
Kind of completion item
DiagnosticSeverity
Severity level of a diagnostic
Error
Errors that can occur when using KQL Language Tools

Constants§

VERSION
Library version

Functions§

is_available
Check if the native library is available
library_path
Get the path to the native library, if found

Type Aliases§

Result
Result type alias for this crate