Skip to main content

Crate jacs

Crate jacs 

Source
Expand description

JACS – JSON AI Communication Standard.

Cryptographic signatures for AI agent outputs. Create agent identities, sign documents, verify provenance, and manage trust – all locally, with no server required.

§Getting Started

Most users should start with the simple module, which provides the SimpleAgent facade – a clean API for the most common operations:

use jacs::simple::SimpleAgent;

let (agent, info) = SimpleAgent::create("my-agent", None, None)?;
let signed = agent.sign_message(&serde_json::json!({"hello": "world"}))?;
let result = agent.verify(&signed.raw)?;
assert!(result.valid);

§Architecture

simple/           Narrow public API (SimpleAgent facade)
document/         DocumentService trait -- unified CRUD, versioning, search
search/           SearchProvider + EmbeddingProvider traits
storage/          Storage backends (filesystem, SQLite, memory, S3)
agent/            Agent struct, document traits, security
crypt/            Signing, verification, key management
schema/           JSON schema validation
trust/            Trust store and trust levels
dns/              DNS-based key verification

§Feature Flags

FeatureDefaultDescription
sqliteYesSync SQLite backend via rusqlite
sqlx-sqliteNoAsync SQLite backend via sqlx + tokio
a2aNoAgent-to-Agent protocol
agreementsNoMulti-agent agreement signing
attestationNoEvidence-based attestation
otlp-logsNoOpenTelemetry log export
otlp-metricsNoOpenTelemetry metrics export
otlp-tracingNoOpenTelemetry distributed tracing

Re-exports§

pub use error::JacsError;
pub use health::ComponentHealth;
pub use health::HealthCheckResult;
pub use health::HealthStatus;
pub use health::health_check;
pub use health::network_health_check;
pub use audit::AuditOptions;
pub use audit::AuditResult;
pub use audit::AuditRisk;
pub use audit::RiskCategory;
pub use audit::RiskSeverity;
pub use audit::audit;
pub use audit::format_audit_report;
pub use audit::print_audit_report;
pub use shutdown::ShutdownGuard;
pub use shutdown::install_signal_handler;
pub use shutdown::is_shutdown_requested;
pub use shutdown::shutdown;
pub use rate_limit::RateLimitConfig;
pub use rate_limit::RateLimiter;
pub use observability::LogConfig;
pub use observability::LogDestination;
pub use observability::MetricsConfig;
pub use observability::MetricsDestination;
pub use observability::ObservabilityConfig;
pub use observability::ResourceConfig;
pub use observability::SamplingConfig;
pub use observability::TracingConfig;
pub use observability::TracingDestination;
pub use observability::init_logging;
pub use observability::init_observability;
pub use validation::AgentId;
pub use validation::are_valid_uuid_parts;
pub use validation::format_agent_id;
pub use validation::is_valid_agent_id;
pub use validation::normalize_agent_id;
pub use validation::parse_agent_id;
pub use validation::require_relative_path_safe;
pub use validation::split_agent_id;
pub use validation::validate_agent_id;
pub use time_utils::backup_timestamp_suffix;
pub use time_utils::now_rfc3339;
pub use time_utils::now_timestamp;
pub use time_utils::now_utc;
pub use time_utils::parse_rfc3339;
pub use time_utils::parse_rfc3339_to_timestamp;
pub use time_utils::validate_signature_timestamp;
pub use time_utils::validate_timestamp_not_expired;
pub use time_utils::validate_timestamp_not_future;

Modules§

agent
audit
Security audit module for JACS.
cli_utils
config
crypt
dns
document
Unified Document API for JACS.
email
JACS email signing and verification module.
error
Unified error types for the JACS crate.
health
Health check module for JACS components.
keystore
mime
MIME type detection based on file extension.
observability
paths
OS-specific path handling for JACS directories.
protocol
JACS protocol helpers shared across SDKs.
rate_limit
Rate limiting utilities for network operations.
replay
schema
search
Search abstraction and embedding traits for JACS document backends.
shared
shutdown
Graceful shutdown handling for JACS.
simple
Simplified JACS API for common operations.
storage
Storage backends for JACS documents.
testing
Test utilities for JACS storage backend conformance testing.
time_utils
Time utilities for JACS.
trust
Trust store management for JACS agents.
validation
Agent ID validation and parsing utilities.

Macros§

database_conformance_tests
Generates 9 conformance tests for DatabaseDocumentTraits.
storage_conformance_tests
Generates 11 conformance tests for StorageDocumentTraits.

Functions§

create_minimal_blank_agent
Creates a minimal agent JSON string with a default service. Optionally accepts descriptions for the default service.
create_task
Create a signed task document with the given name and description.
get_empty_agent
Creates an empty agent struct with default schema versions.
init_custom_observability
Initialize observability with custom configuration. This is useful when you need specific logging/metrics destinations.
init_default_observability
Initialize observability with a default configuration suitable for most applications. This sets up file-based logging and metrics in the current directory.
load_agent
Load an agent from a file path or default config with default DNS policy.
load_agent_with_dns_policy
Load an agent from a file path or default config, with full DNS policy control.
load_agent_with_dns_strict
Load an agent from a file path while controlling DNS strictness before validation runs.
update_task
Update a task document (placeholder – not yet implemented).