spvirit_server/lib.rs
1//! PVAccess server library for EPICS.
2//!
3//! Provides reusable server-side types, .db parsing, connection state, and the
4//! [`PvStore`] trait that abstracts over a PV data source. Consumers implement
5//! `PvStore` and pass it to the protocol handler to serve PVs over PVAccess.
6//!
7//! # High-level API
8//!
9//! ```rust,ignore
10//! use spvirit_server::PvaServer;
11//!
12//! let server = PvaServer::builder()
13//! .ai("SIM:TEMP", 22.5)
14//! .ao("SIM:SETPOINT", 25.0)
15//! .bo("SIM:ENABLE", false)
16//! .build();
17//!
18//! server.run().await?;
19//! ```
20
21pub mod db;
22pub mod state;
23pub mod types;
24pub mod pvstore;
25pub mod decode;
26pub mod convert;
27pub mod apply;
28pub mod beacon;
29pub mod monitor;
30pub mod handler;
31pub mod server;
32pub mod simple_store;
33pub mod pva_server;
34
35// Convenience re-exports.
36pub use pvstore::PvStore;
37pub use handler::PvListMode;
38pub use server::{PvaServerConfig, PvaServerState, run_pva_server, run_pva_server_with_registry};
39pub use types::{RecordType, RecordData, RecordInstance, DbCommonState, ScanMode, LinkExpr, OutputMode};
40pub use simple_store::SimplePvStore;
41pub use pva_server::{PvaServer, PvaServerBuilder};