Skip to main content

Crate ormdb_proto

Crate ormdb_proto 

Source
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 results
  • query - Query IR types for graph queries
  • mutation - Mutation types for write operations
  • result - Result types for query responses
  • message - Request/response message wrappers
  • handshake - Protocol negotiation types
  • error - 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.