Skip to main content

Crate rskit

Crate rskit 

Source
Expand description

rskit — production Rust toolkit.

This crate is a pure facade that re-exports rskit-* sub-crates from a single namespace. It contains no implementation logic.

Always-on foundation crates:

ModuleExtra crate
utilrskit-util (domain-free foundation utilities)
errorsrskit-errors (error types and result aliases)
fsrskit-fs (local filesystem primitives)
configrskit-config (adapter-oriented config loading)
loggingrskit-logging (tracing subscriber setup)
resiliencerskit-resilience (retry, timeout, circuit breaker)
providerrskit-provider (provider traits and tower bridge)
streamrskit-stream (broadcaster, sources, tasks, stream operators)
bootstraprskit-bootstrap (app lifecycle orchestration)
componentrskit-component (component lifecycle primitives)
workerrskit-worker (worker pools and typed events)
validationrskit-validation (field-level validation)

Optional feature flags control higher-level modules and adapters:

FeatureExtra crate
serverrskit-server (service-facing server abstractions)
grpcrskit-grpc (aligned gRPC client/server transport)
encryptionrskit-encryption (encryption helpers)
httprskit-http (framework-neutral HTTP abstractions)
httpclientrskit-httpclient (bounded HTTP client)
authrskit-auth (JWT, OIDC, password)
auth-jwtJWT support in rskit-auth
auth-oidcOIDC support in rskit-auth
dirskit-di (dependency injection)
databaserskit-database (core + memory backend)
database-sqliteSQLite database backend
cacherskit-cache (core + memory adapter)
cache-fsFilesystem cache adapter in rskit-cache
cache-redisRedis cache adapter
messagingrskit-messaging (core abstractions + in-memory backend)
messaging-kafkaKafka messaging adapter
messaging-natsNATS messaging adapter
messaging-rabbitmqRabbitMQ messaging adapter
vectorstorerskit-vectorstore (core + memory backend)
vectorstore-qdrantQdrant vector store adapter
observabilityrskit-observability (OpenTelemetry)
authzrskit-authz (RBAC/ABAC)
securityrskit-security (TLS/security configuration)
discoveryrskit-discovery (service discovery)
sserskit-sse (Server-Sent Events)
dagrskit-dag (DAG orchestration)
chainrskit-chain (sequential execution)
processrskit-process (subprocess execution)
fs-watchRecursive filesystem change watching (rskit-fs::watch, FsWatcher)
statefulrskit-stateful (stateful accumulators)
versionrskit-version (build metadata)
schemarskit-schema (JSON Schema generation/validation)
hookrskit-hook (typed event hooks)
genairskit-ai (shared GenAI vocabulary)
llmrskit-llm (LLM providers)
llm-openaiOpenAI LLM adapter
llm-anthropicAnthropic LLM adapter
llm-ollamaOllama LLM adapter
llm-geminiGemini LLM adapter
embeddingrskit-embedding (embedding abstractions)
inferencerskit-inference (model-serving abstractions)
inference-tritonTriton inference adapter
inference-vllmvLLM inference adapter
inference-tgiHugging Face TGI inference adapter
promptPrompt schema helpers from rskit-ai
skillrskit-skill (skill manifests and registries)
toolrskit-tool (tool contracts)
agentrskit-agent (agentic turn-loop engine)
mcprskit-mcp (tool registry to Model Context Protocol bridge)
storagerskit-storage (File I/O, storage)
mediarskit-media (media types, pipeline)
media-ffmpegrskit-media-ffmpeg (FFmpeg backend)
media-imagerskit-media-image (image processing)
media-audiorskit-media-audio (pure Rust audio analysis)
media-fullFFmpeg + image + audio backends
storage-s3S3 storage backend
storage-gcsGCS storage backend
storage-supabaseSupabase storage backend
clirskit-cli (CLI helpers)
gitrskit-git (Git automation)
datasetrskit-dataset (dataset collection)
benchrskit-bench (ML benchmarking)
workloadrskit-workload (workload orchestration)
fullall features

Test helpers live in rskit-testutil and should be added directly as a dev-dependency; they are intentionally not part of this production facade.

§Quick start

[dependencies]
rskit-suite = { version = "0.2.0-alpha.2", features = ["full"] }

Or enable only the optional modules you need — for example recursive, debounced filesystem-tree change watching:

[dependencies]
rskit-suite = { version = "0.2.0-alpha.2", features = ["fs-watch"] }

Re-exports§

pub use rskit_util as util;
pub use rskit_errors as errors;
pub use rskit_fs as fs;
pub use rskit_config as config;
pub use rskit_logging as logging;
pub use rskit_resilience as resilience;
pub use rskit_provider as provider;
pub use rskit_stream as stream;
pub use rskit_bootstrap as bootstrap;
pub use rskit_component as component;
pub use rskit_worker as worker;
pub use rskit_validation as validation;
pub use rskit_chain as chain;
pub use rskit_process as process;
pub use rskit_stateful as stateful;
pub use rskit_version as version;
pub use rskit_schema as schema;
pub use rskit_hook as hook;
pub use rskit_server as server;
pub use rskit_grpc as grpc;
pub use rskit_encryption as encryption;
pub use rskit_http as http;
pub use rskit_httpclient as httpclient;
pub use rskit_auth as auth;
pub use rskit_di as di;
pub use rskit_database as database;
pub use rskit_database_sqlite as database_sqlite;
pub use rskit_cache as cache;
pub use rskit_cache_redis as cache_redis;
pub use rskit_messaging as messaging;
pub use rskit_messaging_kafka as messaging_kafka;
pub use rskit_messaging_nats as messaging_nats;
pub use rskit_messaging_rabbitmq as messaging_rabbitmq;
pub use rskit_observability as observability;
pub use rskit_authz as authz;
pub use rskit_security as security;
pub use rskit_discovery as discovery;
pub use rskit_sse as sse;
pub use rskit_dag as dag;
pub use rskit_ai as genai;
pub use rskit_llm as llm;
pub use rskit_llm_openai as llm_openai;
pub use rskit_llm_anthropic as llm_anthropic;
pub use rskit_llm_ollama as llm_ollama;
pub use rskit_llm_gemini as llm_gemini;
pub use rskit_embedding as embedding;
pub use rskit_inference as inference;
pub use rskit_inference_triton as inference_triton;
pub use rskit_inference_vllm as inference_vllm;
pub use rskit_inference_tgi as inference_tgi;
pub use rskit_skill as skill;
pub use rskit_tool as tool;
pub use rskit_agent as agent;
pub use rskit_mcp as mcp;
pub use rskit_storage as storage;
pub use rskit_storage_s3 as storage_s3;
pub use rskit_storage_gcs as storage_gcs;
pub use rskit_storage_supabase as storage_supabase;
pub use rskit_vectorstore as vectorstore;
pub use rskit_vectorstore_qdrant as vectorstore_qdrant;
pub use rskit_media as media;
pub use rskit_media_ffmpeg as media_ffmpeg;
pub use rskit_media_image as media_image;
pub use rskit_media_audio as media_audio;
pub use rskit_cli as cli;
pub use rskit_git as git;
pub use rskit_dataset as dataset;
pub use rskit_bench as bench;
pub use rskit_workload as workload;

Modules§

prompt
Prompt templates and output schema contracts. Prompt templates, registries, and renderers. Prompt templates, registries, and render helpers.

Structs§

App
Application orchestrator with typestate lifecycle.
AppBuilder
Builder for App.
AppError
Application-level structured error.
CircuitBreaker
Asynchronous circuit breaker.
ConfigLoader
Loads typed configuration from ordered source adapters.
Health
Health report from a single component.
LazyComponent
Wraps a component factory so construction is deferred until start().
LoggingGuard
Opaque guard — drop to restore the previous tracing subscriber.
Pool
A bounded async worker pool.
PoolConfig
Configuration for a Pool.
RateLimiter
Token-bucket rate limiter backed by governor.
Registry
Ordered component registry.
RegistryConfig
Configuration for the component registry.
RetryPolicy
Retry policy with configurable backoff and retry predicate.
ServiceConfig
Base service configuration — embed this in every application config.
StopResult
Detailed result for an attempted component stop.
TaskHandle
Handle returned to a caller after submitting a task to the pool.

Enums§

ErrorCode
Machine-readable error code.
HealthStatus
Liveness state of a component.
State
Lifecycle state tracked for each registered component.

Traits§

AppConfig
Trait that every application config struct must implement.
Component
Lifecycle-managed infrastructure component.
Handler
Core trait for worker task handlers.
Provider
Stable identity for a provider.
RequestResponse
Unary request → single response (HTTP POST, gRPC unary, DB query).
Sink
Write-only (Kafka publish, webhook, S3 put, log sink).

Functions§

init_logging
Initialize structured logging from a LoggingConfig with default masking.
init_logging_env
Initialize logging from RUST_LOG only (no config struct needed).

Type Aliases§

AppResult
Convenience alias used throughout rskit crates.