Expand description
ORMDB Protocol types and serialization.
This crate defines the wire protocol types for ORMDB, using rkyv for zero-copy serialization.
§Modules
value- Runtime value types for query parameters and resultsquery- Query IR types for graph queriesmutation- Mutation types for write operationsresult- Result types for query responsesmessage- Request/response message wrappershandshake- Protocol negotiation typeserror- Protocol error types
§Serialization
All types in this crate derive rkyv::Archive, rkyv::Serialize, and
rkyv::Deserialize. Use rkyv directly for serialization:
ⓘ
use ormdb_proto::{Value, GraphQuery};
// Serialize
let value = Value::String("hello".into());
let bytes = rkyv::to_bytes::<rkyv::rancor::Error>(&value).unwrap();
// Deserialize
let archived = rkyv::access::<ArchivedValue, rkyv::rancor::Error>(&bytes).unwrap();
let deserialized: Value = rkyv::deserialize::<Value, rkyv::rancor::Error>(archived).unwrap();Re-exports§
pub use error::Error;pub use explain::BudgetSummary;pub use explain::CostSummary;pub use explain::ExplainResult;pub use explain::IncludeSummary;pub use explain::JoinInfo;pub use explain::JoinStrategyType;pub use explain::OrderSummary;pub use explain::PaginationSummary;pub use explain::QueryPlanSummary;pub use handshake::Handshake;pub use handshake::HandshakeResponse;pub use message::error_codes;pub use message::ChangeEvent;pub use message::ChangeType;pub use message::Operation;pub use message::Request;pub use message::Response;pub use message::ResponsePayload;pub use message::Status;pub use message::Subscription;pub use metrics::CacheMetrics;pub use metrics::EntityCount;pub use metrics::EntityQueryCount;pub use metrics::MetricsResult;pub use metrics::MutationMetrics;pub use metrics::QueryMetrics;pub use metrics::StorageMetrics;pub use metrics::TransportMetrics;pub use mutation::FieldValue;pub use mutation::Mutation;pub use mutation::MutationBatch;pub use query::AggregateFunction;pub use query::AggregateQuery;pub use query::Aggregation;pub use query::Filter;pub use query::FilterExpr;pub use query::GraphQuery;pub use query::OrderDirection;pub use query::OrderSpec;pub use query::Pagination;pub use query::RelationInclude;pub use query::SimpleFilter;pub use replication::ChangeLogEntry;pub use replication::ReplicationRole;pub use replication::ReplicationStatus;pub use replication::StreamChangesRequest;pub use replication::StreamChangesResponse;pub use result::AggregateResult;pub use result::AggregateValue;pub use result::ColumnData;pub use result::Edge;pub use result::EdgeBlock;pub use result::EntityBlock;pub use result::MutationResult;pub use result::QueryResult;pub use value::Value;
Modules§
- error
- Protocol error types.
- explain
- EXPLAIN command result types.
- framing
- Message framing utilities for transport layer.
- handshake
- Protocol handshake types for connection negotiation.
- message
- Request and response message types.
- metrics
- Server metrics types.
- mutation
- Mutation IR types for write operations.
- query
- Query IR types for graph queries.
- replication
- Replication and CDC protocol types.
- result
- Result types for query responses.
- value
- Runtime value types for protocol messages.
Constants§
- PROTOCOL_
VERSION - Protocol version for wire compatibility.