systemprompt-template-provider 0.14.2

Template provider traits for systemprompt.io AI governance infrastructure. Config-as-code foundation for the AI governance template registry.
Documentation

Production infrastructure for AI agents

Website · Documentation · Guides · Core · Template · Discord


systemprompt-template-provider

Crates.io Docs.rs License: BSL-1.1

Template provider traits for systemprompt.io AI governance infrastructure. Config-as-code foundation for the AI governance template registry. Includes an embedded loader for compile-time templates and a filesystem loader for runtime template discovery.

Layer: Shared — foundational types/traits with no dependencies on other layers. Part of the systemprompt-core workspace.

Overview

Provides template loading abstractions and dynamic type aliases for template-related providers. Includes an embedded loader for compile-time templates and a filesystem loader for runtime template discovery. Re-exports provider contracts for template, component, and page data handling.

Architecture

Type Description
TemplateProvider Top-level provider trait for the rendering pipeline
TemplateLoader Trait for loading templates by name
TemplateDataExtender Trait for augmenting template render context
ComponentRenderer Trait for rendering reusable components
PageDataProvider Trait for supplying page-level data
PagePrerenderer Trait for static page prerendering (re-exported from systemprompt-provider-contracts)
EmbeddedLoader Unit struct loader for compile-time embedded templates
FileSystemLoader Async tokio::fs-backed loader with base-path sandboxing (requires tokio feature)
TemplateLoaderError / TemplateLoaderResult Error type and result alias for loader operations
DynTemplateProvider Arc<dyn TemplateProvider> type alias
DynTemplateLoader Arc<dyn TemplateLoader> type alias
DynTemplateDataExtender Arc<dyn TemplateDataExtender> type alias
DynComponentRenderer Arc<dyn ComponentRenderer> type alias
DynPageDataProvider Arc<dyn PageDataProvider> type alias
DynPagePrerenderer Arc<dyn PagePrerenderer> type alias

Usage

[dependencies]
systemprompt-template-provider = "0.14.0"
use systemprompt_template_provider::{
    TemplateLoader, TemplateLoaderResult, EmbeddedLoader,
    DynTemplateProvider, DynTemplateLoader,
};
use async_trait::async_trait;

let loader: DynTemplateLoader = std::sync::Arc::new(EmbeddedLoader);
use std::sync::Arc;
use systemprompt_template_provider::{DynTemplateProvider, TemplateProvider};

fn register(provider: Arc<dyn TemplateProvider>) -> DynTemplateProvider {
    // Hand the provider to the runtime as a type-erased Arc.
    provider
}

Feature Flags

Feature Default Description
tokio No Enables FileSystemLoader for async file-based template loading

Dependencies

Internal

Crate Purpose
systemprompt-provider-contracts Provider trait definitions

External

Crate Purpose
async-trait Async trait support
thiserror Derive macros for loader error types
tokio Async filesystem operations (optional, fs + sync)

License

BSL-1.1 (Business Source License). Source-available for evaluation, testing, and non-production use. Production use requires a commercial license. Each version converts to Apache 2.0 four years after publication. See LICENSE.


systemprompt.io · Documentation · Guides · Live Demo · Template · crates.io · docs.rs · Discord

Shared layer · Own how your organization uses AI.