Expand description
PVAccess server library for EPICS.
Provides reusable server-side types, .db parsing, connection state, and the
PvStore trait that abstracts over a PV data source. Consumers implement
PvStore and pass it to the protocol handler to serve PVs over PVAccess.
§High-level API
ⓘ
use spvirit_server::PvaServer;
let server = PvaServer::builder()
.ai("SIM:TEMP", 22.5)
.ao("SIM:SETPOINT", 25.0)
.bo("SIM:ENABLE", false)
.build();
server.run().await?;Re-exports§
pub use group::FieldMapping;pub use group::GroupMember;pub use group::GroupPvDef;pub use group::GroupPvStore;pub use group::TriggerDef;pub use group::merge_group_defs;pub use group::parse_group_config;pub use group::parse_info_group;pub use handler::PvListMode;pub use pva_server::PvaServer;pub use pva_server::PvaServerBuilder;pub use pvstore::PvStore;pub use server::PvaServerConfig;pub use server::PvaServerState;pub use server::run_pva_server;pub use server::run_pva_server_with_registry;pub use simple_store::SimplePvStore;pub use types::DbCommonState;pub use types::LinkExpr;pub use types::OutputMode;pub use types::RecordData;pub use types::RecordInstance;pub use types::RecordType;pub use types::ScanMode;
Modules§
- apply
- Functions that apply decoded PUT values to Normative Type payloads.
- beacon
- PVA beacon sender.
- convert
- Type conversions from
DecodedValueto Rust scalars andScalarValue. - db
- decode
- PUT body decoding utilities.
- group
- Group PV configuration: parse JSON definitions that compose multiple individual PVs into a single structured PVA channel.
- handler
- PVA protocol handler — the core TCP connection processor.
- monitor
- Monitor subscription management for the PVA server.
- pva_
server - High-level PVAccess server — builder pattern for typed records.
- pvstore
- The
PvStoretrait — an abstraction over any PV data source. - server
- Top-level PVA server orchestration.
- simple_
store - A simple in-memory
PvStoreimplementation backed byRecordInstance. - state
- types
- Server-specific record and IOC types.