Skip to main content

Module rpc

Module rpc 

Source
Expand description

VectorizerRPC client — length-prefixed MessagePack over raw TCP.

The wire spec at docs/specs/VECTORIZER_RPC.md (in the parent Vectorizer repo) is the byte-level contract. Framing, multiplexing and the value model come from thunder-rpc — the same crate the server runs — so a v1 server and a v1 SDK client cannot drift apart.

§Quick start

use vectorizer_sdk::rpc::{RpcClient, HelloPayload};

let client = RpcClient::connect("127.0.0.1:15503").await?;
client.hello(HelloPayload::new("vectorizer-sdk-rust/3.6.0")).await?;
let pong = client.ping().await?;
assert_eq!(pong, "PONG");

§Layout

  • typesRequest, Response, VectorizerValue (Thunder’s).
  • clientRpcClient: connect, hello, call, ping, close, plus protocol_config(), the client half of the server’s wire config.
  • commands — typed wrappers for the v1 command catalog.
  • pool — minimal RpcPool for reusing connections.
  • endpointparse_endpoint(url) for the canonical vectorizer://host[:port] URL scheme.

Re-exports§

pub use client::DEFAULT_RPC_PORT;
pub use client::HelloPayload;
pub use client::HelloResponse;
pub use client::RpcClient;
pub use client::RpcClientError;
pub use client::protocol_config;
pub use commands::AdminStats;
pub use commands::AdminStatus;
pub use commands::AnswerPlanResult;
pub use commands::AnswerPlanSection;
pub use commands::ApiKeyCreated;
pub use commands::AuthMeResult;
pub use commands::BatchDeleteResult;
pub use commands::BatchInsertResult;
pub use commands::BatchItemResult;
pub use commands::BatchSearchResult;
pub use commands::BatchUpdateResult;
pub use commands::BulkUpdateMetadataRpcResult;
pub use commands::CleanupEmptyResult;
pub use commands::CollectionInfo;
pub use commands::CompressBullet;
pub use commands::CopyRpcResult;
pub use commands::CreateCollectionResult;
pub use commands::DeleteByFilterRpcResult;
pub use commands::DiscoverEdgesForNodeResult;
pub use commands::DiscoverEdgesResult;
pub use commands::DiscoverResult;
pub use commands::DiscoveryChunk;
pub use commands::EmbedResult;
pub use commands::ExpandQueriesResult;
pub use commands::GraphDiscoveryStatus;
pub use commands::MoveRpcResult;
pub use commands::RebalanceStatus;
pub use commands::RefreshTokenResult;
pub use commands::RenderPromptResult;
pub use commands::ReplicationConfigureResult;
pub use commands::RotatedApiKey;
pub use commands::SearchExplainResult;
pub use commands::SearchHit;
pub use commands::SearchTrace;
pub use commands::SetExpiryResult;
pub use commands::SlowQueryConfigResult;
pub use commands::ValidatePasswordResult;
pub use commands::VectorListResult;
pub use commands::VectorWriteResult;
pub use endpoint::Endpoint;
pub use endpoint::ParseError;
pub use endpoint::parse_endpoint;
pub use pool::RpcPool;

Modules§

client
RpcClient: connect, hello, call, ping, close.
commands
Typed wrappers around the v1 RPC command catalog.
endpoint
Canonical URL parser for the SDK’s connection string.
pool
Minimal RPC connection pool.
types
VectorizerRPC wire types — Request, Response, VectorizerValue.

Structs§

Request
One RPC request (WIRE-001). id is client-chosen and echoed back; many requests multiplex over one connection. Serialized as an array (WIRE-012); map-shaped requests decode too (WIRE-013).
Response
One RPC response (WIRE-001). result is Ok(value) or an error string; v1 carries no structured error object — conventions are prefix-based and profile-driven (WIRE-040).

Enums§

VectorizerValue
The wire value model (WIRE-002) — byte-compatible with the value models the family shipped before Thunder, by construction.