Skip to main content

rpc/
lib.rs

1//! Transport-agnostic RPC layer for nomisync.
2//!
3//! Carries S-expression frames between any client (emacs over SSH, in-process CLI/TUI,
4//! future single-binary embedded-postgres) and the canonical native function registry.
5//! See `doc/emacs-rpc.org` for the protocol spec and the plan file for design rationale.
6
7pub mod ctx;
8pub mod draft;
9pub mod envelope;
10pub mod framing;
11pub mod host_prelude;
12pub mod natives;
13pub mod response;
14pub mod session;
15pub mod template;
16pub mod wasm;
17
18pub use ctx::{EpochBumper, InterruptHandle, ScriptCtx, ScriptLimits};
19pub use draft::{DraftSplit, DraftTag, TransactionDraft};
20pub use envelope::{
21    EnvelopeError, ErrorCode, Request, RequestId, Response, ResponsePayload, format_response,
22    parse_request,
23};
24pub use framing::{FrameDecoder, FrameError};
25pub use response::{expr_to_value, parse_response, try_expr_to_value};
26pub use session::{EvalOutcome, Session};
27pub use template::{TemplateError, compile_template, render_template};