Skip to content

gRPC API

The server exposes a gRPC API. The service and message definitions live in mef3io_server/protobufs/gRPCMef3Server.proto.

Every data access is oriented in channels and time — there is no segment grid and no server-side channel selection; each request is self-contained.

Key RPCs

RPC Client method Purpose
GetSignalRange get_signal_range(file_path, channels, start_uutc, end_uutc) Read any channels over any [start_uutc, end_uutc) window; streams float32. channels=None means all channels.
FileInfo get_file_info(file_path) Metadata: channel_names, channel_sampling_rates, channel_start_uutc, channel_end_uutc (parallel per-channel arrays) plus the global start_uutc / end_uutc / duration_s.
OpenFile open_file(file_path) Open a file and return its metadata.
CloseFile close_file(file_path) Close a file, release its reader session, and purge its tiles from the shared cache.
ListOpenFiles list_open_files() List the currently open files.

Streaming

GetSignalRange streams the result in ~2.5 MB SignalChunk messages carrying raw float32 bytes plus the shape, dtype, channel names, and the uUTC span of each chunk. The client reassembles them into a single (n_channels, n_samples) array. See the Python client guide for usage.