Skip to main content

arcp_runtime/
lib.rs

1//! Reference runtime (server side) for the Agent Runtime Control Protocol.
2//!
3//! This crate ships the production-ready runtime — the part that accepts
4//! sessions, dispatches messages, runs tools, manages jobs / streams /
5//! permissions / leases / subscriptions, and persists what needs persisting:
6//!
7//! - [`runtime`] — [`ARCPRuntime`][runtime::ARCPRuntime] entrypoint.
8//! - [`store`] — SQLite-backed append-only event log + credential ledger.
9//! - [`auth`] — bearer, `signed_jwt`, and none [`Authenticator`][arcp_core::auth::Authenticator]
10//!   implementations. The trait itself lives in `arcp-core`.
11//!
12//! Wire-format types ([`Envelope`][arcp_core::Envelope], [`MessageType`][arcp_core::MessageType],
13//! errors, IDs, transport trait) are re-exported here for convenience but
14//! ultimately live in `arcp-core`. Most users should depend on the umbrella
15//! `arcp` crate; pull `arcp-runtime` in directly if you don't need the
16//! client side.
17//!
18//! The crate also ships an `arcp` binary that runs a configurable demo
19//! runtime over stdio or websockets — handy for ad-hoc conformance testing.
20
21#![deny(unsafe_code)]
22#![deny(missing_docs)]
23#![warn(unreachable_pub)]
24
25pub mod auth;
26pub mod runtime;
27pub mod store;
28
29pub use runtime::ARCPRuntime;
30
31// Re-export the protocol primitives users will routinely reach for.
32pub use arcp_core::{
33    ARCPError, Envelope, ErrorCode, MessageType, IMPL_KIND, IMPL_VERSION, PROTOCOL_VERSION,
34};