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
| Feature | Default | Description |
|---|---|---|
sqlite | Yes | Sync SQLite backend via rusqlite |
sqlx-sqlite | No | Async SQLite backend via sqlx + tokio |
a2a | No | Agent-to-Agent protocol |
agreements | No | Multi-agent agreement signing |
attestation | No | Evidence-based attestation |
otlp-logs | No | OpenTelemetry log export |
otlp-metrics | No | OpenTelemetry metrics export |
otlp-tracing | No | OpenTelemetry 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.
- 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).