Skip to main content

Crate niwa_core

Crate niwa_core 

Source
Expand description

§niwa-core

Core library for NIWA Expertise Graph management.

§Features

  • SQLite-based Expertise storage with versioning
  • Full-text search with FTS5
  • Dependency graph (Relations)
  • Type-safe operations with llm-toolkit Expertise types

§Example

use niwa_core::{Database, Expertise, Scope, SearchOptions, StorageOperations};

#[tokio::main]
async fn main() -> anyhow::Result<()> {
    // Initialize database
    let db = Database::open("~/.niwa/graph.db").await?;

    // Create expertise
    let mut expertise = Expertise::new("rust-expert", "1.0.0");
    expertise.metadata.scope = Scope::Personal;

    // Store
    db.storage().create(expertise).await?;

    // Query
    let results = db.query().search("rust error handling", SearchOptions::default()).await?;

    Ok(())
}

Re-exports§

pub use db::Database;
pub use error::Error;
pub use error::Result;
pub use graph::GraphOperations;
pub use graph::RelationType;
pub use query::QueryBuilder;
pub use query::SearchOptions;
pub use storage::Storage;
pub use storage::StorageOperations;
pub use types::Expertise;
pub use types::ExpertiseMetadata;
pub use types::Scope;

Modules§

db
Database connection management
error
Error types for niwa-core
graph
Graph operations for managing Expertise relations
query
Query and search operations
storage
Storage operations for Expertise CRUD
types
Type definitions and re-exports from llm-toolkit

Constants§

VERSION
Library version